Jelajahi Sumber

优化:当当前关系已经处于计算中的话直接返回成功

lijie 3 tahun lalu
induk
melakukan
6eae9c72cf

+ 4 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/RelationCaclController.java

@@ -89,6 +89,10 @@ public class RelationCaclController {
         }
         // 更新计算时间
         try{
+            // 如果已经在计算中则直接返回成功
+            if (relationCaclService.hasComputingState(requestData.getGraphCode(),requestData.getRelCode())){
+                return ResultHelper.multi(new ArrayList<>(),0L);
+            }
             relationCaclService.updateComputeTimeByProjectAndGraphCodeAndRelCode(requestData.getGraphCode(),
                     requestData.getRelCode(), ComputationalStateEnum.COMPUTING.getState());
             CommonResult<List<ObjectRelation>> listCommonResult = relationCaclService.calculatingObjRelation(requestData);

+ 10 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/RelationCalService.java

@@ -50,4 +50,14 @@ public interface RelationCalService {
      * Update By lijie 2021/9/4 23:14
      */
     void updateComputeTimeByProjectAndGraphCodeAndRelCode(String graphCode, String relCode, Integer computationalState);
+    /***
+     * Description: 查询当前计算状态
+     * @param graphCode : 集团编码
+     * @param relCode : 关系编码
+     * @return : java.lang.Boolean
+     * @author : lijie
+     * @date :2021/12/7 12:01
+     * Update By lijie 2021/12/7 12:01
+     */
+    Boolean hasComputingState(String graphCode, String relCode);
 }

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

@@ -306,6 +306,25 @@ public class RelationCalServiceImpl implements RelationCalService {
         }
         relationProjectCalService.update(relationProjectCal,updateWrapper);
     }
+    /***
+     * Description: 查询当前计算状态
+     * @param graphCode : 集团编码
+     * @param relCode : 关系编码
+     * @return : java.lang.Boolean
+     * @author : lijie
+     * @date :2021/12/7 12:01
+     * Update By lijie 2021/12/7 12:01
+     */
+    @Override
+    public Boolean hasComputingState(String graphCode, String relCode) {
+        LambdaQueryWrapper<ObjectRelationProjectCal> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ObjectRelationProjectCal::getProjectId,AppContext.getContext().getProjectId());
+        queryWrapper.eq(ObjectRelationProjectCal::getGroupCode,AppContext.getContext().getGroupCode());
+        queryWrapper.eq(ObjectRelationProjectCal::getGraphCode,graphCode);
+        queryWrapper.eq(ObjectRelationProjectCal::getRelCode,relCode);
+        queryWrapper.eq(ObjectRelationProjectCal::getComputationalState,ComputationalStateEnum.COMPUTING.getState());
+        return CollUtil.isNotEmpty(relationProjectCalService.list(queryWrapper));
+    }
 
     /***
      * Description: 根据fromId和toIds查询关系