RelationEqInSpController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.persagy.proxy.relation.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.fasterxml.jackson.databind.node.JsonNodeFactory;
  7. import com.fasterxml.jackson.databind.node.ObjectNode;
  8. import com.persagy.dmp.basic.model.QueryCriteria;
  9. import com.persagy.proxy.adm.request.AdmResponse;
  10. import com.persagy.proxy.adm.service.IAdmRelationService;
  11. import com.persagy.proxy.adm.utils.AdmContextUtil;
  12. import com.persagy.proxy.common.entity.InstanceUrlParam;
  13. import com.persagy.proxy.common.entity.RelationDTO;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. /**
  20. * ADM 关系 EqInSp API
  21. * @author Charlie Yu
  22. * @date 2021-08-16
  23. */
  24. @RestController
  25. @RequestMapping("/rel/eq-in-sp-base")
  26. public class RelationEqInSpController {
  27. @Autowired
  28. private IAdmRelationService service;
  29. /**
  30. * 创建设备所在业务空间关系
  31. * @param type
  32. * @param param
  33. * @return
  34. * @throws Exception
  35. */
  36. @PostMapping("/link-list")
  37. public AdmResponse create(@RequestParam(value = "type", required = false) String type,
  38. @RequestBody JSONObject param) throws Exception {
  39. JSONArray content = param == null ? null : param.getJSONArray("content");
  40. if(CollUtil.isEmpty(content)) {
  41. return AdmResponse.success();
  42. }
  43. // 创建关系对象
  44. List<RelationDTO> voList = new ArrayList<>();
  45. for(int i = 0;i < content.size();i++) {
  46. JSONObject para = content.getJSONObject(i);
  47. String equipId = para.getString("equipId");
  48. String spaceId = para.getString("spaceId");
  49. if(StrUtil.isBlank(equipId) || StrUtil.isBlank(spaceId)) {
  50. return AdmResponse.failure("必填项:EquipId(设备id)、SpaceId(业务空间id)");
  51. }
  52. // 创建关系对象 - 参考(datasyn中DataCenterSync.kt)
  53. voList.add(new RelationDTO(null, "MechInArch", "Eq2Sp", type, equipId, spaceId));
  54. }
  55. service.doSave(AdmContextUtil.toDmpContext(), voList);
  56. return AdmResponse.success();
  57. }
  58. /**
  59. * 创建设备所在业务空间关系
  60. * @param type
  61. * @param param
  62. * @return
  63. * @throws Exception
  64. */
  65. @PostMapping("/link-eq-sp")
  66. public AdmResponse createEq(@RequestParam(value = "type", required = false) String type,
  67. @RequestBody JSONObject param) throws Exception {
  68. String spaceId = param.getString("spaceId");
  69. JSONArray equipIdList = param.getJSONArray("equipIdList");
  70. if(StrUtil.isBlank(spaceId) || CollUtil.isEmpty(equipIdList)) {
  71. return AdmResponse.failure("必填项:EquipId(设备id)、SpaceId(业务空间id)");
  72. }
  73. // 创建关系对象
  74. List<RelationDTO> voList = new ArrayList<>();
  75. for(int i = 0;i < equipIdList.size();i++) {
  76. String equipId = equipIdList.getString(i);
  77. if(StrUtil.isBlank(equipId)) {
  78. continue;
  79. }
  80. // 创建关系对象 - 参考(datasyn中DataCenterSync.kt)
  81. voList.add(new RelationDTO(null, "MechInArch", "Eq2Sp", type, equipId, spaceId));
  82. }
  83. service.doSave(AdmContextUtil.toDmpContext(), voList);
  84. return AdmResponse.success();
  85. }
  86. /**
  87. * 根据对象删除设备所在业务空间关系
  88. * @param type
  89. * @param param
  90. * @return
  91. * @throws Exception
  92. */
  93. @PostMapping("/unlink-list")
  94. public AdmResponse delete(@RequestParam(value = "type", required = false) String type,
  95. @RequestBody JSONArray param) throws Exception {
  96. if(CollUtil.isEmpty(param)) {
  97. return AdmResponse.success();
  98. }
  99. // 组装上下文条件
  100. InstanceUrlParam context = AdmContextUtil.toDmpContext();
  101. // 组装条件
  102. QueryCriteria criteria = new QueryCriteria();
  103. for(int i = 0;i < param.size();i++) {
  104. JSONObject para = param.getJSONObject(i);
  105. String equipId = para.getString("equipId");
  106. String spaceId = para.getString("spaceId");
  107. if(StrUtil.isBlank(equipId) || StrUtil.isBlank(spaceId)) {
  108. return AdmResponse.failure("必填项:EquipId(设备id)、SpaceId(业务空间id)");
  109. }
  110. ObjectNode node = JsonNodeFactory.instance.objectNode();
  111. node.put("graphCode", "MechInArch");
  112. node.put("relCode", "Eq2Sp");
  113. node.put("relValue", type);
  114. node.put("objFrom", equipId);
  115. node.put("objTo", spaceId);
  116. criteria.setCriteria(node);
  117. service.doDelete(context, criteria);
  118. }
  119. return AdmResponse.success();
  120. }
  121. }