夜得朦胧 1 年之前
父節點
當前提交
f6fbce1504

+ 7 - 0
api-common/src/main/java/api/common/pojo/vo/project/ManualProjectTaskVo.java

@@ -38,4 +38,11 @@ public class ManualProjectTaskVo {
     // 危险度等级
     private String riskLevel;
     private String scoreResult;
+
+    // 复杂度显著性
+    private Boolean complexitySignificance;
+
+    // 危险度显著性
+    private Boolean riskSignificance;
+
 }

+ 5 - 0
simulation-resource-server/pom.xml

@@ -125,6 +125,11 @@
         </dependency>
         <!-- 数据库 - 结束 -->
 
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-math3</artifactId>
+            <version>3.6.1</version> <!-- 请检查最新版本 -->
+        </dependency>
         <!-- 参数校验 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 42 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/SimulationProjectServiceImpl.java

@@ -56,6 +56,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.kafka.core.KafkaTemplate;
 import org.springframework.scheduling.support.CronExpression;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -5549,7 +5550,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     @SneakyThrows
     @Override
     public ResponseBodyVO<PageInfo<ManualProjectTaskVo>> querySceneEvaluationDetail(SimulationManualProjectEvaluationDetailParam param) {
-        setPage(param.getCurrentPage() == null ? 1 : param.getCurrentPage(), param.getPageSize() == null ? 10 : param.getPageSize());
+//        setPage(param.getCurrentPage() == null ? 1 : param.getCurrentPage(), param.getPageSize() == null ? 10 : param.getPageSize());
         // 获取任务包信息
         ProjectTaskParam projectTaskParam = new ProjectTaskParam();
         projectTaskParam.setPId(param.getId());
@@ -5566,14 +5567,54 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             SceneEvaluationOperatePO sceneEvaluationOperatePO = sceneEvaluationRuleService.getSceneEvaluationFirst(sceneEvaluationForListParam);
             Map<String, SceneComplexityPO> complexityPOMap = sceneEvaluationOperatePO.getSceneComplexityPOMap();
             Map<String, SceneRiskPO> riskPOMap = sceneEvaluationOperatePO.getSceneRiskPOMap();
+            List<String> comList = new ArrayList<>();
+            List<String> riskList = new ArrayList<>();
             for (ManualProjectTaskVo po : pageInfo.getList()) {
                 if (complexityPOMap.get(po.getSceneId()) != null) {
                     po.setComplexity(String.valueOf(complexityPOMap.get(po.getSceneId()).getComplexity()));
                     po.setComplexityLevel(String.valueOf(complexityPOMap.get(po.getSceneId()).getComplexityLevel()));
+                    comList.add(po.getComplexity());
                 }
                 if (riskPOMap.get(po.getSceneId()) != null) {
                     po.setRisk(String.valueOf(riskPOMap.get(po.getSceneId()).getRisk()));
                     po.setRiskLevel(String.valueOf(riskPOMap.get(po.getSceneId()).getRiskLevel()));
+                    riskList.add(po.getRisk());
+                }
+            }
+            // 计算复杂度显著性
+            if (!CollectionUtils.isEmpty(comList)){
+                Double standardDeviationByStrList = CalculateUtils.getStandardDeviationByStrList(comList);
+                Double avaByStrList = CalculateUtils.getAvaByStrList(comList);
+                if (standardDeviationByStrList != null && avaByStrList != null){
+                    for (ManualProjectTaskVo po : pageInfo.getList()) {
+                        try {
+                            String complexity = po.getComplexity();
+                            if (com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(complexity)){
+                                Double aDouble = Double.valueOf(complexity);
+                                if (aDouble >= (avaByStrList-standardDeviationByStrList ) && aDouble <= (avaByStrList + standardDeviationByStrList)){
+                                    po.setComplexitySignificance(true);
+                                }
+                            }
+                        }catch (Exception e){
+                        }
+                    }
+                }
+            }
+            if (!CollectionUtils.isEmpty(riskList)){
+                Double standardDeviationByStrList = CalculateUtils.getStandardDeviationByStrList(riskList);
+                Double avaByStrList = CalculateUtils.getAvaByStrList(riskList);
+                if (standardDeviationByStrList != null && avaByStrList != null){
+                    for (ManualProjectTaskVo po : pageInfo.getList()) {
+                        try {
+                            String risk = po.getRisk();
+                            if (com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(risk)){
+                                Double aDouble = Double.valueOf(risk);
+                                if (aDouble >= (avaByStrList-standardDeviationByStrList ) && aDouble <= (avaByStrList + standardDeviationByStrList)){
+                                    po.setRiskSignificance(true);
+                                }
+                            }
+                        }catch (Exception e){}
+                    }
                 }
             }
         }

+ 68 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/util/CalculateUtils.java

@@ -0,0 +1,68 @@
+package com.css.simulation.resource.server.infra.util;
+
+import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+public class CalculateUtils {
+    public static Double getStandardDeviationByStrList(List<String> doubleList) {
+        if (CollectionUtils.isEmpty(doubleList)) {
+            return null;
+        }
+        try {
+            DescriptiveStatistics stats = new DescriptiveStatistics();
+            for (String d : doubleList) {
+                stats.addValue(Double.valueOf(d));
+            }
+            return stats.getStandardDeviation();
+        } catch (Exception e) {
+            return null;
+        }
+    }
+    public static Double getStandardDeviation(List<Double> doubleList) {
+        if (CollectionUtils.isEmpty(doubleList)) {
+            return null;
+        }
+        try {
+            DescriptiveStatistics stats = new DescriptiveStatistics();
+            for (Double d : doubleList) {
+                stats.addValue(d);
+            }
+
+            return stats.getStandardDeviation();
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    public static Double getAvaByStrList(List<String> doubleList) {
+        if (CollectionUtils.isEmpty(doubleList)) {
+            return null;
+        }
+        try {
+            DescriptiveStatistics stats = new DescriptiveStatistics();
+            for (String d : doubleList) {
+                stats.addValue(Double.valueOf(d));
+            }
+            return stats.getMean();
+        } catch (Exception e) {
+            return null;
+        }
+    }
+    public static Double getAva(List<Double> doubleList) {
+        if (CollectionUtils.isEmpty(doubleList)) {
+            return null;
+        }
+        try {
+            DescriptiveStatistics stats = new DescriptiveStatistics();
+            for (Double d : doubleList) {
+                stats.addValue(d);
+            }
+            return stats.getMean();
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+}