Эх сурвалжийг харах

车辆配置分享时传感器绑定的配置id未修改

root 2 жил өмнө
parent
commit
c09c7aaa8e

+ 13 - 8
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/ConfigService.java

@@ -222,6 +222,7 @@ public class ConfigService {
     }
 
     public ConfigPO shareConfigByInfo(ConfigVO configVO) {
+
         // 构建新的车辆配置对象
         ConfigPO configPO = new ConfigPO();
         ObjectUtil.voToPo(configVO, configPO);
@@ -314,23 +315,19 @@ public class ConfigService {
                             default:
                                 break;
                         }
-
                     });
                 }
             });
         }
 
-        if (ObjectUtil.isNotNull(configSensorPOs)) {
-            log.info("即将保存的传感器信息为:" + configSensorPOs);
-            relationConfigSensorMapper.deleteByConfigId(configPO.getId());  // 删除配置与传感器关联关系,方便后面重新添加
-            configMapper.insertConfigSensors(configSensorPOs);
-        }
+        final String publicConfigId;
 
         List<ConfigVO> list = configMapper.checkConfigName(configPO);   // 查询公有车辆配置是否有重名
         if (ObjectUtil.isNotNull(list)) {   // 不为空说明有重名,则将参数覆盖
             configPO.setVehicleId(vehicleId);   // 关联车辆id修改成公有车辆id
             ConfigVO configVO2 = list.get(0);
-            configPO.setId(configVO2.getId());
+            publicConfigId = configVO2.getId();
+            configPO.setId(publicConfigId);
             configPO.setModifyUserId(currentUserId);
             configPO.setModifyTime(currentTime);
             configPO.setIsDeleted(DictConstants.NO);
@@ -354,10 +351,18 @@ public class ConfigService {
             // 单独处理配置描述
             configPO.setDescription(configVO.getConfigDescription());
             // 主表主键
-            configPO.setId(StringUtil.getRandomUUID());
+            publicConfigId = StringUtil.getRandomUUID();
+            configPO.setId(publicConfigId);
             configPO.setConfigCode(StringUtil.getRandomCode());
             configMapper.insertConfig(configPO);
         }
+
+        if (CollectionUtil.isNotEmpty(configSensorPOs)) {
+            configSensorPOs.forEach(configSensorPO -> configSensorPO.setConfigId(publicConfigId));
+            log.info("即将保存的传感器信息为:" + configSensorPOs);
+            relationConfigSensorMapper.deleteByConfigId(configPO.getId());  // 删除配置与传感器关联关系,方便后面重新添加
+            configMapper.insertConfigSensors(configSensorPOs);
+        }
         return configPO;
     }