From 3f5e12c13586ad7b940458ce2ef75908a2cf2f88 Mon Sep 17 00:00:00 2001 From: CMM <2198256324@qq.com> Date: Fri, 9 Jun 2023 16:10:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=85=E6=88=91=E5=A4=84=E7=90=86=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=87=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pmapi/todocenter/manage/TodoCenterManage.java | 66 ++++++++++------------ .../model/req/ToBeProcessedExportReq.java | 3 + 2 files changed, 33 insertions(+), 36 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java index 99c369c..8b2a769 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java @@ -257,49 +257,43 @@ public class TodoCenterManage { * @since 2023/02/01 */ public void exportTodoList(HttpServletResponse response, ToBeProcessedExportReq param) { - // 获取登录用户ID - Long userId = LoginUserUtil.getUserId(); - // 获取用户全量用户信息 - UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId); - // 获取登录用户浙政钉code - String employeeCode = userFullInfo.getEmployeeCode(); + String employeeCode = param.getEmployeeCode(); + if (StringUtils.isBlank(employeeCode)) { + // 获取登录用户ID + Long userId = LoginUserUtil.getUserId(); + // 获取用户全量用户信息 + UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId); + // 获取登录用户浙政钉code + employeeCode = userFullInfo.getEmployeeCode(); + } // 查出项目库项目 ProjectListReq projectListReq = new ProjectListReq(); BeanUtils.copyProperties(param, projectListReq); List projects = projectLibManage.projectList(projectListReq); - List userTodoList = Lists.newArrayList(); - Map projectInfoMap = Maps.newHashMap(); - if (CollUtil.isNotEmpty(projects)) { - Map projectsMap = projects.stream().collect(Collectors.toMap(Project::getId, v -> v)); - // 再查出项目关联的流程实例ID - List projectIdList = projects.stream().map(Project::getId).collect(Collectors.toList()); - List projectInstList = projectInstService.list(Wrappers.lambdaQuery(ProjectInst.class) - .in(ProjectInst::getProjectId, projectIdList) - .orderByDesc(ProjectInst::getProjectId)); - projectInfoMap = projectInstList.stream().collect(Collectors.toMap(ProjectInst::getInstCode, p-> projectsMap.get(p.getProjectId()))); - List instCodes = projectInstList.stream().map(ProjectInst::getInstCode).collect(Collectors.toList()); - // 查出用户工作流 - TodoCenterListReqDTO req = new TodoCenterListReqDTO(); - req.setInstCodes(instCodes); - req.setProcessDefId(param.getProcessDefId()); - req.setUserId(String.valueOf(userId)); - req.setEmployeeCode(employeeCode); - BeanUtils.copyProperties(param,req); - - //有待办节点的(不包含退回) - List todoList = processTaskService.getUserTodoList(req); - //有退回待办的 - List backList = processTaskService.getBackTodoList(req); - //合并 并且排序 - userTodoList = Stream.concat(todoList.stream(),backList.stream()) - .filter(Objects::nonNull) - .sorted(Comparator.comparing(ProcessTaskVo::getTaskCreateTime) - .reversed()) - .collect(Collectors.toList()); - } + Map projectsMap = projects.stream().collect(Collectors.toMap(Project::getId, v -> v)); + // 再查出项目关联的流程实例ID + List projectIdList = projects.stream().map(Project::getId).collect(Collectors.toList()); + List projectInstList = projectInstService.list(Wrappers.lambdaQuery(ProjectInst.class) + .in(ProjectInst::getProjectId, projectIdList).orderByDesc(ProjectInst::getProjectId)); + Map projectInfoMap = projectInstList.stream() + .collect(Collectors.toMap(ProjectInst::getInstCode, p -> projectsMap.get(p.getProjectId()))); + List instCodes = projectInstList.stream().map(ProjectInst::getInstCode).collect(Collectors.toList()); + + // 查出用户工作流 + TodoCenterListReqDTO req = new TodoCenterListReqDTO(); + req.setInstCodes(instCodes); + req.setProcessDefId(param.getProcessDefId()); + req.setEmployeeCode(employeeCode); + // 有待办节点的(不包含退回) + List todoList = processTaskService.getUserTodoList(req); + // 有退回待办的 + List backList = processTaskService.getBackTodoList(req); + // 合并 并且排序 + List userTodoList = Stream.concat(todoList.stream(), backList.stream()).filter(Objects::nonNull) + .sorted(Comparator.comparing(ProcessTaskVo::getTaskCreateTime).reversed()).collect(Collectors.toList()); ExcelExportWriter excelExportWriter = new ExcelExportWriter(); String fileName = null; if (IsAppendProjectEnum.APPEND_PROJECT.getCode().equals(param.getIsTemporaryAugment())) { diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/model/req/ToBeProcessedExportReq.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/model/req/ToBeProcessedExportReq.java index 7e1eb1e..e19d74c 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/model/req/ToBeProcessedExportReq.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/model/req/ToBeProcessedExportReq.java @@ -20,6 +20,9 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class ToBeProcessedExportReq extends ToBeProcessedReq { + @ApiModelProperty("登录人员工号") + private String employeeCode; + @ApiModelProperty("导出选项") private List exportOptionList;