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/vo/EquipCategoryOutPortVo.java                 |   27 ++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentCategoryService.java         |    7 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentCategoryMapper.java            |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java         |    3 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentCategoryMapper.xml         |   14 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentCategoryServiceImpl.java |  112 ++++++++++++++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentCategoryController.java    |   33 ++++++--
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentCategory.java                  |   17 +--
 8 files changed, 192 insertions(+), 23 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index 932a158..3a960a8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -73,8 +73,7 @@
 	 @Autowired
 	 private IProcessParametersTemplateService processParametersTemplateService;
 
-//	 @Autowired
-//	 private IUploadRelaService uploadRelaService;
+
 
 	 @Autowired
 	 private ISysBaseAPI sysBaseApi;
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentCategoryController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentCategoryController.java
index 976ede5..c96e6f8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentCategoryController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentCategoryController.java
@@ -54,7 +54,7 @@
 public class EquipmentCategoryController extends JeecgController<EquipmentCategory, IEquipmentCategoryService> {
 	@Autowired
 	private IEquipmentCategoryService equipmentCategoryService;
-	
+
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
 	 *
@@ -108,7 +108,8 @@
 		}
 		return Result.OK(pageList);
 	}
-	
+
+
 	/**
 	 *   娣诲姞
 	 *
@@ -126,7 +127,7 @@
 		equipmentCategoryService.save(equipmentCategory);
 		return Result.OK("娣诲姞鎴愬姛锛�");
 	}
-	
+
 	/**
 	 *  缂栬緫
 	 *
@@ -138,10 +139,16 @@
 	//@RequiresPermissions("org.jeecg.modules.demo:mom_eam_equipment_category:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> edit(@RequestBody EquipmentCategory equipmentCategory) {
+		List<EquipmentCategory> equipmentCategories = equipmentCategory.getEquipmentCategoryDtlList();
+		for(EquipmentCategory equipmentCategoryChild:equipmentCategories){
+			equipmentCategoryChild.setEquipmentCategoryUda1(equipmentCategory.getEquipmentCategoryUda1());
+			equipmentCategoryChild.setEquipmentCategoryUda2(equipmentCategory.getEquipmentCategoryUda2());
+		}
+		equipmentCategoryService.saveOrUpdateBatch(equipmentCategories);
 		equipmentCategoryService.updateById(equipmentCategory);
 		return Result.OK("缂栬緫鎴愬姛!");
 	}
-	
+
 	/**
 	 *   閫氳繃id鍒犻櫎
 	 *
@@ -158,7 +165,7 @@
 		equipmentCategoryService.updateById(equipmentCategory);
 		return Result.OK("鍒犻櫎鎴愬姛!");
 	}
-	
+
 	/**
 	 *  鎵归噺鍒犻櫎
 	 *
@@ -178,7 +185,7 @@
 		}
 		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
 	}
-	
+
 	/**
 	 * 閫氳繃id鏌ヨ
 	 *
@@ -205,7 +212,7 @@
     //@RequiresPermissions("org.jeecg.modules.demo:mom_eam_equipment_category:exportXls")
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, EquipmentCategory equipmentCategory) {
-        return super.exportXls(request, equipmentCategory, EquipmentCategory.class, "mom_eam_equipment_category");
+        return super.exportXls(request, equipmentCategory, EquipmentCategory.class, "璁惧鍒嗙被");
     }
 
     /**
@@ -227,8 +234,18 @@
 	  */
 	 @GetMapping("/loadTree")
 	 public Result<?> loadTree(HttpServletRequest httpServletRequest) {
-		 List<CommonGenericTree> list = equipmentCategoryService.loadTree();
+		 List<CommonGenericTree> list = equipmentCategoryService.loadTreeByRecurrence();
 		 return Result.ok(list);
 	 }
+	 @GetMapping(value = "/getAllChildren")
+	 public Result<IPage<EquipmentCategory>> getAllChildren(EquipmentCategory equipmentCategory,
+															@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															HttpServletRequest req){
+		 QueryWrapper<EquipmentCategory> queryWrapper = Wrappers.query();
+		 Page<EquipmentCategory> page = new Page<EquipmentCategory>(pageNo, pageSize);
+		 IPage<EquipmentCategory> pageList = equipmentCategoryService.getAllChildren(page, equipmentCategory);
+		 return Result.OK(pageList);
+	 }
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentCategory.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentCategory.java
index 96a8a6f..7419468 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentCategory.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentCategory.java
@@ -38,7 +38,6 @@
     private static final long serialVersionUID = 1L;
 
 	/**鐖秈d*/
-	@Excel(name = "鐖秈d", width = 15)
     @ApiModelProperty(value = "鐖秈d")
     private String parentId;
 	/**璁惧鍒嗙被缂栫爜*/
@@ -51,31 +50,28 @@
     private String name;
 
 	/**绉熸埛id*/
-	@Excel(name = "绉熸埛id", width = 15)
     @ApiModelProperty(value = "绉熸埛id")
     private String tenantId;
 	/**鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)*/
-	@Excel(name = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)")
     private Integer delFlag = CommonConstant.DEL_FLAG_0;
 	/**澶囩敤瀛楁1*/
-	@Excel(name = "澶囩敤瀛楁1", width = 15)
-    @ApiModelProperty(value = "澶囩敤瀛楁1")
+	@Excel(name = "璁惧鍒嗙被鏍囪瘑", width = 15,dicCode = "equipment_category")
+    @ApiModelProperty(value = "璁惧鍒嗙被鏍囪瘑锛堟暟鎹瓧鍏革細equipment_category锛�")
+    @Dict(dicCode = "equipment_category")
     private String equipmentCategoryUda1;
 	/**澶囩敤瀛楁2*/
-	@Excel(name = "澶囩敤瀛楁2", width = 15)
-    @ApiModelProperty(value = "澶囩敤瀛楁2")
+	@Excel(name = "鎶�鏈姸鎬侀壌瀹氬懆鏈�", width = 15,dicCode = "appraisal_cycle")
+    @ApiModelProperty(value = "鎶�鏈姸鎬侀壌瀹氬懆鏈�")
+    @Dict(dicCode = "appraisal_cycle")
     private String equipmentCategoryUda2;
 	/**澶囩敤瀛楁3*/
-	@Excel(name = "澶囩敤瀛楁3", width = 15)
     @ApiModelProperty(value = "澶囩敤瀛楁3")
     private String equipmentCategoryUda3;
 	/**澶囩敤瀛楁4*/
-	@Excel(name = "澶囩敤瀛楁4", width = 15)
     @ApiModelProperty(value = "澶囩敤瀛楁4")
     private String equipmentCategoryUda4;
 	/**澶囩敤瀛楁5*/
-	@Excel(name = "澶囩敤瀛楁5", width = 15)
     @ApiModelProperty(value = "澶囩敤瀛楁5")
     private String equipmentCategoryUda5;
 	/**澶囨敞*/
@@ -84,7 +80,6 @@
     private String remark;
 
     /**鐘舵�� 0 绂佺敤 1 鍚敤*/
-    @Excel(name = "鐘舵�� 0 绂佺敤 1 鍚敤", width = 15)
     @ApiModelProperty(value = "鐘舵�� 0 绂佺敤 1 鍚敤")
     private String status = CommonConstant.STATUS_1;
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentCategoryMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentCategoryMapper.java
index 0b02ca7..8650b0e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentCategoryMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentCategoryMapper.java
@@ -3,6 +3,7 @@
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
+import org.jeecg.common.api.vo.CommonGenericTree;
 import org.jeecg.modules.eam.entity.EquipmentCategory;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -13,5 +14,6 @@
  * @Version: V1.0
  */
 public interface EquipmentCategoryMapper extends BaseMapper<EquipmentCategory> {
+    public List<CommonGenericTree> getTreeByParentId(String parentId);
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentCategoryMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentCategoryMapper.xml
index 053b641..cc590e9 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentCategoryMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentCategoryMapper.xml
@@ -1,5 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.eam.mapper.EquipmentCategoryMapper">
-
-</mapper>
\ No newline at end of file
+    <select id="getTreeByParentId" resultType="org.jeecg.common.api.vo.CommonGenericTree">
+        select
+        t1.id as 'key',
+        CONCAT(t1.num,'/',t1.name) title,
+        t1.parent_id parentId,
+        t1.name rField1,
+        t1.num RField2
+        from mom_eam_equipment_category t1
+        where t1.del_flag = 0
+        and t1.parent_id = #{parentId}
+    </select>
+</mapper>
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentCategoryService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentCategoryService.java
index 2d7af91..164521b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentCategoryService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentCategoryService.java
@@ -1,10 +1,13 @@
 package org.jeecg.modules.eam.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.common.api.vo.CommonGenericTree;
 import org.jeecg.modules.eam.entity.EquipmentCategory;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: mom_eam_equipment_category
@@ -16,4 +19,8 @@
 
     public List<CommonGenericTree> loadTree();
 
+    public List<CommonGenericTree> loadTreeByRecurrence();
+
+    public Page<EquipmentCategory> getAllChildren(Page<EquipmentCategory> page,EquipmentCategory equipmentCategory);
+
 }
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;
+    }
+
 }
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipCategoryOutPortVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipCategoryOutPortVo.java
new file mode 100644
index 0000000..cd539bc
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipCategoryOutPortVo.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.eam.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @author lnl
+ */
+@Data
+@TableName("mom_eam_equipment_category")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class EquipCategoryOutPortVo {
+    @Excel(name = "璁惧鍒嗙被缂栫爜", width = 15)
+    private String num;
+    @Excel(name = "璁惧鍒嗙被鍚嶇О", width = 15)
+    private String name;
+    @Excel(name = "璁惧鍒嗙被鏍囪瘑", width = 15,dicCode = "equipment_category")
+    private String equipmentCategoryUda1;
+    @Excel(name = "鎶�鏈姸鎬侀壌瀹氬懆鏈�",dicCode = "appraisal_cycle",width = 15)
+    private String equipmentCategoryUda2;
+}

--
Gitblit v1.9.3