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