From 66e5c9d9cd7985ef45af40e5e41481fe0829c80f Mon Sep 17 00:00:00 2001 From: CMM <2198256324@qq.com> Date: Fri, 10 Feb 2023 15:19:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=AE=A1=E6=A0=B8=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E8=AF=84=E8=AE=BA=E4=BF=A1=E6=81=AF=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../todocenter/bean/entity/ProcessComment.java | 1 - .../pmapi/todocenter/bean/entity/ProgressNode.java | 2 +- .../bean/vo/ProcessProgressDetailVo.java | 4 +-- .../bean/vo/ProgressNodeAuditInfoVo.java | 5 +++- .../pmapi/todocenter/manage/TodoCenterManage.java | 30 ++++++++++++++++++++++ .../com/ningdatech/pmapi/user/entity/UserInfo.java | 2 ++ 6 files changed, 39 insertions(+), 5 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProcessComment.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProcessComment.java index 6a55fb4..95a4a8b 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProcessComment.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProcessComment.java @@ -17,7 +17,6 @@ import java.util.List; * @since 2023/02/01 16:25 */ @Data -@Builder @NoArgsConstructor public class ProcessComment { /** diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProgressNode.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProgressNode.java index db6e911..8af91ed 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProgressNode.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/entity/ProgressNode.java @@ -55,7 +55,7 @@ public class ProgressNode { /** * 审核信息 */ - private List auditInfos; + private ProgressNodeAuditInfoVo auditInfo; /** * 处理结果 */ diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProcessProgressDetailVo.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProcessProgressDetailVo.java index 061d00e..278d672 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProcessProgressDetailVo.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProcessProgressDetailVo.java @@ -1,6 +1,6 @@ package com.ningdatech.pmapi.todocenter.bean.vo; -import com.ningdatech.pmapi.common.model.FileBasicInfo; + import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.todocenter.bean.entity.ProgressNode; import com.ningdatech.pmapi.user.entity.UserInfo; @@ -11,7 +11,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.LocalDateTime; + import java.util.Date; import java.util.List; import java.util.Map; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProgressNodeAuditInfoVo.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProgressNodeAuditInfoVo.java index 2e91abd..b1ced2d 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProgressNodeAuditInfoVo.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/bean/vo/ProgressNodeAuditInfoVo.java @@ -1,8 +1,10 @@ package com.ningdatech.pmapi.todocenter.bean.vo; import com.ningdatech.pmapi.todocenter.bean.entity.ProcessComment; +import com.ningdatech.pmapi.user.entity.UserInfo; import com.wflow.workflow.bean.process.OrgUser; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @@ -17,6 +19,7 @@ import java.util.Date; @Data @NoArgsConstructor @AllArgsConstructor +@Builder public class ProgressNodeAuditInfoVo extends ProcessComment { private String id; @@ -26,7 +29,7 @@ public class ProgressNodeAuditInfoVo extends ProcessComment { private String commentType; - private OrgUser user; + private UserInfo user; private Date createTime; } 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 11fa868..5c849d1 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 @@ -28,6 +28,7 @@ import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.todocenter.bean.entity.ProcessComment; import com.ningdatech.pmapi.todocenter.bean.entity.ProgressNode; import com.ningdatech.pmapi.todocenter.bean.vo.ProcessProgressDetailVo; +import com.ningdatech.pmapi.todocenter.bean.vo.ProgressNodeAuditInfoVo; import com.ningdatech.pmapi.todocenter.constant.HisProInsEndActId; import com.ningdatech.pmapi.todocenter.enums.IsAppendProjectEnum; import com.ningdatech.pmapi.todocenter.enums.ProcessStatusEnum; @@ -60,6 +61,7 @@ import com.wflow.workflow.bean.process.props.ApprovalProps; import com.wflow.workflow.bean.vo.ProcessHandlerParamsVo; import com.wflow.workflow.bean.vo.ProcessInstanceVo; import com.wflow.workflow.bean.vo.ProcessTaskVo; +import com.wflow.workflow.bean.vo.TaskCommentVo; import com.wflow.workflow.config.WflowGlobalVarDef; import com.wflow.workflow.enums.ProcessHandlerEnum; import com.wflow.workflow.service.FormService; @@ -822,6 +824,33 @@ public class TodoCenterManage { Map varMap = historyService.createHistoricVariableInstanceQuery() .processInstanceId(instanceId).variableNameLike("approve_%").list().stream() .collect(Collectors.toMap(HistoricVariableInstance::getVariableName, v -> (ProcessHandlerEnum) v.getValue())); + + Map> commentMap = new HashMap<>(); + //统一处理所有评论数据,省的多次查询 + List cmvos = taskService.getProcessInstanceComments(instanceId).stream().map(comment -> { + userSet.add(comment.getUserId()); + ProgressNodeAuditInfoVo progressNodeAuditInfoVo = ProgressNodeAuditInfoVo.builder() + .id(comment.getId()) + .taskId(comment.getTaskId()) + .commentType(comment.getType()) + .type("COMMENT") + .createTime(comment.getTime()) + .user(UserInfo.builder().id(Long.valueOf(comment.getUserId())).build()) + .build(); + ProcessComment processComment = JSONObject.parseObject(comment.getFullMessage(), ProcessComment.class); + progressNodeAuditInfoVo.setText(processComment.getText()); + progressNodeAuditInfoVo.setAttachments(processComment.getAttachments()); + return progressNodeAuditInfoVo; + }).collect(Collectors.toList()); + cmvos.forEach(cm -> { + //把评论数据按照task进行归类 + String taskId = Optional.ofNullable(cm.getTaskId()).orElse(instanceId); + List vos = commentMap.computeIfAbsent(taskId, k -> new ArrayList<>()); + vos.add(cm); + }); + // 再将评论按照任务一次构建,方便取出 + Map commentsMap = cmvos.stream() + .collect(Collectors.toMap(ProgressNodeAuditInfoVo::getTaskId, c -> c)); List progressNodes = list.stream().filter(his -> ObjectUtil.isNotNull(his.getTaskId())).map(his -> { Object props = nodeProps.get(his.getActivityId()); ApprovalModeEnum approvalMode = null; @@ -838,6 +867,7 @@ public class TodoCenterManage { .finishTime(his.getEndTime()) .taskId(his.getTaskId()) .approvalMode(approvalMode) + .auditInfo(commentsMap.get(his.getTaskId())) .result(varMap.get("approve_" + his.getTaskId())) .build(); }).collect(Collectors.toList()); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java index fad9d1d..7eac278 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.io.Serializable; @@ -21,6 +22,7 @@ import java.time.LocalDateTime; @Data @TableName("nd_user_info") @ApiModel(value = "UserInfo对象", description = "用户信息表") +@Builder public class UserInfo implements Serializable { private static final long serialVersionUID = 1L;