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

pms 调拨同时调整责任人

zhangcl 2 сар өмнө
parent
commit
bcf4718f54

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdeviceallotlog/vo/IotDeviceAllotSaveReqVO.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 
 @Schema(description = "管理后台 - 设备调拨 Request VO")
 @Schema(description = "管理后台 - 设备调拨 Request VO")
 @Data
 @Data
@@ -25,4 +26,7 @@ public class IotDeviceAllotSaveReqVO {
     @Schema(description = "备注", example = "项目要求")
     @Schema(description = "备注", example = "项目要求")
     private String remark;
     private String remark;
 
 
+    @Schema(description = "人员id集合", example = "30175,122")
+    private List<Long> personIds;
+
 }
 }

+ 21 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotdeviceallotlog/IotDeviceAllotLogServiceImpl.java

@@ -6,11 +6,14 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonRelationSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceallotlog.IotDeviceAllotLogDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceallotlog.IotDeviceAllotLogDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdeviceallotlog.IotDeviceAllotLogMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdeviceallotlog.IotDeviceAllotLogMapper;
+import cn.iocoder.yudao.module.pms.service.iotdeviceperson.IotDevicePersonService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -35,6 +38,8 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
     private IotDeviceAllotLogMapper iotDeviceAllotLogMapper;
     private IotDeviceAllotLogMapper iotDeviceAllotLogMapper;
     @Resource
     @Resource
     private IotDeviceMapper iotDeviceMapper;
     private IotDeviceMapper iotDeviceMapper;
+    @Resource
+    private IotDevicePersonService iotDevicePersonService;
 
 
     @Override
     @Override
     public Long createIotDeviceAllotLog(IotDeviceAllotLogSaveReqVO createReqVO) {
     public Long createIotDeviceAllotLog(IotDeviceAllotLogSaveReqVO createReqVO) {
@@ -79,6 +84,7 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
     }
     }
 
 
     @Override
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Long saveDeviceAllot(List<IotDeviceAllotSaveReqVO> reqVOS) {
     public Long saveDeviceAllot(List<IotDeviceAllotSaveReqVO> reqVOS) {
         // 批量保存设备的状态
         // 批量保存设备的状态
         if (CollUtil.isEmpty(reqVOS)) {
         if (CollUtil.isEmpty(reqVOS)) {
@@ -94,6 +100,7 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
                 .collect(Collectors.toMap(IotDeviceDO::getId, device -> device));
                 .collect(Collectors.toMap(IotDeviceDO::getId, device -> device));
         List<IotDeviceAllotLogDO> deviceAllotLogs = new ArrayList<>();
         List<IotDeviceAllotLogDO> deviceAllotLogs = new ArrayList<>();
         List<IotDeviceDO> tobeUpdatedDevices = new ArrayList<>();
         List<IotDeviceDO> tobeUpdatedDevices = new ArrayList<>();
+        List<IotDevicePersonRelationSaveReqVO> personRelations = new ArrayList<>();
         reqVOS.forEach(req -> {
         reqVOS.forEach(req -> {
             if (deviceMap.containsKey(req.getDeviceId()) && !req.getDeptId().equals(deviceMap.get(req.getDeviceId()).getDeptId())) {
             if (deviceMap.containsKey(req.getDeviceId()) && !req.getDeptId().equals(deviceMap.get(req.getDeviceId()).getDeptId())) {
                 IotDeviceAllotLogDO tempDeviceAllot = new IotDeviceAllotLogDO();
                 IotDeviceAllotLogDO tempDeviceAllot = new IotDeviceAllotLogDO();
@@ -106,6 +113,14 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
                 device.setDeptId(req.getDeptId());
                 device.setDeptId(req.getDeptId());
                 tobeUpdatedDevices.add(device);
                 tobeUpdatedDevices.add(device);
             }
             }
+            // 如果同步选择了设备责任人 需要同步修改相关设备的责任人并记录日志
+            if (CollUtil.isNotEmpty(req.getPersonIds())) {
+                IotDevicePersonRelationSaveReqVO tempReqVO = new IotDevicePersonRelationSaveReqVO();
+                tempReqVO.setDeviceId(req.getDeviceId());
+                tempReqVO.setUserIds(req.getPersonIds());
+                tempReqVO.setReason(req.getReason());
+                personRelations.add(tempReqVO);
+            }
         });
         });
         if (CollUtil.isNotEmpty(deviceAllotLogs)) {
         if (CollUtil.isNotEmpty(deviceAllotLogs)) {
             iotDeviceAllotLogMapper.insertBatch(deviceAllotLogs);
             iotDeviceAllotLogMapper.insertBatch(deviceAllotLogs);
@@ -114,6 +129,12 @@ public class IotDeviceAllotLogServiceImpl implements IotDeviceAllotLogService {
         if (CollUtil.isNotEmpty(tobeUpdatedDevices)) {
         if (CollUtil.isNotEmpty(tobeUpdatedDevices)) {
             iotDeviceMapper.updateBatch(tobeUpdatedDevices);
             iotDeviceMapper.updateBatch(tobeUpdatedDevices);
         }
         }
+        // 如果选择了设备责任人 需要同步修改设备责任人并记录 日志
+        if (CollUtil.isNotEmpty(personRelations)) {
+            iotDevicePersonService.saveDevicePersons(personRelations);
+        }
+        // 同步修改 设备相关的 历史工单
+
         return 1l;
         return 1l;
     }
     }
 
 

+ 12 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotdevicebom/IotDeviceBomServiceImpl.java

@@ -5,9 +5,12 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicebom.vo.IotDeviceBomListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicebom.vo.IotDeviceBomListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicebom.vo.IotDeviceBomPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicebom.vo.IotDeviceBomPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicebom.vo.IotDeviceBomSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdevicebom.vo.IotDeviceBomSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicebom.IotDeviceBomDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdevicebom.IotDeviceBomDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdevicebom.IotDeviceBomMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotdevicebom.IotDeviceBomMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -29,8 +32,11 @@ public class IotDeviceBomServiceImpl implements IotDeviceBomService {
 
 
     @Resource
     @Resource
     private IotDeviceBomMapper iotDeviceBomMapper;
     private IotDeviceBomMapper iotDeviceBomMapper;
+    @Resource
+    private IotDeviceMapper iotDeviceMapper;
 
 
     @Override
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Long createIotDeviceBom(IotDeviceBomSaveReqVO createReqVO) {
     public Long createIotDeviceBom(IotDeviceBomSaveReqVO createReqVO) {
         // 插入
         // 插入
         IotDeviceBomDO iotDeviceBom = BeanUtils.toBean(createReqVO, IotDeviceBomDO.class);
         IotDeviceBomDO iotDeviceBom = BeanUtils.toBean(createReqVO, IotDeviceBomDO.class);
@@ -43,6 +49,12 @@ public class IotDeviceBomServiceImpl implements IotDeviceBomService {
             iotDeviceBomMapper.updateById(parentBomNode);
             iotDeviceBomMapper.updateById(parentBomNode);
         }
         }
         iotDeviceBomMapper.insert(iotDeviceBom);
         iotDeviceBomMapper.insert(iotDeviceBom);
+        // 设置 BOM所属设备的 bom_sync_status = 1
+        IotDeviceDO device = iotDeviceMapper.selectById(createReqVO.getDeviceId());
+        if (device.getBomSyncStatus() == 0) {
+            device.setBomSyncStatus(1);
+            iotDeviceMapper.updateById(device);
+        }
         // 返回
         // 返回
         return iotDeviceBom.getId();
         return iotDeviceBom.getId();
     }
     }