夜得朦胧 1 tahun lalu
induk
melakukan
bf27846798

+ 30 - 11
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/MultiSimulationProjectServiceImpl.java

@@ -663,7 +663,7 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
                 List<MultiSimulationSceneCarVO> multiSimulationSceneCarVOS = sceneCarMapper.selectSceneCarList(multiSimulationSceneCarParam);
                 if (!CollectionUtils.isEmpty(multiSimulationSceneCarVOS)) {
                     for (MultiSimulationSceneCarVO car : multiSimulationSceneCarVOS) {
-                        MultiSimulationSceneCarParam carParam = buildSceneCarParam(car, id);
+                        MultiSimulationSceneCarParam carParam = buildSceneCarParamAll(car, id);
                         int add = sceneCarMapper.addMultiSimulationSceneCar(carParam);
                         if (add <= 0) {
                             throw new RuntimeException("新增车辆信息失败");
@@ -688,7 +688,7 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
             sceneParam.setSceneId(sceneId);
             ResponseBodyVO<MultiSimulationSceneVO> multiSimulationSceneVOResponseBodyVO = copyMultiSimulationScene(sceneParam);
             if (!multiSimulationSceneVOResponseBodyVO.isStatus()){
-                throw new RuntimeException("批量复制场景失败");
+                throw new RuntimeException(multiSimulationSceneVOResponseBodyVO.getMessage());
             }
         }
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
@@ -699,17 +699,20 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "参数异常");
         }
         MultiSimulationSceneVO sceneVO = simulationSceneMapper.selectSceneDetailBySceneId(param.getSceneId());
-        ResponseBodyVO responseBodyVO = checkScene(sceneVO);
-        if (responseBodyVO.getCode() != ResponseBodyVO.Response.SUCCESS.getCode()) {
-            return responseBodyVO;
+        if (Objects.isNull(sceneVO)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "未查出有效场景:" + param.getSceneId());
         }
+//        ResponseBodyVO responseBodyVO = checkScene(sceneVO);
+//        if (responseBodyVO.getCode() != ResponseBodyVO.Response.SUCCESS.getCode()) {
+//            return responseBodyVO;
+//        }
         MultiSimulationSceneCarParam multiSimulationSceneCarParam = new MultiSimulationSceneCarParam();
         multiSimulationSceneCarParam.setSceneId(param.getSceneId());
         List<MultiSimulationSceneCarVO> multiSimulationSceneCarVOS = sceneCarMapper.selectSceneCarList(multiSimulationSceneCarParam);
-        ResponseBodyVO sceneCars = checkAllSceneCars(multiSimulationSceneCarVOS, param.getSceneId());
-        if (sceneCars.getCode() != ResponseBodyVO.Response.SUCCESS.getCode()) {
-            return sceneCars;
-        }
+//        ResponseBodyVO sceneCars = checkAllSceneCars(multiSimulationSceneCarVOS, param.getSceneId());
+//        if (sceneCars.getCode() != ResponseBodyVO.Response.SUCCESS.getCode()) {
+//            return sceneCars;
+//        }
         // 插入场景
         MultiSimulationScenePO multiSimulationScenePO = buildScenePO(sceneVO, sceneVO.getProjectId());
         int i = simulationSceneMapper.addMultiSimulationSceneAll(multiSimulationScenePO);
@@ -986,8 +989,24 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
         String pathEnd = carVO.getPathEnd();
         JSONObject objectEnd = JSONObject.parseObject(pathEnd);
         MultiSimulationSceneCarParam multiSimulationSceneCarParam = new MultiSimulationSceneCarParam();
-        multiSimulationSceneCarParam.setSceneCarId(carVO.getId()).setSceneId(newSceneId)
-            .setCarId(carVO.getCarId()).setAlgorithmId(carVO.getAlgorithmId())
+        multiSimulationSceneCarParam.setSceneCarId(StringUtil.getRandomUUID()).setSceneId(newSceneId)
+            .setCarId(carVO.getCarId()).setAlgorithmId(carVO.getAlgorithmId()).setAlgorithmType(carVO.getAlgorithmType())
+            .setMapId(carVO.getMapId())
+            .setPathId(carVO.getPathId())
+            .setPathStart(objectStart).setPathEnd(objectEnd)
+            .setPathStartStr(pathStart)
+            .setPathEndStr(pathEnd)
+            .setCarSort(carVO.getCarSort()).setIsSimulationCar(0);
+        return multiSimulationSceneCarParam;
+    }
+    public static MultiSimulationSceneCarParam buildSceneCarParamAll(MultiSimulationSceneCarVO carVO, String newSceneId) {
+        String pathStart = carVO.getPathStart();
+        JSONObject objectStart = JSONObject.parseObject(pathStart);
+        String pathEnd = carVO.getPathEnd();
+        JSONObject objectEnd = JSONObject.parseObject(pathEnd);
+        MultiSimulationSceneCarParam multiSimulationSceneCarParam = new MultiSimulationSceneCarParam();
+        multiSimulationSceneCarParam.setSceneCarId(StringUtil.getRandomUUID()).setSceneId(newSceneId)
+            .setCarId(carVO.getCarId()).setAlgorithmId(carVO.getAlgorithmId()).setAlgorithmType(carVO.getAlgorithmType())
             .setMapId(carVO.getMapId())
             .setPathId(carVO.getPathId())
             .setPathStart(objectStart).setPathEnd(objectEnd)