AdmDictController.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. package com.persagy.proxy.adm.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.persagy.proxy.adm.constant.AdmCommonConstant;
  4. import com.persagy.proxy.adm.constant.AdmDictConstant;
  5. import com.persagy.proxy.adm.constant.enums.AdmDictCategoryEnum;
  6. import com.persagy.proxy.adm.model.*;
  7. import com.persagy.proxy.adm.request.AdmCreateRequest;
  8. import com.persagy.proxy.adm.request.AdmQueryCriteria;
  9. import com.persagy.proxy.adm.request.AdmResponse;
  10. import com.persagy.proxy.adm.service.IAdmDictService;
  11. import com.persagy.proxy.adm.utils.AdmContextUtil;
  12. import com.persagy.proxy.common.entity.InstanceUrlParam;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.apache.commons.lang.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import javax.ws.rs.QueryParam;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. /**
  25. * @ClassName AdmDictController
  26. * @Description: 字典查询
  27. * @Author linhuili
  28. * @Date 2021/8/31 18:21
  29. * @Version V1.0
  30. **/
  31. @RestController
  32. @RequestMapping("/dict")
  33. @Slf4j
  34. public class AdmDictController {
  35. @Autowired
  36. private IAdmDictService service;
  37. /**
  38. * 字典类型查询:所有设备类型、部件类型、系统类型、专业类型
  39. * @param projectId
  40. * @param request
  41. * @return
  42. * @throws Exception
  43. */
  44. @PostMapping("/category")
  45. public AdmResponse queryCategory(@QueryParam("projectId") String projectId,
  46. @RequestBody AdmDict request) throws Exception {
  47. // 组装上下文条件
  48. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  49. if(StringUtils.isEmpty(request.getType())){
  50. throw new Exception("type不能为空");
  51. }
  52. return service.queryCategory(context,request,AdmObjectType.class);
  53. }
  54. /**
  55. * 批量处理字典信息操作:方案设定(BDTP暂不支持)
  56. * @param projectId
  57. * @param request
  58. * @return
  59. * @throws Exception
  60. */
  61. @PostMapping("/dict-batch")
  62. public AdmResponse dictBatch(@QueryParam("projectId") String projectId,
  63. @RequestBody AdmCreateRequest<AdmDictBatch> request) throws Exception {
  64. // 组装上下文条件
  65. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  66. //方案设定:方案id :全新设定(schemeZero)、方案1(schemeOne)、方案2(schemeTwo),
  67. //"注意SchemeId为必填字段 ,优先级在列表中[R,S,M] ,一级标签[技术参数,基本参数] 列表为String类型
  68. return AdmResponse.success(new ArrayList<>());
  69. }
  70. /**
  71. * 查询项目下类型的信息点
  72. * @param projectId
  73. * @param request
  74. * @return
  75. * @throws Exception
  76. */
  77. @PostMapping("/query")
  78. public AdmResponse query(@QueryParam("projectId") String projectId,
  79. @RequestBody AdmDictQueryCriteria request) throws Exception {
  80. // 组装上下文条件
  81. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  82. request.setName(request.getType());
  83. return service.doQueryObjectInfo(context, request, AdmDictConstant.CLASS_CODE, AdmObjectInfo.class);
  84. }
  85. /**
  86. * 查询设备对应的设备族(废弃)
  87. * @param projectId
  88. * @param request
  89. * @return
  90. * @throws Exception
  91. */
  92. @PostMapping("/family/query")
  93. @Deprecated
  94. public AdmResponse familyQuery(@QueryParam("projectId") String projectId,
  95. @RequestBody AdmQueryCriteria request) throws Exception {
  96. // 组装上下文条件
  97. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  98. return AdmResponse.success(new ArrayList<>());
  99. }
  100. /**
  101. * 重置项目下所有得定制信息点
  102. * @param projectId
  103. * @param request
  104. * @return
  105. * @throws Exception
  106. */
  107. @PostMapping("/reset-dic")
  108. public AdmResponse resetDic(@QueryParam("projectId") String projectId,
  109. @RequestBody AdmDictQueryCriteria request) throws Exception {
  110. // 组装上下文条件
  111. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  112. return service.resetDic(context,request,null,AdmObjectInfo.class);
  113. }
  114. /**
  115. * 根据类型,项目id重置信息点
  116. * @param projectId
  117. * @param request
  118. * @return
  119. * @throws Exception
  120. */
  121. @PostMapping("/reset-type")
  122. public AdmResponse resetType(@QueryParam("projectId") String projectId,
  123. @RequestBody AdmDictQueryCriteria request) throws Exception {
  124. // 组装上下文条件
  125. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  126. if(StringUtils.isEmpty(request.getType())){
  127. throw new Exception("type不能为空");
  128. }
  129. request.setName(request.getType());
  130. return service.resetDic(context,request,AdmDictConstant.CLASS_CODE,AdmObjectInfo.class);
  131. }
  132. /**
  133. * 设置-项目定制化字典
  134. * @param projectId
  135. * @param request
  136. * @return
  137. * @throws Exception
  138. */
  139. @PostMapping("/setting-dic-project")
  140. public AdmResponse settingDicProject(@QueryParam("projectId") String projectId,
  141. @RequestBody AdmCreateRequest<AdmObjectInfo> request) throws Exception {
  142. // 组装上下文条件
  143. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  144. return service.settingDicProject(context,request,AdmObjectInfo.class);
  145. }
  146. /**
  147. * 查询项目下已有的设备类型带系统
  148. * @param projectId
  149. * @param request
  150. * @return
  151. * @throws Exception
  152. */
  153. @PostMapping("/system/equip/category")
  154. @Deprecated
  155. public AdmResponse querySystemEquipCategory(@QueryParam("projectId") String projectId,
  156. @RequestBody AdmDict request) throws Exception {
  157. // 组装上下文条件
  158. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  159. request.setType(AdmDictCategoryEnum.SYSTEM_EQUIP.getValue());
  160. return service.queryCategory(context,request,AdmObjectType.class);
  161. }
  162. /**
  163. * 查询类型下所有字典信息 M 和 L 类型,包括自定义信息点
  164. * @param projectId
  165. * @param dictTypeList
  166. * @return
  167. * @throws Exception
  168. */
  169. @PostMapping("/morl/query")
  170. @Deprecated
  171. public AdmResponse queryMorlDict(@QueryParam("projectId") String projectId,
  172. @RequestBody List<String> dictTypeList) throws Exception {
  173. // 组装上下文条件
  174. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  175. if(CollUtil.isEmpty(dictTypeList)){
  176. return AdmResponse.success(new ArrayList<>());
  177. }
  178. //查询指定类型下的信息点
  179. return service.queryMorlDict(context,dictTypeList);
  180. }
  181. /**
  182. * 获取不能同步到物理世界对象的数量
  183. * @param request
  184. * @return
  185. * @throws Exception
  186. */
  187. @PostMapping("/data-count")
  188. @Deprecated
  189. public AdmResponse queryNotSyncDmpObjects(@RequestBody AdmDictQueryCriteria request) throws Exception {
  190. return AdmResponse.success(new ArrayList<>());
  191. }
  192. /**
  193. * 需采集信息同步到所有项目
  194. * @return
  195. * @throws Exception
  196. */
  197. @PostMapping("/syn-dic-project")
  198. @Deprecated
  199. public AdmResponse syncProjectObjectInfo() throws Exception {
  200. return AdmResponse.success(new ArrayList<>());
  201. }
  202. }