Ver Fonte

场景库限制条件

wangzhiqiang há 3 anos atrás
pai
commit
403e9878d4

+ 5 - 6
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneNaturalService.java

@@ -365,34 +365,33 @@ public class SceneNaturalService {
                 }
             }
             if (vo.getTargetBehavior().indexOf("机动车从左侧切入成功")>-1 ||vo.getTargetBehavior().indexOf("机动车从右侧切入成功")>-1) {
-                if (ObjectUtil.isNull(vo.getLabel())) {
+                if (ObjectUtil.isNull(vo.getLabel())){
                     vo.setLabel("切入");
                 } else {
                     vo.setLabel(vo.getLabel() + ",切入");
                 }
             }
             if (vo.getTargetBehavior().equals("机动车向左侧切出成功") ||vo.getTargetBehavior().equals("机动车向右侧切出成功")) {
-                if (ObjectUtil.isNull(vo.getLabel())) {
+                if (ObjectUtil.isNull(vo.getLabel())){
                     vo.setLabel("切出");
                 } else {
                     vo.setLabel(vo.getLabel() + ",切出");
                 }
             }
-            if (vo.getSelfBehavior().indexOf("直路掉头")>-1 ||vo.getSelfBehavior().indexOf("路口掉头")>-1) {
-                if (ObjectUtil.isNull(vo.getLabel())) {
+            if (vo.getSelfBehavior().indexOf("直路掉头")>-1 ||vo.getSelfBehavior().indexOf("路口掉头")>-1){
+                if (ObjectUtil.isNull(vo.getLabel())){
                     vo.setLabel("掉头");
                 } else {
                     vo.setLabel(vo.getLabel() + ",掉头");
                 }
             }
             if (vo.getSelfBehavior().indexOf("向左变道成功") >-1||vo.getSelfBehavior().equals("向右变道成功")||vo.getSelfBehavior().indexOf("向左连续变道")>-1||vo.getSelfBehavior().indexOf("向右连续变道")>-1||vo.getSelfBehavior().indexOf("向左变道超车")>-1||vo.getSelfBehavior().indexOf("向右变道超车")>-1) {
-                if (ObjectUtil.isNull(vo.getLabel())) {
+                if (ObjectUtil.isNull(vo.getLabel())){
                     vo.setLabel("变道");
                 } else {
                     vo.setLabel(vo.getLabel() + ",变道");
                 }
             }
-
         }
         return list;
     }

+ 50 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java

@@ -6,6 +6,7 @@ import api.common.pojo.po.scene.ScenePackagePO;
 import api.common.pojo.po.scene.ScenePackageSublistPO;
 import api.common.pojo.vo.scene.ScenePackageNewVO;
 import api.common.pojo.vo.scene.ScenePackageSublistVO;
+import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
@@ -16,8 +17,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -28,7 +28,6 @@ public class ScenePackageService {
     @Resource
     private ScenePackageSublistMapper scenePackageSublistMapper;
 
-
     /**
      * 测试包数据录入大保存:
      */
@@ -60,9 +59,25 @@ public class ScenePackageService {
 
         List<ScenePackageSublistPO> poList = new ArrayList<>();
         List<ScenePackageSublistPO> treeList = instShareListTree(listSublictTree, uuId, uuId, poList, "0",1);
+       //校验指标名称唯一
         if (treeList == null || treeList.size() < 1) {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "指标数据为空,请检查");
         }
+        if(treeList!=null && treeList.size()>1){
+            Set set=new HashSet();
+        Map map=new HashMap<>();
+            for (ScenePackageSublistPO vo: treeList ) {
+              Object sublistName=  map.get(vo.getSublistName());
+              if(ObjectUtil.isNull(sublistName)){
+                  map.put(vo.getSublistName(),vo.getSublistName());
+              }else{
+                      set.add(vo.getSublistName());
+              }
+            }
+            if(ObjectUtil.isNotNull(set)){
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:"+set+"重复,请检查");
+            }
+        }
         scenePackageMapper.saveScenePackage(po);
         scenePackageSublistMapper.saveScenePackageSublistAll(treeList);
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
@@ -106,6 +121,21 @@ public class ScenePackageService {
         if (treeList == null || treeList.size() < 1) {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "指标数据为空,请检查");
         }
+        if(treeList!=null && treeList.size()>1){
+            Set set=new HashSet();
+            Map map=new HashMap<>();
+            for (ScenePackageSublistPO vo: treeList ) {
+                Object sublistName=  map.get(vo.getSublistName());
+                if(ObjectUtil.isNull(sublistName)){
+                    map.put(vo.getSublistName(),vo.getSublistName());
+                }else{
+                    set.add(vo.getSublistName());
+                }
+            }
+            if(ObjectUtil.isNotNull(set)){
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:"+set+"重复,请检查");
+            }
+        }
         scenePackageMapper.updateScenePackage(po);
         scenePackageSublistMapper.deleteScenePackageSublist(po.getPackageId());
         scenePackageSublistMapper.saveScenePackageSublistAll(treeList);
@@ -220,7 +250,7 @@ public class ScenePackageService {
         po.setPackageName(scenePackagePO.getPackageName());
         List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
         if (listName != null && listName.size() > 0) {
-            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "公有列表名称packName=" + listName.get(0).getPackageName() + "的测试包已存在,请检查");
+            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称packName=" + listName.get(0).getPackageName() + "的测试包已存在,请检查");
         }
         BeanUtils.copyProperties(scenePackagePO, po);
         po.setCreateTime(TimeUtil.getNowForMysql());
@@ -231,10 +261,25 @@ public class ScenePackageService {
         po.setPackageId(uuId);
         po.setIsDeleted("0");
         po.setShare("1");
-        scenePackageMapper.saveScenePackage(po);
         List<ScenePackageSublistPO> poList = new ArrayList<>();
         List<ScenePackageSublistVO> listSublist = selectScenePackageSubListTree(null, true, params.getPackageId());
         List<ScenePackageSublistPO> treeList = instShareListTree(listSublist, uuId, uuId, poList, "1",1);
+        if(treeList!=null && treeList.size()>1){
+            Set set=new HashSet();
+            Map map=new HashMap<>();
+            for (ScenePackageSublistPO vo: treeList ) {
+                Object sublistName=  map.get(vo.getSublistName());
+                if(ObjectUtil.isNull(sublistName)){
+                    map.put(vo.getSublistName(),vo.getSublistName());
+                }else{
+                    set.add(vo.getSublistName());
+                }
+            }
+            if(ObjectUtil.isNotNull(set)){
+                return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:"+set+"重复,请检查");
+            }
+        }
+        scenePackageMapper.saveScenePackage(po);
         scenePackageSublistMapper.saveScenePackageSublistAll(treeList);
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
     }