lyh
2025-01-16 1d84a3c62eeee429f7d7d6339bcf9b504a9d7277
DNC流程配置、DNC部门处理
已添加3个文件
已修改16个文件
559 ■■■■■ 文件已修改
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/ActivitiDefinitionController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/controller/AssignFileStreamController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/ActivitiDefinition.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/entity/AssignFileStream.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/mapper/xml/AssignFileStreamMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IActivitiDefinitionService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/IAssignFileStreamService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/ActivitiDefinitionServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/activiti/service/impl/AssignFileStreamServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DepartmentController.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/DocInfo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/response/DepartmentModel.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDepartmentService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DepartmentServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/FindsDepartmentChildrenUtil.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
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流程操作-查询文档的审批记录")
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)
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)
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>
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);
    /**
     * èŽ·å–å¤šä¸ªéƒ¨é—¨çš„å®¡æ‰¹äºº åŽ»é‡
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);
    /**
     * æŸ¥è¯¢æ–‡æ¡£çš„审批记录
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);
    }
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;
@@ -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
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>>();
        //部门查询,myDeptSearch为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;
    }
}
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);
    }
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;
}
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<>();
    /**
     * å°†departmentTreeModel的部分数据放在该对象当中
     * @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;
    }
}
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);
}
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);
    /**
     *
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;
    }
}
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
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())
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>();
    //部门树id-树结构
    //private static List<DepartmentModel> idList = new ArrayList<>();
    /**
     * queryTreeList的子方法 ====1=====
     * è¯¥æ–¹æ³•是s将SysDepart类型的list集合转换成SysDepartTreeModel类型的集合
     */
    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=====
     * è¯¥æ–¹æ³•是找到并封装顶级父类的节点到TreeList集合
     */
    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====
     * è¯¥æ–¹æ³•是将子节点为空的List集合设置为Null值
     */
    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;
    }
}