RelationEqForShController.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.persagy.proxy.adm.controller;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.fasterxml.jackson.databind.node.JsonNodeFactory;
  4. import com.fasterxml.jackson.databind.node.ObjectNode;
  5. import com.persagy.dmp.basic.model.QueryCriteria;
  6. import com.persagy.proxy.adm.constant.AdmCommonConstant;
  7. import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
  8. import com.persagy.proxy.adm.model.relation.EqForSh;
  9. import com.persagy.proxy.adm.model.relation.EqForShList;
  10. import com.persagy.proxy.adm.model.relation.ShForEqList;
  11. import com.persagy.proxy.adm.request.AdmResponse;
  12. import com.persagy.proxy.adm.service.IAdmRelationService;
  13. import com.persagy.proxy.common.entity.InstanceUrlParam;
  14. import com.persagy.proxy.common.entity.RelationDTO;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.util.CollectionUtils;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. /**
  22. * @author zhangwencheng
  23. * 设备服务于竖井
  24. */
  25. @RestController
  26. @RequestMapping("/rel/eq-for-sh")
  27. public class RelationEqForShController {
  28. @Autowired
  29. private IAdmRelationService service;
  30. @Value("${middleware.group.code}")
  31. private String groupCode;
  32. /**
  33. * 创建设备服务于竖井关系
  34. * 必填项:EquipId(设备id)、ShaftId(竖井id)
  35. *
  36. * @return 创建的结果信息
  37. */
  38. @PostMapping("/link")
  39. public AdmResponse create(@RequestBody EqForSh eqForSh, @RequestParam("projectId") String projectId) {
  40. String equipId = eqForSh.getEquipId();
  41. String shaftId = eqForSh.getShaftId();
  42. String type = eqForSh.getType();
  43. //检验输入参数
  44. if (StrUtil.isEmpty(equipId) || StrUtil.isEmpty(shaftId)) {
  45. return AdmResponse.failure("必填项:equipId(设备id)、shaftId(竖井Id)");
  46. }
  47. AdmRelationTypeEnum typeEnum = AdmRelationTypeEnum.EQ2SH_FOR;
  48. String graphCode = typeEnum.getGraphCode();
  49. String relCode = typeEnum.getRelCode();
  50. List<RelationDTO> voList = new ArrayList<>();
  51. RelationDTO relation = new RelationDTO(null, graphCode, relCode, type, equipId, shaftId);
  52. voList.add(relation);
  53. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  54. service.doSave(context, voList);
  55. return AdmResponse.success();
  56. }
  57. /**
  58. * 创建设备服务于竖井关系
  59. * 必填项:ShaftIdList(竖井id列表)、EquipId(设备id),测方法会覆盖以前的记录
  60. *
  61. * @param
  62. * @return 创建的结果信息
  63. */
  64. @PostMapping("/link-sh")
  65. public AdmResponse createSh(@RequestBody EqForShList eqForShList, @RequestParam("projectId") String projectId) {
  66. String equipId = eqForShList.getEquipId();
  67. List<String> shaftIdList = eqForShList.getShaftIdList();
  68. //检验输入参数
  69. if (StrUtil.isEmpty(equipId) || CollectionUtils.isEmpty(shaftIdList)) {
  70. return AdmResponse.failure("必填项:equipId(设备id)、shaftIdList(竖井Id列表)");
  71. }
  72. AdmRelationTypeEnum typeEnum = AdmRelationTypeEnum.EQ2SH_FOR;
  73. String graphCode = typeEnum.getGraphCode();
  74. String relCode = typeEnum.getRelCode();
  75. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  76. deleteByObjId(equipId, null, null, typeEnum, context);
  77. List<RelationDTO> voList = new ArrayList<>();
  78. for (String shaftId : shaftIdList) {
  79. RelationDTO relation = new RelationDTO(null, graphCode, relCode, "", equipId, shaftId);
  80. voList.add(relation);
  81. }
  82. service.doSave(context, voList);
  83. return AdmResponse.success();
  84. }
  85. /**
  86. * 服务于竖井的设备,竖井一对多
  87. * 必填项:ShaftId(竖井id)、EquipIdList(设备id列表),测方法会覆盖以前的记录
  88. *
  89. * @param shForEqList 设备和竖井的关系对象
  90. * @return 创建的结果信息
  91. */
  92. @PostMapping("/link-eq")
  93. public AdmResponse createEq(@RequestBody ShForEqList shForEqList, @RequestParam("projectId") String projectId) {
  94. List<String> equipIdList = shForEqList.getEquipIdList();
  95. String shaftId = shForEqList.getShaftId();
  96. //检验输入参数
  97. if (StrUtil.isEmpty(shaftId) || CollectionUtils.isEmpty(equipIdList)) {
  98. return AdmResponse.failure("必填项:equipId(设备id)、shaftIdList(竖井Id列表)");
  99. }
  100. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  101. AdmRelationTypeEnum typeEnum = AdmRelationTypeEnum.EQ2SH_FOR;
  102. String graphCode = typeEnum.getGraphCode();
  103. String relCode = typeEnum.getRelCode();
  104. deleteByObjId(null, shaftId, null, typeEnum, context);
  105. List<RelationDTO> voList = new ArrayList<>();
  106. for (String equipId : equipIdList) {
  107. RelationDTO relation = new RelationDTO(null, graphCode, relCode, "", equipId, shaftId);
  108. voList.add(relation);
  109. }
  110. service.doSave(context, voList);
  111. return AdmResponse.success();
  112. }
  113. /**
  114. * 根据对象删除设备服务于竖井关系,只针对一个对象
  115. * 必填项:EquipId(设备id)、shaftId(竖井id)
  116. *
  117. * @param eqForSh 对象
  118. * @return 删除的结果信息
  119. */
  120. @PostMapping("/unlink")
  121. public AdmResponse delete(@RequestBody EqForSh eqForSh, @RequestParam("projectId") String projectId) {
  122. String shaftId = eqForSh.getShaftId();
  123. String equipId = eqForSh.getEquipId();
  124. //检验输入参数
  125. if (StrUtil.isEmpty(equipId) || StrUtil.isEmpty(shaftId)) {
  126. return AdmResponse.failure("必填项:equipId(设备id)、shaftId(竖井Id)");
  127. }
  128. String type = eqForSh.getType();
  129. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  130. AdmRelationTypeEnum typeEnum = AdmRelationTypeEnum.EQ2SH_FOR;
  131. deleteByObjId(equipId, shaftId, type, typeEnum, context);
  132. return AdmResponse.success();
  133. }
  134. private void deleteByObjId(String objFrom, String objTo, String type, AdmRelationTypeEnum typeEnum, InstanceUrlParam context) {
  135. QueryCriteria criteria = new QueryCriteria();
  136. ObjectNode node = JsonNodeFactory.instance.objectNode();
  137. node.put("graphCode", typeEnum.getGraphCode());
  138. node.put("relCode", typeEnum.getRelCode());
  139. node.put("relValue", type);
  140. node.put("objFrom", objFrom);
  141. node.put("objTo", objTo);
  142. criteria.setCriteria(node);
  143. service.doDelete(context, criteria);
  144. }
  145. }