Bladeren bron

Merge branch 'master' of http://10.12.10.70:3000/CSS/simulation-cloud

root 2 jaren geleden
bovenliggende
commit
5e90cdc027
22 gewijzigde bestanden met toevoegingen van 413 en 123 verwijderingen
  1. 1 0
      api-common/src/main/java/api/common/pojo/param/scene/SceneAccidentParam.java
  2. 2 0
      api-common/src/main/java/api/common/pojo/param/scene/SceneGeneralTemplateParam.java
  3. 5 2
      simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/serviceImpl/AlgorithmServiceImpl.java
  4. 29 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/ctrl/ConfigCtrl.java
  5. 18 13
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/CameraService.java
  6. 160 23
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/ConfigService.java
  7. 13 7
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/GpsService.java
  8. 18 13
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/LidarService.java
  9. 18 13
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/OgtService.java
  10. 14 7
      simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/VehicleService.java
  11. 15 8
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScoringRulesController.java
  12. 1 1
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageMapper.java
  13. 1 1
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScoringRulesMapper.java
  14. 1 0
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneAccidentService.java
  15. 12 6
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneGeneralExampleService.java
  16. 61 11
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java
  17. 19 3
      simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScoringRulesService.java
  18. 8 6
      simulation-resource-server/src/main/resources/mapper/algorithm/AlgorithmMapper.xml
  19. 2 2
      simulation-resource-server/src/main/resources/mapper/scene/SceneAccidentMapper.xml
  20. 14 0
      simulation-resource-server/src/main/resources/mapper/scene/SceneGeneralTemplateMapper.xml
  21. 0 3
      simulation-resource-server/src/main/resources/mapper/scene/ScenePackageMapper.xml
  22. 1 4
      simulation-resource-server/src/main/resources/mapper/scene/ScoringRulesMapper.xml

+ 1 - 0
api-common/src/main/java/api/common/pojo/param/scene/SceneAccidentParam.java

@@ -43,5 +43,6 @@ public class SceneAccidentParam extends PageVO implements Serializable {
 
     private String[] ids ; //回显数组
     private String[] allSceneNames ; //场景名集合
+    private String share;
 
 }

+ 2 - 0
api-common/src/main/java/api/common/pojo/param/scene/SceneGeneralTemplateParam.java

@@ -28,4 +28,6 @@ public class SceneGeneralTemplateParam extends PageVO implements Serializable {
     private String[] ids ; //回显数组
     private String[] allSceneNames ; //场景名集合
 
+    private List<String> scenarioRoadType;//道路类型
+
 }

+ 5 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/serviceImpl/AlgorithmServiceImpl.java

@@ -306,6 +306,7 @@ public class AlgorithmServiceImpl implements AlgorithmService {
         if (isEmpty(param.getId())) {
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE);
         } else {
+            Map map =new HashMap();
             String algorithmId = param.getId();
             List<RunningProjectVO> runningParentProjectVos = algorithmMapper.selectRunningProjectParent(algorithmId);
             if (runningParentProjectVos != null && runningParentProjectVos.size() > 0) {
@@ -315,9 +316,11 @@ public class AlgorithmServiceImpl implements AlgorithmService {
                 }
 
                 String substring = stringBuffer.substring(0, stringBuffer.lastIndexOf(","));
-                return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, "该算法已绑定ID:" + substring + " 自动运行项目,删除后该项目将停止自动运行");
+                map.put("substring",substring);
+                return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, "该算法已绑定ID:" + substring + " 自动运行项目,删除后该项目将停止自动运行",map);
             } else {
-                return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,"该算法未绑定自动运行项目");
+                map.put("substring","");
+                return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,"该算法未绑定自动运行项目",map);
             }
         }
     }

+ 29 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/ctrl/ConfigCtrl.java

@@ -80,6 +80,35 @@ public class ConfigCtrl {
         return response;
     }
 
+    /**
+     * 另存为
+     */
+    @RequestMapping("/saveAnotherConfig")
+    @ResponseBody
+    public ResponseBodyVO<ConfigPO> saveAnotherConfig(@RequestBody ConfigVO configVO){
+        if(ObjectUtil.isNull(configVO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        //端口重复校验
+        Map<String, List<ConfigSensorVO>> configSensors = configVO.getConfigSensors();
+        if(ObjectUtil.isNotNull(configSensors)){
+            List<ConfigSensorVO> configSensorVOS = configSensors.get("ogt");//完美传感器
+            if(ObjectUtil.isNotNull(configSensorVOS)){
+                long count = configSensorVOS.stream().mapToInt(ConfigSensorVO::getSensorPort).distinct().count();
+                if(configSensorVOS.size() != count){
+                    return new ResponseBodyVO(false, 500, "端口重复!",null);
+                }
+            }
+        }
+        ResponseBodyVO<ConfigPO> response = new ResponseBodyVO<ConfigPO>(ResponseBodyVO.Response.SUCCESS);
+        ConfigPO po = configService.saveAnotherConfig(configVO);
+        if(ObjectUtil.isNull(po.getId())){
+            return new ResponseBodyVO(false, 500, "配置名称重复!",null);
+        }
+        response.setInfo(po);
+        return response;
+    }
+
     /**
      * 详情分享
      */

+ 18 - 13
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/CameraService.java

@@ -78,20 +78,25 @@ public class CameraService {
         //名称校验
         List<CameraVO> list = cameraMapper.checkCameraName(cameraPO);
         if(ObjectUtil.isNotNull(list)){
-            cameraPO.setId(null);
-            return cameraPO;
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            cameraPO.setModifyUserId(currentUserId);
+            cameraPO.setModifyTime(currentTime);
+            cameraMapper.update(cameraPO);
+            LogUtil.update();
+        }else {
+            //常规字段赋值
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            cameraPO.setCreateUserId(currentUserId);
+            cameraPO.setCreateTime(currentTime);
+            cameraPO.setModifyUserId(currentUserId);
+            cameraPO.setModifyTime(currentTime);
+            cameraPO.setIsDeleted(DictConstants.NO);
+            cameraPO.setId(StringUtil.getRandomUUID());
+            cameraPO.setSensorCode(StringUtil.getRandomCode());
+            cameraMapper.insert(cameraPO);
         }
-        //常规字段赋值
-        String currentUserId = AuthUtil.getCurrentUserId();
-        Timestamp currentTime = TimeUtil.getNowForMysql();
-        cameraPO.setCreateUserId(currentUserId);
-        cameraPO.setCreateTime(currentTime);
-        cameraPO.setModifyUserId(currentUserId);
-        cameraPO.setModifyTime(currentTime);
-        cameraPO.setIsDeleted(DictConstants.NO);
-        cameraPO.setId(StringUtil.getRandomUUID());
-        cameraPO.setSensorCode(StringUtil.getRandomCode());
-        cameraMapper.insert(cameraPO);
         LogUtil.share();
         return cameraPO;
     }

+ 160 - 23
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/ConfigService.java

@@ -1,11 +1,9 @@
 package com.css.simulation.resource.model.service;
 
 import api.common.pojo.constants.DictConstants;
-import api.common.pojo.param.model.ConfigPageParam;
-import api.common.pojo.po.model.ConfigPO;
-import api.common.pojo.po.model.ConfigSensorPO;
-import api.common.pojo.vo.model.ConfigSensorVO;
-import api.common.pojo.vo.model.ConfigVO;
+import api.common.pojo.param.model.*;
+import api.common.pojo.po.model.*;
+import api.common.pojo.vo.model.*;
 import api.common.util.LogUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
@@ -14,7 +12,9 @@ import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.common.utils.PageUtil;
 import com.css.simulation.resource.model.mapper.CameraMapper;
 import com.css.simulation.resource.model.mapper.ConfigMapper;
+import com.css.simulation.resource.model.mapper.VehicleMapper;
 import com.github.pagehelper.PageInfo;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -29,6 +29,24 @@ public class ConfigService {
     @Autowired
     ConfigMapper configMapper;
 
+    @Autowired
+    VehicleMapper vehicleMapper;
+
+    @Autowired
+    VehicleService vehicleService;
+
+    @Autowired
+    CameraService cameraService;
+
+    @Autowired
+    LidarService lidarService;
+
+    @Autowired
+    OgtService ogtService;
+
+    @Autowired
+    GpsService gpsService;
+
     public PageInfo<ConfigVO> getConfigPageList(ConfigPageParam pageParam) {
         PageUtil.setPageInfo(pageParam);
         pageParam.setCreateUserId(AuthUtil.getCurrentUserId());
@@ -120,6 +138,66 @@ public class ConfigService {
         return configPO;
     }
 
+    public ConfigPO saveAnotherConfig(ConfigVO configVO) {
+        //构建主表对象
+        ConfigPO configPO = new ConfigPO();
+        String currentUserId = AuthUtil.getCurrentUserId();
+        Timestamp currentTime = TimeUtil.getNowForMysql();
+        ObjectUtil.voToPo(configVO,configPO);
+        configPO.setCreateUserId(currentUserId);
+        configPO.setCreateTime(currentTime);
+        configPO.setModifyUserId(currentUserId);
+        configPO.setModifyTime(currentTime);
+        configPO.setIsDeleted(DictConstants.NO);
+        configPO.setShare(DictConstants.NO);//私有
+        //单独处理配置描述
+        configPO.setDescription(configVO.getConfigDescription());
+        //名称校验
+        List<ConfigVO> list = configMapper.checkConfigName(configPO);
+        if(ObjectUtil.isNotNull(list)){
+            configMapper.updateConfig(configPO);
+            LogUtil.update();
+        }else {
+            //主表主键
+            String configId = configPO.getId();
+            configId = StringUtil.getRandomUUID();
+            configPO.setId(configId);
+            configPO.setConfigCode(StringUtil.getRandomCode());
+            configMapper.insertConfig(configPO);
+            LogUtil.insert();
+        }
+
+        //删除子表旧数据
+        configMapper.delConfigSensors(configPO);
+        //构建字表新数据
+        //List<ConfigSensorVO> configSensorVOs = configVO.getConfigSensors();
+        Map<String, List<ConfigSensorVO>> configSensors = configVO.getConfigSensors();
+        List<ConfigSensorPO> configSensorPOs = new ArrayList<>();
+        if(ObjectUtil.isNotNull(configSensors)){
+            configSensors.forEach((sensorType,configSensorVOs)->{
+                if(ObjectUtil.isNotNull(configSensorVOs)){
+                    configSensorVOs.forEach(vo -> {
+                        ConfigSensorPO po = new ConfigSensorPO();
+                        ObjectUtil.voToPo(vo,po);
+                        po.setId(StringUtil.getRandomUUID());
+                        //子表外键
+                        po.setConfigId(configPO.getId());
+                        po.setCreateUserId(currentUserId);
+                        po.setCreateTime(currentTime);
+                        po.setModifyUserId(currentUserId);
+                        po.setModifyTime(currentTime);
+                        po.setIsDeleted(DictConstants.NO);
+                        configSensorPOs.add(po);
+                    });
+                }
+            });
+        }
+        if(ObjectUtil.isNotNull(configSensorPOs)){
+            configMapper.insertConfigSensors(configSensorPOs);
+        }
+        return configPO;
+    }
+
     public int delConfigById(ConfigVO vo) {
         ConfigPO po = new ConfigPO();
         ObjectUtil.voToPo(vo,po);
@@ -137,33 +215,48 @@ public class ConfigService {
         ObjectUtil.voToPo(configVO,configPO);
         configPO.setShare(DictConstants.YES);//转公有
         configPO.setCreateUserId(null);
+
+        String currentUserId = AuthUtil.getCurrentUserId();
+        Timestamp currentTime = TimeUtil.getNowForMysql();
         //名称校验
         List<ConfigVO> list = configMapper.checkConfigName(configPO);
         if(ObjectUtil.isNotNull(list)){
-            configPO.setId(null);
-            return configPO;
+            configPO.setModifyUserId(currentUserId);
+            configPO.setModifyTime(currentTime);
+            configPO.setIsDeleted(DictConstants.NO);
+            configMapper.updateConfig(configPO);
+            LogUtil.update();
+
+        }else {
+            configPO.setCreateUserId(currentUserId);
+            configPO.setCreateTime(currentTime);
+            configPO.setModifyUserId(currentUserId);
+            configPO.setModifyTime(currentTime);
+            configPO.setIsDeleted(DictConstants.NO);
+            //单独处理配置描述
+            configPO.setDescription(configVO.getConfigDescription());
+            //主表主键
+            String configId = StringUtil.getRandomUUID();
+            configPO.setId(configId);
+            configPO.setConfigCode(StringUtil.getRandomCode());
+            configMapper.insertConfig(configPO);
         }
-        String currentUserId = AuthUtil.getCurrentUserId();
-        Timestamp currentTime = TimeUtil.getNowForMysql();
-        configPO.setCreateUserId(currentUserId);
-        configPO.setCreateTime(currentTime);
-        configPO.setModifyUserId(currentUserId);
-        configPO.setModifyTime(currentTime);
-        configPO.setIsDeleted(DictConstants.NO);
-        //单独处理配置描述
-        configPO.setDescription(configVO.getConfigDescription());
-        //主表主键
-        String configId = StringUtil.getRandomUUID();
-        configPO.setId(configId);
-        configPO.setConfigCode(StringUtil.getRandomCode());
-        configMapper.insertConfig(configPO);
-        //删除子表旧数据
-        configMapper.delConfigSensors(configPO);
+        //复制车辆表旧数据
+        if(configPO.getVehicleId() != null){
+            VehicleParam vehicleParam = new VehicleParam();
+            vehicleParam.setId(configPO.getVehicleId());
+            VehicleVO vehicleInfo = vehicleMapper.getVehicleInfo(vehicleParam);
+            VehiclePO po = vehicleService.shareVehicle(vehicleInfo);
+        }
+
+        //复制传感器表数据
+
         //构建字表新数据
         Map<String, List<ConfigSensorVO>> configSensors = configVO.getConfigSensors();
         List<ConfigSensorPO> configSensorPOs = new ArrayList<>();
         if(ObjectUtil.isNotNull(configSensors)){
             configSensors.forEach((sensorType,configSensorVOs)->{
+
                 if(ObjectUtil.isNotNull(configSensorVOs)){
                     configSensorVOs.forEach(vo -> {
                         ConfigSensorPO po = new ConfigSensorPO();
@@ -177,6 +270,50 @@ public class ConfigService {
                         po.setModifyTime(currentTime);
                         po.setIsDeleted(DictConstants.NO);
                         configSensorPOs.add(po);
+
+                        switch (sensorType) {
+                            case "camera": {
+                                CameraParam cameraParam = new CameraParam();
+                                cameraParam.setId(vo.getId());
+                                CameraVO cameraVO = cameraService.getCameraInfo(cameraParam);
+                                CameraPO cameraPO = new CameraPO();
+                                ObjectUtil.voToPo(cameraVO,cameraPO);
+                                CameraPO cameraPO1 = cameraService.shareCamera(cameraPO);
+                                break;
+                            }
+                            case "lidar":{
+                                LidarParam lidarParam = new LidarParam();
+                                lidarParam.setId(vo.getId());
+                                LidarVO lidarVO = lidarService.getLidarInfo(lidarParam);
+                                LidarPO lidarPO = new LidarPO();
+                                ObjectUtil.voToPo(lidarVO,lidarPO);
+                                LidarPO lidarPO1 = lidarService.shareLidar(lidarPO);
+                                break;
+                            }
+                            case "ogt":{
+                                OgtParam ogtParam = new OgtParam();
+                                ogtParam.setId(vo.getId());
+                                OgtVO ogtVO = ogtService.getOgtInfo(ogtParam);
+                                OgtPO ogtPO = new OgtPO();
+                                ObjectUtil.voToPo(ogtVO,ogtPO);
+                                OgtPO ogtPO1 = ogtService.shareOgt(ogtPO);
+                                break;
+                            }
+                            case "gps":{
+                                GpsParam gpsParam = new GpsParam();
+                                gpsParam.setId(vo.getId());
+                                GpsVO gpsVO = gpsService.getGpsInfo(gpsParam);
+                                GpsPO gpsPO = new GpsPO();
+                                ObjectUtil.voToPo(gpsVO,gpsPO);
+                                GpsPO gpsPO1 = gpsService.shareGps(gpsPO);
+                                break;
+                            }
+                            case "radar":{
+                                break;
+                            }
+                            default:break;
+                        }
+
                     });
                 }
             });

+ 13 - 7
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/GpsService.java

@@ -7,6 +7,7 @@ import api.common.pojo.vo.model.GpsVO;
 import api.common.util.LogUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
+import api.common.util.TimeUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.common.utils.PoUtil;
 import com.css.simulation.resource.model.mapper.GpsMapper;
@@ -71,14 +72,19 @@ public class GpsService {
         //名称校验
         List<GpsVO> list = gpsMapper.checkGpsName(gpsPO);
         if(ObjectUtil.isNotNull(list)){
-            gpsPO.setId(null);
-            return gpsPO;
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            gpsPO.setModifyUserId(currentUserId);
+            gpsPO.setModifyTime(currentTime);
+            gpsMapper.update(gpsPO);
+            LogUtil.update();
+        }else {
+            //常规字段赋值
+            PoUtil.initAddPo(gpsPO);
+            gpsPO.setId(StringUtil.getRandomUUID());
+            gpsPO.setSensorCode(StringUtil.getRandomCode());
+            gpsMapper.insert(gpsPO);
         }
-        //常规字段赋值
-        PoUtil.initAddPo(gpsPO);
-        gpsPO.setId(StringUtil.getRandomUUID());
-        gpsPO.setSensorCode(StringUtil.getRandomCode());
-        gpsMapper.insert(gpsPO);
         LogUtil.share();
         return gpsPO;
     }

+ 18 - 13
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/LidarService.java

@@ -77,20 +77,25 @@ public class LidarService {
         //名称校验
         List<LidarVO> list = lidarMapper.checkLidarName(lidarPO);
         if(ObjectUtil.isNotNull(list)){
-            lidarPO.setId(null);
-            return lidarPO;
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            lidarPO.setModifyUserId(currentUserId);
+            lidarPO.setModifyTime(currentTime);
+            lidarMapper.update(lidarPO);
+            LogUtil.update();
+        }else {
+            //常规字段赋值
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            lidarPO.setCreateUserId(currentUserId);
+            lidarPO.setCreateTime(currentTime);
+            lidarPO.setModifyUserId(currentUserId);
+            lidarPO.setModifyTime(currentTime);
+            lidarPO.setIsDeleted(DictConstants.NO);
+            lidarPO.setId(StringUtil.getRandomUUID());
+            lidarPO.setSensorCode(StringUtil.getRandomCode());
+            lidarMapper.insert(lidarPO);
         }
-        //常规字段赋值
-        String currentUserId = AuthUtil.getCurrentUserId();
-        Timestamp currentTime = TimeUtil.getNowForMysql();
-        lidarPO.setCreateUserId(currentUserId);
-        lidarPO.setCreateTime(currentTime);
-        lidarPO.setModifyUserId(currentUserId);
-        lidarPO.setModifyTime(currentTime);
-        lidarPO.setIsDeleted(DictConstants.NO);
-        lidarPO.setId(StringUtil.getRandomUUID());
-        lidarPO.setSensorCode(StringUtil.getRandomCode());
-        lidarMapper.insert(lidarPO);
         LogUtil.share();
         return lidarPO;
     }

+ 18 - 13
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/OgtService.java

@@ -79,20 +79,25 @@ public class OgtService {
         //名称校验
         List<OgtVO> list = ogtMapper.checkOgtName(ogtPO);
         if(ObjectUtil.isNotNull(list)){
-            ogtPO.setId(null);
-            return ogtPO;
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            ogtPO.setModifyUserId(currentUserId);
+            ogtPO.setModifyTime(currentTime);
+            ogtMapper.update(ogtPO);
+            LogUtil.update();
+        }else {
+            //常规字段赋值
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            ogtPO.setCreateUserId(currentUserId);
+            ogtPO.setCreateTime(currentTime);
+            ogtPO.setModifyUserId(currentUserId);
+            ogtPO.setModifyTime(currentTime);
+            ogtPO.setIsDeleted(DictConstants.NO);
+            ogtPO.setId(StringUtil.getRandomUUID());
+            ogtPO.setSensorCode(StringUtil.getRandomCode());
+            ogtMapper.insert(ogtPO);
         }
-        //常规字段赋值
-        String currentUserId = AuthUtil.getCurrentUserId();
-        Timestamp currentTime = TimeUtil.getNowForMysql();
-        ogtPO.setCreateUserId(currentUserId);
-        ogtPO.setCreateTime(currentTime);
-        ogtPO.setModifyUserId(currentUserId);
-        ogtPO.setModifyTime(currentTime);
-        ogtPO.setIsDeleted(DictConstants.NO);
-        ogtPO.setId(StringUtil.getRandomUUID());
-        ogtPO.setSensorCode(StringUtil.getRandomCode());
-        ogtMapper.insert(ogtPO);
         LogUtil.share();
         return ogtPO;
     }

+ 14 - 7
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/VehicleService.java

@@ -7,6 +7,7 @@ import api.common.pojo.vo.model.VehicleVO;
 import api.common.util.LogUtil;
 import api.common.util.ObjectUtil;
 import api.common.util.StringUtil;
+import api.common.util.TimeUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.common.utils.PoUtil;
 import com.css.simulation.resource.model.mapper.VehicleMapper;
@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.sql.Timestamp;
 import java.util.Arrays;
 import java.util.List;
 
@@ -83,14 +85,19 @@ public class VehicleService {
         //名称校验
         List<VehicleVO> list = vehicleMapper.checkVehicleName(vehiclePO);
         if(ObjectUtil.isNotNull(list)){
-            vehiclePO.setId(null);
-            return vehiclePO;
+            String currentUserId = AuthUtil.getCurrentUserId();
+            Timestamp currentTime = TimeUtil.getNowForMysql();
+            vehiclePO.setModifyUserId(currentUserId);
+            vehiclePO.setModifyTime(currentTime);
+            vehicleMapper.update(vehiclePO);
+            LogUtil.update();
+        }else {
+            //常规字段赋值
+            PoUtil.initAddPo(vehiclePO);
+            vehiclePO.setId(StringUtil.getRandomUUID());
+            vehiclePO.setVehicleCode(StringUtil.getRandomCode());
+            vehicleMapper.insert(vehiclePO);
         }
-        //常规字段赋值
-        PoUtil.initAddPo(vehiclePO);
-        vehiclePO.setId(StringUtil.getRandomUUID());
-        vehiclePO.setVehicleCode(StringUtil.getRandomCode());
-        vehicleMapper.insert(vehiclePO);
         LogUtil.share();
         return vehiclePO;
     }

+ 15 - 8
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScoringRulesController.java

@@ -61,12 +61,12 @@ public class ScoringRulesController {
     //查唯一
     @PostMapping("/queryScoringRulesCount")
     @ResponseBody
-    public ResponseBodyVO<List<ScoringRulesPO>> queryScoringRulesCount(@RequestBody ScoringRulesParam parms) {
+    public ResponseBodyVO<ScoringRulesPO> queryScoringRulesCount(@RequestBody ScoringRulesParam parms) {
         if (ObjectUtil.isNull(parms.getRuleName())) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "参数RulesName不能为空,请检查");
         }
-        List<ScoringRulesPO> list = scoringRulesService.queryScoringRulesByRuleName(parms);
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, list);
+        ScoringRulesPO po = scoringRulesService.queryScoringRulesByRuleName(parms);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, po);
     }
 
 
@@ -80,8 +80,8 @@ public class ScoringRulesController {
         BeanUtils.copyProperties(scoringRulesPO, vo);
         vo.setShare("0");
         //1 检查是否存在同名平分规则
-        List<ScoringRulesPO> list = scoringRulesService.queryScoringRulesByRuleName(vo);
-        if (list != null && list.size() > 0) {
+        ScoringRulesPO tmPo = scoringRulesService.queryScoringRulesByRuleName(vo);
+        if (ObjectUtil.isNotNull(tmPo)) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "规则名称 ruleName 已存在,请重新命名。");
         }
         //2 校验 python 语法错误
@@ -116,9 +116,16 @@ public class ScoringRulesController {
         ScoringRulesPO po = scoringRulesService.queryScoringRules(params);
         params.setShare("1");
         params.setRuleName(po.getRuleName());
-        List<ScoringRulesPO> list = scoringRulesService.queryScoringRulesByRuleName(params);
-        if (list != null && list.size() > 0) {
+        ScoringRulesPO tmPo = scoringRulesService.queryScoringRulesByRuleName(params);
+       /* if (list != null && list.size() > 0) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "规则名称ruleName已存在,请重新命名", "");
+        }*/
+
+        if (ObjectUtil.isNotNull(tmPo)) {
+            po.setShare("1");
+            po.setRulesId(tmPo.getRulesId());
+            scoringRulesService.updateScoringRules(po);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         }
         po.setShare("1");
         scoringRulesService.saveScoringRules(po);
@@ -139,7 +146,7 @@ public class ScoringRulesController {
     public ResponseBodyVO<List<ScoringRulesPO>> queryCsb() {
         ScoringRulesParam params = new ScoringRulesParam();
         params.setShare("0");
-        List<ScoringRulesPO> list = scoringRulesService.queryScoringRulesList(params);
+        List<ScoringRulesPO> list = scoringRulesService.queryScoringRulesListCSB(params);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, list);
     }
 

+ 1 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScenePackageMapper.java

@@ -27,7 +27,7 @@ public interface ScenePackageMapper {
     ScenePackageNewVO queryScenePackageBySublist(String packageId);
 
     //测试包名查唯一
-    List<ScenePackageNewVO> queryByPackageName(ScenePackagePO params);
+    ScenePackageNewVO queryByPackageName(ScenePackagePO params);
     //测试包数量
     Integer queryPackageCount(ScenePackagePO params);
 

+ 1 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/ScoringRulesMapper.java

@@ -13,7 +13,7 @@ public interface ScoringRulesMapper {
 
     void saveScoringRules(ScoringRulesPO params);
 
-    List<ScoringRulesPO> queryScoringRulesByRuleName(ScoringRulesParam params);
+    ScoringRulesPO queryScoringRulesByRuleName(ScoringRulesParam params);
 
     List<ScoringRulesPO> queryScoringRulesList(ScoringRulesParam params);
     Integer queryCsbById(ScoringRulesParam params);

+ 1 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneAccidentService.java

@@ -712,6 +712,7 @@ public class SceneAccidentService {
                                     sceneAccidentPO.setSceneWeather(root.path("天气").asText());
                                     sceneAccidentPO.setMaxTime(root.path("max_time").asText());
                                     sceneAccidentPO.setIsDeleted("0");
+                                    sceneAccidentPO.setShare("0");
                                     if (ObjectUtil.isNull(sceneAccidentPO.getOsgbAddress())) {
                                         sceneAccidentPO.setOsgbAddress(osgbAdress);
                                     }

+ 12 - 6
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/SceneGeneralExampleService.java

@@ -159,25 +159,29 @@ public class SceneGeneralExampleService {
         //远程调用接口
         Map map=  beanToMap(po);
         RequestConfig requestConfig = RequestConfig.custom()
-                .setSocketTimeout(6*10*1000)
-                .setConnectTimeout(6*10*1000)
-                .setConnectionRequestTimeout(6*10*1000)
+                .setSocketTimeout(2*60*1000)
+                .setConnectTimeout(2*60*1000)
+                .setConnectionRequestTimeout(2*6*10*1000)
                 .setRedirectsEnabled(false)
                 .setExpectContinueEnabled(false)
                 .build();
-
+       // log.info("测试是否调用成功---入参--"+map);
         String post = HttpUtil.post(HttpUtil.getHttpClient(), requestConfig, "http://47.94.105.148:5000/test_1.0", null, map);
-       Boolean success= JsonUtil.readTree(post).get("success").asBoolean();
+       //log.info("测试是否调用成功-----"+post);
+
+        Boolean success= JsonUtil.readTree(post).get("success").asBoolean();
        if(!success){
            String message= JsonUtil.readTree(post).get("message").toString();
            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, message);
        }
         JsonNode params = JsonUtil.readTree(post).get("params");
+
         // 实例化 ObjectMapper 对象
         ObjectMapper objectMapper = new ObjectMapper();
         String newjson = objectMapper.writeValueAsString(params);
-        List<SceneGeneralDataPO>  list=JsonUtil.jsonToList(newjson,SceneGeneralDataPO.class);
 
+        List<SceneGeneralDataPO>  list=JsonUtil.jsonToList(newjson,SceneGeneralDataPO.class);
+        log.info("测试是否调用成功---444--"+list.size());
         String sceneGeneralizationIds=null;
         //生成指标id
         String sublistId=StringUtil.getRandomUUID();
@@ -218,6 +222,8 @@ public class SceneGeneralExampleService {
         map1.put("templateId",po.getTemplateId()); //模板id
         map1.put("sceneGeneralizationIds",sceneGeneralizationIds);//泛化场景数组
         map1.put("sublistId",sublistId); //指标id
+
+        log.info("测试是否调用成功---555555--"+map1);
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, map1);
 
     }

+ 61 - 11
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java

@@ -2,8 +2,10 @@ package com.css.simulation.resource.scene.service;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.scene.ScenePackageParam;
+import api.common.pojo.param.scene.ScoringRulesParam;
 import api.common.pojo.po.scene.ScenePackagePO;
 import api.common.pojo.po.scene.ScenePackageSublistPO;
+import api.common.pojo.po.scene.ScoringRulesPO;
 import api.common.pojo.vo.scene.ScenePackageNewVO;
 import api.common.pojo.vo.scene.ScenePackageSublistVO;
 import api.common.util.LogUtil;
@@ -13,6 +15,7 @@ import api.common.util.TimeUtil;
 import com.css.simulation.resource.common.utils.AuthUtil;
 import com.css.simulation.resource.scene.mapper.ScenePackageMapper;
 import com.css.simulation.resource.scene.mapper.ScenePackageSublistMapper;
+import com.css.simulation.resource.scene.mapper.ScoringRulesMapper;
 import com.css.simulation.resource.system.service.ParameterService;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -32,6 +35,9 @@ public class ScenePackageService {
     private ScenePackageSublistMapper scenePackageSublistMapper;
     @Resource
     private ParameterService parameterService;
+    @Resource
+    private ScoringRulesMapper scoringRulesMapper;
+
 
     /**
      * 测试包数据录入大保存:
@@ -44,8 +50,8 @@ public class ScenePackageService {
             po.setPackageName(vo.getSublistName());
             po.setCreateUserId(AuthUtil.getCurrentUserId());
             po.setShare("0");
-            List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
-            if (listName != null && listName.size() > 0) {
+            ScenePackageNewVO scenePackageNewVO  = scenePackageMapper.queryByPackageName(po);
+            if (ObjectUtil.isNotNull(scenePackageNewVO)) {
                 return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + po.getPackageName() + "已存在,请重新命名");
             }
             po.setWeight(vo.getWeight());
@@ -109,8 +115,8 @@ public class ScenePackageService {
             po.setCreateUserId(AuthUtil.getCurrentUserId());
             po.setShare("0");
             po.setPackageId(vo.getId());
-            List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
-            if (listName != null && listName.size() > 0) {
+            ScenePackageNewVO scenePackageNewVO = scenePackageMapper.queryByPackageName(po);
+            if (ObjectUtil.isNotNull(scenePackageNewVO)) {
                 return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + po.getPackageName() + "已存在,请重新命名");
             }
             po.setWeight(vo.getWeight());
@@ -257,16 +263,19 @@ public class ScenePackageService {
         ScenePackagePO po = new ScenePackagePO();
         po.setShare("1");
         po.setPackageName(scenePackagePO.getPackageName());
-        List<ScenePackageNewVO> listName = scenePackageMapper.queryByPackageName(po);
-        if (listName != null && listName.size() > 0) {
-            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + listName.get(0).getPackageName() + "的测试包已存在,请检查");
-        }
+        ScenePackageNewVO scenePackageNewVO = scenePackageMapper.queryByPackageName(po);
+
         BeanUtils.copyProperties(scenePackagePO, po);
         po.setCreateTime(TimeUtil.getNowForMysql());
         po.setModifyTime(TimeUtil.getNowForMysql());
         po.setCreateUserId(AuthUtil.getCurrentUserId());
         po.setPackageCode(StringUtil.getRandomCode());
-        String uuId = StringUtil.getRandomUUID();
+        String uuId ="";
+        if (ObjectUtil.isNotNull(scenePackageNewVO)) {
+           uuId =scenePackageNewVO.getPackageId();
+        }else{
+           uuId = StringUtil.getRandomUUID();
+        }
         po.setPackageId(uuId);
         po.setIsDeleted("0");
         po.setShare("1");
@@ -276,6 +285,9 @@ public class ScenePackageService {
         if (treeList != null && treeList.size() > 1) {
             Set set = new HashSet();
             Map map = new HashMap<>();
+            //打分规则
+            ScoringRulesParam scoringRulesParam=new ScoringRulesParam();
+            ScoringRulesParam gyParam=new ScoringRulesParam();
             for (ScenePackageSublistPO vo : treeList) {
                 Object sublistName = map.get(vo.getSublistName());
                 if (ObjectUtil.isNull(sublistName)) {
@@ -283,12 +295,50 @@ public class ScenePackageService {
                 } else {
                     set.add(vo.getSublistName());
                 }
+                //分享打分规则
+                scoringRulesParam.setRulesId(vo.getPackageAndRules());
+                ScoringRulesPO syPo= scoringRulesMapper.queryScoringRules( scoringRulesParam);//私有
+                gyParam.setShare("1");
+                gyParam.setRuleName(syPo.getRuleName());
+                ScoringRulesPO gyPo=scoringRulesMapper.queryScoringRulesByRuleName(gyParam);
+                if(ObjectUtil.isNotNull(gyPo)){
+                    syPo.setRulesId(gyPo.getRulesId());
+                    syPo.setShare("1");
+                    syPo.setModifyTime(TimeUtil.getNowForMysql());
+                    syPo.setModifyUserId(AuthUtil.getCurrentUserId());
+                    scoringRulesMapper.updateScoringRules(syPo);
+                }else{
+                    syPo.setCreateTime(TimeUtil.getNowForMysql());
+                    syPo.setModifyTime(TimeUtil.getNowForMysql());
+                    syPo.setRulesId(StringUtil.getRandomUUID());
+                    syPo.setRulesCode(StringUtil.getRandomCode());
+                    syPo.setCreateUserId(AuthUtil.getCurrentUserId());
+                    syPo.setIsDeleted("0");
+                    syPo.setShare("1");
+                    scoringRulesMapper.saveScoringRules(syPo);
+                    vo.setPackageAndRules(syPo.getRulesId());
+                }
+
             }
             if (ObjectUtil.isNotNull(set)) {
                 return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "该条数据中指标名称:" + set + "重复,请检查");
             }
+
+
+
+        }
+        //判断是否存在,存在覆盖
+        if (ObjectUtil.isNotNull(scenePackageNewVO)) {
+            //return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "测试包名称:" + listName.get(0).getPackageName() + "的测试包已存在,请检查");
+            scenePackagePO.setShare("1");
+            scenePackagePO.setModifyTime(TimeUtil.getNowForMysql());
+            scenePackagePO.setModifyUserId(AuthUtil.getCurrentUserId());
+            scenePackagePO.setPackageId(scenePackageNewVO.getPackageId());
+            scenePackageMapper.updateScenePackage(scenePackagePO);
+            scenePackageSublistMapper.deleteScenePackageSublist(scenePackageNewVO.getPackageId());
+        }else{
+            scenePackageMapper.saveScenePackage(po);
         }
-        scenePackageMapper.saveScenePackage(po);
         scenePackageSublistMapper.saveScenePackageSublistAll(treeList);
         LogUtil.insert();
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
@@ -342,7 +392,7 @@ public class ScenePackageService {
     }
 
     //测试包名查唯一
-    public List<ScenePackageNewVO> queryByPackageName(ScenePackagePO params) {
+    public ScenePackageNewVO queryByPackageName(ScenePackagePO params) {
         return scenePackageMapper.queryByPackageName(params);
     }
 

+ 19 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScoringRulesService.java

@@ -35,6 +35,21 @@ public class ScoringRulesService {
         LogUtil.insert();
     }
 
+    @SneakyThrows
+    public List<ScoringRulesPO> queryScoringRulesListCSB(ScoringRulesParam params) {
+        if (params != null && params.getShare() != null && params.getShare().equals("0")) {
+            params.setCreateUserId(AuthUtil.getCurrentUserId());
+        }
+        List<ScoringRulesPO> list = scoringRulesMapper.queryScoringRulesList(params);
+
+        //查询共有
+        params.setCreateUserId("");
+        params.setShare("1");
+        List<ScoringRulesPO> list1 = scoringRulesMapper.queryScoringRulesList(params);
+        list.addAll(list1);
+        return list;
+    }
+
     @SneakyThrows
     public List<ScoringRulesPO> queryScoringRulesList(ScoringRulesParam params) {
         if (params != null && params.getShare() != null && params.getShare().equals("0")) {
@@ -44,6 +59,7 @@ public class ScoringRulesService {
         return list;
     }
 
+
     @SneakyThrows
     public ScoringRulesPO queryScoringRules(ScoringRulesParam params) {
         ScoringRulesPO Po = scoringRulesMapper.queryScoringRules(params);
@@ -51,10 +67,10 @@ public class ScoringRulesService {
     }
 
     @SneakyThrows
-    public List<ScoringRulesPO> queryScoringRulesByRuleName(ScoringRulesParam params) {
-        if (params.getShare().equals("0")) {
+    public ScoringRulesPO queryScoringRulesByRuleName(ScoringRulesParam params) {
+   /*     if (params.getShare().equals("0")) {
             params.setCreateUserId(AuthUtil.getCurrentUserId());
-        }
+        }*/
         return scoringRulesMapper.queryScoringRulesByRuleName(params);
     }
 

+ 8 - 6
simulation-resource-server/src/main/resources/mapper/algorithm/AlgorithmMapper.xml

@@ -83,19 +83,21 @@
 
     <!--查询绑定算法的正在运行的项目-->
     <select id="selectRunningProject"  parameterType="java.lang.String" resultType="api.common.pojo.vo.algorithm.RunningProjectVO">
-        select id,project_id  from simulation_automatic_subproject
-        where now_run_state = '20' and is_deleted = '0'
+        select a.id,a.project_id  from simulation_automatic_subproject a left join simulation_automatic_project b
+        on a.parent_id=b.id
+        where a.now_run_state = '20' and a.is_deleted = '0' and  b.is_deleted = '0'
         <if test="id != null and id != ''">
-            and  algorithm = #{id,jdbcType=VARCHAR}
+            and  b.algorithm = #{id,jdbcType=VARCHAR}
         </if>
     </select>
 
     <!--查询绑定算法的正在运行的项目的父项目-->
     <select id="selectRunningProjectParent"  parameterType="java.lang.String" resultType="api.common.pojo.vo.algorithm.RunningProjectVO">
-        select distinct parent_id as id,parent_project_id as projectId  from simulation_automatic_subproject
-        where now_run_state = '20' and is_deleted = '0'
+        select distinct a.parent_id as id,a.parent_project_id as projectId  from simulation_automatic_subproject a left join simulation_automatic_project b
+        on a.parent_id=b.id
+        where a.now_run_state = '20' and a.is_deleted = '0' and  b.is_deleted = '0'
         <if test="id != null and id != ''">
-            and  algorithm = #{id,jdbcType=VARCHAR}
+            and  b.algorithm = #{id,jdbcType=VARCHAR}
         </if>
     </select>
 

+ 2 - 2
simulation-resource-server/src/main/resources/mapper/scene/SceneAccidentMapper.xml

@@ -302,7 +302,7 @@
        scene_weather=#{sceneWeather},modify_time=#{modifyTime},
        modify_user_id=#{modifyUserId},video_address=#{videoAddress},
        osgb_address=#{osgbAddress},xml_address=#{xmlAddress},
-       xodr_address=#{xodrAddress},json_address=#{jsonAddress},max_time=#{maxTime}
+       xodr_address=#{xodrAddress},json_address=#{jsonAddress},max_time=#{maxTime},share=#{share}
         where accident_id = #{accidentId,jdbcType=VARCHAR}
     </update>
 
@@ -316,7 +316,7 @@
             scene_weather=#{item.sceneWeather},modify_time=#{item.modifyTime},
             modify_user_id=#{item.modifyUserId},video_address=#{item.videoAddress},
             osgb_address=#{item.osgbAddress},xml_address=#{item.xmlAddress},
-            xodr_address=#{item.xodrAddress},json_address=#{item.jsonAddress},max_time=#{item.maxTime}
+            xodr_address=#{item.xodrAddress},json_address=#{item.jsonAddress},max_time=#{item.maxTime},share=#{share}
             where accident_id = #{item.accidentId,jdbcType=VARCHAR}
         </foreach>
     </update>

+ 14 - 0
simulation-resource-server/src/main/resources/mapper/scene/SceneGeneralTemplateMapper.xml

@@ -80,6 +80,13 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="scenarioRoadType != null and scenarioRoadType.size()>0 ">
+                and scenario_road_type in
+                <foreach collection="scenarioRoadType" item="item" index="index"
+                         separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
         order by modify_time desc
         </where>
     </select>
@@ -201,6 +208,13 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="scenarioRoadType != null and scenarioRoadType.size()>0 ">
+                and scenario_road_type in
+                <foreach collection="scenarioRoadType" item="item" index="index"
+                         separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
             order by modify_time desc
         </where>
     </select>

+ 0 - 3
simulation-resource-server/src/main/resources/mapper/scene/ScenePackageMapper.xml

@@ -160,9 +160,6 @@
             <if test="packageName != null and packageName != ''">
                 and package_name =#{packageName,jdbcType=VARCHAR}
             </if>
-            <if test="createUserId != null and createUserId != ''">
-                and create_user_id=#{createUserId,jdbcType=VARCHAR}
-            </if>
             <if test="share != null and share != ''">
                 and share=#{share,jdbcType=VARCHAR}
             </if>

+ 1 - 4
simulation-resource-server/src/main/resources/mapper/scene/ScoringRulesMapper.xml

@@ -43,9 +43,9 @@
             <if test="createUserId != null and createUserId != ''">
                 and create_user_id=#{createUserId,jdbcType=VARCHAR}
             </if>
-
             order by modify_time desc
         </where>
+
     </select>
     <select id="queryScoringRules" parameterType="api.common.pojo.param.scene.ScoringRulesParam"
             resultType="api.common.pojo.po.scene.ScoringRulesPO">
@@ -77,9 +77,6 @@
             <if test="ruleName != null and ruleName != ''">
                 and rule_name =#{ruleName}
             </if>
-            <if test="createUserId != null and createUserId != ''">
-                and create_user_id=#{createUserId,jdbcType=VARCHAR}
-            </if>
             <if test="share != null and share != ''">
                 and share=#{share,jdbcType=VARCHAR}
             </if>