From e7243b4e61a96249bbe17173682a243c9a591609 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 06 三月 2025 10:21:23 +0800 Subject: [PATCH] 首页待办剩余时间用红码时间计算 --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 167 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 88 insertions(+), 79 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 87cfdd1..2209646 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -3,7 +3,6 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; @@ -399,13 +398,28 @@ taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey()); // 娴佺▼椤圭洰淇℃伅 - ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId()); - if (Objects.nonNull(project)) { - taskVO.setProjectId(project.getId()); - taskVO.setProjectName(project.getProjectName()); - } else { - continue; + ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId()) + .one(); + String projectId = ""; + String projectName = ""; + if (Objects.nonNull(projectProcess)) { + if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.PROJECT)) { + ProjectInfo project = projectInfoMapper.selectById(projectProcess.getProjectId()); + if (Objects.nonNull(project)) { + projectId = projectProcess.getProjectId(); + projectName = project.getProjectName(); + } + } else if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.ENGINEERING)) { + ProjectEngineering engineering = projectEngineeringMapper.selectById(projectProcess.getProjectId()); + if (Objects.nonNull(engineering)) { + projectId = projectProcess.getProjectId(); + projectName = engineering.getProjectName(); + } + } } + taskVO.setProjectId(projectId); + taskVO.setProjectName(projectName); // 娴佺▼鍙戣捣浜轰俊鎭� this.setPromoterInfo(taskVO); @@ -468,15 +482,13 @@ } // 璁$畻鍔炵悊鏃堕棿 - ProcessCoding processCoding = processCodingService.getByTaskId(task.getId()); - if (processCoding != null) { - if (StringUtils.isNotBlank(processCoding.getOvertime())) { - Long overtime = getTime(processCoding.getOvertime()); + ProcessCoding processCoding = processCodingService.getByTaskId(task.getId(), task.getProcessInstanceId()); + if (Objects.nonNull(processCoding)) { + if (StringUtils.isNotBlank(processCoding.getRedTime())) { + Long overtime = getTime(processCoding.getRedTime()); long durationTime = 0l; if (Objects.nonNull(processCoding.getStartTaskTime())) { durationTime = ((new Date()).getTime() - processCoding.getStartTaskTime().getTime()) / 1000; - } else { - taskVO.setRemainingTime("鏈缃姙鐞嗘椂闂�"); } if (overtime > durationTime) { taskVO.setRemainingTime((overtime - durationTime) / 3600 + "灏忔椂"); @@ -486,6 +498,8 @@ } else { taskVO.setRemainingTime("-"); } + } else { + taskVO.setRemainingTime("-"); } this.distinctVo(taskVO); vos.add(taskVO); @@ -723,7 +737,7 @@ } } // 瀹屾垚浠诲姟 - flowTaskService.completeSubmitForm(form.getTaskId(), data); + flowTaskService.completeSubmitForm(form.getTaskId(), data, Boolean.FALSE); } return Result.ok("鎿嶄綔鎴愬姛"); } @@ -746,7 +760,7 @@ ProcessLog processLog = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper()) .eq(ProcessLog::getTaskId, form.getTaskId()) .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.SUPERVISE) - .eq(ProcessLog::getProcessInsId, form.getProcessInsId()) + .eq(ProcessLog::getProcessInsId, task.getProcessInstanceId()) .one(); List<SuperviseData> dataList; if (processLog != null) { @@ -763,7 +777,7 @@ processLog.getId(), processLog.getUserId(), form.getProjectId(), - form.getProcessInsId(), + task.getProcessInstanceId(), form.getTaskId(), task.getTaskDefinitionKey(), task.getName(), @@ -993,11 +1007,11 @@ vo.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); if (Objects.nonNull(sysUser)) { - handlerIds.add(sysUser.getUserId()); - handlerNames.add(this.getUserShowName(sysUser)); + vo.getHandlerId().add(sysUser.getUserId()); + vo.getHandlerName().add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { - handlerUnitIds.add(sysUser.getDept().getDeptId()); - handlerUnitNames.add(sysUser.getDept().getDeptName()); + vo.getHandlerUnitId().add(sysUser.getDept().getDeptId()); + vo.getHandlerUnitName().add(sysUser.getDept().getDeptName()); } } } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { @@ -1014,17 +1028,17 @@ // 閮ㄩ棬 SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); if (Objects.nonNull(dept)) { - handlerUnitIds.add(dept.getDeptId()); - handlerUnitNames.add(dept.getDeptName()); - handlerNames.add(this.getDeptLeaderShowName(dept)); + vo.getHandlerUnitId().add(dept.getDeptId()); + vo.getHandlerUnitName().add(dept.getDeptName()); + vo.getHandlerName().add(this.getDeptLeaderShowName(dept)); } } } else { vo.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); if (Objects.nonNull(role)) { - handlerUnitIds.add(role.getRoleId()); - handlerUnitNames.add(role.getRoleName()); + vo.getHandlerUnitId().add(role.getRoleId()); + vo.getHandlerUnitName().add(role.getRoleName()); } } } @@ -1038,18 +1052,19 @@ vo.setCreateTime(historicTasks.get(0).getStartTime()); // 鏌ヨ瀹為檯澶勭悊浜� - long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee()); - SysUser handlerUser = sysUserService.selectUserById(handlerUserId); - if (Objects.nonNull(handlerUser)) { - handlerIds.add(handlerUserId); - handlerNames.add(this.getUserShowName(handlerUser)); - if (Objects.nonNull(handlerUser.getDept())) { - handlerUnitNames.add(handlerUser.getDept().getDeptName()); - handlerUnitIds.add(handlerUser.getDept().getDeptId()); + if (StringUtils.isNotBlank(historicTasks.get(0).getAssignee())) { + long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee()); + SysUser handlerUser = sysUserService.selectUserById(handlerUserId); + if (Objects.nonNull(handlerUser)) { + vo.getHandlerId().add(handlerUserId); + vo.getHandlerName().add(this.getUserShowName(handlerUser)); + if (Objects.nonNull(handlerUser.getDept())) { + vo.getHandlerUnitName().add(handlerUser.getDept().getDeptName()); + vo.getHandlerUnitId().add(handlerUser.getDept().getDeptId()); + } } } vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey()); - this.setPromoterAndHandler(vo, historicTasks.get(0).getIdentityLinks()); } } else { vo.setTaskStatus(TaskStatusEnum.TODO); @@ -1113,25 +1128,27 @@ .orderByHistoricTaskInstanceStartTime() .desc() .list(); - - vo.setTaskStatus(TaskStatusEnum.FINISHED); - // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊� - vo.setTaskId(hisTaskList.get(0).getId()); - vo.setExecutionId(hisTaskList.get(0).getExecutionId()); - vo.setCreateTime(hisTaskList.get(0).getStartTime()); - // 鏌ヨ瀹為檯澶勭悊浜� - long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee()); - SysUser handlerUser = sysUserService.selectUserById(handlerUserId); - if (Objects.nonNull(handlerUser)) { - - vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee()); - vo.setActualHandlerUserName(handlerUser.getNickName()); + // 濡傛灉鏈壘鍒板巻鍙蹭换鍔★紝璇存槑杩欎釜浠诲姟鍙兘澶勪簬鏌愪釜浜掓枼缃戝叧涓嬶紝瀹為檯骞舵湭鎵ц + if (CollectionUtils.isEmpty(hisTaskList)) { + vo.setTaskStatus(TaskStatusEnum.NOT_START); + } else { + vo.setTaskStatus(TaskStatusEnum.FINISHED); + // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊� + vo.setTaskId(hisTaskList.get(0).getId()); + vo.setExecutionId(hisTaskList.get(0).getExecutionId()); + vo.setCreateTime(hisTaskList.get(0).getStartTime()); + // 鏌ヨ瀹為檯澶勭悊浜� + long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee()); + SysUser handlerUser = sysUserService.selectUserById(handlerUserId); + if (Objects.nonNull(handlerUser)) { + vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee()); + vo.setActualHandlerUserName(handlerUser.getNickName()); + } + vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey()); + this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks()); } - vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey()); - this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks()); - return vo; - }).collect(Collectors.toList()); + }).filter(Objects::nonNull).collect(Collectors.toList()); return vos; } @@ -1392,9 +1409,12 @@ if (Objects.nonNull(handlerUser)) { vo.getHandlerId().add(handlerUserId); vo.getHandlerName().add(this.getUserShowName(handlerUser)); + if (Objects.nonNull(handlerUser.getDept())) { + vo.getHandlerUnitId().add(handlerUser.getDept().getDeptId()); + vo.getHandlerUnitName().add(handlerUser.getDept().getDeptName()); + } } vo.setTaskDefinitionKey(hisTask.getTaskDefinitionKey()); - this.setPromoterAndHandler(vo, hisTask.getIdentityLinks()); } this.distinctVo(vo); @@ -1929,17 +1949,6 @@ * @param identityLinkInfos 濡傛灉鏄凡瀹屾垚鐨勪换鍔★紝鐢ㄨ繖涓幓鍙栧叧鑱旂殑鐢ㄦ埛/鐢ㄦ埛缁� */ private void setPromoterAndHandler(CustomerTaskVO taskVO, List<? extends IdentityLinkInfo> identityLinkInfos) { -// 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); - taskVO.setHandlerId(handlerIds); - taskVO.setHandlerName(handlerNames); - taskVO.setHandlerUnitId(handlerUnitIds); - taskVO.setHandlerUnitName(handlerUnitNames); // 娴佺▼澶勭悊浜轰俊鎭� if (TaskStatusEnum.TODO.equals(taskVO.getTaskStatus())) { @@ -1953,11 +1962,11 @@ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { taskVO.setHandlerType(HandlerTypeEnum.USER); - handlerIds.add(sysUser.getUserId()); - handlerNames.add(this.getUserShowName(sysUser)); + taskVO.getHandlerId().add(sysUser.getUserId()); + taskVO.getHandlerName().add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { - handlerUnitIds.add(sysUser.getDept().getDeptId()); - handlerUnitNames.add(sysUser.getDept().getDeptName()); + taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId()); + taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName()); } } // 缁戝畾鐨勬槸瑙掕壊鎴栬�呮槸閮ㄩ棬锛岄渶瑕佹牴鎹甶d鍒ゆ柇 @@ -1969,16 +1978,16 @@ // 閮ㄩ棬 SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); if (Objects.nonNull(dept)) { - handlerUnitIds.add(dept.getDeptId()); - handlerUnitNames.add(dept.getDeptName()); + taskVO.getHandlerUnitId().add(dept.getDeptId()); + taskVO.getHandlerUnitName().add(dept.getDeptName()); } } } else { taskVO.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); if (Objects.nonNull(role)) { - handlerUnitIds.add(role.getRoleId()); - handlerUnitNames.add(role.getRoleName()); + taskVO.getHandlerUnitId().add(role.getRoleId()); + taskVO.getHandlerUnitName().add(role.getRoleName()); } } } @@ -1990,11 +1999,11 @@ taskVO.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { - handlerIds.add(sysUser.getUserId()); - handlerNames.add(this.getUserShowName(sysUser)); + taskVO.getHandlerId().add(sysUser.getUserId()); + taskVO.getHandlerName().add(this.getUserShowName(sysUser)); if (Objects.nonNull(sysUser.getDept())) { - handlerUnitIds.add(sysUser.getDept().getDeptId()); - handlerUnitNames.add(sysUser.getDept().getDeptName()); + taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId()); + taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName()); } } // 缁戝畾鐨勬槸瑙掕壊锛屾煡鍑鸿鑹插悕绉� @@ -2006,16 +2015,16 @@ // 閮ㄩ棬 SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); if (Objects.nonNull(dept)) { - handlerUnitIds.add(dept.getDeptId()); - handlerUnitNames.add(dept.getDeptName()); + taskVO.getHandlerUnitId().add(dept.getDeptId()); + taskVO.getHandlerUnitName().add(dept.getDeptName()); } } } else { taskVO.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); if (Objects.nonNull(role)) { - handlerUnitIds.add(role.getRoleId()); - handlerUnitNames.add(role.getRoleName()); + taskVO.getHandlerUnitId().add(role.getRoleId()); + taskVO.getHandlerUnitName().add(role.getRoleName()); } } } -- Gitblit v1.8.0