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