浏览代码

资料库调拨

lipenghui 3 月之前
父节点
当前提交
addb9cbc9b

+ 7 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotInfoClassifyServiceImpl.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotInfoClassifyListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotInfoClassifySaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotInfoClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotInfoClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotTreeDO;
@@ -48,6 +49,10 @@ public class IotInfoClassifyServiceImpl implements IotInfoClassifyService {
     private IotTreeMapper iotTreeMapper;
     @Autowired
     private IotInfoMapper iotInfoMapper;
+    @Autowired
+    private DeviceServiceImpl deviceServiceImpl;
+    @Autowired
+    private IotDeviceService iotDeviceService;
 
     @Override
     @CacheEvict(cacheNames = RedisKeyConstants.IOT_INFO_CHILDREN_ID_LIST,
@@ -70,7 +75,8 @@ public class IotInfoClassifyServiceImpl implements IotInfoClassifyService {
         iotTreeDO.setType("file");
         iotTreeDO.setOriginId(infoClassifyDO.getId());
         iotTreeDO.setName(infoClassifyDO.getName());
-        iotTreeDO.setDeptId(infoClassifyDO.getDeptId());
+        IotDeviceDO iotDevice = iotDeviceService.getIotDevice(infoClassifyDO.getDeviceId());
+        iotTreeDO.setDeptId(Objects.isNull(iotDevice) ? null : iotDevice.getDeptId());
         List<IotTreeDO> iotTreeDOS = iotTreeMapper.selectListByOriginId(infoClassifyDO.getDeviceId(),"device");
         List<IotTreeDO> iotTreeDOSs = iotTreeMapper.selectListByOriginId(infoClassifyDO.getParentId(),"file");
         if (CollUtil.isEmpty(iotTreeDOSs)) {

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotTreeService.java

@@ -1,6 +1,8 @@
 package cn.iocoder.yudao.module.pms.service;
 
 import javax.validation.*;
+
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotTreeListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotTreePageReqVO;
@@ -65,4 +67,11 @@ public interface IotTreeService {
         return getChildTreeList(Collections.singleton(id));
     }
     List<IotTreeDO> getChildTreeList(Collection<Long> ids);
+
+    /**
+     * 设备调拨变更资料库
+     * @param ids id数组
+     * @param targetDeptId 目标部门id
+     */
+    void deviceAllotTree(List<Long> ids, Long targetDeptId) throws ServiceException;
 }

+ 13 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotTreeServiceImpl.java

@@ -136,4 +136,17 @@ public class IotTreeServiceImpl implements IotTreeService {
         }
         return children;
     }
+
+    @Override
+    public void deviceAllotTree(List<Long> ids, Long targetDeptId) throws ServiceException {
+        List<IotTreeDO> iotTreeDOS = iotTreeMapper.selectListByOriginId(targetDeptId,"dept");
+        if (CollUtil.isEmpty(iotTreeDOS)) {throw new ServiceException(ErrorCodeConstants.IOT_TREE_NOT_EXISTS);}
+        ids.forEach(id ->{
+            List<IotTreeDO> device = iotTreeMapper.selectListByOriginId(id, "device");
+            device.forEach(de -> de.setParentId(iotTreeDOS.get(0).getId()));
+            iotTreeMapper.updateBatch(device);
+        });
+    }
+
+
 }