|
|
@@ -2,6 +2,7 @@ package com.xjrsoft.module.workflow.listener;
|
|
|
|
|
|
import cn.hutool.core.collection.ListUtil;
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
@@ -12,10 +13,7 @@ import com.xjrsoft.common.exception.MyException;
|
|
|
import com.xjrsoft.module.oa.utils.SendMessageUtil;
|
|
|
import com.xjrsoft.module.workflow.constant.WorkflowConstant;
|
|
|
import com.xjrsoft.module.workflow.entity.WorkflowSchema;
|
|
|
-import com.xjrsoft.module.workflow.model.MemberConfig;
|
|
|
-import com.xjrsoft.module.workflow.model.NoticePolicyParam;
|
|
|
-import com.xjrsoft.module.workflow.model.TimeoutRemidConfig;
|
|
|
-import com.xjrsoft.module.workflow.model.WorkflowSchemaConfig;
|
|
|
+import com.xjrsoft.module.workflow.model.*;
|
|
|
import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
|
|
|
import com.xjrsoft.module.workflow.service.IWorkflowSchemaService;
|
|
|
import com.xjrsoft.module.workflow.utils.WorkFlowUtil;
|
|
|
@@ -28,6 +26,8 @@ import org.springframework.data.redis.listener.KeyExpirationEventMessageListener
|
|
|
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
@@ -67,49 +67,49 @@ public class TaskTimeoutListener extends KeyExpirationEventMessageListener {
|
|
|
// taskService.setVariableLocal(task.getId(), WorkflowConstant.TASK_IS_APPOINT_APPROVE, YesOrNoEnum.NO.getCode());
|
|
|
|
|
|
// 驳回
|
|
|
-// workflowExecuteService.dealTimeoutTask(1, taskId);
|
|
|
-//
|
|
|
-// List<Task> list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
|
|
|
-// if (list.size() == 1) {
|
|
|
-// Task currentTask = list.get(0);
|
|
|
-// //获取到审批人 发送消息
|
|
|
-// Object approvedIds = taskService.getVariableLocal(currentTask.getId(), WorkflowConstant.TASK_ASSIGNEE_VAR_KEY);
|
|
|
-//
|
|
|
-// List<String> variableNames = ListUtil.toList(
|
|
|
-// WorkflowConstant.PROCESS_SCHEMA_ID_KEY,
|
|
|
-// WorkflowConstant.PROCESS_SCHEMA_NAME_KEY,
|
|
|
-// WorkflowConstant.PROCESS_START_USER_NAME_KEY);
|
|
|
-//
|
|
|
-// Map<String, Object> variables = taskService.getVariables(currentTask.getId(), variableNames);
|
|
|
-//
|
|
|
-// Long schemaId = Convert.toLong(taskService.getVariable(currentTask.getId(), WorkflowConstant.PROCESS_SCHEMA_ID_KEY));
|
|
|
-//
|
|
|
-// IWorkflowSchemaService workflowSchemaService = SpringUtil.getBean(IWorkflowSchemaService.class);
|
|
|
-// WorkflowSchema workflowSchema = workflowSchemaService.getOne(Wrappers.lambdaQuery(WorkflowSchema.class).eq(WorkflowSchema::getId, schemaId).select(WorkflowSchema::getJsonContent));
|
|
|
-//
|
|
|
-// WorkflowSchemaConfig workflowSchemaConfig = JSONUtil.toBean(workflowSchema.getJsonContent(), WorkflowSchemaConfig.class);
|
|
|
-//
|
|
|
-// Map<String, Object> userTaskConfigMap = workflowSchemaConfig.getChildNodeConfig().stream().filter(x -> x.containsValue(currentTask.getTaskDefinitionKey())).findFirst().orElse(new HashMap<>());
|
|
|
-// UserTaskConfig userTaskConfig = Convert.convert(UserTaskConfig.class, userTaskConfigMap);
|
|
|
-//
|
|
|
-// List<String> approveIds = ListUtil.toList(Convert.toStr(approvedIds).split(StringPool.COMMA));
|
|
|
-//
|
|
|
-// NoticePolicyParam param = new NoticePolicyParam();
|
|
|
-// param.setNoticeUserIds(Convert.toList(Long.class, approveIds));
|
|
|
-// param.setTaskId(currentTask.getId());
|
|
|
-// param.setTaskName(currentTask.getName());
|
|
|
-// param.setProcessId(currentTask.getProcessInstanceId());
|
|
|
-// param.setTaskName(currentTask.getName());
|
|
|
-// param.setSchemaId(MapUtil.get(variables, WorkflowConstant.PROCESS_SCHEMA_ID_KEY, Long.class));
|
|
|
-// param.setSchemaName(MapUtil.get(variables, WorkflowConstant.PROCESS_SCHEMA_NAME_KEY, String.class));
|
|
|
-// param.setStartUserName(MapUtil.get(variables, WorkflowConstant.PROCESS_START_USER_NAME_KEY, String.class));
|
|
|
-// // 默认强制推送微信消息
|
|
|
-// param.setNoticePolicyConfigs(new ArrayList(){{
|
|
|
-// add(WorkflowNoticePolicyType.WECHAT.getCode());
|
|
|
-// }});
|
|
|
-// //超时消息
|
|
|
-// WorkFlowUtil.sendTimeOutNoticePolicy(param, "由于审批超时,系统自动驳回审批");
|
|
|
-// }
|
|
|
+ workflowExecuteService.dealTimeoutTask(1, taskId);
|
|
|
+
|
|
|
+ List<Task> list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
|
|
|
+ if (list.size() == 1) {
|
|
|
+ Task currentTask = list.get(0);
|
|
|
+ //获取到审批人 发送消息
|
|
|
+ Object approvedIds = taskService.getVariableLocal(currentTask.getId(), WorkflowConstant.TASK_ASSIGNEE_VAR_KEY);
|
|
|
+
|
|
|
+ List<String> variableNames = ListUtil.toList(
|
|
|
+ WorkflowConstant.PROCESS_SCHEMA_ID_KEY,
|
|
|
+ WorkflowConstant.PROCESS_SCHEMA_NAME_KEY,
|
|
|
+ WorkflowConstant.PROCESS_START_USER_NAME_KEY);
|
|
|
+
|
|
|
+ Map<String, Object> variables = taskService.getVariables(currentTask.getId(), variableNames);
|
|
|
+
|
|
|
+ Long schemaId = Convert.toLong(taskService.getVariable(currentTask.getId(), WorkflowConstant.PROCESS_SCHEMA_ID_KEY));
|
|
|
+
|
|
|
+ IWorkflowSchemaService workflowSchemaService = SpringUtil.getBean(IWorkflowSchemaService.class);
|
|
|
+ WorkflowSchema workflowSchema = workflowSchemaService.getOne(Wrappers.lambdaQuery(WorkflowSchema.class).eq(WorkflowSchema::getId, schemaId).select(WorkflowSchema::getJsonContent));
|
|
|
+
|
|
|
+ WorkflowSchemaConfig workflowSchemaConfig = JSONUtil.toBean(workflowSchema.getJsonContent(), WorkflowSchemaConfig.class);
|
|
|
+
|
|
|
+ Map<String, Object> userTaskConfigMap = workflowSchemaConfig.getChildNodeConfig().stream().filter(x -> x.containsValue(currentTask.getTaskDefinitionKey())).findFirst().orElse(new HashMap<>());
|
|
|
+ UserTaskConfig userTaskConfig = Convert.convert(UserTaskConfig.class, userTaskConfigMap);
|
|
|
+
|
|
|
+ List<String> approveIds = ListUtil.toList(Convert.toStr(approvedIds).split(StringPool.COMMA));
|
|
|
+
|
|
|
+ NoticePolicyParam param = new NoticePolicyParam();
|
|
|
+ param.setNoticeUserIds(Convert.toList(Long.class, approveIds));
|
|
|
+ param.setTaskId(currentTask.getId());
|
|
|
+ param.setTaskName(currentTask.getName());
|
|
|
+ param.setProcessId(currentTask.getProcessInstanceId());
|
|
|
+ param.setTaskName(currentTask.getName());
|
|
|
+ param.setSchemaId(MapUtil.get(variables, WorkflowConstant.PROCESS_SCHEMA_ID_KEY, Long.class));
|
|
|
+ param.setSchemaName(MapUtil.get(variables, WorkflowConstant.PROCESS_SCHEMA_NAME_KEY, String.class));
|
|
|
+ param.setStartUserName(MapUtil.get(variables, WorkflowConstant.PROCESS_START_USER_NAME_KEY, String.class));
|
|
|
+ // 默认强制推送微信消息
|
|
|
+ param.setNoticePolicyConfigs(new ArrayList(){{
|
|
|
+ add(WorkflowNoticePolicyType.WECHAT.getCode());
|
|
|
+ }});
|
|
|
+ //超时消息
|
|
|
+ WorkFlowUtil.sendTimeOutNoticePolicy(param, "由于审批超时,系统自动驳回审批");
|
|
|
+ }
|
|
|
|
|
|
return;
|
|
|
}
|