From 71b80b57e1b58942de9349dc5fa18f3c9a656bff Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Wed, 27 Apr 2022 23:33:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A1=B5=E9=9D=A2=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/vos/oa/page/CurrentUserVO.java | 44 +++++++++++++++++++ .../activiti/pojo/vos/oa/page/FieldVO.java | 9 ++++ .../oa/impl/OaFormReportRouteServiceImpl.java | 23 ++++++++-- .../oa/impl/OaFormReportServiceImpl.java | 7 ++- .../service/oa/impl/OaServiceImpl.java | 29 ++++++------ 5 files changed, 94 insertions(+), 18 deletions(-) create mode 100644 module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/CurrentUserVO.java diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/CurrentUserVO.java b/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/CurrentUserVO.java new file mode 100644 index 00000000..126ab9ed --- /dev/null +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/CurrentUserVO.java @@ -0,0 +1,44 @@ +package ink.wgink.module.activiti.pojo.vos.oa.page; + +import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName: CurrentUserVO + * @Description: 当前用户 + * @Author: wanggeng + * @Date: 2022/4/27 23:17 + * @Version: 1.0 + */ +public class CurrentUserVO { + + private String userId; + private String userName; + private List departments; + + public String getUserId() { + return userId == null ? "" : userId.trim(); + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName == null ? "" : userName.trim(); + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public List getDepartments() { + return departments == null ? new ArrayList() : departments; + } + + public void setDepartments(List departments) { + this.departments = departments; + } +} diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/FieldVO.java b/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/FieldVO.java index 04cb38c5..5148efa2 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/FieldVO.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/FieldVO.java @@ -13,6 +13,7 @@ public class FieldVO { private Integer isEditable; private Integer isVisible; private String editHistory; + private String autoBackFill; public String getFieldName() { return fieldName == null ? "" : fieldName.trim(); @@ -45,4 +46,12 @@ public class FieldVO { public void setEditHistory(String editHistory) { this.editHistory = editHistory; } + + public String getAutoBackFill() { + return autoBackFill == null ? "" : autoBackFill.trim(); + } + + public void setAutoBackFill(String autoBackFill) { + this.autoBackFill = autoBackFill; + } } diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java index 64e7c974..c02ebbcf 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java @@ -8,15 +8,13 @@ import ink.wgink.interfaces.user.IUserBaseService; import ink.wgink.module.activiti.pojo.dtos.oa.NodeButtonDTO; import ink.wgink.module.activiti.pojo.dtos.oa.NodeFieldDTO; import ink.wgink.module.activiti.pojo.pos.oa.OaNodeAssigneePO; -import ink.wgink.module.activiti.pojo.vos.oa.page.FormButtonVO; -import ink.wgink.module.activiti.pojo.vos.oa.page.ConfirmAssigneeVO; -import ink.wgink.module.activiti.pojo.vos.oa.page.FieldVO; -import ink.wgink.module.activiti.pojo.vos.oa.page.GoBackUserTaskVO; +import ink.wgink.module.activiti.pojo.vos.oa.page.*; import ink.wgink.module.activiti.service.activiti.IActivitiModelService; import ink.wgink.module.activiti.service.oa.*; import ink.wgink.module.form.enums.design.FormTypeEnum; import ink.wgink.module.form.service.design.IFormFieldService; import ink.wgink.module.form.service.report.IFormReportRouteService; +import ink.wgink.pojo.bos.UserInfoBO; import ink.wgink.pojo.dtos.user.UserDTO; import org.activiti.bpmn.model.FlowNode; import org.activiti.bpmn.model.SequenceFlow; @@ -89,6 +87,7 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements setPageFields(deploymentId, firstUserTask, model); setPageFormButtonsAndHistoryUserTasks(deploymentId, null, firstUserTask, model); + setPageCurrentUser(model); formReportRouteService.save(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model); } @@ -119,10 +118,25 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements setPageFields(deploymentId, currentUserTask, model); setPageFormButtonsAndHistoryUserTasks(deploymentId, null, currentUserTask, model); + setPageCurrentUser(model); // 设置代理人 formReportRouteService.update(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model); } + /** + * 设置页面当前用户 + * + * @param model + */ + private void setPageCurrentUser(Map model) { + CurrentUserVO currentUserVO = new CurrentUserVO(); + UserInfoBO currentUser = securityComponent.getCurrentUser(); + currentUserVO.setUserId(currentUser.getUserId()); + currentUserVO.setUserName(currentUser.getUserName()); + currentUserVO.setDepartments(currentUser.getDepartments()); + model.put("currentUser", JSONObject.toJSONString(currentUserVO)); + } + @Override public void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { Map model = getHashMap(10); @@ -166,6 +180,7 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements fieldVO.setIsEditable(nodeFieldDTO.getIsEditable()); fieldVO.setIsVisible(nodeFieldDTO.getIsVisible()); fieldVO.setEditHistory(nodeFieldDTO.getEditHistory()); + nodeFieldDTO.getAutoBackFill(); return fieldVO; }).collect(Collectors.toList()); model.put("fields", JSONObject.toJSONString(fieldVOs)); diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportServiceImpl.java b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportServiceImpl.java index cd506777..7f147991 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportServiceImpl.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportServiceImpl.java @@ -100,6 +100,8 @@ public class OaFormReportServiceImpl extends DefaultBaseService implements IOaFo setFormReportAssignee(oaFormReportUnWantedValueBO.getSelectType(), oaFormReportUnWantedValueBO.getAssignees(), params); } setRecordFields(task.getId(), oaFormReportUnWantedValueBO.getRecordFields(), userId, userName, params); + // 保存代理人昵称 + params.put(KEY_ASSIGNEE_USER_NAME, userName); taskService.setVariablesLocal(task.getId(), params); taskService.complete(task.getId(), params); } @@ -132,6 +134,8 @@ public class OaFormReportServiceImpl extends DefaultBaseService implements IOaFo setFormReportAssignee(oaFormReportUnWantedValueBO.getSelectType(), oaFormReportUnWantedValueBO.getAssignees(), params); } setRecordFields(taskId, oaFormReportUnWantedValueBO.getRecordFields(), userId, userName, params); + // 保存代理人昵称 + params.put(KEY_ASSIGNEE_USER_NAME, userName); taskService.setVariablesLocal(taskId, params); taskService.complete(taskId, params); } @@ -164,7 +168,8 @@ public class OaFormReportServiceImpl extends DefaultBaseService implements IOaFo taskSignJsonObject.put("time", currentTime); reportParams.put(taskVariableKey, taskSignJsonObject.toJSONString()); if (StringUtils.equals(oaFormReportRecordFieldVO.getEditHistory(), FieldEditRecordEnum.LATEST.getValue())) { - // 审批存储在流程变量中 + // 内容变更为 [签批人:XX。 内容:XXXXXX。 时间:XXXX-XX-XX XX:XX:XX] + reportParams.put(oaFormReportRecordFieldVO.getFieldName(), String.format("签批人:%s。 内容:%s。 时间:%s。", userName, reportRecordValue, currentTime)); continue; } if (StringUtils.equals(oaFormReportRecordFieldVO.getEditHistory(), FieldEditRecordEnum.ALL.getValue())) { diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaServiceImpl.java b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaServiceImpl.java index 414e7737..4fe6b992 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaServiceImpl.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaServiceImpl.java @@ -225,12 +225,14 @@ public class OaServiceImpl extends DefaultBaseService implements IOaService { oaProcessLogDTO.setTaskName(historicTaskInstance.getName()); oaProcessLogDTO.setTaskStatus(ProcessTaskStatusEnum.ALREADY_DONE.getValue()); + Map taskLocalVariables = historicTaskInstance.getTaskLocalVariables(); + Object assigneeUserNameObj = taskLocalVariables.get(IOaFormReportService.KEY_ASSIGNEE_USER_NAME); + oaProcessLogDTO.setUserIds(userIds); - oaProcessLogDTO.setUserNames(userIds); + oaProcessLogDTO.setUserNames(assigneeUserNameObj == null ? "" : assigneeUserNameObj.toString()); oaProcessLogDTO.setStartTime(DateUtil.getDateTime(historicTaskInstance.getCreateTime())); oaProcessLogDTO.setEndTime(DateUtil.getDateTime(historicTaskInstance.getEndTime())); oaProcessLogDTO.setUsedTime(DateUtil.getUsedTime(historicTaskInstance.getDurationInMillis())); - oaProcessLogDTO.setTaskVariables(historicTaskInstance.getTaskLocalVariables()); oaProcessLogDTOs.add(oaProcessLogDTO); }); // 待办 @@ -244,23 +246,24 @@ public class OaServiceImpl extends DefaultBaseService implements IOaService { oaProcessLogDTO.setTaskName(task.getName()); oaProcessLogDTO.setTaskStatus(ProcessTaskStatusEnum.NEED_TO_BE_DEALT_WITH.getValue()); + Map taskLocalVariables = task.getTaskLocalVariables(); + Object assigneeUserNameObj = taskLocalVariables.get(IOaFormReportService.KEY_ASSIGNEE_USER_NAME); + String userIdString = WStringUtil.listToStr(userIds, ","); oaProcessLogDTO.setUserIds(userIdString); - oaProcessLogDTO.setUserNames(userIdString); + oaProcessLogDTO.setUserNames(assigneeUserNameObj == null ? "" : assigneeUserNameObj.toString()); oaProcessLogDTO.setStartTime(DateUtil.getDateTime(task.getCreateTime())); - oaProcessLogDTO.setTaskVariables(task.getTaskLocalVariables()); oaProcessLogDTOs.add(oaProcessLogDTO); }); - // 查询用户 - List userDTOs = userBaseService.listByUserIds(userIdSet.stream().collect(Collectors.toList())); - oaProcessLogDTOs.forEach(oaProcessLogDTO -> { - userDTOs.forEach(userDTO -> { - if (StringUtils.contains(oaProcessLogDTO.getUserNames(), userDTO.getUserId())) { - oaProcessLogDTO.setUserNames(oaProcessLogDTO.getUserNames().replaceAll(userDTO.getUserId(), userDTO.getUserName())); - } - }); - }); +// List userDTOs = userBaseService.listByUserIds(userIdSet.stream().collect(Collectors.toList())); +// oaProcessLogDTOs.forEach(oaProcessLogDTO -> { +// userDTOs.forEach(userDTO -> { +// if (StringUtils.contains(oaProcessLogDTO.getUserNames(), userDTO.getUserId())) { +// oaProcessLogDTO.setUserNames(oaProcessLogDTO.getUserNames().replaceAll(userDTO.getUserId(), userDTO.getUserName())); +// } +// }); +// }); return oaProcessLogDTOs; }