update 使用ThreadLocal临时存储线程内数据
This commit is contained in:
+10
-7
@@ -3,8 +3,10 @@ package com.jero.modules.activiti.process.projectassess.service;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.cache.Cache;
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.api.dto.message.SendMessageDTO;
|
||||
@@ -34,6 +36,7 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.util.ThreadLocalUtil;
|
||||
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
|
||||
@@ -453,7 +456,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
}
|
||||
processProjectAssessTermUserService.updateBatchById(allTermUserList);
|
||||
|
||||
tempCache.put(ProcessProjectAssessCommon.EXECUTION_ID, executionId);
|
||||
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID, executionId);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
@@ -485,7 +488,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
.map(ProcessProjectAssessTermUser::getModuleOwner)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct().collect(Collectors.toList());
|
||||
tempCache.put(ProcessProjectAssessCommon.EXECUTION_ID, executionId);
|
||||
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID, executionId);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
@@ -524,7 +527,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
.map(ProcessProjectAssessTermUser::getDesignEngineer)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct().collect(Collectors.toList());
|
||||
tempCache.put(ProcessProjectAssessCommon.EXECUTION_ID, executionId);
|
||||
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID, executionId);
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.SJGCSPG2, designEngineerList);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
@@ -758,7 +761,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
.distinct().collect(Collectors.toList());
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.MKFZRFF, moduleOwnerIds);
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.MKFZRSP, moduleOwnerIds);
|
||||
tempCache.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
|
||||
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
@@ -836,7 +839,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
.filter(Objects::nonNull)
|
||||
.distinct().collect(Collectors.toList());
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.SJGCSPG, designEngineerIds);
|
||||
tempCache.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
|
||||
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
@@ -874,7 +877,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
allTermUserList.add(termUser);
|
||||
}
|
||||
processProjectAssessTermUserService.updateBatchById(allTermUserList);
|
||||
tempCache.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
|
||||
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
|
||||
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
@@ -928,7 +931,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
//ProcessApprovalRecord myLastComplete = processApprovalRecordService.getMyLastComplete(processInstanceId, nodeId, userId);
|
||||
//String lastCompleteTaskId = myLastComplete.getTaskId();
|
||||
//HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(lastCompleteTaskId).singleResult();
|
||||
String parentExecutionId = tempCache.get(ProcessProjectAssessCommon.EXECUTION_ID);
|
||||
String parentExecutionId = (String) ThreadLocalUtil.get(ProcessProjectAssessCommon.EXECUTION_ID);
|
||||
delegateTask.setFormKey(parentExecutionId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.jero.modules.activiti.util;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2024-01-12 15:50
|
||||
*/
|
||||
public class ThreadLocalUtil {
|
||||
private static final ThreadLocal<Map<String, Object>> RUNTIME_DATA = new ThreadLocal<>();
|
||||
|
||||
public ThreadLocalUtil() {
|
||||
}
|
||||
|
||||
public static Map<String, Object> getRuntimeData() {
|
||||
Map<String, Object> data = RUNTIME_DATA.get();
|
||||
if (data == null) {
|
||||
data = new HashMap<>();
|
||||
RUNTIME_DATA.set(data);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
public static Object get(String key) {
|
||||
Map<String, Object> map = RUNTIME_DATA.get();
|
||||
RUNTIME_DATA.remove();
|
||||
return map.get(key);
|
||||
}
|
||||
|
||||
public static void put(String key, String value) {
|
||||
getRuntimeData().put(key, value);
|
||||
}
|
||||
|
||||
public static void remove(String key) {
|
||||
getRuntimeData().remove(key);
|
||||
}
|
||||
|
||||
public static void clear() {
|
||||
getRuntimeData().clear();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user