From 001876ed79400dcf36e0558c1e744e0693ee9020 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 04 三月 2025 10:53:21 +0800 Subject: [PATCH] 流程日志bug、流程推进全部事项分页bug --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 36 +++++++++-------- business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 37 +++++++++--------- flowable/src/main/resources/mapper/ProcessLogMapper.xml | 4 + flowable/src/main/java/com/ycl/domain/vo/DoFormDetailVO.java | 2 flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java | 5 ++ 5 files changed, 46 insertions(+), 38 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java index ed72ccf..f943d23 100644 --- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ycl.common.base.Result; import com.ycl.common.constant.ProcessConstants; import com.ycl.common.core.domain.AjaxResult; import com.ycl.common.core.domain.entity.SysDept; @@ -27,10 +28,8 @@ import com.ycl.domain.entity.ProjectProcess; import com.ycl.domain.entity.SysForm; import com.ycl.domain.json.RejectData; -import com.ycl.domain.vo.DoFormDetailVO; -import com.ycl.domain.vo.FlowQueryVo; -import com.ycl.domain.vo.FlowTaskVo; -import com.ycl.domain.vo.FormDetailVO; +import com.ycl.domain.query.ProcessLogQuery; +import com.ycl.domain.vo.*; import com.ycl.event.event.TaskLogEvent; import com.ycl.factory.FlowServiceFactory; import com.ycl.flow.CustomProcessDiagramGenerator; @@ -1304,11 +1303,11 @@ } } // 鍒ゆ柇浠诲姟鏄惁瀛樺湪鐗规畩鎿嶄綔(濡傝烦杩囥�佽浆鍔炵瓑)锛岄渶瑕佸湪鍓嶇灞曠ず鍑烘潵 - List<ProcessLog> logList = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper()) - .eq(ProcessLog::getTaskDefKey, node.getBeforeNodeDefId()) - .eq(ProcessLog::getProcessInsId, finalProcessInsId) - .orderByDesc(ProcessLog::getGmtCreate) - .list(); + ProcessLogQuery query = new ProcessLogQuery(); + query.setTaskId(taskId); + query.setProcessInsId(finalProcessInsId); + Result result = processLogService.projectProcessLogPage(query); + List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data"); DoFormDetailVO vo = new DoFormDetailVO(); BeanUtils.copyProperties(node, vo); if (CollectionUtils.isNotEmpty(logList)) { @@ -1375,11 +1374,11 @@ } } // 鍒ゆ柇浠诲姟鏄惁瀛樺湪鐗规畩鎿嶄綔(濡傝烦杩囥�佽浆鍔炵瓑)锛岄渶瑕佸湪鍓嶇灞曠ず鍑烘潵 - List<ProcessLog> logList = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper()) - .eq(ProcessLog::getTaskId, hisTask.getId()) - .eq(ProcessLog::getProcessInsId, hisTask.getProcessInstanceId()) - .orderByDesc(ProcessLog::getGmtCreate) - .list(); + ProcessLogQuery query = new ProcessLogQuery(); + query.setTaskId(hisTask.getId()); + query.setProcessInsId(hisTask.getProcessInstanceId()); + Result result = processLogService.projectProcessLogPage(query); + List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data"); DoFormDetailVO vo = new DoFormDetailVO(); BeanUtils.copyProperties(node, vo); if (CollectionUtils.isNotEmpty(logList)) { @@ -1427,11 +1426,11 @@ } } // 鍒ゆ柇浠诲姟鏄惁瀛樺湪鐗规畩鎿嶄綔(濡傝烦杩囥�佽浆鍔炵瓑)锛岄渶瑕佸湪鍓嶇灞曠ず鍑烘潵 - List<ProcessLog> logList = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper()) - .eq(ProcessLog::getTaskId, task.getId()) - .eq(ProcessLog::getProcessInsId, task.getProcessInstanceId()) - .orderByDesc(ProcessLog::getGmtCreate) - .list(); + ProcessLogQuery query = new ProcessLogQuery(); + query.setTaskId(task.getId()); + query.setProcessInsId(task.getProcessInstanceId()); + Result result = processLogService.projectProcessLogPage(query); + List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data"); DoFormDetailVO vo = new DoFormDetailVO(); BeanUtils.copyProperties(node, vo); if (CollectionUtils.isNotEmpty(logList)) { 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 d7c41ac..cccd853 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -1128,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; } diff --git a/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java b/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java index 28b15d9..9e7fb6e 100644 --- a/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java +++ b/flowable/src/main/java/com/ycl/domain/query/ProcessLogQuery.java @@ -25,6 +25,11 @@ private String projectId; /** + * 浠诲姟id + */ + private String taskId; + + /** * 娴佺▼瀹炰緥id */ private String processInsId; diff --git a/flowable/src/main/java/com/ycl/domain/vo/DoFormDetailVO.java b/flowable/src/main/java/com/ycl/domain/vo/DoFormDetailVO.java index 6059d0d..da928b7 100644 --- a/flowable/src/main/java/com/ycl/domain/vo/DoFormDetailVO.java +++ b/flowable/src/main/java/com/ycl/domain/vo/DoFormDetailVO.java @@ -20,7 +20,7 @@ public class DoFormDetailVO extends FormDetailVO { @ApiModelProperty("浠诲姟浜嬩欢") - private List<ProcessLog> events = new ArrayList<>(); + private List<ProcessLogVO> events = new ArrayList<>(); } diff --git a/flowable/src/main/resources/mapper/ProcessLogMapper.xml b/flowable/src/main/resources/mapper/ProcessLogMapper.xml index 1c6c529..6319ad0 100644 --- a/flowable/src/main/resources/mapper/ProcessLogMapper.xml +++ b/flowable/src/main/resources/mapper/ProcessLogMapper.xml @@ -73,7 +73,9 @@ LEFT JOIN sys_user SU ON SU.user_id = TFL.user_id LEFT JOIN sys_dept SD ON SU.dept_id = SD.dept_id WHERE - TFL.deleted = 0 AND TFL.project_id = #{query.projectId} AND TFL.process_ins_id = #{query.processInsId} + TFL.deleted = 0 AND TFL.process_ins_id = #{query.processInsId} + <if test="query.taskId != null and query.taskId != ''">AND TFL.task_id = #{query.taskId}</if> + <if test="query.projectId != null and query.projectId != ''">AND TFL.project_id = #{query.projectId}</if> ORDER BY TFL.gmt_create DESC </select> -- Gitblit v1.8.0