Explorar el Código

优化审批记录逻辑

hubin hace 1 año
padre
commit
51401efed0

+ 23 - 0
src/main/java/com/aizuda/boot/modules/flw/entity/vo/FlwHisTaskActorVO.java

@@ -0,0 +1,23 @@
+package com.aizuda.boot.modules.flw.entity.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class FlwHisTaskActorVO {
+
+    @Schema(description = "任务ID")
+    protected Long taskId;
+
+    @Schema(description = "参与者")
+    private String actorName;
+
+    @Schema(description = "头像")
+    private String avatar;
+
+    @Schema(description = "权重")
+    protected Integer weight;
+
+}

+ 1 - 1
src/main/java/com/aizuda/boot/modules/flw/entity/vo/FlwHisTaskVO.java

@@ -13,6 +13,6 @@ import java.util.List;
 public class FlwHisTaskVO extends FlwHisTask {
 
     @Schema(description = "参与者列表")
-    private List<FlwHisTaskActor> actorList;
+    private List<FlwHisTaskActorVO> actorList;
 
 }

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

@@ -44,4 +44,9 @@ public interface FlowlongMapper {
      * 查询流程实例ID的审批历史
      */
     List<FlwHisTaskVO> selectListHisTaskByInstanceId(@Param("instanceId") Long instanceId);
+
+    /**
+     * 查询流程实例ID的审批处理人
+     */
+    List<FlwHisTaskActorVO> selectListHisTaskActorVOByInstanceId(@Param("instanceId") Long instanceId);
 }

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

@@ -121,6 +121,7 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
         return this.listCategoryVO(keyword, true);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean launchProcess(ProcessStartDTO dto, FlowCreator flowCreator) {
         // TODO 待保存表单

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

@@ -4,10 +4,7 @@ import com.aizuda.boot.modules.flw.entity.dto.AssigneeTaskDTO;
 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.FlwHisTaskVO;
-import com.aizuda.boot.modules.flw.entity.vo.PendingApprovalTaskVO;
-import com.aizuda.boot.modules.flw.entity.vo.PendingClaimTaskVO;
-import com.aizuda.boot.modules.flw.entity.vo.ProcessTaskVO;
+import com.aizuda.boot.modules.flw.entity.vo.*;
 import com.aizuda.boot.modules.flw.mapper.FlowlongMapper;
 import com.aizuda.boot.modules.flw.service.IProcessTaskService;
 import com.aizuda.core.api.ApiAssert;
@@ -163,8 +160,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     public List<FlwHisTaskVO> listHisTaskByInstanceId(Long instanceId) {
         List<FlwHisTaskVO> voList = flowlongMapper.selectListHisTaskByInstanceId(instanceId);
         if (CollectionUtils.isNotEmpty(voList)) {
-            List<FlwHisTaskActor> actorList = flwHisTaskActorMapper.selectList(Wrappers.<FlwHisTaskActor>lambdaQuery()
-                    .eq(FlwHisTaskActor::getInstanceId, instanceId).orderByAsc(FlwHisTaskActor::getId));
+            List<FlwHisTaskActorVO> actorList = flowlongMapper.selectListHisTaskActorVOByInstanceId(instanceId);
             if (CollectionUtils.isNotEmpty(actorList)) {
                 voList.forEach(t -> t.setActorList(actorList.stream().filter(v -> Objects.equals(v.getTaskId(), t.getId()))
                         .collect(Collectors.toList())));

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

@@ -65,7 +65,12 @@
     </select>
 
     <select id="selectListHisTaskByInstanceId" resultType="com.aizuda.boot.modules.flw.entity.vo.FlwHisTaskVO">
-        SELECT * FROM flw_his_task ORDER BY create_time ASC
+        SELECT * FROM flw_his_task WHERE instance_id=#{instanceId} ORDER BY create_time ASC
+    </select>
+
+    <select id="selectListHisTaskActorVOByInstanceId" resultType="com.aizuda.boot.modules.flw.entity.vo.FlwHisTaskActorVO">
+        SELECT a.task_id,a.actor_name,(SELECT avatar FROM sys_user WHERE id::TEXT=a.actor_id) AS avatar,a.weight
+        FROM flw_his_task_actor a WHERE a.instance_id=#{instanceId}
     </select>
 
 </mapper>