Browse Source

优化工作流集成逻辑

hubin 1 year ago
parent
commit
ce15647fa9

+ 3 - 7
src/main/java/com/aizuda/boot/modules/flw/entity/dto/AssigneeTaskDTO.java

@@ -1,6 +1,6 @@
 package com.aizuda.boot.modules.flw.entity.dto;
 
-import com.flowlong.bpm.engine.entity.FlwTaskActor;
+import com.flowlong.bpm.engine.core.FlowCreator;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
@@ -21,11 +21,7 @@ public class AssigneeTaskDTO extends ExecuteTaskDTO {
     @Schema(description = "委托人")
     private String assignor;
 
-    public FlwTaskActor toFlwTaskActor() {
-        FlwTaskActor fta = new FlwTaskActor();
-        fta.setActorId(String.valueOf(this.assignorId));
-        fta.setActorName(this.assignor);
-        fta.setActorType(0);
-        return fta;
+    public FlowCreator toFlowCreator() {
+        return FlowCreator.of(String.valueOf(this.assignorId), this.assignor);
     }
 }

+ 8 - 8
src/main/java/com/aizuda/boot/modules/flw/service/IProcessTaskService.java

@@ -59,20 +59,20 @@ public interface IProcessTaskService {
     /**
      * 转办任务
      *
-     * @param taskId            任务ID
-     * @param taskActor         任务参与者
-     * @param assigneeTaskActor 任务办理人
+     * @param taskId              任务ID
+     * @param flowCreator         任务参与者
+     * @param assigneeFlowCreator 任务办理人
      */
-    boolean transfer(Long taskId, FlwTaskActor taskActor, FlwTaskActor assigneeTaskActor);
+    boolean transfer(Long taskId, FlowCreator flowCreator, FlowCreator assigneeFlowCreator);
 
     /**
      * 委派任务
      *
-     * @param taskId            任务ID
-     * @param taskActor         任务参与者
-     * @param assigneeTaskActor 任务办理人
+     * @param taskId              任务ID
+     * @param flowCreator         任务参与者
+     * @param assigneeFlowCreator 任务办理人
      */
-    boolean delegate(Long taskId, FlwTaskActor taskActor, FlwTaskActor assigneeTaskActor);
+    boolean delegate(Long taskId, FlowCreator flowCreator, FlowCreator assigneeFlowCreator);
 
     /**
      * 拿回任务

+ 1 - 1
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwProcessServiceImpl.java

@@ -200,7 +200,7 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
         flwProcessPermissionService.removeByProcessId(id);
         flwProcessConfigureService.removeByProcessId(id);
         // 级联删除相关信息
-        flowLongEngine.runtimeService().cascadeRemoveByProcessId(id);
+        flowLongEngine.processService().cascadeRemove(id);
         return true;
     }
 

+ 6 - 8
src/main/java/com/aizuda/boot/modules/flw/service/impl/ProcessTaskServiceImpl.java

@@ -93,16 +93,16 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public boolean transfer(Long taskId, FlwTaskActor taskActor, FlwTaskActor assigneeTaskActor) {
+    public boolean transfer(Long taskId, FlowCreator flowCreator, FlowCreator assigneeFlowCreator) {
         TaskService taskService = flowLongEngine.taskService();
-        return taskService.transferTask(taskId, taskActor, assigneeTaskActor);
+        return taskService.transferTask(taskId, flowCreator, assigneeFlowCreator);
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public boolean delegate(Long taskId, FlwTaskActor taskActor, FlwTaskActor assigneeTaskActor) {
+    public boolean delegate(Long taskId, FlowCreator flowCreator, FlowCreator assigneeFlowCreator) {
         TaskService taskService = flowLongEngine.taskService();
-        return taskService.delegateTask(taskId, taskActor, assigneeTaskActor);
+        return taskService.delegateTask(taskId, flowCreator, assigneeFlowCreator);
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -144,16 +144,14 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     @Override
     public boolean transfer(FlowCreator flowCreator, AssigneeTaskDTO dto) {
         TaskService taskService = flowLongEngine.taskService();
-        FlwTaskActor flwTaskActor = FlwTaskActor.ofFlowCreator(flowCreator);
-        return taskService.transferTask(dto.getTaskId(), flwTaskActor, dto.toFlwTaskActor());
+        return taskService.transferTask(dto.getTaskId(), flowCreator, dto.toFlowCreator());
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean delegate(FlowCreator flowCreator, AssigneeTaskDTO dto) {
         TaskService taskService = flowLongEngine.taskService();
-        FlwTaskActor flwTaskActor = FlwTaskActor.ofFlowCreator(flowCreator);
-        return taskService.delegateTask(dto.getTaskId(), flwTaskActor, dto.toFlwTaskActor());
+        return taskService.delegateTask(dto.getTaskId(), flowCreator, dto.toFlowCreator());
     }
 
     @Override

+ 1 - 2
src/main/resources/mapper/FlowlongMapper.xml

@@ -47,8 +47,7 @@
 
     <select id="selectPageMyReceived" resultType="com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO">
         SELECT i.process_id,p.process_name,i.current_node,i.id AS instance_id,i.instance_state,i.create_id,i.create_by,i.create_time,i.expire_time,i.end_time,i.duration
-        FROM flw_his_instance i LEFT JOIN flw_process p ON i.process_id=p.id
-        FROM flw_his_instance i JOIN flw_his_task t ON i.id=t.instance_id JOIN flw_his_task_actor a ON t.id=a.task_id JOIN flw_process p ON i.process_id=p.id
+        FROM flw_his_instance i LEFT JOIN flw_process p ON i.process_id=p.id JOIN flw_his_task t ON i.id=t.instance_id JOIN flw_his_task_actor a ON t.id=a.task_id
         WHERE t.task_type=4 AND a.actor_id=#{dto.createId}
         <if test="dto.processName != null">
             AND p.process_name LIKE CONCAT(CONCAT('%',#{dto.processName}),'%')