From cd8b267053dd314a3a2c17ed1cc2b90316870712 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期五, 09 五月 2025 09:10:22 +0800
Subject: [PATCH] 工具分类功能

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java    |  191 +++++++++++++++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml         |   29 +++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java            |   23 ++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java         |   25 ++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java |  127 ++++++++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java                  |  107 +++++++++++
 6 files changed, 502 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java
new file mode 100644
index 0000000..95f013e
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsClassifyController.java
@@ -0,0 +1,191 @@
+package org.jeecg.modules.tms.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.poi.ss.formula.functions.T;
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.ToolsClassify;
+import org.jeecg.modules.tms.entity.Warehouse;
+import org.jeecg.modules.tms.service.IToolsClassifyService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: tms_tools_classify
+ * @Author: jeecg-boot
+ * @Date:   2025-05-06
+ * @Version: V1.0
+ */
+@Api(tags="tms_tools_classify")
+@RestController
+@RequestMapping("/tms/toolsClassify")
+@Slf4j
+public class ToolsClassifyController extends JeecgController<ToolsClassify, IToolsClassifyService> {
+	@Autowired
+	private IToolsClassifyService toolsClassifyService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param toolsClassify
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "tms_tools_classify-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="tms_tools_classify-鍒嗛〉鍒楄〃鏌ヨ", notes="tms_tools_classify-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<ToolsClassify>> queryPageList(ToolsClassify toolsClassify,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		Map<String, String[]> parameterMap = req.getParameterMap();
+		Page<ToolsClassify> page = new Page<ToolsClassify>(pageNo, pageSize);
+		IPage<ToolsClassify> pageList = toolsClassifyService.queryPageList(page, parameterMap);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param toolsClassify
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_classify-娣诲姞")
+	@ApiOperation(value="tms_tools_classify-娣诲姞", notes="tms_tools_classify-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_classify:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody ToolsClassify toolsClassify) {
+		toolsClassify.setStatus("1");
+		toolsClassifyService.save(toolsClassify);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param toolsClassify
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_classify-缂栬緫")
+	@ApiOperation(value="tms_tools_classify-缂栬緫", notes="tms_tools_classify-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_classify:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody ToolsClassify toolsClassify) {
+		toolsClassifyService.updateById(toolsClassify);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_classify-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="tms_tools_classify-閫氳繃id鍒犻櫎", notes="tms_tools_classify-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_classify:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		toolsClassifyService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "tms_tools_classify-鎵归噺鍒犻櫎")
+	@ApiOperation(value="tms_tools_classify-鎵归噺鍒犻櫎", notes="tms_tools_classify-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules:tms_tools_classify:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.toolsClassifyService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "tms_tools_classify-閫氳繃id鏌ヨ")
+	@ApiOperation(value="tms_tools_classify-閫氳繃id鏌ヨ", notes="tms_tools_classify-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<ToolsClassify> queryById(@RequestParam(name="id",required=true) String id) {
+		ToolsClassify toolsClassify = toolsClassifyService.getById(id);
+		if(toolsClassify==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(toolsClassify);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param toolsClassify
+    */
+    //@RequiresPermissions("org.jeecg.modules:tms_tools_classify:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, ToolsClassify toolsClassify) {
+        return super.exportXls(request, toolsClassify, ToolsClassify.class, "tms_tools_classify");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("tms_tools_classify:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, ToolsClassify.class);
+    }
+
+
+	 @AutoLog(value = "宸ュ叿鍒嗙被鏍�")
+	 @ApiOperation(value = "宸ュ叿鍒嗙被鏍�", notes = "宸ュ叿鍒嗙被鏍�")
+	 @GetMapping("/loadTree")
+	 public Result<?> loadTree() {
+		 List<CommonGenericTree> list = toolsClassifyService.loadTree();
+		 return Result.ok(list);
+	 }
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java
new file mode 100644
index 0000000..22e7353
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsClassify.java
@@ -0,0 +1,107 @@
+package org.jeecg.modules.tms.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.constant.CommonConstant;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: tms_tools_classify
+ * @Author: jeecg-boot
+ * @Date:   2025-05-06
+ * @Version: V1.0
+ */
+@Data
+@TableName("tms_tools_classify")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tms_tools_classify瀵硅薄", description="tms_tools_classify")
+public class ToolsClassify implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭id")
+    private String id;
+	/**绫诲瀷鍚嶇О*/
+	@Excel(name = "绫诲瀷鍚嶇О", width = 15)
+    @ApiModelProperty(value = "绫诲瀷鍚嶇О")
+    private String typeName;
+	/**鐖剁被鍨媔d*/
+	@Excel(name = "鐖剁被鍨媔d", width = 15)
+    @ApiModelProperty(value = "鐖剁被鍨媔d")
+    private String parentId;
+	/**鏄剧ず搴忓彿*/
+	@Excel(name = "鏄剧ず搴忓彿", width = 15)
+    @ApiModelProperty(value = "鏄剧ず搴忓彿")
+    private String seq;
+	/**鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�*/
+	@Excel(name = "鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�", width = 15)
+    @ApiModelProperty(value = "鐘舵�侊紙1.鍚敤锛�2.鍏抽棴锛�")
+    private String status;
+    /**鏄惁鏄彾瀛愯妭鐐�*/
+    @Excel(name = "鏄惁鏄彾瀛愯妭鐐�", width = 15)
+    @ApiModelProperty(value = "鏄惁鏄彾瀛愯妭鐐�")
+    private String leafFlag;
+	/**灞傜骇*/
+	@Excel(name = "灞傜骇", width = 15)
+    @ApiModelProperty(value = "灞傜骇")
+    private String rank;
+	/**瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�*/
+	@Excel(name = "瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�", width = 15)
+    @ApiModelProperty(value = "瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�")
+    @Dict(dicCode = "tool_para_type")
+    private String paraTypeFlag;
+	/**澶囨敞*/
+	@Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+	/**绉熸埛鍙�*/
+	@Excel(name = "绉熸埛鍙�", width = 15)
+    @ApiModelProperty(value = "绉熸埛鍙�")
+    private String tenantId;
+	/**鍒涘缓浜�*/
+	@Excel(name = "鍒涘缓浜�", width = 15)
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@Excel(name = "鍒涘缓鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+	@Excel(name = "鏇存柊浜�", width = 15)
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+	/**鍒嗙被缂栫爜*/
+	@Excel(name = "鍒嗙被缂栫爜", width = 15)
+    @ApiModelProperty(value = "鍒嗙被缂栫爜")
+    private String classifyId;
+
+    @TableField(exist = false)
+    private String parentNum;
+    @TableField(exist = false)
+    private String parentName;
+    @TableField(exist = false)
+    private String paraTypeFlagName;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java
new file mode 100644
index 0000000..5451fb6
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsClassifyMapper.java
@@ -0,0 +1,23 @@
+package org.jeecg.modules.tms.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.tms.entity.ToolsClassify;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: tms_tools_classify
+ * @Author: jeecg-boot
+ * @Date:   2025-05-06
+ * @Version: V1.0
+ */
+public interface ToolsClassifyMapper extends BaseMapper<ToolsClassify> {
+
+    IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page,
+                                   @Param(Constants.WRAPPER) Wrapper<ToolsClassify> queryWrapper);
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml
new file mode 100644
index 0000000..a2ed5a6
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsClassifyMapper.xml
@@ -0,0 +1,29 @@
+<?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.tms.mapper.ToolsClassifyMapper">
+
+    <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.ToolsClassify">
+        SELECT
+            t.id,
+            t.classify_id classifyId,
+            t.type_name typeName,
+            t.parent_id parentId,
+            p.classify_id parentNum,
+            p.type_name parentName,
+            t.seq,
+            t.leaf_flag leafFlag,
+            t.para_type_flag paraTypeFlag,
+            a.paraTypeFlagName paraTypeFlagName,
+            t.status,
+            t.remark,
+            t.create_by createBy,
+            t.create_time createTime,
+            t.update_by updateBy,
+            t.update_time updateTime
+            FROM tms_tools_classify t
+            LEFT JOIN tms_tools_classify p on t.parent_id = p.id
+            LEFT JOIN (select s.item_value,s.item_text paraTypeFlagName from sys_dict d
+            LEFT JOIN sys_dict_item s on s.dict_id = d.id and d.dict_code = 'tool_para_type') a on t.para_type_flag = a.item_value
+    ${ew.customSqlSegment}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java
new file mode 100644
index 0000000..660a07c
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsClassifyService.java
@@ -0,0 +1,25 @@
+package org.jeecg.modules.tms.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.modules.tms.entity.ToolsClassify;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.tms.entity.Warehouse;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: tms_tools_classify
+ * @Author: jeecg-boot
+ * @Date:   2025-05-06
+ * @Version: V1.0
+ */
+public interface IToolsClassifyService extends IService<ToolsClassify> {
+
+    IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page, Map<String, String[]> parameterMap);
+
+    public List<CommonGenericTree> loadTree();
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
new file mode 100644
index 0000000..645ec84
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
@@ -0,0 +1,127 @@
+package org.jeecg.modules.tms.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.util.StrUtils;
+import org.jeecg.modules.tms.entity.ToolsClassify;
+import org.jeecg.modules.tms.mapper.ToolsClassifyMapper;
+import org.jeecg.modules.tms.service.IToolsClassifyService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import javax.tools.Tool;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: tms_tools_classify
+ * @Author: jeecg-boot
+ * @Date:   2025-05-06
+ * @Version: V1.0
+ */
+@Service
+public class ToolsClassifyServiceImpl extends ServiceImpl<ToolsClassifyMapper, ToolsClassify> implements IToolsClassifyService {
+
+    @Override
+    public IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page, Map<String, String[]> parameterMap) {
+        QueryWrapper<ToolsClassify> queryWrapper = Wrappers.query();
+        String[] classifyIds = parameterMap.get("classifyId");
+        if (classifyIds != null && classifyIds.length > 0) {
+            queryWrapper.like("t.classify_id", classifyIds[0]);
+        }
+        String[] typeNames = parameterMap.get("typeName");
+        if (typeNames != null && typeNames.length > 0) {
+            queryWrapper.like("t.type_name", typeNames[0]);
+        }
+        String[] parentIds = parameterMap.get("parentId");
+        if (parentIds != null && parentIds.length > 0) {
+            queryWrapper.eq("t.parent_id", parentIds[0]);
+        }
+        queryWrapper.orderByAsc("t.seq");
+        return this.baseMapper.queryPageList(page, queryWrapper);
+    }
+    public List<CommonGenericTree> loadTree() {
+        List<ToolsClassify> toolsClassifyList = this.list();
+        List<CommonGenericTree> commonGenericTreeList = loadTree(toolsClassifyList);
+        return commonGenericTreeList;
+    }
+
+    public List<CommonGenericTree> loadTree(List<ToolsClassify> toolsClassifyList) {
+        @SuppressWarnings("unused") ToolsClassify toolsClassify = new ToolsClassify();
+        List<CommonGenericTree> list = new ArrayList<>();
+        Map<String, CommonGenericTree> map = new HashMap<>();
+        CommonGenericTree<ToolsClassify> node = new CommonGenericTree<>();
+        node.setKey("-1");
+        node.setTitle("宸ュ叿鍒嗙被");
+        node.setRField1("");
+        node.setRField2("");
+        node.setEntity(new ToolsClassify().setId("-1").setClassifyId("0").setTypeName("宸ュ叿鍒嗙被").setLeafFlag("2"));
+        list.add(node);
+        if (CollectionUtils.isNotEmpty(toolsClassifyList)) {
+            CommonGenericTree<ToolsClassify> tcNode;
+            for (ToolsClassify tc : toolsClassifyList) {
+                if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) {
+                    tcNode = new CommonGenericTree<>();
+                    tcNode.setKey(tc.getId());
+                    tcNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName());
+                    tcNode.setParentId(node.getKey());
+                    tcNode.setIcon("");
+                    tcNode.setType(1);
+                    tcNode.setValue(tc.getId());
+                    tcNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false);
+                    tcNode.setRField1(tc.getClassifyId());
+                    tcNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId());
+                    tcNode.setEntity(tc);
+                    node.addChildren(tcNode);
+                    map.put(tc.getId(), tcNode);
+                }
+            }
+            CommonGenericTree<ToolsClassify> childNode;
+            for (ToolsClassify tc : toolsClassifyList) {
+                ToolsClassify child = tc;
+                if (map.containsKey(child.getParentId())) {
+                    if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) {
+                        toolsClassify = tc;
+                    } else {
+                        tcNode = map.get(child.getParentId());
+                        childNode = new CommonGenericTree<>();
+                        childNode.setKey(tc.getId());
+                        childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName());
+                        childNode.setParentId(tc.getParentId());
+                        childNode.setIcon("");
+                        childNode.setType(0);
+                        childNode.setValue(tc.getId());
+                        childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false);
+                        childNode.setRField1(tc.getClassifyId());
+                        childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId());
+                        childNode.setEntity(tc);
+                        tcNode.addChildren(childNode);
+                        map.put(child.getId(), childNode);
+                    }
+                }
+            }
+        }
+        return list;
+    }
+
+    public ToolsClassify getBaseParent(String id, int index) {
+        ToolsClassify toolsClassify = null;
+        if (index < 99) {
+            toolsClassify = getById(id);
+            if (StrUtils.isNotBlankOrNull(toolsClassify.getParentId())) {
+                if (!toolsClassify.getParentId().equals("-1")) {
+                    toolsClassify = getBaseParent(toolsClassify.getParentId(), index++);
+                }
+            }
+        }
+        return toolsClassify;
+    }
+}

--
Gitblit v1.9.3