Explorar el Código

场景包分配

root hace 2 años
padre
commit
feeaef3ee3

+ 2 - 0
api-common/src/main/java/api/common/pojo/vo/project/DropDownVo.java

@@ -22,4 +22,6 @@ public class DropDownVo {
 
     //描述
     private String description;
+    //描述
+    private String share;
 }

+ 4 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java

@@ -1332,9 +1332,11 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
                 dropDownVo.setId(v.getId());
                 dropDownVo.setName(v.getAlgorithmName());
                 dropDownVo.setDescription(v.getDescription());
+                dropDownVo.setShare(v.getShare());
                 algorithmList.add(dropDownVo);
             }
 
+
         } else if (DictConstants.PLATFORM.equals(algorithmType)) {
             //第三方算法平台获取(索为)
             String sort = "algorithmId-desc";
@@ -1394,6 +1396,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             dropDownVo.setId(v.getId());
             dropDownVo.setName(v.getConfigName());
             dropDownVo.setDescription(v.getDescription());
+            dropDownVo.setShare(v.getShare());
             //获取传感器信息
             List<ConfigSensorPO> configSensorVos = simulationProjectMapper.selectConfigSensor(v.getId());
             String sensor = "";
@@ -1426,6 +1429,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             dropDownVo.setId(v.getPackageId());
             dropDownVo.setName(v.getPackageName());
             dropDownVo.setSceneNum(String.valueOf(v.getSceneNum()));
+            dropDownVo.setShare(v.getShare());
             scenePackageList.add(dropDownVo);
         }
         DropDownTypeVo scenePackageDropDown = new DropDownTypeVo();

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

@@ -60,7 +60,7 @@ public class ScenePackageController {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "参数不能为空,请检查");
         } else if (params.get(0).getId() == null || params.get(0).getPackageLevel() == 1) {
             params.get(0).setId("");
-            return scenePackageService.saveScenePackage(params);
+            return scenePackageService.saveScenePackage(params,params.get(0).getPackageLevel());
         } else {
             return scenePackageService.updateScenePackage(params);
         }

+ 109 - 6
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java

@@ -48,7 +48,7 @@ public class ScenePackageService {
      * 测试包数据录入大保存:
      */
     @SneakyThrows
-    public ResponseBodyVO<String> saveScenePackage(List<ScenePackageSublistVO> params) {
+    public ResponseBodyVO<String> saveScenePackage(List<ScenePackageSublistVO> params,Integer isLcw) {
         List<ScenePackageSublistVO> listSublictTree = new ArrayList<>();
         ScenePackagePO po = new ScenePackagePO();
         for (ScenePackageSublistVO vo : params) {
@@ -74,7 +74,13 @@ public class ScenePackageService {
         po.setCreateUserId(AuthUtil.getCurrentUserId());
 
         List<ScenePackageSublistPO> poList = new ArrayList<>();
-        List<ScenePackageSublistPO> treeList = instShareListTree(listSublictTree, uuId, uuId, poList, "0", 1);
+        List<ScenePackageSublistPO> treeList=new ArrayList<>();
+        if(isLcw==1){
+            treeList = instShareListTreeLCW(listSublictTree, uuId, uuId, poList, "0", 1);
+
+        }else{
+            treeList = instShareListTree(listSublictTree, uuId, uuId, poList, "0", 1);
+        }
         //校验指标名称唯一
         if (treeList == null || treeList.size() < 1) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "指标数据为空,请检查");
@@ -286,7 +292,7 @@ public class ScenePackageService {
         po.setShare("1");
         List<ScenePackageSublistPO> poList = new ArrayList<>();
         List<ScenePackageSublistVO> listSublist = selectScenePackageSubListTree(null, true, params.getPackageId());
-        List<ScenePackageSublistPO> treeList = instShareListTree(listSublist, uuId, uuId, poList, "1", 1);
+        List<ScenePackageSublistPO> treeList = instShareListTreeFX(listSublist, uuId, uuId, poList, "1", 1);
         if (treeList != null && treeList.size() > 1) {
             Set set = new HashSet();
             Map map = new HashMap<>();
@@ -321,14 +327,15 @@ public class ScenePackageService {
                     syPo.setIsDeleted("0");
                     syPo.setShare("1");
                     scoringRulesMapper.saveScoringRules(syPo);
-                    vo.setPackageAndRules(syPo.getRulesId());
                 }
+                vo.setPackageAndRules(syPo.getRulesId());
 
 
                 //分享场景
                 //自然场景
                 String sceneNaturalIds=vo.getSceneNaturalIds();
                 if(ObjectUtil.isNotNull(sceneNaturalIds)){
+                    String sceneNaturalIdsGy="";
                     List<String> sceneNaturalIdList=Arrays.asList(sceneNaturalIds.split(","));
                     SceneNaturalPO SceneNaturalparm=new SceneNaturalPO();
                     SceneNaturalparm.setShare("1");
@@ -354,13 +361,19 @@ public class ScenePackageService {
                            SceneNaturalPOSy.setModifyUserId("");
                            sceneNaturalMapper.saveSceneNatural(SceneNaturalPOSy);
                        }
-
+                       if(ObjectUtil.isNull(sceneNaturalIdsGy)){
+                           sceneNaturalIdsGy=SceneNaturalPOSy.getNaturalId();
+                       }else{
+                           sceneNaturalIdsGy=sceneNaturalIdsGy+","+SceneNaturalPOSy.getNaturalId();
+                       }
                     }
+                    vo.setSceneNaturalIds(sceneNaturalIdsGy);
                 };
 
                 //标准法规
                 String sceneStatueIds=vo.getSceneStatueIds();
                 if(ObjectUtil.isNotNull(sceneStatueIds)){
+                    String sceneStatueIdsGy="";
                     List<String> sceneStatueIdList=Arrays.asList(sceneStatueIds.split(","));
                     StandardsRegulationsPO standardsRegulationsPO=new StandardsRegulationsPO();
                     standardsRegulationsPO.setShare("1");
@@ -386,12 +399,20 @@ public class ScenePackageService {
                             standardsRegulationsPOSy.setModifyUserId("");
                             standardsRegulationsMapper.saveStandardsRegulations(standardsRegulationsPOSy);
                         }
+
+                        if(ObjectUtil.isNull(sceneStatueIdsGy)){
+                            sceneStatueIdsGy=standardsRegulationsPOSy.getRegulationsId();
+                        }else{
+                            sceneStatueIdsGy=sceneStatueIdsGy+","+standardsRegulationsPOSy.getRegulationsId();
+                        }
                     }
+                    vo.setSceneStatueIds(sceneStatueIdsGy);
                 };
 
                 //交通事故
                 String sceneTrafficIds=vo.getSceneTrafficIds();
                 if(ObjectUtil.isNotNull(sceneTrafficIds)){
+                    String sceneTrafficIdsGy="";
                     List<String> sceneTrafficIdList=Arrays.asList(sceneTrafficIds.split(","));
                     SceneAccidentPO sceneAccidentPO=new SceneAccidentPO();
                     sceneAccidentPO.setShare("1");
@@ -417,7 +438,13 @@ public class ScenePackageService {
                             sceneAccidentPOSy.setModifyUserId("");
                             sceneAccidentMapper.saveSceneAccident(sceneAccidentPOSy);
                         }
+                        if(ObjectUtil.isNull(sceneTrafficIdsGy)){
+                            sceneTrafficIdsGy=sceneAccidentPOSy.getAccidentId();
+                        }else{
+                            sceneTrafficIdsGy=sceneTrafficIdsGy+","+sceneAccidentPOSy.getAccidentId();
+                        }
                     }
+                    vo.setSceneTrafficIds(sceneTrafficIdsGy);
                 };
 
                 //泛化模板
@@ -527,7 +554,7 @@ public class ScenePackageService {
                 String uuId = StringUtil.getRandomUUID();
                 params.setId(uuId);   //主键ID
             }else if(ObjectUtil.isNotNull(parentVoList.get(i).getSceneGeneralizationIds())){
-                scenePackageSublistMapper.deleteScenePackageSublistById(parentVoList.get(i).getId());
+                    scenePackageSublistMapper.deleteScenePackageSublistById(parentVoList.get(i).getId());
             }
             params.setIsDeleted("0");
             params.setShare(share);
@@ -566,4 +593,80 @@ public class ScenePackageService {
         return sceneParam;
     }
 
+
+    public List<ScenePackageSublistPO> instShareListTreeFX(List<ScenePackageSublistVO> parentVoList,
+                                                         String scenePackageId, String rootId, List<ScenePackageSublistPO> poList
+            , String share, Integer level) {
+        //获取子节点集合
+        for (int i = 0; i < parentVoList.size(); i++) {
+            ScenePackageSublistPO params = new ScenePackageSublistPO();
+            BeanUtils.copyProperties(parentVoList.get(i), params);
+            params.setParentId(scenePackageId);
+            params.setRootId(rootId);
+            params.setSublistName(parentVoList.get(i).getSublistName());
+            params.setCreateTime(TimeUtil.getNowForMysql());
+            params.setModifyTime(TimeUtil.getNowForMysql());
+            params.setCreateUserId(AuthUtil.getCurrentUserId());
+            //添加泛化后处理  如果是泛化用返回值中的结果
+            if (ObjectUtil.isNull(parentVoList.get(i).getSceneGeneralizationIds())) {
+                String uuId = StringUtil.getRandomUUID();
+                params.setId(uuId);   //主键ID
+            }else if(ObjectUtil.isNotNull(parentVoList.get(i).getSceneGeneralizationIds())){
+                if(share.equals("1")){
+                    String uuId = StringUtil.getRandomUUID();
+                    params.setId(uuId);
+                }else{
+                    scenePackageSublistMapper.deleteScenePackageSublistById(parentVoList.get(i).getId());
+                }
+            }
+            params.setIsDeleted("0");
+            params.setShare(share);
+            params.setPackageLevel(level);
+            params.setTreeNode(parentVoList.get(i).getTreeNode());
+            List<ScenePackageSublistVO> cvoList = parentVoList.get(i).getChildren();
+            poList.add(params);
+            if (cvoList != null && cvoList.size() > 0) {
+                //继续查找下一节点
+                int b = level + 1;
+                instShareListTreeFX(cvoList, params.getId(), rootId, poList, share, b);
+            }
+            parentVoList.remove(parentVoList.get(i));
+            i--;
+        }
+        return poList;
+    }
+
+    public List<ScenePackageSublistPO> instShareListTreeLCW(List<ScenePackageSublistVO> parentVoList,
+                                                           String scenePackageId, String rootId, List<ScenePackageSublistPO> poList
+            , String share, Integer level) {
+        //获取子节点集合
+        for (int i = 0; i < parentVoList.size(); i++) {
+            ScenePackageSublistPO params = new ScenePackageSublistPO();
+            BeanUtils.copyProperties(parentVoList.get(i), params);
+            params.setParentId(scenePackageId);
+            params.setRootId(rootId);
+            params.setSublistName(parentVoList.get(i).getSublistName());
+            params.setCreateTime(TimeUtil.getNowForMysql());
+            params.setModifyTime(TimeUtil.getNowForMysql());
+            params.setCreateUserId(AuthUtil.getCurrentUserId());
+            //添加泛化后处理  如果是泛化用返回值中的结果
+            String uuId = StringUtil.getRandomUUID();
+            params.setId(uuId);   //主键ID
+            params.setIsDeleted("0");
+            params.setShare(share);
+            params.setPackageLevel(level);
+            params.setTreeNode(parentVoList.get(i).getTreeNode());
+            List<ScenePackageSublistVO> cvoList = parentVoList.get(i).getChildren();
+            poList.add(params);
+            if (cvoList != null && cvoList.size() > 0) {
+                //继续查找下一节点
+                int b = level + 1;
+                instShareListTreeLCW(cvoList, params.getId(), rootId, poList, share, b);
+            }
+            parentVoList.remove(parentVoList.get(i));
+            i--;
+        }
+        return poList;
+    }
+
 }