فهرست منبع

车辆配置分享

WXF 3 سال پیش
والد
کامیت
bf94f5b9c6

+ 4 - 1
api-common/src/main/java/api/common/pojo/vo/model/ConfigVO.java

@@ -3,6 +3,7 @@ package api.common.pojo.vo.model;
 import lombok.Data;
 
 import java.util.List;
+import java.util.Map;
 
 @Data
 public class ConfigVO {
@@ -24,7 +25,9 @@ public class ConfigVO {
     //是否分享
     private String share;
 
+    //传感器数量
+    private Map<String,String> sensorCount;
     //传感器配置列表
-    private List<ConfigSensorVO> configSensors;
+    private Map<String,List<ConfigSensorVO>> configSensors;
 
 }

+ 38 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/model/ctrl/ConfigCtrl.java

@@ -39,9 +39,9 @@ public class ConfigCtrl {
      */
     @RequestMapping("/getConfigInfo")
     @ResponseBody
-    public ResponseBodyVO<ConfigVO> getConfigInfo(@RequestBody ConfigPageParam pageParam){
+    public ResponseBodyVO<ConfigVO> getConfigInfo(@RequestBody ConfigVO configVO){
         ResponseBodyVO<ConfigVO> response = new ResponseBodyVO<ConfigVO>(ResponseBodyVO.Response.SUCCESS);
-        response.setInfo(configService.getConfigInfo(pageParam));
+        response.setInfo(configService.getConfigInfo(configVO));
         return response;
     }
 
@@ -63,6 +63,42 @@ public class ConfigCtrl {
         return response;
     }
 
+    /**
+     * 详情分享
+     */
+    @RequestMapping("/shareConfigByInfo")
+    @ResponseBody
+    public ResponseBodyVO<ConfigPO> shareConfigByInfo(@RequestBody ConfigVO configVO){
+        if(ObjectUtil.isNull(configVO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<ConfigPO> response = new ResponseBodyVO<ConfigPO>(ResponseBodyVO.Response.SUCCESS);
+        ConfigPO po = configService.shareConfigByInfo(configVO);
+        if(ObjectUtil.isNull(po.getId())){
+            return new ResponseBodyVO(false, 500, "配置名称重复!",null);
+        }
+        response.setInfo(po);
+        return response;
+    }
+
+    /**
+     * 列表分享
+     */
+    @RequestMapping("/shareConfigById")
+    @ResponseBody
+    public ResponseBodyVO<ConfigPO> shareConfigById(@RequestBody ConfigVO configVO){
+        if(ObjectUtil.isNull(configVO) || ObjectUtil.isNull(configVO.getId())){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<ConfigPO> response = new ResponseBodyVO<ConfigPO>(ResponseBodyVO.Response.SUCCESS);
+        ConfigPO po = configService.shareConfigById(configVO);
+        if(ObjectUtil.isNull(po.getId())){
+            return new ResponseBodyVO(false, 500, "配置名称重复!",null);
+        }
+        response.setInfo(po);
+        return response;
+    }
+
     /**
      * 删除
      */

+ 2 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/model/mapper/ConfigMapper.java

@@ -18,9 +18,9 @@ public interface ConfigMapper {
 
     List<ConfigVO> getConfigPageList(ConfigPageParam pageParam);
 
-    ConfigVO getConfigInfo(ConfigPageParam pageParam);
+    ConfigVO getConfigInfo(ConfigVO configVO);
 
-    List<ConfigSensorVO> getConfigSensors(ConfigPageParam pageParam);
+    List<ConfigSensorVO> getConfigSensors(ConfigVO configVO);
 
     List<ConfigVO> checkConfigName(ConfigPO configPO);
 

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

@@ -19,9 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ConfigService {
@@ -36,14 +35,25 @@ public class ConfigService {
             pageParam.setCreateUserId(null);
         }
         List<ConfigVO> list = configMapper.getConfigPageList(pageParam);
+        //传感器数量
+        list.forEach(configVO -> {
+            List<ConfigSensorVO> sensorList = configMapper.getConfigSensors(configVO);
+            Map<String, List<ConfigSensorVO>> configSensors = sensorList.stream().collect(Collectors.groupingBy(ConfigSensorVO::getSensorType));
+            Map<String,String> sensorCount = new HashMap<>();
+            configSensors.forEach((sensorType,configSensorVOs)->{
+                sensorCount.put(sensorType,String.valueOf(configSensorVOs.size()));
+            });
+            configVO.setSensorCount(sensorCount);
+        });
         return new PageInfo<>(list);
     }
 
-    public ConfigVO getConfigInfo(ConfigPageParam pageParam) {
-        ConfigVO ConfigvehicleVO = configMapper.getConfigInfo(pageParam);
-        List<ConfigSensorVO> configSensors = configMapper.getConfigSensors(pageParam);
-        ConfigvehicleVO.setConfigSensors(configSensors);
-        return ConfigvehicleVO;
+    public ConfigVO getConfigInfo(ConfigVO configVO) {
+        configVO = configMapper.getConfigInfo(configVO);
+        List<ConfigSensorVO> sensorList = configMapper.getConfigSensors(configVO);
+        Map<String, List<ConfigSensorVO>> configSensors = sensorList.stream().collect(Collectors.groupingBy(ConfigSensorVO::getSensorType));
+        configVO.setConfigSensors(configSensors);
+        return configVO;
     }
 
     public ConfigPO saveConfig(ConfigVO configVO) {
@@ -57,6 +67,7 @@ public class ConfigService {
         configPO.setModifyUserId(currentUserId);
         configPO.setModifyTime(currentTime);
         configPO.setIsDeleted(DictConstants.NO);
+        configPO.setShare(DictConstants.NO);//私有
         //单独处理配置描述
         configPO.setDescription(configVO.getConfigDescription());
         //名称校验
@@ -71,7 +82,6 @@ public class ConfigService {
             configId = StringUtil.getRandomUUID();
             configPO.setId(configId);
             configPO.setConfigCode(StringUtil.getRandomCode());
-            configPO.setShare(DictConstants.NO);//私有
             configMapper.insertConfig(configPO);
         }else{//修改
             configMapper.updateConfig(configPO);
@@ -79,21 +89,26 @@ public class ConfigService {
         //删除子表旧数据
         configMapper.delConfigSensors(configPO);
         //构建字表新数据
-        List<ConfigSensorVO> configSensorVOs = configVO.getConfigSensors();
+        //List<ConfigSensorVO> configSensorVOs = configVO.getConfigSensors();
+        Map<String, List<ConfigSensorVO>> configSensors = configVO.getConfigSensors();
         List<ConfigSensorPO> configSensorPOs = new ArrayList<>();
-        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(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)){
@@ -111,4 +126,66 @@ public class ConfigService {
         int i = configMapper.delConfigById(po);
         return i;
     }
+
+    public ConfigPO shareConfigByInfo(ConfigVO configVO) {
+        //构建主表对象
+        ConfigPO configPO = new ConfigPO();
+        ObjectUtil.voToPo(configVO,configPO);
+        configPO.setShare(DictConstants.YES);//转公有
+        configPO.setCreateUserId(null);
+        //名称校验
+        List<ConfigVO> list = configMapper.checkConfigName(configPO);
+        if(ObjectUtil.isNotNull(list)){
+            configPO.setId(null);
+            return 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);
+        //构建字表新数据
+        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 ConfigPO shareConfigById(ConfigVO configVO) {
+        configVO = getConfigInfo(configVO);
+        ConfigPO configPO = shareConfigByInfo(configVO);
+        return configPO;
+    }
 }

+ 8 - 3
simulation-resource-server/src/main/resources/mapper/model/ConfigMapper.xml

@@ -107,10 +107,15 @@
         select
             id
         from model_config
-        where is_deleted = '0' and share = '0'
+        where is_deleted = '0'
           and config_name = #{configName,jdbcType=VARCHAR}
-          and create_user_id = #{createUserId,jdbcType=VARCHAR}
-          and id &lt;&gt; #{id,jdbcType=VARCHAR}
+        <if test="share != null and share != ''">
+            and share = #{share,jdbcType=VARCHAR}
+        </if>
+        <if test="createUserId != null and createUserId != ''">
+            and create_user_id = #{createUserId,jdbcType=VARCHAR}
+            and id &lt;&gt; #{id,jdbcType=VARCHAR}
+        </if>
     </select>
 
     <insert id="insertConfig" parameterType="api.common.pojo.po.model.ConfigPO">