From 1d84a3c62eeee429f7d7d6339bcf9b504a9d7277 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期四, 16 一月 2025 16:01:33 +0800
Subject: [PATCH] DNC流程配置、DNC部门处理

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IActivitiDefinitionService.java         |    3 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/ActivitiDefinition.java                  |   12 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/mapper/xml/AssignFileStreamMapper.xml           |   89 ++++++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java                         |    3 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DepartmentController.java                 |   72 +++++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/ActivitiDefinitionController.java    |   15 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/AssignFileStreamController.java      |    8 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/FindsDepartmentChildrenUtil.java     |  116 +++++++++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java             |    1 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DepartmentServiceImpl.java              |   74 +++++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/ActivitiDefinitionServiceImpl.java |   15 -
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DocInfo.java                                  |    6 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/AssignFileStreamServiceImpl.java   |    7 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IAssignFileStreamService.java           |    3 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/AssignFileStream.java                    |    2 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/DepartmentModel.java                        |  100 ++++++++++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java                    |    3 
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDepartmentService.java                      |   26 ++
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java                 |    6 
 19 files changed, 524 insertions(+), 37 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/ActivitiDefinitionController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/ActivitiDefinitionController.java
index 5699c5a..2c7f306 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/ActivitiDefinitionController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/ActivitiDefinitionController.java
@@ -3,6 +3,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.modules.activiti.entity.ActivitiDefinition;
 import org.jeecg.modules.activiti.request.ActivitiDefinitionRequest;
@@ -33,9 +34,9 @@
 
     @AutoLog(value = "DNC娴佺▼閰嶇疆-淇敼閰嶇疆")
     @ApiOperation(value = "DNC娴佺▼閰嶇疆-淇敼閰嶇疆", notes = "DNC娴佺▼閰嶇疆-淇敼閰嶇疆")
-    @PutMapping("/edit/{id}")
-    public ResponseResult editDefinition(@PathVariable("id") String id, @RequestBody ActivitiDefinition definition) {
-        boolean b = definitionService.editDefinition(id, definition);
+    @PutMapping("/edit")
+    public ResponseResult editDefinition( @RequestBody ActivitiDefinition definition) {
+        boolean b = definitionService.updateById(definition);
         if(b)
             return new ResponseResult(CommonCode.SUCCESS);
         return new ResponseResult(CommonCode.FAIL);
@@ -53,8 +54,10 @@
 
     @AutoLog(value = "DNC娴佺▼閰嶇疆-鍒嗛〉鏌ヨ閰嶇疆鍒楄〃")
     @ApiOperation(value = "DNC娴佺▼閰嶇疆-鍒嗛〉鏌ヨ閰嶇疆鍒楄〃", notes = "DNC娴佺▼閰嶇疆-鍒嗛〉鏌ヨ閰嶇疆鍒楄〃")
-    @GetMapping("/find/page/{page}/{size}")
-    public QueryPageResponseResult<ActivitiDefinition> findPageList(@PathVariable("page") int page, @PathVariable("size") int size, ActivitiDefinitionRequest request) {
-        return definitionService.findPageList(page, size, request);
+    @GetMapping("/find/page")
+    public Result<?> findPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                  ActivitiDefinitionRequest request) {
+        return definitionService.findPageList(pageNo, pageSize, request);
     }
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/AssignFileStreamController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/AssignFileStreamController.java
index dff2503..f42c233 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/AssignFileStreamController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/AssignFileStreamController.java
@@ -3,6 +3,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.modules.activiti.entity.AssignFileStream;
 import org.jeecg.modules.activiti.ext.ActTaskExt;
@@ -80,9 +81,10 @@
 
     @AutoLog(value = "DNC娴佺▼鎿嶄綔-宸插姙鍒楄〃鑾峰彇")
     @ApiOperation(value = "DNC娴佺▼鎿嶄綔-宸插姙鍒楄〃鑾峰彇", notes = "DNC娴佺▼鎿嶄綔-宸插姙鍒楄〃鑾峰彇")
-    @GetMapping("/find/page/{page}/{size}")
-    public QueryPageResponseResult<AssignFileStreamExt> findPageList(@PathVariable("page") int page, @PathVariable("size") int size, AssignFileStreamQueryRequest request) {
-        return assignFileStreamService.findPageList(page, size, request);
+    @GetMapping("/find/page")
+    public Result<?> findPageList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, AssignFileStreamQueryRequest request) {
+        return assignFileStreamService.findPageList(pageNo, pageSize, request);
     }
 
     @AutoLog(value = "DNC娴佺▼鎿嶄綔-鏌ヨ鏂囨。鐨勫鎵硅褰�")
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/ActivitiDefinition.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/ActivitiDefinition.java
index 0a0ca7e..f6eb454 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/ActivitiDefinition.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/ActivitiDefinition.java
@@ -1,10 +1,12 @@
 package org.jeecg.modules.activiti.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.Api;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.jeecg.common.aspect.annotation.Dict;
 
 import java.util.Date;
 
@@ -18,14 +20,16 @@
     @TableField(value = "act_name")
     private String actName;
     @TableField(value = "depart_id")
+    @Dict(dictTable = "sys_department",dicCode = "depart_id",dicText = "depart_name")
     private String departId;
     @TableField(value = "approve_users")
+    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
     private String approveUsers;
-    @JsonIgnore
-    @TableField(value = "create_time", select = false, fill = FieldFill.INSERT)
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
     private Date createTime;
-    @JsonIgnore
-    @TableField(value = "update_time", select = false, fill = FieldFill.UPDATE)
+    @TableField(value = "update_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
     @JsonIgnore
     @TableField(value = "create_user", select = false, fill = FieldFill.INSERT)
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/AssignFileStream.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/AssignFileStream.java
index 28464e7..7439e48 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/AssignFileStream.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/AssignFileStream.java
@@ -6,6 +6,7 @@
 import io.swagger.annotations.Api;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.jeecg.common.aspect.annotation.Dict;
 
 import java.util.Date;
 
@@ -45,6 +46,7 @@
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date approveTime;
     @TableField(value = "status")
+    @Dict(dicCode = "dnc_assign_stream_status")
     private Integer status;
     @JsonIgnore
     @TableField(value = "create_time", select = false, fill = FieldFill.INSERT)
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/mapper/xml/AssignFileStreamMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/mapper/xml/AssignFileStreamMapper.xml
new file mode 100644
index 0000000..7f2fae5
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/mapper/xml/AssignFileStreamMapper.xml
@@ -0,0 +1,89 @@
+<?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.activiti.mapper.AssignFileStreamMapper">
+    <select id="getAssignFileStreamDetail" resultType="org.jeecg.modules.activiti.ext.AssignFileStreamExt" parameterType="String">
+        select a.stream_id
+        , a.product_id
+        , a.component_id
+        , a.parts_id
+        , a.process_id
+        , a.doc_id
+        , a.file_id
+        , a.device_id
+        , a.apply_user_id
+        , a.apply_reason
+        , a.apply_time
+        , a.approve_user_id
+        , a.approve_content
+        , a.approve_time
+        , a.status
+        , u1.realname as applyUser
+        , u2.realname as approveUser
+        , p.product_name as productName
+        , c.component_name as componentName
+        , pt.parts_name as partsName
+        , dc.doc_name as docName
+        , dc.publish_version as version
+        , dc.doc_suffix as docSuffix
+        , de.device_name as deviceName
+        from (select * from nc_assign_file_stream where stream_id=#{streamId}) a
+        left join sys_user u1
+        on a.apply_user_id=u1.id
+        left join sys_user u2
+        on a.approve_user_id=u2.id
+        left join nc_product_info p
+        on a.product_id=p.product_id
+        left join nc_component_info c
+        on a.component_id=c.component_id
+        left join nc_parts_info pt
+        on a.parts_id=pt.parts_id
+        left join nc_doc_info dc
+        on a.doc_id=dc.doc_id
+        left join nc_device_info de
+        on a.device_id=de.device_id
+
+    </select>
+
+    <select id="findByPage" resultType="org.jeecg.modules.activiti.ext.AssignFileStreamExt" parameterType="String">
+        select a.stream_id
+        , a.product_id
+        , a.component_id
+        , a.parts_id
+        , a.process_id
+        , a.doc_id
+        , a.file_id
+        , a.device_id
+        , a.apply_user_id
+        , a.apply_reason
+        , a.apply_time
+        , a.approve_user_id
+        , a.approve_content
+        , a.approve_time
+        , a.status
+        , u1.realname as applyUser
+        , u2.realname as approveUser
+        , p.product_name as productName
+        , c.component_name as componentName
+        , pt.parts_name as partsName
+        , dc.doc_name as docName
+        , dc.publish_version as version
+        , dc.doc_suffix as docSuffix
+        , de.device_name as deviceName
+        from (select * from nc_assign_file_stream where delete_flag=0 and approve_time is not null) a
+        left join sys_user u1
+        on a.apply_user_id=u1.id
+        left join sys_user u2
+        on a.approve_user_id=u2.id
+        left join nc_product_info p
+        on a.product_id=p.product_id
+        left join nc_component_info c
+        on a.component_id=c.component_id
+        left join nc_parts_info pt
+        on a.parts_id=pt.parts_id
+        left join nc_doc_info dc
+        on a.doc_id=dc.doc_id
+        left join nc_device_info de
+        on a.device_id=de.device_id
+        ${ew.customSqlSegment}
+    </select>
+</mapper>
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IActivitiDefinitionService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IActivitiDefinitionService.java
index db6f2a4..dc27d24 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IActivitiDefinitionService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IActivitiDefinitionService.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.activiti.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.activiti.entity.ActivitiDefinition;
 import org.jeecg.modules.activiti.request.ActivitiDefinitionRequest;
 import org.jeecg.modules.dnc.response.QueryPageResponseResult;
@@ -42,7 +43,7 @@
      * @param request
      * @return
      */
-    QueryPageResponseResult<ActivitiDefinition> findPageList(int page, int size, ActivitiDefinitionRequest request);
+    Result<?> findPageList(int page, int size, ActivitiDefinitionRequest request);
 
     /**
      * 鑾峰彇澶氫釜閮ㄩ棬鐨勫鎵逛汉 鍘婚噸
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IAssignFileStreamService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IAssignFileStreamService.java
index f63b024..a3689cb 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IAssignFileStreamService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IAssignFileStreamService.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.activiti.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.activiti.entity.AssignFileStream;
 import org.jeecg.modules.activiti.ext.ActTaskExt;
 import org.jeecg.modules.activiti.ext.AssignFileStreamExt;
@@ -75,7 +76,7 @@
      * @param size
      * @return
      */
-    QueryPageResponseResult<AssignFileStreamExt> findPageList(int page, int size, AssignFileStreamQueryRequest request);
+    Result<?> findPageList(int page, int size, AssignFileStreamQueryRequest request);
 
     /**
      * 鏌ヨ鏂囨。鐨勫鎵硅褰�
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/ActivitiDefinitionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/ActivitiDefinitionServiceImpl.java
index 14402bc..34bc76c 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/ActivitiDefinitionServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/ActivitiDefinitionServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.activiti.entity.ActivitiDefinition;
 import org.jeecg.modules.activiti.mapper.ActivitiDefinitionMapper;
 import org.jeecg.modules.activiti.request.ActivitiDefinitionRequest;
@@ -95,7 +96,7 @@
     }
 
     @Override
-    public QueryPageResponseResult<ActivitiDefinition> findPageList(int page, int size, ActivitiDefinitionRequest request) {
+    public Result<?> findPageList(int page, int size, ActivitiDefinitionRequest request) {
         if(page < 1 || size < 1) {
             ExceptionCast.cast(CommonCode.INVALID_PAGE);
         }
@@ -105,18 +106,10 @@
             if(ValidateUtil.validateString(request.getActName())) {
                 lambdaQuery.like(ActivitiDefinition::getActName, request.getActName());
             }
-
-            if(ValidateUtil.validateString(request.getAscStr())) {
-                String[] ascArr = request.getAscStr().split(",");
-//                ((Page<ActivitiDefinition>) pageData).setAsc(ascArr);
-            }
-            if(ValidateUtil.validateString(request.getDescStr())) {
-                String[] descStr = request.getDescStr().split(",");
-//                ((Page<ActivitiDefinition>) pageData).setDesc(descStr);
-            }
         }
+        lambdaQuery.orderByDesc(ActivitiDefinition::getCreateTime);
         IPage<ActivitiDefinition> definitionIPage = lambdaQuery.page(pageData);
-        return new QueryPageResponseResult<>(CommonCode.SUCCESS, definitionIPage);
+        return Result.ok(definitionIPage);
 
     }
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/AssignFileStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/AssignFileStreamServiceImpl.java
index 18c2067..61d343c 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/AssignFileStreamServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/AssignFileStreamServiceImpl.java
@@ -16,6 +16,7 @@
 import org.activiti.engine.task.Task;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.activiti.entity.AssignFileStream;
 import org.jeecg.modules.activiti.entity.ToEquipmentTask;
@@ -512,7 +513,7 @@
 
     @Override
     public List<ActTaskExt> getUndoTaskList() {
-                LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         String userId = user.getId();
         if(!ValidateUtil.validateString(userId))
             return null;
@@ -693,7 +694,7 @@
     }
 
     @Override
-    public QueryPageResponseResult<AssignFileStreamExt> findPageList(int page, int size, AssignFileStreamQueryRequest request) {
+    public Result<?> findPageList(int page, int size, AssignFileStreamQueryRequest request) {
         if(page < 1 || size < 1) {
             ExceptionCast.cast(CommonCode.INVALID_PAGE);
         }
@@ -716,7 +717,7 @@
             }
         }
         IPage<AssignFileStreamExt> streamExtIPage = super.getBaseMapper().findByPage(pageData, lambdaQueryWrapper);
-        return new QueryPageResponseResult<>(CommonCode.SUCCESS, streamExtIPage);
+        return Result.ok(streamExtIPage);
     }
 
     @Override
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DepartmentController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DepartmentController.java
index b2db9da..73238d4 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DepartmentController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DepartmentController.java
@@ -3,12 +3,18 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.dnc.request.DepartmentRequest;
 import org.jeecg.modules.dnc.response.*;
 import org.jeecg.modules.dnc.service.IDepartmentService;
 import org.jeecg.modules.dnc.ucenter.Department;
 import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.model.SysDepartTreeModel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -144,4 +150,70 @@
             list = Collections.emptyList();
         return new QueryListResponseResult<>(CommonCode.SUCCESS, list);
     }
+
+
+    @AutoLog(value = "DNC閮ㄩ棬绠$悊-鑾峰彇鏍戠粨鏋�")
+    @ApiOperation(value = "DNC閮ㄩ棬绠$悊-鑾峰彇鏍戠粨鏋�", notes = "DNC閮ㄩ棬绠$悊-鑾峰彇鏍戠粨鏋�")
+    @GetMapping("/load/queryTreeList")
+    public QueryListResponseResult<CommonJsonTree> queryTreeList() {
+        List<CommonJsonTree> tree = departmentService.loadTree();
+        if(tree == null)
+            tree = Collections.emptyList();
+        return new QueryListResponseResult(CommonCode.SUCCESS, tree);
+    }
+
+    /**
+     * 鏌ヨ鏁版嵁 鏌ュ嚭鎵�鏈夐儴闂�,骞朵互鏍戠粨鏋勬暟鎹牸寮忓搷搴旂粰鍓嶇
+     *
+     * @return
+     */
+    @GetMapping(value = "/queryTreeList")
+    public Result<List<DepartmentTreeModel>> queryTreeList(@RequestParam(name = "ids", required = false) String ids) {
+        Result<List<DepartmentTreeModel>> result = new Result<>();
+        try {
+            // 浠庡唴瀛樹腑璇诲彇
+//			List<SysDepartTreeModel> list =FindsDepartsChildrenUtil.getSysDepartTreeList();
+//			if (CollectionUtils.isEmpty(list)) {
+//				list = sysDepartService.queryTreeList();
+//			}
+            if(oConvertUtils.isNotEmpty(ids)){
+                List<DepartmentTreeModel> departList = departmentService.queryTreeList(ids);
+                result.setResult(departList);
+            }else{
+                List<DepartmentTreeModel> list = departmentService.queryTreeList();
+                result.setResult(list);
+            }
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(),e);
+        }
+        return result;
+    }
+
+    /**
+     * <p>
+     * 閮ㄩ棬鎼滅储鍔熻兘鏂规硶,鏍规嵁鍏抽敭瀛楁ā绯婃悳绱㈢浉鍏抽儴闂�
+     * </p>
+     *
+     * @param keyWord
+     * @return
+     */
+    @RequestMapping(value = "/searchBy", method = RequestMethod.GET)
+    public Result<List<DepartmentTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord,@RequestParam(name = "myDeptSearch", required = false) String myDeptSearch) {
+        Result<List<DepartmentTreeModel>> result = new Result<List<DepartmentTreeModel>>();
+        //閮ㄩ棬鏌ヨ锛宮yDeptSearch涓�1鏃朵负鎴戠殑閮ㄩ棬鏌ヨ锛岀櫥褰曠敤鎴蜂负涓婄骇鏃舵煡鍙煡璐熻矗閮ㄩ棬涓嬫暟鎹�
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String departIds = null;
+        if(oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals( CommonConstant.USER_IDENTITY_2 )){
+            departIds = user.getDepartIds();
+        }
+        List<DepartmentTreeModel> treeList = this.departmentService.searchByKeyWord(keyWord,myDeptSearch,departIds);
+        if (treeList == null || treeList.size() == 0) {
+            result.setSuccess(false);
+            result.setMessage("鏈煡璇㈠尮閰嶆暟鎹紒");
+            return result;
+        }
+        result.setResult(treeList);
+        return result;
+    }
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java
index 34d77c7..4bd22f2 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java
@@ -4,6 +4,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.dnc.entity.DocFile;
@@ -124,7 +125,7 @@
     @AutoLog(value = "鏂囨。琛�-鍒嗛〉鏌ヨ鎺ュ彛")
     @ApiOperation(value = "鏂囨。琛�-鍒嗛〉鏌ヨ鎺ュ彛", notes = "鏂囨。琛�-鍒嗛〉鏌ヨ鎺ュ彛")
     @GetMapping("/find/page/{page}/{size}")
-    public QueryPageResponseResult<DocInfo> findPageList(@PathVariable("page") int page, @PathVariable("size") int size, DocInfoQueryRequest docQuery) {
+    public Result<?> findPageList(@PathVariable("page") int page, @PathVariable("size") int size, DocInfoQueryRequest docQuery) {
         return docInfoService.findPageList(page, size, docQuery);
     }
 
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DocInfo.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DocInfo.java
index faa318f..417ec66 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DocInfo.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DocInfo.java
@@ -5,6 +5,7 @@
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.jeecg.common.aspect.annotation.Dict;
 
 import java.util.Date;
 /**
@@ -27,6 +28,7 @@
     @TableField(value = "doc_suffix")
     private String docSuffix;
     @TableField(value = "doc_status")
+    @Dict(dicCode = "dnc_product_status")
     private Integer docStatus;
     @TableField(value = "publish_file_id")
     private String publishFileId;
@@ -41,8 +43,10 @@
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
     @TableField(value = "create_user",fill = FieldFill.INSERT)
+    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
     private String createUser;
     @TableField(value = "update_user", fill = FieldFill.UPDATE)
+    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
     private String updateUser;
     @JsonIgnore
     @TableLogic
@@ -52,6 +56,7 @@
     @TableField(exist = false)
     private String docClassCode;
     @TableField(exist = false)
+    @Dict(dicCode = "dnc_pull_status")
     private Integer pullStatus;
     @TableField(exist = false)
     private String pullUser;
@@ -63,6 +68,7 @@
     private String classificationId;
     //鍚屾鐘舵�� 1 鏈悓姝� 2 宸插悓姝�
     @TableField(exist = false)
+    @Dict(dicCode = "dnc_doc_sync_status")
     private Integer syncStatus;
 
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/DepartmentModel.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/DepartmentModel.java
new file mode 100644
index 0000000..fe9b18d
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/DepartmentModel.java
@@ -0,0 +1,100 @@
+package org.jeecg.modules.dnc.response;
+
+import org.jeecg.modules.dnc.ucenter.Department;
+import org.jeecg.modules.system.entity.SysDepart;
+import org.jeecg.modules.system.model.SysDepartTreeModel;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 閮ㄩ棬琛� 灏佽鏍戠粨鏋勭殑閮ㄩ棬鐨勫悕绉扮殑瀹炰綋绫�
+ * <p>
+ *
+ * @Author Steve
+ * @Since 2019-01-22
+ *
+ */
+public class DepartmentModel implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭ID
+     */
+    private String key;
+
+    /**
+     * 涓婚敭ID
+     */
+    private String value;
+
+    /**
+     * 閮ㄩ棬鍚嶇О
+     */
+    private String title;
+
+    private List<DepartmentModel> children = new ArrayList<>();
+
+    /**
+     * 灏哾epartmentTreeModel鐨勯儴鍒嗘暟鎹斁鍦ㄨ瀵硅薄褰撲腑
+     * @param departmentTreeModel
+     * @return
+     */
+    public DepartmentModel convert(DepartmentTreeModel departmentTreeModel) {
+        this.key = departmentTreeModel.getDepartId();
+        this.value = departmentTreeModel.getDepartId();
+        this.title = departmentTreeModel.getDepartName();
+        return this;
+    }
+
+    /**
+     * 璇ユ柟娉曚负鐢ㄦ埛閮ㄩ棬鐨勫疄鐜扮被鎵�浣跨敤
+     * @param department
+     * @return
+     */
+    public DepartmentModel convertByUserDepart(Department department) {
+        this.key = department.getDepartId();
+        this.value = department.getDepartId();
+        this.title = department.getDepartName();
+        return this;
+    }
+
+    public List<DepartmentModel> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<DepartmentModel> children) {
+        this.children = children;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+}
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDepartmentService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDepartmentService.java
index 353b914..1d27e52 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDepartmentService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDepartmentService.java
@@ -2,10 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.dnc.response.CommonJsonTree;
+import org.jeecg.modules.dnc.response.DepartmentTreeModel;
 import org.jeecg.modules.dnc.response.QueryPageResponseResult;
 import org.jeecg.modules.dnc.ucenter.Department;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.dnc.request.DepartmentRequest;
+import org.jeecg.modules.system.model.SysDepartTreeModel;
 
 import java.util.List;
 import java.util.Map;
@@ -116,4 +118,28 @@
      * @return
      */
     boolean assignRemoveApproveUser(String departId, Integer relativeFlag, String[] userIds);
+
+    /**
+     * 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�,骞跺垎鑺傜偣杩涜鏄剧ず
+     * @return
+     */
+    List<DepartmentTreeModel> queryTreeList();
+
+
+    /**
+     * 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�,骞跺垎鑺傜偣杩涜鏄剧ず
+     * @param ids 澶氫釜閮ㄩ棬id
+     * @return
+     */
+    List<DepartmentTreeModel> queryTreeList(String ids);
+
+
+    /**
+     * 鏍规嵁鍏抽敭瀛楁悳绱㈢浉鍏崇殑閮ㄩ棬鏁版嵁
+     * @param keyWord
+     * @param myDeptSearch
+     * @param departIds 澶氫釜閮ㄩ棬id
+     * @return
+     */
+    List<DepartmentTreeModel> searchByKeyWord(String keyWord,String myDeptSearch,String departIds);
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java
index 1f9eb45..aeaff4f 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.dnc.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.dnc.entity.DocFile;
 import org.jeecg.modules.dnc.entity.DocInfo;
 import org.jeecg.modules.dnc.entity.ProcessStream;
@@ -95,7 +96,7 @@
      * @param docQuery
      * @return
      */
-    QueryPageResponseResult<DocInfo> findPageList(int page, int size, DocInfoQueryRequest docQuery);
+    Result<?> findPageList(int page, int size, DocInfoQueryRequest docQuery);
 
     /**
      *
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DepartmentServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DepartmentServiceImpl.java
index 1f6bdf9..0c30322 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DepartmentServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DepartmentServiceImpl.java
@@ -1,9 +1,13 @@
 package org.jeecg.modules.dnc.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.netty.util.internal.StringUtil;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.activiti.entity.ActivitiDefinition;
 import org.jeecg.modules.activiti.service.IActivitiDefinitionService;
 import org.jeecg.modules.dnc.dto.DepartApproveUser;
@@ -14,16 +18,17 @@
 import org.jeecg.modules.dnc.exception.ExceptionCast;
 import org.jeecg.modules.dnc.mapper.DepartmentMapper;
 import org.jeecg.modules.dnc.request.DepartmentRequest;
-import org.jeecg.modules.dnc.response.CommonCode;
-import org.jeecg.modules.dnc.response.CommonJsonTree;
-import org.jeecg.modules.dnc.response.DepartmentCode;
-import org.jeecg.modules.dnc.response.QueryPageResponseResult;
+import org.jeecg.modules.dnc.response.*;
 import org.jeecg.modules.dnc.service.*;
 import org.jeecg.modules.dnc.service.support.DepartmentTreeWrapper;
+import org.jeecg.modules.dnc.service.support.FindsDepartmentChildrenUtil;
 import org.jeecg.modules.dnc.ucenter.Department;
 import org.jeecg.modules.dnc.utils.ValidateUtil;
+import org.jeecg.modules.system.entity.SysDepart;
 import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.model.SysDepartTreeModel;
 import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.util.FindsDepartsChildrenUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -275,4 +280,65 @@
         }
         return false;
     }
+
+    /**
+     * 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�,骞跺垎鑺傜偣杩涜鏄剧ず
+     * @return
+     */
+    @Override
+    public List<DepartmentTreeModel> queryTreeList(){
+        LambdaQueryWrapper<Department> query = new LambdaQueryWrapper<Department>();
+        query.eq(Department::getDeleteFlag, CommonConstant.DEL_FLAG_0.toString());
+        query.orderByAsc(Department::getPriority);
+        List<Department> list = this.list(query);
+        List<DepartmentTreeModel> listResult = FindsDepartmentChildrenUtil.wrapTreeDataToTreeList(list);
+        return listResult;
+    }
+
+
+    /**
+     * 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�,骞跺垎鑺傜偣杩涜鏄剧ず
+     * @param ids 澶氫釜閮ㄩ棬id
+     * @return
+     */
+    @Override
+    public List<DepartmentTreeModel> queryTreeList(String ids){
+        List<DepartmentTreeModel> listResult=new ArrayList<>();
+        LambdaQueryWrapper<Department> query = new LambdaQueryWrapper<Department>();
+        query.eq(Department::getDeleteFlag, CommonConstant.DEL_FLAG_0.toString());
+        if(oConvertUtils.isNotEmpty(ids)){
+            query.in(true,Department::getDepartId,ids.split(","));
+        }
+        query.orderByAsc(Department::getPriority);
+        List<Department> list= this.list(query);
+        for (Department department : list) {
+            listResult.add(new DepartmentTreeModel(department));
+        }
+        return  listResult;
+    }
+
+    /**
+     * <p>
+     * 鏍规嵁鍏抽敭瀛楁悳绱㈢浉鍏崇殑閮ㄩ棬鏁版嵁
+     * </p>
+     */
+    @Override
+    public List<DepartmentTreeModel> searchByKeyWord(String keyWord,String myDeptSearch,String departIds) {
+        LambdaQueryWrapper<Department> query = new LambdaQueryWrapper<Department>();
+        List<DepartmentTreeModel> newList = new ArrayList<>();
+        query.like(Department::getDepartName, keyWord);
+        //update-begin--Author:huangzhilin  Date:20140417 for锛歔bugfree鍙穄缁勭粐鏈烘瀯鎼滅储鍥炴樉浼樺寲--------------------
+        DepartmentTreeModel model = new DepartmentTreeModel();
+        List<Department> departList = this.list(query);
+        if(departList.size() > 0) {
+            for(Department depart : departList) {
+                model = new DepartmentTreeModel(depart);
+                model.setChildren(null);
+                //update-end--Author:huangzhilin  Date:20140417 for锛歔bugfree鍙穄缁勭粐鏈烘瀯鎼滅储鍔熷洖鏄句紭鍖�----------------------
+                newList.add(model);
+            }
+            return newList;
+        }
+        return null;
+    }
 }
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java
index 75f17d0..4a4c131 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java
@@ -11,6 +11,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.dnc.exception.ExceptionCast;
 import org.jeecg.modules.dnc.mapper.DocInfoMapper;
@@ -24,6 +25,7 @@
 
 import org.jeecg.modules.dnc.entity.*;
 import org.jeecg.modules.dnc.response.*;
+import org.jeecg.modules.system.service.ISysDictService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -547,7 +549,7 @@
     }
 
     @Override
-    public QueryPageResponseResult<DocInfo> findPageList(int page, int size, DocInfoQueryRequest docQuery) {
+    public Result<?> findPageList(int page, int size, DocInfoQueryRequest docQuery) {
         if(page < 1 || size < 1) {
             ExceptionCast.cast(CommonCode.INVALID_PAGE);
         }
@@ -589,7 +591,7 @@
 //            ((Page<DocInfo>) pageData).setDesc(descStr);
         }
         IPage<DocInfo> docInfoIPage = super.getBaseMapper().findDocExtList(pageData, queryWrapper);
-        return new QueryPageResponseResult<>(CommonCode.SUCCESS, docInfoIPage);
+        return Result.ok(docInfoIPage);
     }
 
     @Override
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java
index ca7177f..5163cf5 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java
@@ -165,6 +165,7 @@
 
     @Override
     public List<CommonGenericTree> loadProductTree(String userId) {
+        //todo 缈昏瘧鍒涘缓浜轰慨鏀逛汉
         //浜у搧
         List<ProductInfo> productInfoList = getByUserPerms(userId);
         if(productInfoList == null || productInfoList.isEmpty())
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/FindsDepartmentChildrenUtil.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/FindsDepartmentChildrenUtil.java
new file mode 100644
index 0000000..f104d6a
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/FindsDepartmentChildrenUtil.java
@@ -0,0 +1,116 @@
+package org.jeecg.modules.dnc.service.support;
+
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.dnc.response.DepartmentModel;
+import org.jeecg.modules.dnc.response.DepartmentTreeModel;
+import org.jeecg.modules.dnc.ucenter.Department;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class FindsDepartmentChildrenUtil {
+    //閮ㄩ棬鏍戜俊鎭�-鏍戠粨鏋�
+    //private static List<DepartmentTreeModel> sysDepartTreeList = new ArrayList<DepartmentTreeModel>();
+
+    //閮ㄩ棬鏍慽d-鏍戠粨鏋�
+    //private static List<DepartmentModel> idList = new ArrayList<>();
+
+
+    /**
+     * queryTreeList鐨勫瓙鏂规硶 ====1=====
+     * 璇ユ柟娉曟槸s灏哠ysDepart绫诲瀷鐨刲ist闆嗗悎杞崲鎴怱ysDepartTreeModel绫诲瀷鐨勯泦鍚�
+     */
+    public static List<DepartmentTreeModel> wrapTreeDataToTreeList(List<Department> recordList) {
+        // 鍦ㄨ鏂规硶姣忚姹備竴娆�,閮借瀵瑰叏灞�list闆嗗悎杩涜涓�娆℃竻鐞�
+        //idList.clear();
+        List<DepartmentModel> idList = new ArrayList<DepartmentModel>();
+        List<DepartmentTreeModel> records = new ArrayList<>();
+        for (int i = 0; i < recordList.size(); i++) {
+            Department depart = recordList.get(i);
+            records.add(new DepartmentTreeModel(depart));
+        }
+        List<DepartmentTreeModel> tree = findChildren(records, idList);
+        setEmptyChildrenAsNull(tree);
+        return tree;
+    }
+
+    /**
+     * 鑾峰彇 DepartmentModel
+     * @param recordList
+     * @return
+     */
+    public static List<DepartmentModel> wrapTreeDataToDepartIdTreeList(List<Department> recordList) {
+        // 鍦ㄨ鏂规硶姣忚姹備竴娆�,閮借瀵瑰叏灞�list闆嗗悎杩涜涓�娆℃竻鐞�
+        //idList.clear();
+        List<DepartmentModel> idList = new ArrayList<DepartmentModel>();
+        List<DepartmentTreeModel> records = new ArrayList<>();
+        for (int i = 0; i < recordList.size(); i++) {
+            Department depart = recordList.get(i);
+            records.add(new DepartmentTreeModel(depart));
+        }
+        findChildren(records, idList);
+        return idList;
+    }
+
+    /**
+     * queryTreeList鐨勫瓙鏂规硶 ====2=====
+     * 璇ユ柟娉曟槸鎵惧埌骞跺皝瑁呴《绾х埗绫荤殑鑺傜偣鍒癟reeList闆嗗悎
+     */
+    private static List<DepartmentTreeModel> findChildren(List<DepartmentTreeModel> recordList,
+                                                         List<DepartmentModel> departIdList) {
+
+        List<DepartmentTreeModel> treeList = new ArrayList<>();
+        for (int i = 0; i < recordList.size(); i++) {
+            DepartmentTreeModel branch = recordList.get(i);
+            if (oConvertUtils.isEmpty(branch.getParentId())) {
+                treeList.add(branch);
+                DepartmentModel DepartmentModel = new DepartmentModel().convert(branch);
+                departIdList.add(DepartmentModel);
+            }
+        }
+        getGrandChildren(treeList,recordList,departIdList);
+
+        //idList = departIdList;
+        return treeList;
+    }
+
+    /**
+     * queryTreeList鐨勫瓙鏂规硶====3====
+     *璇ユ柟娉曟槸鎵惧埌椤剁骇鐖剁被涓嬬殑鎵�鏈夊瓙鑺傜偣闆嗗悎骞跺皝瑁呭埌TreeList闆嗗悎
+     */
+    private static void getGrandChildren(List<DepartmentTreeModel> treeList,List<DepartmentTreeModel> recordList,List<DepartmentModel> idList) {
+
+        for (int i = 0; i < treeList.size(); i++) {
+            DepartmentTreeModel model = treeList.get(i);
+            DepartmentModel idModel = idList.get(i);
+            for (int i1 = 0; i1 < recordList.size(); i1++) {
+                DepartmentTreeModel m = recordList.get(i1);
+                if (m.getParentId()!=null && m.getParentId().equals(model.getDepartId())) {
+                    model.getChildren().add(m);
+                    DepartmentModel dim = new DepartmentModel().convert(m);
+                    idModel.getChildren().add(dim);
+                }
+            }
+            getGrandChildren(treeList.get(i).getChildren(), recordList, idList.get(i).getChildren());
+        }
+
+    }
+
+
+    /**
+     * queryTreeList鐨勫瓙鏂规硶 ====4====
+     * 璇ユ柟娉曟槸灏嗗瓙鑺傜偣涓虹┖鐨凩ist闆嗗悎璁剧疆涓篘ull鍊�
+     */
+    private static void setEmptyChildrenAsNull(List<DepartmentTreeModel> treeList) {
+
+        for (int i = 0; i < treeList.size(); i++) {
+            DepartmentTreeModel model = treeList.get(i);
+            if (model.getChildren().size() == 0) {
+                model.setChildren(null);
+            }else{
+                setEmptyChildrenAsNull(model.getChildren());
+            }
+        }
+        // sysDepartTreeList = treeList;
+    }
+}

--
Gitblit v1.9.3