李春阳 1 năm trước cách đây
mục cha
commit
1624cfa4f0

+ 22 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneAccidentService.java

@@ -8,6 +8,7 @@ import api.common.pojo.param.scene.*;
 import api.common.pojo.po.scene.*;
 import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.*;
+import com.alibaba.druid.util.StringUtils;
 import com.css.simulation.resource.server.infra.util.AuthUtil;
 import com.css.simulation.resource.server.infra.feign.service.FileDownService;
 import com.css.simulation.resource.server.infra.db.mysql.mapper.SceneAccidentMapper;
@@ -765,6 +766,7 @@ public class SceneAccidentService {
                     MI.setObjectName(filePath);
                     List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
                     log.info("共需要上传 " + listScene.size() + " 个交通事故场景");
+                    String taskId = api.common.util.StringUtil.getRandomUUID();
                     for (String scenePath : listScene) {
                         try {
                             MI.setObjectName(scenePath);
@@ -862,6 +864,26 @@ public class SceneAccidentService {
                             }
 
                             successNum = successNum + 1;
+
+                            // 计算复杂度
+                            if (!StringUtils.isEmpty(params.getSceneEvaluationRuleId())) {
+                                String tempSceneId = scenes.get(0).getAccidentId();
+                                SceneEvaluationComputeParam sceneEvaluationComputeParam = new SceneEvaluationComputeParam();
+                                sceneEvaluationComputeParam.setSceneId(isupdate.equals("0") ? tempSceneId : sceneAccidentPO.getAccidentId());
+                                sceneEvaluationComputeParam.setSceneXOSCPath(sceneAccidentPO.getXmlAddress());
+                                sceneEvaluationComputeParam.setSceneXODRPath(sceneAccidentPO.getXodrAddress());
+                                sceneEvaluationComputeParam.setSceneType(DictConstants.SCENE_ACCIDENT);
+                                sceneEvaluationComputeParam.setTaskId(taskId);
+                                sceneEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
+                                try {
+                                    boolean sceneEvaluationResult = sceneEvaluationRuleService.computeSceneReference(params, sceneEvaluationComputeParam);
+                                    if (isupdate.equals("0") && sceneEvaluationResult) {
+                                        sceneEvaluationRuleService.copySceneComplexityResult(taskId, tempSceneId, scenes.stream().map(SceneAccidentPO::getAccidentId).filter(sceneId -> !StringUtils.equals(tempSceneId, sceneId)).collect(Collectors.toList()));
+                                    }
+                                } catch (Exception e) {
+                                    log.error("计算复杂度失败", e);
+                                }
+                            }
                         } catch (Exception e) {
                             errorMessage = e.getMessage();
                             e.printStackTrace();

+ 21 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneNaturalService.java

@@ -8,6 +8,7 @@ import api.common.pojo.param.scene.*;
 import api.common.pojo.po.scene.*;
 import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.*;
+import com.alibaba.druid.util.StringUtils;
 import com.css.simulation.resource.server.infra.util.AuthUtil;
 import com.css.simulation.resource.server.infra.feign.service.FileDownService;
 import com.css.simulation.resource.server.infra.db.mysql.mapper.SceneNaturalMapper;
@@ -539,6 +540,7 @@ public class SceneNaturalService {
                     MI.setObjectName(filePath);
                     List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
                     log.info("共需要上传 " + listScene.size() + " 个自然驾驶场景");
+                    String taskId = api.common.util.StringUtil.getRandomUUID();
                     HashSet<String> strings = new HashSet<>(listScene);
                     log.info("去重之后还剩 " + strings.size() + " 个自然驾驶场景");
                     int addNumber = 0;
@@ -686,6 +688,25 @@ public class SceneNaturalService {
                             }
                             successNum = successNum + 1;
 
+                            // 计算复杂度
+                            if (!StringUtils.isEmpty(parms.getSceneEvaluationRuleId())) {
+                                String tempSceneId = scenes.get(0).getNaturalId();
+                                SceneEvaluationComputeParam sceneEvaluationComputeParam = new SceneEvaluationComputeParam();
+                                sceneEvaluationComputeParam.setSceneId(update ? tempSceneId : sceneNaturalPO.getNaturalId());
+                                sceneEvaluationComputeParam.setSceneXOSCPath(sceneNaturalPO.getXoscAddress());
+                                sceneEvaluationComputeParam.setSceneXODRPath(sceneNaturalPO.getXodrAddress());
+                                sceneEvaluationComputeParam.setSceneType(DictConstants.SCENE_NATURAL);
+                                sceneEvaluationComputeParam.setTaskId(taskId);
+                                sceneEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
+                                try {
+                                    boolean sceneEvaluationResult = sceneEvaluationRuleService.computeSceneReference(parms, sceneEvaluationComputeParam);
+                                    if (update && sceneEvaluationResult) {
+                                        sceneEvaluationRuleService.copySceneComplexityResult(taskId, tempSceneId, scenes.stream().map(SceneNaturalPO::getNaturalId).filter(sceneId -> !StringUtils.equals(tempSceneId, sceneId)).collect(Collectors.toList()));
+                                    }
+                                } catch (Exception e) {
+                                    log.error("计算复杂度失败", e);
+                                }
+                            }
                         } catch (Exception e) {
                             errorMessage = e.getMessage();
                             e.printStackTrace();

+ 24 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/SceneStandardsService.java

@@ -8,6 +8,7 @@ import api.common.pojo.param.scene.*;
 import api.common.pojo.po.scene.*;
 import api.common.pojo.po.system.SceneImportPO;
 import api.common.util.*;
+import com.alibaba.druid.util.StringUtils;
 import com.css.simulation.resource.server.infra.util.AuthUtil;
 import com.css.simulation.resource.server.infra.feign.service.FileDownService;
 import com.css.simulation.resource.server.infra.db.mysql.mapper.ScenePackageMapper;
@@ -328,6 +329,7 @@ public class SceneStandardsService {
                     MI.setObjectName(filePath);
                     List<String> listScene = fileDownService.listDeepOne(MI).getInfo();
                     log.info("importMinio() 共需要上传 " + listScene.size() + " 个标准法规场景");
+                    String taskId = api.common.util.StringUtil.getRandomUUID();
                     for (String scenePath : listScene) {
                         try {
                             MI.setObjectName(scenePath);
@@ -414,6 +416,28 @@ public class SceneStandardsService {
                                 });
                             }
                             successNum = successNum + 1;
+
+                            // 计算复杂度
+                            if (!StringUtils.isEmpty(parms.getSceneEvaluationRuleId())) {
+                                String tempSceneId = scenes.get(0).getRegulationsId();
+                                SceneEvaluationComputeParam sceneEvaluationComputeParam = new SceneEvaluationComputeParam();
+                                sceneEvaluationComputeParam.setSceneId(isupdate.equals("0") ? tempSceneId : standardsRegulationsPO.getRegulationsId());
+                                sceneEvaluationComputeParam.setSceneXOSCPath(standardsRegulationsPO.getXmlAddress());
+                                sceneEvaluationComputeParam.setSceneXODRPath(standardsRegulationsPO.getXodrAddress());
+                                sceneEvaluationComputeParam.setSceneType(DictConstants.SCENE_STANDARD);
+                                sceneEvaluationComputeParam.setTaskId(taskId);
+                                sceneEvaluationComputeParam.setComputeType(DictConstants.COMPLEXITY);
+                                try {
+                                    boolean sceneEvaluationResult = sceneEvaluationRuleService.computeSceneReference(parms, sceneEvaluationComputeParam);
+                                    if (isupdate.equals("0") && sceneEvaluationResult) {
+                                        sceneEvaluationRuleService.copySceneComplexityResult(taskId, tempSceneId, scenes.stream().map(StandardsRegulationsPO::getRegulationsId).filter(sceneId -> !StringUtils.equals(tempSceneId, sceneId)).collect(Collectors.toList()));
+                                    }
+                                } catch (Exception e) {
+                                    log.error("计算复杂度失败", e);
+                                }
+                            }
+
+
                         } catch (Exception e) {
                             errorMessage = e.getMessage();
                             e.printStackTrace();