Ver Fonte

车辆配置分享和另存为接口,以及相关分享方法修改

zuoqingtong há 2 anos atrás
pai
commit
543ad027e7

+ 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;
     }