This commit is contained in:
@jyuhsin
2026-03-18 15:24:22 +08:00
parent 1e18c7f4c7
commit 3852449c2e
5 changed files with 127 additions and 146 deletions
@@ -23,6 +23,7 @@ import com.budwk.app.flow.service.FlowCommonService;
import com.budwk.app.flow.vo.HighLightVO;
import com.budwk.app.flow.vo.ProcessInstanceVO;
import com.budwk.app.flow.vo.ProcessTaskVO;
import com.budwk.app.todo.service.TodoService;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -52,6 +53,8 @@ public class FlowCommonController {
private Dao dao;
@Inject
private FlowCommonService flowCommonService;
@Inject
private TodoService todoService;
@At("/approval/form")
@SaCheckLogin
@@ -281,6 +284,7 @@ public class FlowCommonController {
// 发送任务撤回事件 确保上面执行成功
for (ProcessTask task : taskList) {
ProcessPublisher.notify(ProcessEvent.builder().eventType(ProcessEventTypeEnum.PROCESS_TASK_REVOKE).sourceId(task.getId()).build());
todoService.taskTerminate(task);
}
return Result.success();
@@ -4,6 +4,7 @@ import com.budwk.app.flow.engine.event.ProcessEvent;
import com.budwk.app.flow.engine.event.ProcessEventListener;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.enums.ProcessEventTypeEnum;
import com.budwk.app.todo.service.TodoService;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -16,12 +17,17 @@ public class ProcessTaskEndEventListener implements ProcessEventListener {
@Inject
private Dao dao;
@Inject
private TodoService todoService;
@Override
public void onEvent(ProcessEvent event) {
if (event.getEventType() == ProcessEventTypeEnum.PROCESS_TASK_END) {
Long sourceId = event.getSourceId();
ProcessTask task = dao.fetch(ProcessTask.class, sourceId);
// 好了,任务完成,就可以调接口完成待办了
todoService.taskHandle(task);
System.out.println("流程任务完成事件:" + task.getDisplayName());
}
}
@@ -8,6 +8,7 @@ import com.budwk.app.flow.entity.ProcessInstance;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.entity.ProcessTaskActor;
import com.budwk.app.flow.enums.ProcessEventTypeEnum;
import com.budwk.app.todo.service.TodoService;
import com.budwk.app.zhgh.dayofficework.message.service.GlobalMessageSendService;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
@@ -30,6 +31,8 @@ public class ProcessTaskStartEventListener implements ProcessEventListener {
private Dao dao;
@Inject
private GlobalMessageSendService globalMessageSendService;
@Inject
private TodoService todoService;
@Override
public void onEvent(ProcessEvent event) {
@@ -63,8 +66,6 @@ public class ProcessTaskStartEventListener implements ProcessEventListener {
log.info(message);
globalMessageSendService.sendMessage(taskDisplayName, message, 2, List.of(taskActor.getActorId()), null);
}
todoService.addTransaction(task);
}
}
@@ -31,6 +31,8 @@ import com.budwk.app.flow.service.ProcessTaskService;
import com.budwk.app.flow.vo.HighLightVO;
import com.budwk.app.flow.vo.ProcessInstanceVO;
import com.budwk.app.flow.vo.ProcessTaskVO;
import com.budwk.app.todo.service.TodoService;
import com.budwk.app.todo.service.impl.TodoServiceImpl;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Chain;
@@ -41,7 +43,9 @@ import org.nutz.dao.sql.Sql;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.Mvcs;
import java.util.*;
import java.util.stream.Collectors;
@@ -557,6 +561,13 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl<ProcessInstance>
List<Long> taskIds = taskList.stream().map(ProcessTask::getId).toList();
dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getId, "in", taskIds));
dao().clear(ProcessInstance.class, Cnd.where(ProcessInstance::getId, "=", processInstanceId));
// 删除学校待办
if(Lang.isNotEmpty(taskList)) {
ProcessTask task = taskList.get(taskList.size() - 1);
TodoService todoService = Mvcs.getIoc().get(TodoServiceImpl.class);
todoService.transDeleted(task);
}
}
@Override