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

设备资料库初始化接口等

lipenghui 1 сар өмнө
parent
commit
c454eea0cf

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/IotTreeController.java

@@ -115,4 +115,9 @@ public class IotTreeController {
                         BeanUtils.toBean(list, IotTreeRespVO.class));
     }
 
+    @GetMapping("/init/tree")
+    @PermitAll
+    public void initTree() {
+        iotTreeService.initTree();
+    }
 }

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

@@ -69,7 +69,7 @@ public class IotInfoServiceImpl implements IotInfoService {
                 //如果是设备的话
                 IotTreeListReqVO reqVO = new IotTreeListReqVO();
                 if (classify.getParentId()==0) {
-                    reqVO.setType("device").setOriginId(classId);
+                    reqVO.setType("device").setOriginId(classify.getDeviceId());
                 } else {
                     reqVO.setType("file").setOriginId(classId);
                 }

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

@@ -74,4 +74,5 @@ public interface IotTreeService {
      * @param targetDeptId 目标部门id
      */
     void deviceAllotTree(List<Long> ids, Long targetDeptId) throws ServiceException;
+    void initTree();
 }

+ 69 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotTreeServiceImpl.java

@@ -8,20 +8,24 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotTreeListReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotTreePageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotTreeSaveReqVO;
+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.dataobject.IotTreeDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.IotInfoClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotTreeMapper;
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants;
 import com.google.common.collect.ImmutableMap;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
 
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 
@@ -36,6 +40,14 @@ public class IotTreeServiceImpl implements IotTreeService {
 
     @Resource
     private IotTreeMapper iotTreeMapper;
+    @Autowired
+    private DeptApi deptApi;
+    @Autowired
+    private IotDeviceService iotDeviceService;
+    @Autowired
+    private IotDeviceMapper iotDeviceMapper;
+    @Autowired
+    private IotInfoClassifyMapper iotInfoClassifyMapper;
 
     @Override
     public List<IotTreeDO> getIotTreeList(IotTreeListReqVO reqVO) {
@@ -152,5 +164,58 @@ public class IotTreeServiceImpl implements IotTreeService {
         });
     }
 
+    @Override
+    public void initTree() {
+        List<DeptRespDTO> deptList = deptApi.getDeptList();
+        List<IotTreeDO> treeDOS = new ArrayList<>();
+        deptList.forEach(dept -> {
+            IotTreeDO iotTreeDO = new IotTreeDO();
+            iotTreeDO.setOriginId(dept.getId());
+            iotTreeDO.setType("dept");
+            iotTreeDO.setName(dept.getName());
+            iotTreeDO.setDeleted(false);
+            iotTreeDO.setDeptId(dept.getId());
+            treeDOS.add(iotTreeDO);
+        });
+        iotTreeMapper.insertBatch(treeDOS);
+
+//        List<IotTreeDO> iotTreeDOS = iotTreeMapper.selectList();
+        treeDOS.forEach(treeDO -> {
+            Long parentId = deptList.stream().filter(dept -> treeDO.getOriginId().equals(dept.getId())).findFirst().get().getParentId();
+            List<IotTreeDO> iotTreeDOS1 = iotTreeMapper.selectListByOriginId(parentId, "dept");
+            if (CollUtil.isNotEmpty(iotTreeDOS1)) {
+                treeDO.setParentId(iotTreeDOS1.get(0).getId());
+            }
+        });
+        iotTreeMapper.updateBatch(treeDOS);
+
+        List<IotDeviceDO> iotDeviceDOS = iotDeviceMapper.selectList();
+        List<IotTreeDO> trees = new ArrayList<>();
+        List<IotInfoClassifyDO> classifies = new ArrayList<>();
+        iotDeviceDOS.forEach(deviceDO -> {
+            Long deptId = deviceDO.getDeptId();
+            List<IotTreeDO> iotTreeDOS = iotTreeMapper.selectListByOriginId(deptId, "dept");
+//            if (CollUtil.isNotEmpty(iotTreeDOS)) {
+                IotTreeDO iotTreeDO = new IotTreeDO();
+                iotTreeDO.setOriginId(deviceDO.getId());
+                iotTreeDO.setType("device");
+                iotTreeDO.setName(deviceDO.getDeviceName());
+                iotTreeDO.setDeleted(false);
+                iotTreeDO.setDeptId(deviceDO.getDeptId());
+                iotTreeDO.setParentId(iotTreeDOS.get(0).getId());
+                trees.add(iotTreeDO);
+            IotInfoClassifyDO classifyDO = new IotInfoClassifyDO();
+            classifyDO.setName(deviceDO.getDeviceName()+"的设备资料");
+            classifyDO.setDeviceId(deviceDO.getId());
+            classifyDO.setParentId(0L);
+            classifyDO.setDeptId(deviceDO.getDeptId());
+            classifies.add(classifyDO);
+//            }
+        });
+        iotTreeMapper.insertBatch(trees);
+        iotInfoClassifyMapper.insertBatch(classifies);
+
+    }
+
 
 }