root %!s(int64=2) %!d(string=hai) anos
pai
achega
d643fb0ba8

+ 1 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScenePackageController.java

@@ -74,7 +74,7 @@ public class ScenePackageController {
         ScenePackageSublistVO scenePackageSublistVO = params.get(0);
         String packageId = scenePackageSublistVO.getId();
         int packageLevel = scenePackageSublistVO.getPackageLevel();
-        scenePackageUtil.checkScenePackage(packageId);
+        scenePackageUtil.checkRules(packageId);
         if ("1".equals(packageId)) {
             log.info("新增场景测试包(传 id 为 1)");
             params.get(0).setId("");

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

@@ -37,4 +37,14 @@ public interface ScoringRulesMapper {
             "                      from scene_package_sublist sps\n" +
             "                      where sps.is_deleted = '0' and sps.root_id = #{packageId})")
     List<String> selectDeletedRulesByPackageId(@Param("packageId") String scenePackageId);
+
+    @Select("<script>" +
+            "select rule_name\n" +
+            "from scoring_rules\n" +
+            "where rules_id in \n" +
+            "    <foreach item='item' collection='ruleIds' separator=',' open='(' close=')'>\n" +
+            "      #{item}\n" +
+            "    </foreach>" +
+            "</script>")
+    List<String> selectRuleNamesByRuleIds(@Param("ruleIds") List<String> ruleIds);
 }

+ 4 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/util/ProjectUtil.java

@@ -43,6 +43,8 @@ public class ProjectUtil {
     private ModelVehicleMapper modelVehicleMapper;
     @Resource
     private ScenePackageSublistMapper scenePackageSublistMapper;
+    @Resource
+    private ScenePackageUtil scenePackageUtil;
 
 
     public String getProjectTypeByProjectId(String projectId) {
@@ -101,11 +103,8 @@ public class ProjectUtil {
         if (DictConstants.SCENE_PACKAGE_UNAVAILABLE.equals(isUnavailable)) {
             throw new RuntimeException("场景测试包已被禁用,编辑场景测试包后可重新运行。");
         }
-//        //5 查询评分规则是否被删除
-//        final List<String> rules = scoringRulesMapper.selectDeletedRulesByPackageId(scenePackageId);
-//        if (CollectionUtil.isNotEmpty(rules)) {
-//            throw new RuntimeException("评分规则已被删除:" + rules);
-//        }
+        //5 查询评分规则是否被删除
+        scenePackageUtil.checkRules(scenePackageId);
         //6 查询场景测试包是否有场景
         final int sceneNum = scenePackageSublistMapper.selectSceneNumByPackageId(scenePackageId);
         if (sceneNum == 0) {

+ 5 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/util/ScenePackageUtil.java

@@ -18,11 +18,11 @@ public class ScenePackageUtil {
     @Resource
     private ScoringRulesMapper scoringRulesMapper;
 
-    public void checkScenePackage(String packageId){
-        //5 查询评分规则是否被删除
-        final List<String> rules = scoringRulesMapper.selectDeletedRulesByPackageId(packageId);
-        if (CollectionUtil.isNotEmpty(rules)) {
-            throw new RuntimeException("评分规则已被删除:" + rules);
+    public void checkRules(String scenePackageId){
+        final List<String> ruleIds = scoringRulesMapper.selectDeletedRulesByPackageId(scenePackageId);
+        if (CollectionUtil.isNotEmpty(ruleIds)) {
+            final List<String> ruleNames = scoringRulesMapper.selectRuleNamesByRuleIds(ruleIds);
+            throw new RuntimeException("场景测试包存在已被删除的评分规则:" + ruleNames);
         }
     }
 }