From 14b1e801322db00b6b0d8dd059b9720adeb21bd8 Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期二, 29 八月 2023 11:58:44 +0800
Subject: [PATCH] 设备分类

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentCategoryServiceImpl.java |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 112 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentCategoryServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentCategoryServiceImpl.java
index b9c4878..33c639e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentCategoryServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentCategoryServiceImpl.java
@@ -1,19 +1,31 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.checkerframework.checker.units.qual.C;
 import org.jeecg.common.api.vo.CommonGenericTree;
 import org.jeecg.modules.eam.entity.EquipmentCategory;
 import org.jeecg.modules.eam.entity.FaultCause;
 import org.jeecg.modules.eam.mapper.EquipmentCategoryMapper;
 import org.jeecg.modules.eam.service.IEquipmentCategoryService;
+import org.jeecg.modules.system.entity.SysDict;
+import org.jeecg.modules.system.entity.SysDictItem;
+import org.jeecg.modules.system.mapper.SysDictItemMapper;
+import org.jeecg.modules.system.mapper.SysDictMapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: mom_eam_equipment_category
@@ -23,6 +35,11 @@
  */
 @Service
 public class EquipmentCategoryServiceImpl extends ServiceImpl<EquipmentCategoryMapper, EquipmentCategory> implements IEquipmentCategoryService {
+    @Autowired
+    private SysDictItemMapper sysDictItemMapper;
+
+    @Autowired
+    private SysDictMapper sysDictMapper;
 
     @Override
     public List<CommonGenericTree> loadTree() {
@@ -30,6 +47,8 @@
         List<CommonGenericTree> commonGenericTrees = loadTree(equipmentCategoryList);
         return commonGenericTrees;
     }
+
+
 
     @SuppressWarnings("unchecked")
     public List<CommonGenericTree> loadTree(List<EquipmentCategory> EquipmentCategory) {
@@ -219,5 +238,98 @@
         }
         return list;
     }
+
+    @Transactional(rollbackFor = {Exception.class})
+    public void initRoot(){
+        SysDict rootSysDict = sysDictMapper.selectOne(new QueryWrapper<SysDict>().eq("dict_code","equipment_category"));
+        if(ObjectUtils.isNotNull(rootSysDict)){
+            List<SysDictItem> equipRoots = sysDictItemMapper.selectList(new QueryWrapper<SysDictItem>().eq("dict_id",rootSysDict.getId()));
+            List<EquipmentCategory> roots = new ArrayList<>();
+            for(SysDictItem rootSysDictItem:equipRoots){
+                EquipmentCategory root = new EquipmentCategory();
+                root.setId("root-"+rootSysDictItem.getItemValue());
+                root.setNum(rootSysDictItem.getItemValue());
+                root.setName(rootSysDictItem.getItemText());
+                root.setEquipmentCategoryUda1(rootSysDictItem.getItemValue());
+                root.setParentId("-1");
+                root.setDelFlag(0);
+                roots.add(root);
+            }
+            saveOrUpdateBatch(roots);
+        }
+    }
+    @Override
+    public List<CommonGenericTree> loadTreeByRecurrence() {
+        CommonGenericTree commonGenericTree = new CommonGenericTree();
+        commonGenericTree.setKey("-1");
+        commonGenericTree.setTitle("璁惧鍒嗙被");
+        List<CommonGenericTree> children = getChildren(commonGenericTree);
+        if(children.size()==0){
+            commonGenericTree.setLeaf(true);
+        }
+        else {
+            commonGenericTree.setLeaf(false);
+        }
+        commonGenericTree.setChildren(children);
+        EquipmentCategory equipmentCategory = new EquipmentCategory();
+        equipmentCategory.setId("-1");
+        equipmentCategory.setName("璁惧鍒嗙被");
+        equipmentCategory.setNum("root");
+        commonGenericTree.setEntity(equipmentCategory);
+        List<CommonGenericTree> list = new ArrayList<>();
+        list.add(commonGenericTree);
+        return list;
+    }
+
+
+
+    private List<CommonGenericTree>  getChildren (CommonGenericTree commonGenericTree){
+        List<CommonGenericTree> children = baseMapper.getTreeByParentId(commonGenericTree.getKey());
+        for(CommonGenericTree child:children){
+
+            child.setEntity(baseMapper.selectById(child.getKey()));
+            List<CommonGenericTree> superChild = getChildren(child);
+            if(superChild.size()==0){
+                child.setLeaf(true);
+            }
+            else {
+                child.setLeaf(false);
+            }
+            child.setChildren(superChild);
+        }
+        return children;
+    }
+    @Override
+    public Page<EquipmentCategory> getAllChildren(Page<EquipmentCategory> page,EquipmentCategory equipmentCategory) {
+        QueryWrapper<EquipmentCategory>queryWrapper = new QueryWrapper();
+        if(StringUtils.isNotBlank(equipmentCategory.getParentId())){
+            List<String> ids = new ArrayList<>();
+            ids.add(equipmentCategory.getParentId());
+            ids = getChildren(equipmentCategory.getParentId(),ids);
+            if(ids.size()>1){
+                ids.remove(equipmentCategory.getParentId());
+                queryWrapper.in("id",ids);
+            }
+            else{
+                queryWrapper.eq("id","-1");
+            }
+        }
+        return baseMapper.selectPage(page,queryWrapper);
+    }
+    List<String> getChildren(String parentId,List<String> ids){
+        List<String> sons = new ArrayList<>();
+        for(String id:ids){
+            List<String> childrenIds = baseMapper
+                    .selectList(new QueryWrapper<EquipmentCategory>()
+                            .eq("parent_id",parentId).eq("del_flag",0)).stream()
+                    .map(EquipmentCategory::getId)
+                    .collect(Collectors.toList());
+            sons.addAll(getChildren(id,childrenIds));
+            sons.addAll(childrenIds);
+        }
+        ids.addAll(sons);
+        return ids;
+    }
+
 }
 

--
Gitblit v1.9.3