Browse Source

实现接口deleteObjRelationsByRelId

lijie 3 năm trước cách đây
mục cha
commit
152872221e

+ 3 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/constant/BusinessErrorRwdCode.java

@@ -8,9 +8,12 @@ package com.persagy.dmp.rwd.basic.constant;
  */
 public enum BusinessErrorRwdCode {
     /**
+     * A72XX:代表对象关系的错误码
      * A73XX:代表关系计算的错误码
      *
+     *
      * */
+    A7201("A7201", "关系不存在"),
 	A7301("A7301", ":不存在"),
     A7302("A7302", ":存在多个实例"),
     A7303("A7303", ":不存在"),

+ 14 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/RelationCaclController.java

@@ -11,6 +11,7 @@ import com.persagy.dmp.common.utils.ResultHelper;
 import com.persagy.dmp.digital.entity.ObjectRelation;
 import com.persagy.dmp.rwd.digital.service.RelationCaclService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -41,7 +42,7 @@ public class RelationCaclController {
      * @date :2021/9/2 20:20
      * Update By lijie 2021/9/2 20:20
      */
-    @PostMapping("/createObjRelationsByKeywordAndObjType")
+    @PostMapping("createObjRelationsByKeywordAndObjType")
     public CommonResult<List<ObjectRelation>> createObjRelationsByKeywordAndObjType(@RequestBody RequestData requestData){
         // 校验必填项
         if (StrUtil.isBlank(requestData.getGraphCode())
@@ -58,6 +59,18 @@ public class RelationCaclController {
         }
         return relationCaclService.createObjRelationsByKeywordAndObjType(requestData);
     }
+    /***
+     * Description: 根据fromId,toId,relType,graphCode删除关系
+     * @param objectRelation : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectRelation>>
+     * @author : lijie
+     * @date :2021/9/2 20:20
+     * Update By lijie 2021/9/2 20:20
+     */
+    @PostMapping("deleteObjRelationsByRelId")
+    public CommonResult<List<ObjectRelation>> deleteObjRelationsByRelId(@Validated @RequestBody ObjectRelation objectRelation){
+        return relationCaclService.deleteObjRelationsByRelId(objectRelation);
+    }
 
 
 

+ 9 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/RelationCaclService.java

@@ -22,4 +22,13 @@ public interface RelationCaclService {
      * Update By lijie 2021/9/2 21:24
      */
     CommonResult<List<ObjectRelation>> createObjRelationsByKeywordAndObjType(RequestData requestData);
+    /***
+     * Description: 根据fromId,toId,relType,graphCode删除关系
+     * @param objectRelation : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectRelation>>
+     * @author : lijie
+     * @date :2021/9/2 20:20
+     * Update By lijie 2021/9/2 20:20
+     */
+    CommonResult<List<ObjectRelation>> deleteObjRelationsByRelId(ObjectRelation objectRelation);
 }

+ 33 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/RelationCaclServiceImpl.java

@@ -162,6 +162,39 @@ public class RelationCaclServiceImpl implements RelationCaclService {
         addRelations.addAll(updateRelations);
         return ResultHelper.multi(addRelations,addRelations.size());
     }
+
+    /***
+     * Description: 根据fromId,toId,relType,graphCode删除关系
+     * @param objectRelation : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectRelation>>
+     * @author : lijie
+     * @date :2021/9/2 20:20
+     * Update By lijie 2021/9/2 20:20
+     */
+    @Override
+    public CommonResult<List<ObjectRelation>> deleteObjRelationsByRelId(ObjectRelation objectRelation) {
+        // 1.先查询关系
+        LambdaQueryWrapper<ObjectRelation> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ObjectRelation::getGraphCode,objectRelation.getGraphCode());
+        queryWrapper.eq(ObjectRelation::getRelCode,objectRelation.getRelCode());
+        queryWrapper.eq(ObjectRelation::getObjFrom,objectRelation.getObjFrom());
+        queryWrapper.eq(ObjectRelation::getObjTo,objectRelation.getObjTo());
+        queryWrapper.eq(ObjectRelation::getValid,true);
+        List<ObjectRelation> objectRelations = objectRelationService.list(queryWrapper);
+        if (CollUtil.isEmpty(objectRelations)){
+            throw new BusinessException(BusinessErrorRwdCode.A7201.getCode(),BusinessErrorRwdCode.A7201.getDesc());
+        }
+        // 2.先更新计算时间
+        // 3.删除关系
+        for (ObjectRelation relation : objectRelations) {
+            relation.setValid(0);
+            relation.setModifier(AppContext.getContext().getAccountId());
+            relation.setUpdateApp(AppContext.getContext().getAppId());
+        }
+        objectRelationService.updateBatchById(objectRelations);
+        return ResultHelper.multi(objectRelations,objectRelations.size());
+    }
+
     /***
      * Description: 根据fromId和toIds查询关系
      * @param fromId : fromId

+ 40 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalRelationCaclClient.java

@@ -0,0 +1,40 @@
+package com.persagy.dmp.digital.client;
+
+import com.persagy.dmp.basic.config.DigitalFeignConfig;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.digital.entity.ObjectRelation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/***
+ * Description: 关系计算入口 Client
+ * @author : lijie
+ * @date :2021/9/3 21:09
+ * Update By lijie 2021/9/3 21:09
+ */
+@FeignClient(name = "dmp-rwd", configuration = DigitalFeignConfig.class,
+        url = "${persagy.bdtp.rwd.service:}",path = "/rwd/instance/object/compatible/")
+public interface DigitalRelationCaclClient {
+
+    /**
+     * 根据项目ID查询设备数量和待报废设备数量统计
+     * @param groupCode: 集团编码
+     * @param projectId: 项目id
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param requestData: 请求参数
+     * @return
+     */
+    @PostMapping("createObjRelationsByKeywordAndObjType")
+    CommonResult<List<ObjectRelation>> createObjRelationsByKeywordAndObjType(@RequestParam("groupCode") String groupCode,
+                                                                             @RequestParam("projectId") String projectId,
+                                                                            @RequestParam("appId") String appId,
+                                                                            @RequestParam("userId") String userId,
+                                                                            @RequestBody RequestData requestData);
+}

+ 42 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalRelationCaclFacade.java

@@ -0,0 +1,42 @@
+package com.persagy.dmp.digital.client;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.digital.entity.ObjectRelation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/***
+ * Description: 关系计算入口 Client 门面
+ * @author : lijie
+ * @date :2021/9/3 21:09
+ * Update By lijie 2021/9/3 21:09
+ */
+public class DigitalRelationCaclFacade {
+
+    private static DigitalRelationCaclClient client = SpringUtil.getBean(DigitalRelationCaclClient.class);
+
+    /**
+     * 根据项目ID查询设备数量和待报废设备数量统计
+     * @param groupCode: 集团编码
+     * @param projectId: 项目id
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param requestData: 请求参数
+     * @return
+     */
+    @PostMapping("createObjRelationsByKeywordAndObjType")
+    public List<ObjectRelation> createObjRelationsByKeywordAndObjType(String groupCode, String projectId,
+                                                                      String appId, String userId,
+                                                                      RequestData requestData){
+        CommonResult<List<ObjectRelation>> relations =
+                client.createObjRelationsByKeywordAndObjType(groupCode, projectId, appId, userId, requestData);
+        return relations.getData();
+    }
+}