AdmEquipmentController.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. package com.persagy.proxy.adm.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  4. import com.persagy.proxy.adm.constant.AdmCommonConstant;
  5. import com.persagy.proxy.adm.model.AdmEquipment;
  6. import com.persagy.proxy.adm.request.AdmCreateRequest;
  7. import com.persagy.proxy.adm.request.AdmQueryCriteria;
  8. import com.persagy.proxy.adm.request.AdmResponse;
  9. import com.persagy.proxy.adm.service.IAdmEquipmentService;
  10. import com.persagy.proxy.common.entity.InstanceUrlParam;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.web.bind.annotation.*;
  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/equip")
  23. public class AdmEquipmentController {
  24. @Autowired
  25. private IAdmEquipmentService 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("equipment");
  41. request.setOnlyCount(true);
  42. return service.doQuery(context, request, AdmEquipment.class);
  43. }
  44. /**
  45. * 创建
  46. * @param createRequest
  47. * @return
  48. * @throws Exception
  49. */
  50. @PostMapping("/create")
  51. public AdmResponse create(@RequestBody AdmCreateRequest<AdmEquipment> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  52. // 组装上下文条件
  53. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  54. List<AdmEquipment> vos = CollUtil.newArrayList(createRequest.getContent());
  55. vos = service.doInsert(context, AdmEquipment.class, vos);
  56. return AdmResponse.success(vos);
  57. }
  58. /**
  59. * 根据ID删除
  60. * @param vos
  61. * @return
  62. * @throws Exception
  63. */
  64. @PostMapping("/delete")
  65. public AdmResponse delete(@QueryParam("projectId") String projectId, @RequestBody List<AdmEquipment> vos) throws Exception {
  66. // 组装上下文条件
  67. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  68. service.doDelete(context, vos);
  69. return AdmResponse.success();
  70. }
  71. /**
  72. * 更新
  73. * @param createRequest
  74. * @return
  75. * @throws Exception
  76. */
  77. @PostMapping("/update")
  78. public AdmResponse update(@RequestBody AdmCreateRequest<AdmEquipment> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  79. // 组装上下文条件
  80. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  81. List<AdmEquipment> vos = CollUtil.newArrayList(createRequest.getContent());
  82. vos = service.doUpdate(context, AdmEquipment.class, vos);
  83. return AdmResponse.success(vos);
  84. }
  85. /**
  86. * 查询
  87. * @param projectId
  88. * @param request
  89. * @return
  90. * @throws Exception
  91. */
  92. @PostMapping("/query")
  93. public AdmResponse query(@QueryParam("projectId") String projectId,
  94. @RequestBody AdmQueryCriteria request) throws Exception {
  95. // 组装上下文条件
  96. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  97. request.setName("equipment");
  98. return service.doQuery(context, request, AdmEquipment.class);
  99. }
  100. /**
  101. * 设备绑定的动态信息点或静态信息点
  102. * @param admEquipment
  103. * @return
  104. * @throws Exception
  105. */
  106. @GetMapping("/export")
  107. public AdmResponse exportInfos(@RequestBody AdmCreateRequest<AdmEquipment> admEquipment, @QueryParam("projectId") String projectId) throws Exception {
  108. // 组装上下文条件
  109. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  110. List<AdmEquipment> vos = CollUtil.newArrayList(admEquipment.getContent());
  111. vos = service.doUpdate(context, AdmEquipment.class, vos);
  112. return AdmResponse.success(vos);
  113. }
  114. /**
  115. * 设备上传excel识别静态信息点
  116. * @param admEquipment
  117. * @return
  118. * @throws Exception
  119. */
  120. @PostMapping("/import")
  121. public AdmResponse importInfos(@RequestBody AdmCreateRequest<AdmEquipment> admEquipment, @QueryParam("projectId") String projectId) throws Exception {
  122. // 组装上下文条件
  123. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  124. List<AdmEquipment> vos = CollUtil.newArrayList(admEquipment.getContent());
  125. vos = service.doUpdate(context, AdmEquipment.class, vos);
  126. return AdmResponse.success(vos);
  127. }
  128. /**
  129. * 根据项目id查询所有的设备和部件
  130. * @param projectId
  131. * @param request
  132. * @return
  133. * @throws Exception
  134. */
  135. @GetMapping("/query-equip")
  136. public AdmResponse queryEquip(@QueryParam("projectId") String projectId,
  137. @RequestBody AdmQueryCriteria request) throws Exception {
  138. // 组装上下文条件
  139. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  140. //request.setName("equipment");
  141. if(StringUtils.isNotEmpty(request.getFilters())){
  142. request.setFilters(String.join(";",request.getFilters(),"objType in ['equipment','component']"));
  143. }else{
  144. request.setFilters("objType in ['equipment','component']");
  145. }
  146. return service.doQuery(context, request, AdmEquipment.class);
  147. }
  148. /**
  149. * 批量创建设备同时创建资产、创建设备和系统的关系
  150. * @param admEquipment
  151. * @return
  152. * @throws Exception
  153. */
  154. @PostMapping("/create-equip-pro")
  155. public AdmResponse createExt(@RequestBody AdmCreateRequest<AdmEquipment> admEquipment, @QueryParam("projectId") String projectId) throws Exception {
  156. // 组装上下文条件
  157. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  158. List<AdmEquipment> vos = CollUtil.newArrayList(admEquipment.getContent());
  159. vos = service.doInsert(context, AdmEquipment.class, vos);
  160. return AdmResponse.success(vos);
  161. }
  162. }