AdmSystemController.java 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  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.model.AdmSystem;
  5. import com.persagy.proxy.adm.request.AdmCreateRequest;
  6. import com.persagy.proxy.adm.request.AdmQueryCriteria;
  7. import com.persagy.proxy.adm.request.AdmResponse;
  8. import com.persagy.proxy.adm.service.IAdmSystemService;
  9. import com.persagy.proxy.common.entity.InstanceUrlParam;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.web.bind.annotation.*;
  13. import javax.validation.constraints.NotNull;
  14. import javax.ws.rs.QueryParam;
  15. import java.util.List;
  16. /**
  17. * Adm 系统 API
  18. * @author lvxy
  19. * @date 2021/8/16
  20. */
  21. @RestController
  22. @RequestMapping("/object/general-system")
  23. public class AdmSystemController {
  24. @Autowired
  25. private IAdmSystemService service;
  26. @Value("${middleware.group.code}")
  27. private String groupCode;
  28. /**
  29. * 统计
  30. * @param projectId
  31. * @param request
  32. * @return
  33. * @throws Exception
  34. */
  35. @PostMapping("/count")
  36. public AdmResponse count(@QueryParam("projectId") String projectId,
  37. @RequestBody AdmQueryCriteria request) throws Exception {
  38. // 组装上下文条件
  39. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  40. request.setName("system");
  41. request.setOnlyCount(true);
  42. return service.doQuery(context, request, AdmSystem.class);
  43. }
  44. /**
  45. * 创建
  46. * @param createRequest
  47. * @return
  48. * @throws Exception
  49. */
  50. @PostMapping("/create")
  51. public AdmResponse create(@RequestBody AdmCreateRequest<AdmSystem> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  52. // 组装上下文条件
  53. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  54. List<AdmSystem> vos = CollUtil.newArrayList(createRequest.getContent());
  55. vos = service.doInsert(context, AdmSystem.class, vos);
  56. return AdmResponse.success(vos);
  57. }
  58. /**
  59. * 创建系统信息-处理建筑楼层
  60. * @param createRequest
  61. * @return
  62. * @throws Exception
  63. */
  64. @PostMapping("/create-bd-fl")
  65. public AdmResponse createBdFl(@RequestBody AdmCreateRequest<AdmSystem> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  66. // 组装上下文条件
  67. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  68. List<AdmSystem> vos = CollUtil.newArrayList(createRequest.getContent());
  69. vos = service.doInsert(context, AdmSystem.class, vos);
  70. return AdmResponse.success(vos);
  71. }
  72. /**
  73. * 根据ID删除
  74. * @param vos
  75. * @return
  76. * @throws Exception
  77. */
  78. @PostMapping("/delete")
  79. public AdmResponse delete(@QueryParam("projectId") String projectId, @RequestBody List<AdmSystem> vos) throws Exception {
  80. // 组装上下文条件
  81. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  82. service.doDelete(context, vos);
  83. return AdmResponse.success();
  84. }
  85. /**
  86. * 更新
  87. * @param createRequest
  88. * @return
  89. * @throws Exception
  90. */
  91. @PostMapping("/update")
  92. public AdmResponse update(@RequestBody AdmCreateRequest<AdmSystem> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  93. // 组装上下文条件
  94. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  95. List<AdmSystem> vos = CollUtil.newArrayList(createRequest.getContent());
  96. vos = service.doUpdate(context, AdmSystem.class, vos);
  97. return AdmResponse.success(vos);
  98. }
  99. /**
  100. * 系统绑定的动态信息点或静态信息点
  101. * type: static(静态),iot (动态)
  102. * @param projectId
  103. * @param request
  104. * @return
  105. * @throws Exception
  106. */
  107. @GetMapping("/export")
  108. public AdmResponse exportInfos(@QueryParam("projectId") String projectId,
  109. @RequestBody AdmQueryCriteria request) throws Exception {
  110. // 组装上下文条件
  111. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  112. request.setName("system");
  113. return service.doQuery(context, request, AdmSystem.class);
  114. }
  115. /**
  116. * 创建系统下的设备关系
  117. * @param createRequest
  118. * @return
  119. * @throws Exception
  120. */
  121. @PostMapping("/link-equip")
  122. public AdmResponse createRelateEquip(@RequestBody AdmCreateRequest<AdmSystem> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  123. // 组装上下文条件
  124. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  125. List<AdmSystem> vos = CollUtil.newArrayList(createRequest.getContent());
  126. vos = service.doInsert(context, AdmSystem.class, vos);
  127. return AdmResponse.success(vos);
  128. }
  129. /**
  130. * 查询
  131. * @param projectId
  132. * @param request
  133. * @return
  134. * @throws Exception
  135. */
  136. @PostMapping("/query")
  137. public AdmResponse query(@QueryParam("projectId") String projectId,
  138. @RequestBody AdmQueryCriteria request) throws Exception {
  139. // 组装上下文条件
  140. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  141. request.setName("system");
  142. return service.doQuery(context, request, AdmSystem.class);
  143. }
  144. /**
  145. * 查询系统信息-系统建筑楼层一对多
  146. * MajorName 专业名称 ,级联查询 系统分类名(categoryNames),系统下的设备(equipmentList),系统下的竖井(shaftList),业务空间(zoneSpaceBaseTableList)
  147. * @param projectId
  148. * @param request
  149. * @return
  150. * @throws Exception
  151. */
  152. @PostMapping("/query-new")
  153. public AdmResponse queryNew(@QueryParam("projectId") String projectId, @QueryParam("buildingId") String buildingId,
  154. @QueryParam("floorId") String floorId, @RequestBody AdmQueryCriteria request) throws Exception {
  155. // 组装上下文条件
  156. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  157. request.setName("system");
  158. return service.doQuery(context, request, AdmSystem.class);
  159. }
  160. /**
  161. * 查询系统信息-试图级联建筑楼层
  162. * @param projectId
  163. * @param request
  164. * @return
  165. * @throws Exception
  166. */
  167. @PostMapping("/query-bdfl")
  168. public AdmResponse queryUnBdFl(@QueryParam("projectId") String projectId,
  169. @RequestBody AdmQueryCriteria request) throws Exception {
  170. // 组装上下文条件
  171. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  172. request.setName("system");
  173. return service.doQuery(context, request, AdmSystem.class);
  174. }
  175. /**
  176. * 查询没有和当前系统关联的设备
  177. * id 为系统id
  178. * @param projectId
  179. * @param request
  180. * @return
  181. * @throws Exception
  182. */
  183. @PostMapping("/un-sys-equip")
  184. public AdmResponse queryUnEquip(@QueryParam("projectId") String projectId, @NotNull @QueryParam("sysId") String sysId,
  185. @RequestBody AdmQueryCriteria request) throws Exception {
  186. // 组装上下文条件
  187. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  188. request.setName("system");
  189. return service.doQuery(context, request, AdmSystem.class);
  190. }
  191. /**
  192. * 查询没有和当前系统关联的竖井
  193. * id 为系统id
  194. * @param projectId
  195. * @param request
  196. * @return
  197. * @throws Exception
  198. */
  199. @PostMapping("/un-sys-shaft")
  200. public AdmResponse queryUnSh(@QueryParam("projectId") String projectId,
  201. @RequestBody AdmQueryCriteria request) throws Exception {
  202. // 组装上下文条件
  203. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  204. request.setName("system");
  205. return service.doQuery(context, request, AdmSystem.class);
  206. }
  207. /**
  208. * 查询没有和当前系统关联的业务空间
  209. * id 为系统id
  210. * @param projectId
  211. * @param request
  212. * @return
  213. * @throws Exception
  214. */
  215. @PostMapping("/un-sys-zoneSpaceBaseTable")
  216. public AdmResponse queryUnZoneSp(@QueryParam("projectId") String projectId,
  217. @RequestBody AdmQueryCriteria request) throws Exception {
  218. // 组装上下文条件
  219. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  220. request.setName("system");
  221. return service.doQuery(context, request, AdmSystem.class);
  222. }
  223. /**
  224. * 查询没有和当前空间绑定的系统
  225. * 例如:prijectId=Pj4201050001,type=AirConditioningZone spaceId=Sp4201050001df2091cdf719443b80bb737aeabf0525 spaceId 为当前空间id type为当前空间类型
  226. * @param projectId
  227. * @param request
  228. * @return
  229. * @throws Exception
  230. */
  231. @PostMapping("/unspace-sys")
  232. public AdmResponse queryUnSpSy(@QueryParam("projectId") String projectId,
  233. @RequestBody AdmQueryCriteria request) throws Exception {
  234. // 组装上下文条件
  235. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  236. request.setName("system");
  237. return service.doQuery(context, request, AdmSystem.class);
  238. }
  239. }