From c9e9cd3df7f76aa164e83280680945bca5250451 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 02 三月 2025 17:20:46 +0800 Subject: [PATCH] 流程详情、办理时展示任务的特殊操作日志 --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 275 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 200 insertions(+), 75 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java index 1e1a777..f6cfa5b 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -102,6 +102,7 @@ IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class); baseMapper.getPage(query, page); for (ProjectProcessVO vo : page.getRecords()) { + vo.setStatus(vo.getProjectStatus()); if (Objects.nonNull(vo.getProcessDefId())) { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult(); if (Objects.nonNull(processDefinition)) { @@ -203,8 +204,6 @@ SysUser sysUser = SecurityUtils.getLoginUser().getUser(); identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); - //娴嬭瘯瀹圭己 - variables.put("a", 10); // 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉 variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables); @@ -285,7 +284,7 @@ this.getRemainingTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); break; case TaskTypeConstant.TIMELY: - this.getTimelyTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); + this.getTimelyTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); break; case TaskTypeConstant.OVERTIME: this.getOvertimeTask(query.getProjectId(), query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); @@ -648,7 +647,7 @@ jsonData.setAfterHandlerIds(afterHandlerIds); jsonData.setAfterHandlerType(form.getPeopleType()); // 鍙戝竷杞姙浜嬩欢 - publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), task.getName(), ProcessLogEventTypeEnum.DELEGATE, jsonData)); + publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), task.getTaskDefinitionKey(), task.getName(), ProcessLogEventTypeEnum.DELEGATE, jsonData)); return Result.ok("杞姙鎴愬姛"); } @@ -659,7 +658,7 @@ Task task = taskService.createTaskQuery().taskId(form.getTaskId()).processInstanceId(form.getProcessInsId()).singleResult(); if (Objects.nonNull(task)) { // 娣诲姞璺宠繃鏃ュ織 - publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), task.getName(), ProcessLogEventTypeEnum.JUMP, new JumpData(form.getDesc()))); + publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), task.getTaskDefinitionKey(), task.getName(), ProcessLogEventTypeEnum.JUMP, new JumpData(form.getDesc()))); // 鏌ュ嚭璇ヤ换鍔$粦瀹氱殑琛ㄥ崟 Map<String, Object> data = new HashMap<>(1); @@ -678,6 +677,9 @@ @Override public Result taskSupervise(TaskSuperviseForm form) { Task task = taskService.createTaskQuery().taskId(form.getTaskId()).singleResult(); + if (Objects.isNull(task)) { + throw new RuntimeException("浠诲姟涓嶅瓨鍦�"); + } SuperviseData jsonData = new SuperviseData(); jsonData.setCreateTime(new Date()); jsonData.setContent(form.getContent()); @@ -686,12 +688,12 @@ jsonData.setReceiverIds(form.getReceiverIds()); jsonData.setReceiverType(form.getReceiverType()); jsonData.setSuperviseType(form.getSuperviseType()); - QueryWrapper<ProcessLog> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("task_id", form.getTaskId()); - queryWrapper.eq("event_type", ProcessLogEventTypeEnum.SUPERVISE); - queryWrapper.eq("process_ins_id", form.getProcessInsId()); - //鏌ヨ鐫e姙鏃ュ織 - ProcessLog processLog = processLogService.getOne(queryWrapper); + + ProcessLog processLog = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper()) + .eq(ProcessLog::getTaskId, form.getTaskId()) + .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.SUPERVISE) + .eq(ProcessLog::getProcessInsId, form.getProcessInsId()) + .one(); List<SuperviseData> dataList; if (processLog != null) { String eventDataJson = processLog.getEventDataJson(); @@ -703,7 +705,16 @@ } dataList.add(jsonData); //娣诲姞鐫e姙鏃ュ織 - publisher.publishEvent(new TaskLogEvent(this, processLog.getId(), processLog.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), task.getName(), ProcessLogEventTypeEnum.SUPERVISE, dataList)); + publisher.publishEvent(new TaskLogEvent(this, + processLog.getId(), + processLog.getUserId(), + form.getProjectId(), + form.getProcessInsId(), + form.getTaskId(), + task.getTaskDefinitionKey(), + task.getName(), + ProcessLogEventTypeEnum.SUPERVISE, + dataList)); return Result.ok("鎿嶄綔鎴愬姛"); } @@ -730,6 +741,7 @@ form.getProjectId(), form.getProcessInsId(), form.getTaskId(), + task.getTaskDefinitionKey(), task.getName(), ProcessLogEventTypeEnum.HANGUP, new HangupData(form.getReason()) @@ -759,6 +771,7 @@ form.getProjectId(), form.getProcessInsId(), form.getTaskId(), + task.getTaskDefinitionKey(), task.getName(), ProcessLogEventTypeEnum.CANCEL_HANGUP, new HangupData(form.getReason()) @@ -804,6 +817,7 @@ form.getProjectId(), form.getProcessInsId(), form.getTaskId(), + task.getTaskDefinitionKey(), task.getName(), ProcessLogEventTypeEnum.TEAM_WORK, new TeamWorkData(form.getHandlerType(), form.getHandlerIds(), TeamWorkStatusEnum.NOT_FINISHED) @@ -877,7 +891,7 @@ ProcessInstance process = runtimeService.createProcessInstanceQuery().processInstanceId(processInsId).singleResult(); if (Objects.isNull(process)) { // 濡傛灉杩愯鏃舵壘涓嶅埌璇存槑鏄凡瀹屾垚鐨勬祦绋嬶紝鐩存帴鏌ュ巻鍙蹭换鍔� - List<CustomerTaskVO> vos = this.getFinishedProcessTaskInfo(userTasks, processInsId, processDefinitionId); + List<CustomerTaskVO> vos = this.getFinishedProcessTaskInfo(userTasks, projectId, processInsId, processDefinitionId); result.data(vos); return vos; } @@ -899,10 +913,16 @@ List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); vo.setHandlerId(handlerIds); vo.setHandlerName(handlerNames); vo.setHandlerUnitId(handlerUnitIds); vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); + + this.setCandidateInfo(userTask, vo, projectId, processInsId); if (Objects.isNull(task)) { // 濡傛灉浠诲姟鍦ㄨ繍琛屾椂娌℃壘鍒帮紝閭d箞鍙兘涓烘湭寮�濮嬫垨鑰呭凡瀹屾垚锛岄渶瑕佷粠鍘嗗彶浠诲姟涓啀鎵句竴涓� @@ -914,28 +934,25 @@ .desc() .list(); if (CollectionUtils.isEmpty(historicTasks)) { - vo.setPromoterName("鏆傛棤"); - vo.setPromoterUnitName("鏆傛棤"); // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { vo.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); if (Objects.nonNull(sysUser)) { handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); + handlerNames.add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); } } - } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { List<String> groupIds = userTask.getCandidateGroups(); for (String groupId : groupIds) { // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { vo.setHandlerType(HandlerTypeEnum.DEPT); - this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 1); } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); @@ -945,6 +962,7 @@ if (Objects.nonNull(dept)) { handlerUnitIds.add(dept.getDeptId()); handlerUnitNames.add(dept.getDeptName()); + handlerNames.add(this.getDeptLeaderShowName(dept)); } } } else { @@ -970,9 +988,11 @@ SysUser handlerUser = sysUserService.selectUserById(handlerUserId); if (Objects.nonNull(handlerUser)) { handlerIds.add(handlerUserId); - handlerNames.add(handlerUser.getNickName()); - vo.setActualHandlerUserId(historicTasks.get(0).getAssignee()); - vo.setActualHandlerUserName(handlerUser.getNickName()); + handlerNames.add(this.getUserShowName(handlerUser)); + if (Objects.nonNull(handlerUser.getDept())) { + handlerUnitNames.add(handlerUser.getDept().getDeptName()); + handlerUnitIds.add(handlerUser.getDept().getDeptId()); + } } vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey()); this.setPromoterAndHandler(vo, historicTasks.get(0).getIdentityLinks()); @@ -1002,8 +1022,11 @@ * @param processDefId 娴佺▼瀹氫箟id * @return */ - private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, String processInsId, String processDefId) { + private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, Long projectId, String processInsId, String processDefId) { HistoricProcessInstance hisProcess = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInsId).singleResult(); + if (Objects.isNull(hisProcess)) { + return new ArrayList<>(); + } List<CustomerTaskVO> vos = userTasks.stream().map(userTask -> { CustomerTaskVO vo = new CustomerTaskVO(); vo.setProcessInsId(hisProcess.getId()); @@ -1011,6 +1034,23 @@ vo.setDeployId(hisProcess.getDeploymentId()); vo.setTaskName(userTask.getName()); vo.setProcessName(hisProcess.getProcessDefinitionName()); + + // 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist + List<Long> handlerIds = new ArrayList<>(2); + List<String> handlerNames = new ArrayList<>(2); + List<Long> handlerUnitIds = new ArrayList<>(2); + List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); + vo.setHandlerId(handlerIds); + vo.setHandlerName(handlerNames); + vo.setHandlerUnitId(handlerUnitIds); + vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); + + + this.setCandidateInfo(userTask, vo, projectId, processInsId); // 鏌ュ涓槸鍥犱负椹冲洖鍚庝細鏌ュ嚭涓ゆ潯鍙婁互涓婏紝鍙栨渶鏂颁竴鏉� List<HistoricTaskInstance> hisTaskList = historyService.createHistoricTaskInstanceQuery() @@ -1073,18 +1113,19 @@ taskVO.setProcessInsId(task.getProcessInstanceId()); taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey()); - // 娴佺▼鍙戣捣浜轰俊鎭� - this.setPromoterInfo(taskVO); - // 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist List<Long> handlerIds = new ArrayList<>(2); List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); taskVO.setHandlerId(handlerIds); taskVO.setHandlerName(handlerNames); taskVO.setHandlerUnitId(handlerUnitIds); taskVO.setHandlerUnitName(handlerUnitNames); + taskVO.setPromoterName(promoterNames); + taskVO.setPromoterUnitName(promoterUnitNames); // 娴佺▼澶勭悊浜轰俊鎭� List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId()); @@ -1100,10 +1141,12 @@ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { taskVO.getHandlerId().add(sysUser.getUserId()); - taskVO.getHandlerName().add(sysUser.getNickName()); + taskVO.getHandlerName().add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId()); taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName()); + taskVO.getPromoterName().add(this.getUserShowName(sysUser)); + taskVO.getPromoterUnitName().add(sysUser.getDept().getDeptName()); } } // 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂� @@ -1117,6 +1160,8 @@ if (Objects.nonNull(dept)) { taskVO.getHandlerUnitId().add(dept.getDeptId()); taskVO.getHandlerUnitName().add(dept.getDeptName()); + taskVO.getPromoterName().add(this.getDeptLeaderShowName(dept)); + taskVO.getPromoterUnitName().add(dept.getDeptName()); } } } else { @@ -1128,7 +1173,6 @@ } } } - this.distinctVo(taskVO); } } @@ -1187,7 +1231,7 @@ * @param result * @return */ - private List<CustomerTaskVO> getTimelyTask(String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) { + private List<CustomerTaskVO> getTimelyTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) { int startNum = pageSize * (pageNum - 1); int endNum = startNum + pageSize; @@ -1270,11 +1314,16 @@ List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); vo.setHandlerId(handlerIds); vo.setHandlerName(handlerNames); vo.setHandlerUnitId(handlerUnitIds); vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); + this.setCandidateInfo(userTask, vo, projectId, processInsId); HistoricTaskInstance hisTask = keyMap.get(userTask.getId()); if (Objects.nonNull(hisTask)) { vo.setTaskStatus(TaskStatusEnum.FINISHED); @@ -1288,9 +1337,7 @@ SysUser handlerUser = sysUserService.selectUserById(handlerUserId); if (Objects.nonNull(handlerUser)) { vo.getHandlerId().add(handlerUserId); - vo.getHandlerName().add(handlerUser.getNickName()); - vo.setActualHandlerUserId(hisTask.getAssignee()); - vo.setActualHandlerUserName(handlerUser.getNickName()); + vo.getHandlerName().add(this.getUserShowName(handlerUser)); } vo.setTaskDefinitionKey(hisTask.getTaskDefinitionKey()); this.setPromoterAndHandler(vo, hisTask.getIdentityLinks()); @@ -1301,6 +1348,26 @@ }).collect(Collectors.toList()); result.data(vos); return vos; + } + + /** + * 鐢ㄦ埛鍚嶇О鍚庨潰璺熺數璇濆彿鐮� + * + * @param user + * @return + */ + private String getUserShowName(SysUser user) { + return user.getNickName() + (StringUtils.isNotBlank(user.getPhonenumber()) ? "(" + user.getPhonenumber() + ")" : ""); + } + + /** + * 閮ㄩ棬璐熻矗浜哄悕绉板悗闈㈣窡鐢佃瘽鍙风爜 + * + * @param dept + * @return + */ + private String getDeptLeaderShowName(SysDept dept) { + return dept.getLeader() + (StringUtils.isNotBlank(dept.getPhone()) ? "(" + dept.getPhone() + ")" : ""); } /** @@ -1610,10 +1677,14 @@ List<String> handlerNames = new ArrayList<>(2); List<Long> handlerUnitIds = new ArrayList<>(2); List<String> handlerUnitNames = new ArrayList<>(2); + List<String> promoterNames = new ArrayList<>(2); + List<String> promoterUnitNames = new ArrayList<>(2); vo.setHandlerId(handlerIds); vo.setHandlerName(handlerNames); vo.setHandlerUnitId(handlerUnitIds); vo.setHandlerUnitName(handlerUnitNames); + vo.setPromoterName(promoterNames); + vo.setPromoterUnitName(promoterUnitNames); vo.setProcessInsId(process.getId()); vo.setProcessDefId(processDefinitionId); @@ -1621,6 +1692,9 @@ vo.setTaskName(userTask.getName()); vo.setProcessName(process.getProcessDefinitionName()); vo.setTaskStatus(TaskStatusEnum.NOT_START); + + this.setCandidateInfo(userTask, vo, projectId, processInsId); + // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { vo.setHandlerType(HandlerTypeEnum.USER); @@ -1639,7 +1713,7 @@ // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { vo.setHandlerType(HandlerTypeEnum.DEPT); - this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 1); } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); @@ -1682,10 +1756,10 @@ /** * 澶勭悊娴佺▼鍙橀噺-涓氫富鍗曚綅 - * + * @param setType 0 璁剧疆璐d换鍗曚綅 1 璁剧疆鍔炵悊鍗曚綅 * @param vo */ - private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type) { + private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type, Integer setType) { ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper) .eq(ProjectProcess::getProjectId, projectId) .eq(ProjectProcess::getProcessInsId, processInsId) @@ -1702,8 +1776,14 @@ } else if (HandlerTypeEnum.DEPT.equals(type)) { SysDept dept = deptService.selectDeptById(projectProcess.getDataLaunch()); if (Objects.nonNull(dept)) { - vo.getHandlerUnitId().add(dept.getDeptId()); - vo.getHandlerUnitName().add(dept.getDeptName()); + if (setType == 1) { + vo.getHandlerUnitId().add(dept.getDeptId()); + vo.getHandlerUnitName().add(dept.getDeptName()); + vo.getHandlerName().add(this.getDeptLeaderShowName(dept)); + } else { + vo.getPromoterUnitName().add(dept.getDeptName()); + vo.getPromoterName().add(this.getDeptLeaderShowName(dept)); + } } } else if (HandlerTypeEnum.ROLE.equals(type)) { SysRole role = sysRoleService.selectRoleById(projectProcess.getDataLaunch()); @@ -1741,6 +1821,52 @@ return totalNum - num; } + /** + * 璁剧疆鍊欓�変汉淇℃伅/璐d换鍗曚綅 + * + * @param userTask + * @param vo + * @param projectId + * @param processInsId + */ + private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, Long projectId, String processInsId) { + if (StringUtils.isNotBlank(userTask.getAssignee())) { + SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); + if (Objects.nonNull(sysUser)) { + if (Objects.nonNull(sysUser.getDept())) { + // 濡傛灉鏄寚瀹氱殑鏌愪釜浜猴紝閭d箞璐d换鍗曚綅鏄繖涓汉鎵�鍦ㄧ殑閮ㄩ棬 + vo.getPromoterUnitName().add(sysUser.getDept().getDeptName()); + vo.getPromoterName().add(this.getUserShowName(sysUser)); + } + } + } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { + List<String> groupIds = userTask.getCandidateGroups(); + for (String groupId : groupIds) { + // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 + if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { + vo.setHandlerType(HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT, 0); + } else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + vo.setHandlerType(HandlerTypeEnum.DEPT); + String[] split = groupId.split(":"); + if (split.length > 1) { + // 閮ㄩ棬 + SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); + if (Objects.nonNull(dept)) { + vo.getPromoterUnitName().add(dept.getDeptName()); + vo.getPromoterName().add(this.getDeptLeaderShowName(dept)); + } + } + } else { + vo.setHandlerType(HandlerTypeEnum.ROLE); + SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); + if (Objects.nonNull(role)) { + vo.getPromoterUnitName().add(role.getRoleName()); + } + } + } + } + } /** * 璁剧疆浠诲姟鐨勫彂璧蜂汉&澶勭悊浜� 鍙湁寰呭姙浠诲姟鍜屽凡瀹屾垚浠诲姟鎵嶄細鎺夎繖涓柟娉� @@ -1749,7 +1875,7 @@ * @param identityLinkInfos 濡傛灉鏄凡瀹屾垚鐨勪换鍔★紝鐢ㄨ繖涓幓鍙栧叧鑱旂殑鐢ㄦ埛/鐢ㄦ埛缁� */ private void setPromoterAndHandler(CustomerTaskVO taskVO, List<? extends IdentityLinkInfo> identityLinkInfos) { - this.setPromoterInfo(taskVO); +// this.setPromoterInfo(taskVO); // 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist List<Long> handlerIds = new ArrayList<>(2); @@ -1774,7 +1900,7 @@ if (Objects.nonNull(sysUser)) { taskVO.setHandlerType(HandlerTypeEnum.USER); handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); + handlerNames.add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); @@ -1811,7 +1937,7 @@ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); + handlerNames.add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); @@ -1841,7 +1967,6 @@ } } } - this.distinctVo(taskVO); } @@ -1851,41 +1976,41 @@ * @param taskVO */ private void setPromoterInfo(CustomerTaskVO taskVO) { - // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉 - List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey()); - List<SysUser> userList = beforeNodeKey.stream().map(key -> { - List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery() - .processInstanceId(taskVO.getProcessInsId()) - .taskDefinitionKey(key) - .orderByHistoricTaskInstanceStartTime() - .desc() - .list(); // 涔嬫墍浠ョ敤list鏄洜涓哄鏋滄煇涓换鍔¤椹冲洖杩囷紝涓斿鏋滆浠诲姟鍐嶆鎵ц鏃朵細鏈夊鏉℃暟鎹紝鍙栨渶鏂扮殑涓�鏉� - if (!CollectionUtils.isEmpty(historicTaskInstances)) { - // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜� - String assignee = historicTaskInstances.get(0).getAssignee(); - SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee)); - return startUser; - } else { - return null; - } - }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(userList)) { - taskVO.setPromoterName("鏆傛棤"); - taskVO.setPromoterUnitName("鏆傛棤"); - } else { - taskVO.setPromoterId(userList.stream().map(user -> { - return user.getUserId() + ""; - }).collect(Collectors.joining("銆�"))); - taskVO.setPromoterName(userList.stream().map(user -> { - return user.getNickName(); - }).collect(Collectors.joining("銆�"))); - taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { - return user.getDept().getDeptId() + ""; - }).collect(Collectors.joining("銆�"))); - taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { - return user.getDept().getDeptName() + ""; - }).collect(Collectors.joining("銆�"))); - } +// // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉 +// List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey()); +// List<SysUser> userList = beforeNodeKey.stream().map(key -> { +// List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery() +// .processInstanceId(taskVO.getProcessInsId()) +// .taskDefinitionKey(key) +// .orderByHistoricTaskInstanceStartTime() +// .desc() +// .list(); // 涔嬫墍浠ョ敤list鏄洜涓哄鏋滄煇涓换鍔¤椹冲洖杩囷紝涓斿鏋滆浠诲姟鍐嶆鎵ц鏃朵細鏈夊鏉℃暟鎹紝鍙栨渶鏂扮殑涓�鏉� +// if (!CollectionUtils.isEmpty(historicTaskInstances)) { +// // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜� +// String assignee = historicTaskInstances.get(0).getAssignee(); +// SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee)); +// return startUser; +// } else { +// return null; +// } +// }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList()); +// if (CollectionUtils.isEmpty(userList)) { +// taskVO.setPromoterName("鏆傛棤"); +// taskVO.setPromoterUnitName("鏆傛棤"); +// } else { +// taskVO.setPromoterId(userList.stream().map(user -> { +// return user.getUserId() + ""; +// }).collect(Collectors.joining("銆�"))); +// taskVO.setPromoterName(userList.stream().map(user -> { +// return this.getUserShowName(user); +// }).collect(Collectors.joining("銆�"))); +// taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { +// return user.getDept().getDeptId() + ""; +// }).collect(Collectors.joining("銆�"))); +// taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { +// return user.getDept().getDeptName() + ""; +// }).collect(Collectors.joining("銆�"))); +// } } /** -- Gitblit v1.8.0