LingxinMeng 2 år sedan
förälder
incheckning
a2c7983fd9

+ 14 - 50
api-common/src/main/java/api/common/pojo/vo/project/ProjectReportVO.java

@@ -1,7 +1,6 @@
 package api.common.pojo.vo.project;
 
-import lombok.Getter;
-import lombok.Setter;
+import lombok.Data;
 
 import java.util.List;
 import java.util.Map;
@@ -9,61 +8,26 @@ import java.util.Map;
 /**
  * 工作报告
  */
-@Getter
-@Setter
+@Data
 public class ProjectReportVO {
-
-    //项目名称
-    private String projectName;
-
-    //项目id
-    private String projectId;
-
-    //算法名称
-    private String algorithmName;
-
-    //算法得分
-    private Double algorithmScore;
-
-    //算法描述
-    private String algorithmDescribe;
-
-    //评测等级
-    private String evaluationLevel;
-
-    //得分率
-    private Double scoreRatio;
-
-    //场景名称(二级,多个指标用顿号隔开)
-//    private String sceneNames;
-
-    //算法简评
-    private String algorithmEvaluation;
-
-    //算法测试得分
-    private List<AlgorithmScoreVO> algorithmScoreList;
-
+    private String projectName; //项目名称
+    private String projectId; //项目id
+    private String algorithmName; //算法名称
+    private Double algorithmScore; //算法得分
+    private String algorithmDescribe;  //算法描述
+    private String evaluationLevel; //评测等级
+    private Double scoreRatio; //得分率
+    private String algorithmEvaluation; //算法简评
+    private List<AlgorithmScoreVO> algorithmScoreList; //算法测试得分
     private String evaluationGrade;
-
-    //算法测试评分细则、详细得分情况
-    private List<ScenePackageSubListVO> sceneScoreList;
-
+    private List<ScenePackageSubListVO> sceneScoreList; //算法测试评分细则、详细得分情况
     private List<Map> subListScoreLiTitle;
-
     private List<SubScListVo> subListScoreLi;
-
     private List<Map> sceneScoreLiTitle;
-
     private List<SceneScListVo> sceneScoreLi;
-
-    //场景包名
-    private String packageName;
+    private String packageName; //场景包名
     private Integer maxIndex;
-
-    //测试时间(开始时间)
-    private String startTime;
-
-
+    private String startTime; //测试时间(开始时间)
 }
 
 

+ 20 - 29
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java

@@ -306,37 +306,30 @@ public class ProjectConsumer {
         String projectId = projectMessageDTO.getProjectId();    // 手动执行项目 id 或 自动执行子项目 id
         long parallelism = projectMessageDTO.getParallelism();   // 项目并行度
         String projectType = projectMessageDTO.getType(); // 项目类型
-        //2 根据 projectId 获取创建用户 id
-        String userId;
-        if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
-            userId = manualProjectMapper.selectCreateUserById(projectId);
-        } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
-            userId = autoSubProjectMapper.selectCreateUserById(projectId);
-        } else {
-            throw new RuntimeException("未知项目类型:" + projectType);
-        }
-        //3 获取用户类型(管理员账户、管理员子账户、普通账户、普通子账户)(独占、共享)
-        UserEntity userEntity = userMapper.selectById(userId);
-        log.info("项目 " + projectId + " 的创建人为:" + userEntity);
+        //2 获取用户信息(管理员账户、管理员子账户、普通账户、普通子账户)(独占、共享)
+        final UserEntity userEntity = projectUtil.getUserEntityByProjectIdAndProjectType(projectId, projectType);
+        String projectUserId = userEntity.getId();
+        log.debug("项目 " + projectId + " 的创建人为:" + userEntity);
         String roleCode = userEntity.getRoleCode();
         String useType = userEntity.getUseType();
         ClusterEntity clusterEntity;
+        String clusterUserId = projectUserId;  // 项目实际运行使用的用户集群
         if (DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode) || DictConstants.ROLE_CODE_ADMIN.equals(roleCode)) {  //3-1 管理员账户和管理员子账户直接执行
-            log.info("项目 " + projectId + " 的创建人 " + userId + " 为管理员账户或管理员子账户,直接判断服务器能否执行。");
+            log.info("项目 " + projectId + " 的创建人 " + projectUserId + " 为管理员账户或管理员子账户,直接判断服务器能否执行。");
             PrefixEntity redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(DictConstants.SYSTEM_CLUSTER_ID, projectId);
             run(projectMessageDTO, DictConstants.SYSTEM_CLUSTER_ID, modelType, DictConstants.SYSTEM_USER_ID, redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
             return;
         } else if (DictConstants.ROLE_CODE_UESR.equals(roleCode)) { //3-2 普通账户,不管是独占还是共享,都在自己的集群里排队,根据自己的独占节点排队
-            clusterEntity = clusterMapper.selectByUserId(userId);
-            log.info("项目 " + projectId + " 的创建人 " + userId + " 为普通账户(包括独占或共享都在自己的集群),集群为:" + clusterEntity);
+            clusterEntity = clusterMapper.selectByUserId(clusterUserId);
+            log.info("项目 " + projectId + " 的创建人 " + projectUserId + " 为普通账户(包括独占或共享都在自己的集群),集群为:" + clusterEntity);
         } else if (DictConstants.ROLE_CODE_SUBUESR.equals(roleCode)) {
             if (DictConstants.USER_TYPE_EXCLUSIVE.equals(useType)) {   //3-3 普通子账户,根据自己的独占节点排队
-                clusterEntity = clusterMapper.selectByUserId(userId);
-                log.info("项目 " + projectId + " 的创建人 " + userId + " 为普通独占子账户(自己的集群),集群为:" + clusterEntity);
+                clusterEntity = clusterMapper.selectByUserId(clusterUserId);
+                log.info("项目 " + projectId + " 的创建人 " + projectUserId + " 为普通独占子账户(自己的集群),集群为:" + clusterEntity);
             } else {    //3-4 共享子账户,根据父账户的共享节点排队
-                String parentUserId = userEntity.getCreateUserId();
-                clusterEntity = clusterMapper.selectByUserId(parentUserId);
-                log.info("项目 " + projectId + " 的创建人 " + userId + " 为普通共享子账户(父账户的集群),集群为:" + clusterEntity);
+                clusterUserId = userEntity.getCreateUserId();
+                clusterEntity = clusterMapper.selectByUserId(clusterUserId);
+                log.info("项目 " + projectId + " 的创建人 " + projectUserId + " 为普通共享子账户(父账户的集群),集群为:" + clusterEntity);
             }
         } else {
             throw new RuntimeException("未知角色类型:" + roleCode);
@@ -347,9 +340,8 @@ public class ProjectConsumer {
 //            // 获取正在运行的项目的并行度总和
 //            int currentParallelismSum = projectUtil.getCurrentParallelismSum(redisPrefix.getClusterRunningPrefix());
             // 如果执行后的并行度总和小于最大节点数则执行,否则不执行
-            final Integer usingLicenseNumber = projectUtil.getUsingLicenseNumber(userId, DictConstants.MODEL_TYPE_VTD);
-            if (projectUtil.getUsingLicenseNumber(userId, DictConstants.MODEL_TYPE_VTD) + parallelism <= clusterEntity.getNumSimulationLicense()) {
-                run(projectMessageDTO, userId, modelType, clusterEntity.getId(), redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
+            if (projectUtil.getUsingLicenseNumber(clusterUserId, DictConstants.MODEL_TYPE_VTD) + parallelism <= clusterEntity.getNumSimulationLicense()) {
+                run(projectMessageDTO, projectUserId, modelType, clusterEntity.getId(), redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
             } else {
                 log.info("VTD 项目 " + projectId + " 并行度超出账户允许,加入等待队列,暂不执行。 ");
                 wait(redisPrefix.getProjectWaitingKey(), projectMessageDTO);
@@ -359,8 +351,8 @@ public class ProjectConsumer {
 //                // 获取正在运行的项目的并行度总和
 //                int currentParallelismSum = projectUtil.getCurrentParallelismSum(redisPrefix.getClusterRunningPrefix());
             // 如果执行后的并行度总和小于最大节点数则执行,否则不执行
-            if (projectUtil.getUsingLicenseNumber(userId, DictConstants.MODEL_TYPE_VTD) + parallelism <= clusterEntity.getNumSimulationLicense() && projectUtil.getUsingLicenseNumber(userId, DictConstants.MODEL_TYPE_CARSIM) + parallelism <= clusterEntity.getNumDynamicLicense()) {
-                run(projectMessageDTO, userId, modelType, clusterEntity.getId(), redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
+            if (projectUtil.getUsingLicenseNumber(clusterUserId, DictConstants.MODEL_TYPE_VTD) + parallelism <= clusterEntity.getNumSimulationLicense() && projectUtil.getUsingLicenseNumber(clusterUserId, DictConstants.MODEL_TYPE_CARSIM) + parallelism <= clusterEntity.getNumDynamicLicense()) {
+                run(projectMessageDTO,clusterUserId, modelType, clusterEntity.getId(), redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
             } else {
                 log.info("CARSIM 项目 " + projectId + " 并行度超出账户允许,加入等待队列,暂不执行。 ");
                 wait(redisPrefix.getProjectWaitingKey(), projectMessageDTO);
@@ -374,12 +366,11 @@ public class ProjectConsumer {
 
     /**
      * @param projectMessageDTO 初始接收到的项目启动信息
-     * @param userId            用户ID
      * @param clusterId         集群ID
      * @param projectRunningKey projectRunningKey
      * @param projectWaitingKey projectWaitingKey
      */
-    public void run(ProjectMessageDTO projectMessageDTO, String userId, String modelType, String clusterId, String projectRunningKey, String projectWaitingKey) {
+    public void run(ProjectMessageDTO projectMessageDTO, String clusterUserId, String modelType, String clusterId, String projectRunningKey, String projectWaitingKey) {
         String projectId = projectMessageDTO.getProjectId();    // 项目 id
         String isChoiceGpu = projectUtil.getIsChoiceGpuByProjectId(projectId);
         int parallelism = projectMessageDTO.getParallelism();  // 期望并行度
@@ -388,8 +379,8 @@ public class ProjectConsumer {
         //2 判断剩余可用并行度是否大于项目并行度,否则加入扩充队列
         if (restParallelism > 0L) {
             log.info("集群 " + clusterId + " 执行项目 " + projectId);
-            if (!DictConstants.SYSTEM_USER_ID.equals(userId)) {
-                projectUtil.useLicense(userId, modelType, parallelism);
+            if (!DictConstants.SYSTEM_USER_ID.equals(clusterUserId)) {
+                projectUtil.useLicense(clusterUserId, modelType, parallelism);
             }
             // 设置实际的并行度
             projectMessageDTO.setCurrentParallelism(Math.min(restParallelism, parallelism));   // 设置实际的并行度

+ 18 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/UserMapper.java

@@ -21,6 +21,23 @@ public interface UserMapper {
             "       create_user_id\n" +
             "from system_user\n" +
             "where id = #{userId}")
-    UserEntity selectById(@Param("userId")String userId);
+    UserEntity selectById(@Param("userId") String userId);
 
+    @ResultMap("user")
+    @Select("select su.id,\n" +
+            "       su.role_code,\n" +
+            "       su.use_type,\n" +
+            "       su.create_user_id\n" +
+            "from system_user su\n" +
+            "where su.id = (select smp.create_user_id from simulation_manual_project smp where smp.id = #{projectId})\n")
+    UserEntity selectByManualProjectId(@Param("projectId") String projectId);
+
+    @ResultMap("user")
+    @Select("select su.id,\n" +
+            "       su.role_code,\n" +
+            "       su.use_type,\n" +
+            "       su.create_user_id\n" +
+            "from system_user su\n" +
+            "where su.id = (select sas.create_user_id from simulation_automatic_subproject sas where sas.id = #{projectId})\n")
+    UserEntity selectByAutoSubProjectId(String projectId);
 }

+ 45 - 10
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java

@@ -579,26 +579,26 @@ public class ProjectUtil {
             String key = "gpu-node:" + nodeName + ":parallelism";
             final int currentRestParallelism = Integer.parseInt(customRedisClient.get(key));
             final List<NodeModel> nodeList = kubernetesConfiguration.getGpuNodeList();
-            nodeList.forEach(node -> {
+            for (NodeModel node : nodeList) {
                 if (nodeName.equals(node.getHostname())) {
                     if (currentRestParallelism + 1 < node.getParallelism()) {
                         customRedisClient.increment(key, number);
                     }
                 }
-            });
+            }
             log.info("归还 GPU 节点 {} 的 {} 个并行度。", nodeName, number);
         } else if (DictConstants.USE_CPU.equals(isChoiceGpu)) {
             //1 先检查缓存中的并行度是否超过,超过了就不加缓存的并行度了,常用于测试
             String key = "cpu-node:" + nodeName + ":parallelism";
             final int currentRestParallelism = Integer.parseInt(customRedisClient.get(key));
             final List<NodeModel> nodeList = kubernetesConfiguration.getCpuNodeList();
-            nodeList.forEach(node -> {
+            for (NodeModel node : nodeList) {
                 if (nodeName.equals(node.getHostname())) {
                     if (currentRestParallelism + 1 < node.getParallelism()) {
                         customRedisClient.increment(key, number);
                     }
                 }
-            });
+            }
             log.info("归还 CPU 节点 {} 的 {} 个并行度。", nodeName, number);
         }
 
@@ -694,9 +694,11 @@ public class ProjectUtil {
         }
     }
 
-    public void releaseLicense(String userId, String modelType, int parallelism) {
+
+    public void releaseLicense(String projectUserId, String modelType, int parallelism) {
+        final String clusterUserId = getClusterUserIdByProjectUserId(projectUserId);
         if (DictConstants.MODEL_TYPE_VTD.equals(modelType)) {
-            String key = "user:" + userId + ":using-license:vtd";
+            String key = "user:" + clusterUserId + ":using-license:vtd";
             final String usingLicense = customRedisClient.get(key);
             if (StringUtil.isEmpty(usingLicense)) {
                 customRedisClient.set(key, "0");
@@ -704,14 +706,14 @@ public class ProjectUtil {
                 customRedisClient.decrement(key, parallelism);
             }
         } else if (DictConstants.MODEL_TYPE_CARSIM.equals(modelType)) {
-            String key1 = "user:" + userId + ":using-license:vtd";
+            String key1 = "user:" + clusterUserId + ":using-license:vtd";
             final String usingLicense1 = customRedisClient.get(key1);
             if (StringUtil.isEmpty(usingLicense1)) {
                 customRedisClient.set(key1, "0");
             } else {
                 customRedisClient.decrement(key1, parallelism);
             }
-            String key2 = "user:" + userId + ":using-license:carsim";
+            String key2 = "user:" + clusterUserId + ":using-license:carsim";
             final String usingLicense2 = customRedisClient.get(key2);
             if (StringUtil.isEmpty(usingLicense2)) {
                 customRedisClient.set(key2, "0");
@@ -721,8 +723,27 @@ public class ProjectUtil {
         } else {
             throw new RuntimeException("未知模型类型:" + modelType);
         }
+    }
 
-
+    public String getClusterUserIdByProjectUserId(String projectUserId) {
+        String clusterUserId;
+        final UserEntity userEntity = userMapper.selectById(projectUserId);
+        final String roleCode = userEntity.getRoleCode();
+        final String useType = userEntity.getUseType();
+        if (DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode) || DictConstants.ROLE_CODE_ADMIN.equals(roleCode)) {  //3-1 管理员账户和管理员子账户直接执行
+            clusterUserId = projectUserId;
+        } else if (DictConstants.ROLE_CODE_UESR.equals(roleCode)) { //3-2 普通账户,不管是独占还是共享,都在自己的集群里排队,根据自己的独占节点排队
+            clusterUserId = projectUserId;
+        } else if (DictConstants.ROLE_CODE_SUBUESR.equals(roleCode)) {
+            if (DictConstants.USER_TYPE_EXCLUSIVE.equals(useType)) {   //3-3 普通子账户,根据自己的独占节点排队
+                clusterUserId = projectUserId;
+            } else {    //3-4 共享子账户,根据父账户的共享节点排队
+                clusterUserId = userEntity.getCreateUserId();
+            }
+        } else {
+            throw new RuntimeException("未知角色类型:" + roleCode);
+        }
+        return clusterUserId;
     }
 
 
@@ -746,6 +767,20 @@ public class ProjectUtil {
         }
     }
 
+
+    public UserEntity getUserEntityByProjectIdAndProjectType(String projectId, String projectType) {
+        UserEntity userEntity;
+        if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
+            userEntity = userMapper.selectByManualProjectId(projectId);
+        } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
+            userEntity = userMapper.selectByAutoSubProjectId(projectId);
+        } else {
+            throw new RuntimeException("未知项目类型:" + projectType);
+        }
+        return userEntity;
+    }
+
+
     @Async("pool1")
     @SneakyThrows
     public void selectProjectDetailsById(String projectType, String projectId) {
@@ -790,7 +825,7 @@ public class ProjectUtil {
         Map<String, String> params = new HashMap<>();
         params.put("projectType", projectType);
         params.put("id", projectId);
-        String result = HttpUtil.post(closeableHttpClient, requestConfig, customConfiguration.getProjectDetailsUri(), headers, params);
+        String result = HttpUtil.post(closeableHttpClient, requestConfig, customConfiguration.getProjectReportUri(), headers, params);
         log.info("访问仿真云平台项目报告接口:" + customConfiguration.getProjectReportUri() + ",请求头为:" + headers + ",请求体为:" + params + "结果为:" + result);
         ResponseBodyVO responseBodyVO = JsonUtil.jsonToBean(result, ResponseBodyVO.class);
         String projectReportVOJson = JsonUtil.beanToJson(responseBodyVO.getInfo());

+ 0 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/project/mapper/SimulationAutomaticSubProjectMapper.java

@@ -26,13 +26,10 @@ public interface SimulationAutomaticSubProjectMapper {
 
      List<SimulationManualProjectVO> selectList(SimulationManualProjectParam param);
 
-
-
      SimulationManualProjectVO selectProjectInfo(SimulationManualProjectParam param);
 
      int updateNowRunState(SimulationManualProjectParam param);
 
-
      @Select("select report from simulation_automatic_subproject where id = #{id}")
      String selectReportById(@Param("id") String id);
 }

+ 42 - 40
simulation-resource-server/src/main/java/com/css/simulation/resource/project/service/impl/SimulationProjectServiceImpl.java

@@ -389,15 +389,19 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     @Override
     @SneakyThrows
     public ResponseBodyVO<ProjectDetailsVO> selectProjectDetailsById(SimulationManualProjectParam param) {
-
-        ProjectDetailsVO projectDetailsVO = null;
-        if (DictConstants.PROJECT_TYPE_MANUAL.equals(param.getProjectType())) { // 手动运行任务
+        ProjectDetailsVO projectDetailsVO;
+        final String projectType = param.getProjectType();
+        String details;
+        if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) { // 手动运行任务
             SimulationManualProjectPO simulationManualProjectPO = simulationProjectMapper.selectProjectById(param);
-            projectDetailsVO = JsonUtil.jsonToBean(simulationManualProjectPO.getDetails(), ProjectDetailsVO.class);
-        } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(param.getProjectType())) {
+            details = simulationManualProjectPO.getDetails();
+        } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
             SimulationManualProjectVO simulationManualProjectVO = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
-            projectDetailsVO = JsonUtil.jsonToBean(simulationManualProjectVO.getDetails(), ProjectDetailsVO.class);
+            details = simulationManualProjectVO.getDetails();
+        } else {
+            throw new RuntimeException("未知项目类型:" + projectType);
         }
+        projectDetailsVO = JsonUtil.jsonToBean(details, ProjectDetailsVO.class);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVO);
     }
 
@@ -838,16 +842,16 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
         // 算法配置
         AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(poParam);
-        ProjectReportVO projectReportVo = new ProjectReportVO();
-        projectReportVo.setProjectId(poParam.getProjectId());
-        projectReportVo.setProjectName(poParam.getProjectName());
-        projectReportVo.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
-        projectReportVo.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
+        ProjectReportVO projectReportVO = new ProjectReportVO();
+        projectReportVO.setProjectId(poParam.getProjectId());
+        projectReportVO.setProjectName(poParam.getProjectName());
+        projectReportVO.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
+        projectReportVO.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
 
         // 添加开始时间
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         if (poParam.getStartTime() != null) {
-            projectReportVo.setStartTime(dateFormat.format(poParam.getStartTime()));
+            projectReportVO.setStartTime(dateFormat.format(poParam.getStartTime()));
         }
 
         String sceneNames;
@@ -916,37 +920,37 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         // algorithmScoreVo.setScoreRatio(saveTwoDecimalPlaces(totalScoreRatio));
         algorithmScoreVo.setScoreRatio(NumberUtil.cut(totalScoreRatio, 2));
         algorithmScoreVOList.add(algorithmScoreVo);
-        projectReportVo.setScoreRatio(saveTwoDecimalPlaces(totalScoreRatio));
-        projectReportVo.setAlgorithmScore(saveTwoDecimalPlaces(totalScore));
+        projectReportVO.setScoreRatio(saveTwoDecimalPlaces(totalScoreRatio));
+        projectReportVO.setAlgorithmScore(saveTwoDecimalPlaces(totalScore));
         evaluationLevelReport = poParam.getEvaluationLevel();
         if (DictConstants.EVALUATION_LEVEL_G.equals(evaluationLevelReport)) {
-            projectReportVo.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
-            projectReportVo.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
+            projectReportVO.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
+            projectReportVO.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
         } else if (DictConstants.EVALUATION_LEVEL_A.equals(evaluationLevelReport)) {
-            projectReportVo.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_A_DESCRIPTION);
-            projectReportVo.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_A_DESCRIPTION);
+            projectReportVO.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_A_DESCRIPTION);
+            projectReportVO.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_A_DESCRIPTION);
         } else if (DictConstants.EVALUATION_LEVEL_M.equals(evaluationLevelReport)) {
-            projectReportVo.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_M_DESCRIPTION);
-            projectReportVo.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_M_DESCRIPTION);
+            projectReportVO.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_M_DESCRIPTION);
+            projectReportVO.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_M_DESCRIPTION);
         } else if (DictConstants.EVALUATION_LEVEL_P.equals(evaluationLevelReport)) {
-            projectReportVo.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_P_DESCRIPTION);
-            projectReportVo.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_P_DESCRIPTION);
+            projectReportVO.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_P_DESCRIPTION);
+            projectReportVO.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_P_DESCRIPTION);
         }
 
         sceneNames = stringBuilder.substring(0, stringBuilder.lastIndexOf("、"));
-        projectReportVo.setAlgorithmEvaluation(algorithmBaseInfoVo.getAlgorithmName() + "经测试获得" + projectReportVo.getEvaluationLevel() + "级评价," + "(" + sceneNames + ")得分率达到了" + projectReportVo.getScoreRatio() + "%。");
-        projectReportVo.setAlgorithmScoreList(algorithmScoreVOList);
+        projectReportVO.setAlgorithmEvaluation(algorithmBaseInfoVo.getAlgorithmName() + "经测试获得" + projectReportVO.getEvaluationLevel() + "级评价," + "(" + sceneNames + ")得分率达到了" + projectReportVO.getScoreRatio() + "%。");
+        projectReportVO.setAlgorithmScoreList(algorithmScoreVOList);
         // 指标得分列表
         Map<String, Object> stringObjectMap = selectScenePackageSubListAndSetScore(poParam.getScene(), poParam.getId());
-        projectReportVo.setSubListScoreLiTitle((List<Map>) stringObjectMap.get("headerList"));
-        projectReportVo.setSubListScoreLi((List<SubScListVo>) stringObjectMap.get("result"));
+        projectReportVO.setSubListScoreLiTitle((List<Map>) stringObjectMap.get("headerList"));
+        projectReportVO.setSubListScoreLi((List<SubScListVo>) stringObjectMap.get("result"));
 
         // 场景得分列表
-        Map<String, Object> maps = selectSceneScore2(poParam.getScene(), poParam.getId(), null, projectReportVo);
-        projectReportVo.setSceneScoreLiTitle((List<Map>) maps.get("headerList"));
-        projectReportVo.setSceneScoreLi((List<SceneScListVo>) maps.get("result"));
+        Map<String, Object> maps = selectSceneScore2(poParam.getScene(), poParam.getId(), null, projectReportVO);
+        projectReportVO.setSceneScoreLiTitle((List<Map>) maps.get("headerList"));
+        projectReportVO.setSceneScoreLi((List<SceneScListVo>) maps.get("result"));
 
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectReportVo);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectReportVO);
     }
 
 
@@ -2002,7 +2006,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         return hashMap;
     }
 
-    private Map<String, Object> selectSceneScore2(String scenePackageId, String projectId, String taskId, ProjectReportVO projectReportVo) {
+    private Map<String, Object> selectSceneScore2(String scenePackageId, String projectId, String taskId, ProjectReportVO projectReportVO) {
 
         // 1 查询指定项目的所有指标得分结果
         SimulationManualProjectParam query = new SimulationManualProjectParam();
@@ -2102,37 +2106,37 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
                 if (0 == i) {
                     String s0 = list.get(i);
                     if (StringUtil.isNotEmpty(s0)) {
-                        sceneScListVo.setEachMaxIndex((i + 1) + "");
+                        sceneScListVo.setEachMaxIndex(String.valueOf(i + 1));
                     }
                     sceneScListVo.setSublistName1(s0);
                 } else if (1 == i) {
                     String s1 = list.get(i);
                     if (StringUtil.isNotEmpty(s1)) {
-                        sceneScListVo.setEachMaxIndex((i + 1) + "");
+                        sceneScListVo.setEachMaxIndex(String.valueOf(i + 1));
                     }
                     sceneScListVo.setSublistName2(list.get(i));
                 } else if (2 == i) {
                     String s2 = list.get(i);
                     if (StringUtil.isNotEmpty(s2)) {
-                        sceneScListVo.setEachMaxIndex((i + 1) + "");
+                        sceneScListVo.setEachMaxIndex(String.valueOf(i + 1));
                     }
                     sceneScListVo.setSublistName3(list.get(i));
                 } else if (3 == i) {
                     String s3 = list.get(i);
                     if (StringUtil.isNotEmpty(s3)) {
-                        sceneScListVo.setEachMaxIndex((i + 1) + "");
+                        sceneScListVo.setEachMaxIndex(String.valueOf(i + 1));
                     }
                     sceneScListVo.setSublistName4(list.get(i));
                 } else if (4 == i) {
                     String s4 = list.get(i);
                     if (StringUtil.isNotEmpty(s4)) {
-                        sceneScListVo.setEachMaxIndex((i + 1) + "");
+                        sceneScListVo.setEachMaxIndex(String.valueOf(i + 1));
                     }
                     sceneScListVo.setSublistName5(list.get(i));
                 } else if (5 == i) {
                     String s5 = list.get(i);
                     if (StringUtil.isNotEmpty(s5)) {
-                        sceneScListVo.setEachMaxIndex((i + 1) + "");
+                        sceneScListVo.setEachMaxIndex(String.valueOf(i + 1));
                     }
                     sceneScListVo.setSublistName6(list.get(i));
                 }
@@ -2148,7 +2152,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         }
         List<Map<Object, Object>> headerList = new ArrayList<>();
         int maxIndex = size - 5;
-        projectReportVo.setMaxIndex(maxIndex);
+        projectReportVO.setMaxIndex(maxIndex);
         for (int i = 0; i < maxIndex; i++) {
             addHeaders(i, headerList);
         }
@@ -5013,7 +5017,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     /**
      * 添加数据
      *
-     * @param pdfPTable
      * @param font
      * @param dataList
      */
@@ -5027,7 +5030,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     /**
      * 添加数据
      *
-     * @param pdfPTable
      * @param font
      * @param dataList
      */

+ 7 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/controller/score/ScoringRulesController.java

@@ -130,7 +130,13 @@ public class ScoringRulesController {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
-    //删除
+
+    /**
+     * 删除打分规则
+     *
+     * @param params 参数
+     * @return 结果
+     */
     @PostMapping("/deleteScoringRules")
     public ResponseBodyVO<String> deleteScoringRules(@RequestBody ScoringRulesPO params) {
         scoringRulesService.deleteScoringRules(params);

+ 0 - 31
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageMapper.java

@@ -7,7 +7,6 @@ import api.common.pojo.vo.scene.ScenePackageNewVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -27,41 +26,11 @@ public interface ScenePackageMapper {
     Integer queryPackageCount(ScenePackagePO params);
     void updateIsUnavailable(ScenePackagePO params);
     void updateIsUnavailable2(ScenePackagePO params);
-    @Update("update scene_package\n" +
-            "set is_unavailable = #{isUnavailable}\n" +
-            "where package_id in (select root_id from scene_package_sublist where scene_natural_ids like concat('%', #{sceneId}, '%'))")
-    void updateIsUnavailableByNaturalId(@Param("isUnavailable") String isUnavailable, @Param("sceneId") String sceneId);
-    @Update("update scene_package\n" +
-            "set is_unavailable = #{isUnavailable}\n" +
-            "where package_id in (select root_id from scene_package_sublist where scene_statue_ids like concat('%', #{sceneId}, '%'))")
-    void updateIsUnavailableByStandardsId(@Param("isUnavailable") String isUnavailable, @Param("sceneId") String sceneId);
-    @Update("update scene_package\n" +
-            "set is_unavailable = #{isUnavailable}\n" +
-            "where package_id in (select root_id from scene_package_sublist where scene_traffic_ids like concat('%', #{sceneId}, '%'))")
-    void updateIsUnavailableByAccidentId(@Param("isUnavailable") String isUnavailable, @Param("sceneId") String sceneId);
     @Select("select is_unavailable from scene_package where package_id = #{packageId}")
     String selectIsUnavailableByPackageId(@Param("packageId") String packageId);
     @Select("select is_deleted from scene_package where package_id = #{packageId}")
     String selectIsDeletedByPackageId(@Param("packageId") String packageId);
-    @Update("update scene_package\n" +
-            "set scene_num = scene_num - 1\n" +
-            "where package_id in\n" +
-            "      (select root_id from scene_package_sublist where scene_natural_ids like concat('%', #{naturalId}, '%'))")
-    void updateSceneNumAfterDeleteSceneByNaturalId(@Param("naturalId") String naturalId);
-    @Update("update scene_package\n" +
-            "set scene_num = scene_num - 1\n" +
-            "where package_id in\n" +
-            "      (select root_id from scene_package_sublist where scene_statue_ids like concat('%', #{sceneId}, '%'))")
-    void updateSceneNumAfterDeleteSceneByStandardsId(@Param("sceneId") String sceneId);
-    @Update("update scene_package\n" +
-            "set scene_num = scene_num - 1\n" +
-            "where package_id in\n" +
-            "      (select root_id from scene_package_sublist where scene_traffic_ids like concat('%', #{sceneId}, '%'))")
-    void updateSceneNumAfterDeleteSceneByAccidentId(@Param("sceneId") String sceneId);
-    //删除打分规则时同步把测试包改变状态为禁用
     void updateIsUnavailable3(ScoringRulesPO params);
-
     List<ScenePackagePO> selectByIndexIds(ScenePackageParam scenePackageParam);
-
     void update(@Param("testPackages") List<ScenePackagePO> testPackages);
 }

+ 7 - 7
simulation-resource-server/src/main/resources/mapper/scene/ScenePackageSublistMapper.xml

@@ -190,20 +190,20 @@
     <select id="selectBySceneIds" resultType="api.common.pojo.po.scene.ScenePackageSublistPO">
         select sublist_id, scene_natural_ids, scene_traffic_ids, scene_statue_ids, scene_generalization_ids
         from scene_package_sublist
-        where is_deleted = '0'
+        where is_deleted = '0' and
         <if test="sceneType = '1'">
-            <foreach item="item" collection="sceneIds" separator="," open="(" close=")">
-                and scene_natural_ids like concat('%',#{item},'%')
+            <foreach item="item" collection="sceneIds" separator=" or " open="(" close=")">
+                scene_natural_ids like concat('%',#{item},'%')
             </foreach>
         </if>
         <if test="sceneType = '2'">
-            <foreach item="item" collection="sceneIds" separator="," open="(" close=")">
-                and scene_statue_ids like concat('%',#{item},'%')
+            <foreach item="item" collection="sceneIds" separator=" or " open="(" close=")">
+                scene_statue_ids like concat('%',#{item},'%')
             </foreach>
         </if>
         <if test="sceneType = '3'">
-            <foreach item="item" collection="sceneIds" separator="," open="(" close=")">
-                and scene_traffic_ids like concat('%',#{item},'%')
+            <foreach item="item" collection="sceneIds" separator=" or " open="(" close=")">
+                scene_traffic_ids like concat('%',#{item},'%')
             </foreach>
         </if>
     </select>