|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.pms.service.iotdeviceallotlog;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogPageReqVO;
|
|
@@ -115,6 +116,7 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
|
|
|
}
|
|
|
// 查询出所有要保存设备的id
|
|
|
List<Long> deviceIds = new ArrayList<>();
|
|
|
+ List<Long> changedDeviceIds = new ArrayList<>();
|
|
|
reqVOS.forEach(req -> {
|
|
|
deviceIds.add(req.getDeviceId());
|
|
|
});
|
|
@@ -125,9 +127,17 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
|
|
|
List<IotDeviceDO> tobeUpdatedDevices = new ArrayList<>();
|
|
|
List<IotDevicePersonRelationSaveReqVO> personRelations = new ArrayList<>();
|
|
|
AtomicReference<Long> deptId = new AtomicReference<>(0L);
|
|
|
+ // 设备对应 责任人姓名(逗号分隔)
|
|
|
+ AtomicReference<String> devicePersonNames = new AtomicReference<>(StrUtil.EMPTY);
|
|
|
+ // 如果选择了设备责任人 查询出所有责任人姓名
|
|
|
reqVOS.forEach(req -> {
|
|
|
deptId.set(req.getDeptId());
|
|
|
if (deviceMap.containsKey(req.getDeviceId()) && !req.getDeptId().equals(deviceMap.get(req.getDeviceId()).getDeptId())) {
|
|
|
+ // 如果同步选择了设备责任人 姓名也存在 将责任人姓名同步到 设备表 chargeName
|
|
|
+ if (CollUtil.isNotEmpty(req.getPersonNames())) {
|
|
|
+ devicePersonNames.set(CollUtil.join(req.getPersonNames(), StrUtil.COMMA));
|
|
|
+ }
|
|
|
+
|
|
|
IotDeviceAllotLogDO tempDeviceAllot = new IotDeviceAllotLogDO();
|
|
|
tempDeviceAllot.setDeviceId(req.getDeviceId());
|
|
|
tempDeviceAllot.setOldDeptId(deviceMap.get(req.getDeviceId()).getDeptId());
|
|
@@ -136,7 +146,10 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
|
|
|
deviceAllotLogs.add(tempDeviceAllot);
|
|
|
IotDeviceDO device = deviceMap.get(req.getDeviceId());
|
|
|
device.setDeptId(req.getDeptId());
|
|
|
+ device.setChargeName(devicePersonNames.get());
|
|
|
tobeUpdatedDevices.add(device);
|
|
|
+ // 只处理调拨前后部门不同的设备 相关历史数据
|
|
|
+ changedDeviceIds.add(req.getDeviceId());
|
|
|
}
|
|
|
// 如果同步选择了设备责任人 需要同步修改相关设备的责任人并记录日志
|
|
|
if (CollUtil.isNotEmpty(req.getPersonIds())) {
|
|
@@ -146,6 +159,7 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
|
|
|
tempReqVO.setReason(req.getReason());
|
|
|
personRelations.add(tempReqVO);
|
|
|
}
|
|
|
+
|
|
|
});
|
|
|
if (CollUtil.isNotEmpty(deviceAllotLogs)) {
|
|
|
iotDeviceAllotLogMapper.insertBatch(deviceAllotLogs);
|
|
@@ -161,17 +175,21 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
|
|
|
pmsThreadPoolTaskExecutor.execute(() -> {
|
|
|
// 异步修改 设备相关的 历史工单
|
|
|
// 运行记录的历史工单
|
|
|
- iotOpeationFillService.syncWordOrderData(deviceIds, null, deptId.get());
|
|
|
+ iotOpeationFillService.syncWordOrderData(changedDeviceIds, null, deptId.get());
|
|
|
// 故障上报历史工单部门
|
|
|
- iotFailureReportService.syncWordOrderData(deviceIds, deptId.get());
|
|
|
+ iotFailureReportService.syncWordOrderData(changedDeviceIds, deptId.get());
|
|
|
// 修改维修历史工单
|
|
|
- iotMaintainService.syncWordOrderData(deviceIds, deptId.get());
|
|
|
+ iotMaintainService.syncWordOrderData(changedDeviceIds, deptId.get());
|
|
|
// 修改巡检历史工单
|
|
|
- iotInspectOrderService.syncWordOrderData(deviceIds, deptId.get());
|
|
|
+ iotInspectOrderService.syncWordOrderData(changedDeviceIds, deptId.get());
|
|
|
// 修改保养历史工单
|
|
|
- iotMainWorkOrderService.syncWorkOrderData(deviceIds, deptId.get(), reqVOS.get(0).getPersonIds());
|
|
|
+ if (CollUtil.isNotEmpty(reqVOS.get(0).getPersonIds())) {
|
|
|
+ iotMainWorkOrderService.syncWorkOrderData(changedDeviceIds, deptId.get(), reqVOS.get(0).getPersonIds());
|
|
|
+ }
|
|
|
// 修改历史设备资料库
|
|
|
- iotTreeService.deviceAllotTree(deviceIds, deptId.get());
|
|
|
+ iotTreeService.deviceAllotTree(changedDeviceIds, deptId.get());
|
|
|
+ // 如果选择了设备责任人 用 责任人名称 更新设备表的字段 chargeName
|
|
|
+
|
|
|
});
|
|
|
return 1l;
|
|
|
}
|