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 |   55 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 11 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 ca1ea6f..f6cfa5b 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -647,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("杞姙鎴愬姛");
     }
@@ -658,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);
@@ -677,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());
@@ -685,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();
@@ -702,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("鎿嶄綔鎴愬姛");
     }
 
@@ -729,6 +741,7 @@
                 form.getProjectId(),
                 form.getProcessInsId(),
                 form.getTaskId(),
+                task.getTaskDefinitionKey(),
                 task.getName(),
                 ProcessLogEventTypeEnum.HANGUP,
                 new HangupData(form.getReason())
@@ -758,6 +771,7 @@
                 form.getProjectId(),
                 form.getProcessInsId(),
                 form.getTaskId(),
+                task.getTaskDefinitionKey(),
                 task.getName(),
                 ProcessLogEventTypeEnum.CANCEL_HANGUP,
                 new HangupData(form.getReason())
@@ -803,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)
@@ -876,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;
         }
@@ -908,6 +923,7 @@
             vo.setPromoterUnitName(promoterUnitNames);
 
             this.setCandidateInfo(userTask, vo, projectId, processInsId);
+
             if (Objects.isNull(task)) {
                 // 濡傛灉浠诲姟鍦ㄨ繍琛屾椂娌℃壘鍒帮紝閭d箞鍙兘涓烘湭寮�濮嬫垨鑰呭凡瀹屾垚锛岄渶瑕佷粠鍘嗗彶浠诲姟涓啀鎵句竴涓�
                 List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
@@ -1006,7 +1022,7 @@
      * @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<>();
@@ -1019,6 +1035,23 @@
             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()
                     .processInstanceId(hisProcess.getId())

--
Gitblit v1.8.0