root 2 éve
szülő
commit
a9c0dc8c87

+ 35 - 34
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/controller/ScenePackageController.java

@@ -74,7 +74,8 @@ public class ScenePackageController {
         ScenePackageSublistVO scenePackageSublistVO = params.get(0);
         String packageId = scenePackageSublistVO.getId();
         int packageLevel = scenePackageSublistVO.getPackageLevel();
-        sceneUtil.checkRules(packageId);
+        // 检查场景测试包中的评分规则是否被删除
+        sceneUtil.checkRulesByScenePackageSublistVO(scenePackageSublistVO);
         if ("1".equals(packageId)) {
             log.info("新增场景测试包(传 id 为 1)");
             params.get(0).setId("");
@@ -157,38 +158,38 @@ public class ScenePackageController {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, map);
     }
 
-    /**
-     * 1. 新增场景测试包
-     * 2. 修改保存
-     * 3. 私有另存为成私有
-     * 4. 公有另存为成私有
-     */
-    @PostMapping("/saveScenePackageNew")
-    public ResponseBodyVO<String> saveScenePackageNew(@RequestBody Map<String, List<ScenePackageSublistVO>> map) {
-        List<ScenePackageSublistVO> params = map.get("params");
-        ScenePackageSublistVO scenePackageSublistVO = params.get(0);
-        String packageId = scenePackageSublistVO.getId();
-        int packageLevel = scenePackageSublistVO.getPackageLevel();
-        sceneUtil.checkRules(packageId);
-        if ("1".equals(packageId)) {
-            log.info("新增场景测试包(传 id 为 1)");
-            params.get(0).setId("");
-            scenePackageService.saveScenePackage(scenePackageSublistVO, packageLevel);
-        } else if (0 == packageLevel) {
-            log.info("修改保存。");
-            scenePackageService.updateScenePackage(params);
-        } else if (1 == packageLevel) {
-            log.info("私有另存为成私有 或 公有另存为成私有");
-            params.get(0).setId("");
-            scenePackageService.saveScenePackage(scenePackageSublistVO, packageLevel);
-        }
-        // 将场景测试包修改成未禁用
-        ScenePackagePO scenePackagePO = new ScenePackagePO();
-        scenePackagePO.setPackageId(packageId);
-        scenePackagePO.setModifyTime(TimeUtil.getNowForMysql());
-        scenePackagePO.setModifyUserId(AuthUtil.getCurrentUserId());
-        scenePackageMapper.updateIsUnavailable2(scenePackagePO);
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
-    }
+//    /**
+//     * 1. 新增场景测试包
+//     * 2. 修改保存
+//     * 3. 私有另存为成私有
+//     * 4. 公有另存为成私有
+//     */
+//    @PostMapping("/saveScenePackageNew")
+//    public ResponseBodyVO<String> saveScenePackageNew(@RequestBody Map<String, List<ScenePackageSublistVO>> map) {
+//        List<ScenePackageSublistVO> params = map.get("params");
+//        ScenePackageSublistVO scenePackageSublistVO = params.get(0);
+//        String packageId = scenePackageSublistVO.getId();
+//        int packageLevel = scenePackageSublistVO.getPackageLevel();
+//        sceneUtil.checkRules(packageId);
+//        if ("1".equals(packageId)) {
+//            log.info("新增场景测试包(传 id 为 1)");
+//            params.get(0).setId("");
+//            scenePackageService.saveScenePackage(scenePackageSublistVO, packageLevel);
+//        } else if (0 == packageLevel) {
+//            log.info("修改保存。");
+//            scenePackageService.updateScenePackage(params);
+//        } else if (1 == packageLevel) {
+//            log.info("私有另存为成私有 或 公有另存为成私有");
+//            params.get(0).setId("");
+//            scenePackageService.saveScenePackage(scenePackageSublistVO, packageLevel);
+//        }
+//        // 将场景测试包修改成未禁用
+//        ScenePackagePO scenePackagePO = new ScenePackagePO();
+//        scenePackagePO.setPackageId(packageId);
+//        scenePackagePO.setModifyTime(TimeUtil.getNowForMysql());
+//        scenePackagePO.setModifyUserId(AuthUtil.getCurrentUserId());
+//        scenePackageMapper.updateIsUnavailable2(scenePackagePO);
+//        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+//    }
 
 }

+ 3 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScoringRulesMapper.java

@@ -47,4 +47,7 @@ public interface ScoringRulesMapper {
             "    </foreach>" +
             "</script>")
     List<String> selectRuleNamesByRuleIds(@Param("ruleIds") List<String> ruleIds);
+
+    @Select("select is_deleted from scoring_rules where rules_id = #{rulesId}}")
+    String selectIsDeletedByRuleId(@Param("ruleId")String ruleId);
 }

+ 3 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java

@@ -10,6 +10,7 @@ import api.common.util.*;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.scene.mapper.*;
 import com.css.simulation.resource.system.service.ParameterService;
+import com.css.simulation.resource.util.SceneUtil;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.tomcat.util.buf.StringUtils;
@@ -39,6 +40,8 @@ public class ScenePackageService {
     private StandardsRegulationsMapper standardsRegulationsMapper;
     @Resource
     private SceneGeneralTemplateMapper sceneGeneralTemplateMapper;
+    @Resource
+    private SceneUtil sceneUtil;
 
 
     /**
@@ -70,7 +73,6 @@ public class ScenePackageService {
             List<ScenePackageSublistPO> treeList;
             if (isLcw == 1) {
                 treeList = instShareListTreeLCW(listSublistTree, uuId, uuId, poList, "0", 1);
-
             } else {
                 treeList = instShareListTree(listSublistTree, uuId, uuId, poList, "0", 1);
             }
@@ -251,7 +253,6 @@ public class ScenePackageService {
      * @param parentVoList   首次传null
      * @param isRoot         首次传true
      * @param scenePackageId 场景包id
-     * @return
      */
     public List<ScenePackageSublistVO> selectScenePackageSubListTree(List<ScenePackageSublistVO> parentVoList,
                                                                      boolean isRoot, String scenePackageId) {

+ 1 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SystemScenePackageService.java

@@ -574,7 +574,7 @@ public class SystemScenePackageService {
         //场景包名称不允许重复
         String packageId = systemScenePackageMapper.queryScenePackageByPackageName(params);
         if (ObjectUtil.isNotNull(packageId)) {
-            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该场景包名称已存在,请检查");
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "该场景包名称已存在,请检查");
         }
         po.setPackageName(params.getPackageName());
         po.setSceneDescribe(params.getSceneDescribe());

+ 19 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/util/SceneUtil.java

@@ -1,5 +1,7 @@
 package com.css.simulation.resource.util;
 
+import api.common.pojo.constants.DictConstants;
+import api.common.pojo.vo.scene.ScenePackageSublistVO;
 import api.common.util.CollectionUtil;
 import api.common.util.HttpUtil;
 import api.common.util.LinuxUtil;
@@ -33,6 +35,23 @@ public class SceneUtil {
         }
     }
 
+    public void checkRulesByScenePackageSublistVO(ScenePackageSublistVO scenePackageSublistVO) {
+        final List<ScenePackageSublistVO> children = scenePackageSublistVO.getChildren();
+        if (CollectionUtil.isNotEmpty(children)) {
+            for (ScenePackageSublistVO child : children) {
+                checkRulesByScenePackageSublistVO(child);
+            }
+        } else {
+            final String[] ruleIdArray = scenePackageSublistVO.getRuleNameArrayS();
+            final String ruleId = ruleIdArray[ruleIdArray.length - 1];
+            final String isDeleted = scoringRulesMapper.selectIsDeletedByRuleId(ruleId);
+            if (DictConstants.IS_DELETED.equals(isDeleted)) {
+                throw new RuntimeException("指标 " + scenePackageSublistVO.getSublistName() + " 关联的评分规则 "
+                        + scenePackageSublistVO.getRuleName()+" 已被删除。");
+            }
+        }
+    }
+
     @Synchronized
     @SneakyThrows
     public String callGeneralService(RequestConfig requestConfig, String generalUrl, Map map) {