Przeglądaj źródła

优化认领任务

hubin 1 rok temu
rodzic
commit
2f4d8145e6

+ 2 - 1
src/main/java/com/aizuda/boot/modules/flw/controller/ProcessTaskController.java

@@ -5,6 +5,7 @@ import com.aizuda.boot.modules.flw.entity.dto.ExecuteTaskDTO;
 import com.aizuda.boot.modules.flw.entity.dto.ProcessTaskDTO;
 import com.aizuda.boot.modules.flw.entity.dto.RejectTaskDTO;
 import com.aizuda.boot.modules.flw.entity.vo.MyApplicationTaskVO;
+import com.aizuda.boot.modules.flw.entity.vo.MyReceivedTaskVO;
 import com.aizuda.boot.modules.flw.entity.vo.PendingApprovalTaskVO;
 import com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO;
 import com.aizuda.boot.modules.flw.service.IProcessTaskService;
@@ -48,7 +49,7 @@ public class ProcessTaskController extends ApiController {
     @Operation(summary = "我收到的任务分页列表")
     @Permission("flw:processTask:pageMyReceived")
     @PostMapping("/page-my-received")
-    public Page<ProcessTaskVO> pageMyReceived(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
+    public Page<MyReceivedTaskVO> pageMyReceived(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
         return processTaskService.pageMyReceived(pageParam);
     }
 

+ 50 - 0
src/main/java/com/aizuda/boot/modules/flw/entity/vo/MyReceivedTaskVO.java

@@ -0,0 +1,50 @@
+package com.aizuda.boot.modules.flw.entity.vo;
+
+import com.aizuda.core.ApiConstants;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 我的申请任务 VO
+ *
+ * @author 青苗
+ * @since 2023-12-11
+ */
+@Getter
+@Setter
+public class MyReceivedTaskVO {
+
+    @Schema(description = "流程ID")
+    private Long processId;
+
+    @Schema(description = "流程名称")
+    private String processName;
+
+    @Schema(description = "当前所在节点")
+    private String currentNode;
+
+    @Schema(description = "流程实例ID")
+    private Long instanceId;
+
+    @Schema(description = "当前状态")
+    private Integer instanceState;
+
+    @Schema(description = "发起人ID")
+    private String createId;
+
+    @Schema(description = "发起人")
+    private String createBy;
+
+    @JsonFormat(pattern = ApiConstants.DATE_MM)
+    @Schema(description = "创建时间")
+    private Date createTime;
+
+    @JsonFormat(pattern = ApiConstants.DATE_MM)
+    @Schema(description = "期望完成时间")
+    private Date expireTime;
+
+}

+ 2 - 5
src/main/java/com/aizuda/boot/modules/flw/mapper/FlowlongMapper.java

@@ -1,10 +1,7 @@
 package com.aizuda.boot.modules.flw.mapper;
 
 import com.aizuda.boot.modules.flw.entity.dto.ProcessTaskDTO;
-import com.aizuda.boot.modules.flw.entity.vo.FlwProcessVO;
-import com.aizuda.boot.modules.flw.entity.vo.MyApplicationTaskVO;
-import com.aizuda.boot.modules.flw.entity.vo.PendingApprovalTaskVO;
-import com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO;
+import com.aizuda.boot.modules.flw.entity.vo.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -34,7 +31,7 @@ public interface FlowlongMapper {
     /**
      * 我收到的任务分页列表
      */
-    Page<ProcessTaskVO> selectPageMyReceived(Page page, @Param("dto") ProcessTaskDTO dto);
+    Page<MyReceivedTaskVO> selectPageMyReceived(Page page, @Param("dto") ProcessTaskDTO dto);
 
     /**
      * 已审批任务分页列表

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

@@ -6,6 +6,7 @@ import com.aizuda.boot.modules.flw.entity.dto.RejectTaskDTO;
 import com.aizuda.boot.modules.flw.entity.vo.MyApplicationTaskVO;
 import com.aizuda.boot.modules.flw.entity.vo.PendingApprovalTaskVO;
 import com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO;
+import com.aizuda.boot.modules.flw.entity.vo.MyReceivedTaskVO;
 import com.aizuda.core.api.PageParam;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.flowlong.bpm.engine.core.FlowCreator;
@@ -37,7 +38,7 @@ public interface IProcessTaskService {
     /**
      * 我收到的任务分页列表
      */
-    Page<ProcessTaskVO> pageMyReceived(PageParam<ProcessTaskDTO> pageParam);
+    Page<MyReceivedTaskVO> pageMyReceived(PageParam<ProcessTaskDTO> pageParam);
 
     /**
      * 已审批任务分页列表

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

@@ -4,6 +4,7 @@ import com.aizuda.boot.modules.flw.entity.dto.ExecuteTaskDTO;
 import com.aizuda.boot.modules.flw.entity.dto.ProcessTaskDTO;
 import com.aizuda.boot.modules.flw.entity.dto.RejectTaskDTO;
 import com.aizuda.boot.modules.flw.entity.vo.MyApplicationTaskVO;
+import com.aizuda.boot.modules.flw.entity.vo.MyReceivedTaskVO;
 import com.aizuda.boot.modules.flw.entity.vo.PendingApprovalTaskVO;
 import com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO;
 import com.aizuda.boot.modules.flw.mapper.FlowlongMapper;
@@ -52,7 +53,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     }
 
     @Override
-    public Page<ProcessTaskVO> pageMyReceived(PageParam<ProcessTaskDTO> pageParam) {
+    public Page<MyReceivedTaskVO> pageMyReceived(PageParam<ProcessTaskDTO> pageParam) {
         ProcessTaskDTO dto = this.getProcessTaskDTO(pageParam);
         return flowlongMapper.selectPageMyReceived(pageParam.page(), dto);
     }

+ 4 - 4
src/main/resources/mapper/FlowlongMapper.xml

@@ -10,8 +10,8 @@
     <select id="selectPagePendingClaim" resultType="com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO">
         SELECT i.process_id,p.process_name,i.id AS instance_id,i.instance_state,t.id AS task_id,t.task_name,i.create_id,i.create_by,i.create_time
         FROM flw_task t JOIN flw_task_actor a ON t.id=a.task_id LEFT JOIN flw_his_instance i ON i.id=t.instance_id LEFT JOIN flw_process p ON i.process_id=p.id
-        WHERE a.id IN (SELECT f.id FROM flw_task_actor f JOIN sys_user_role r ON r.role_id::TEXT=f.actor_id WHERE f.actor_type=1 AND f.actor_id=#{dto.createId}
-        UNION ALL SELECT f.id FROM flw_task_actor f JOIN sys_user_department r ON r.department_id::TEXT=f.actor_id WHERE f.actor_type=2 AND f.actor_id=#{dto.createId})
+        WHERE (a.actor_id=#{dto.createId} OR a.id IN (SELECT f.id FROM flw_task_actor f JOIN sys_user_role r ON r.role_id::TEXT=f.actor_id WHERE f.actor_type=1 AND f.actor_id=#{dto.createId}
+        UNION ALL SELECT f.id FROM flw_task_actor f JOIN sys_user_department r ON r.department_id::TEXT=f.actor_id WHERE f.actor_type=2 AND f.actor_id=#{dto.createId}))
         <if test="dto.processName != null">
             AND p.process_name LIKE CONCAT(CONCAT('%',#{dto.processName}),'%')
         </if>
@@ -36,8 +36,8 @@
         </if>
     </select>
 
-    <select id="selectPageMyReceived" resultType="com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO">
-        SELECT i.process_id,p.process_name,i.id AS instance_id,i.instance_state,i.create_id,i.create_by,i.create_time
+    <select id="selectPageMyReceived" resultType="com.aizuda.boot.modules.flw.entity.vo.MyReceivedTaskVO">
+        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
         FROM flw_his_instance i LEFT JOIN flw_process p ON i.process_id=p.id
         WHERE EXISTS (SELECT 1 FROM flw_task_cc c WHERE i.id=c.instance_id)
         <if test="dto.processName != null">