Kaynağa Gözat

我的已处理任务

dongpo 1 yıl önce
ebeveyn
işleme
0efdf000c0

+ 3 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java

@@ -24,4 +24,7 @@ public class BpmTaskApproveReqVO {
     @Schema(description = "变量实例(动态表单)", requiredMode = Schema.RequiredMode.AUTO)
     private Map<String, Object> variables;
 
+    @Schema(description = "任务状态(冗余字段)")
+    private Integer taskStatus;
+
 }

+ 3 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskReturnReqVO.java

@@ -22,4 +22,7 @@ public class BpmTaskReturnReqVO {
     @NotBlank(message = "回退意见不能为空")
     private String reason;
 
+    @Schema(description = "任务状态(冗余字段)")
+    private Integer taskStatus;
+
 }

+ 3 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java

@@ -72,7 +72,9 @@ public interface BpmTaskConvert {
                                                     Map<String, BpmProcessDefinitionExtDO> bpmProcessDefinitionExtDOMap) {
         List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(pageResult.getList(), task -> {
             BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
-            taskVO.setStatus(FlowableUtils.getTaskStatus(task)).setReason(FlowableUtils.getTaskReason(task));
+            Integer taskStatus = FlowableUtils.getTaskStatus(task);
+            String taskReason = FlowableUtils.getTaskReason(task);
+            taskVO.setStatus(taskStatus).setReason(taskReason);
             // 用户信息
             AdminUserRespDTO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
             if (assignUser != null) {

+ 6 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/universal/OaUniversalServiceImpl.java

@@ -171,6 +171,7 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         BpmTaskApproveReqVO agreeReqVO = new BpmTaskApproveReqVO();
         agreeReqVO.setId(task.getId());
         agreeReqVO.setReason("[首次提交]");
+        agreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_COMMITTED));
         taskService.setVariable(task.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_COMMITTED);
         taskService.setVariable(task.getId(), "auditPass", "true");
         bpmTaskService.approveTask(loginUserId, agreeReqVO);
@@ -225,6 +226,7 @@ public class OaUniversalServiceImpl implements OaUniversalService {
             reason = reason + agreeReqVO.getReason();
         }
         agreeReqVO.setReason(reason);
+        agreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_AUDITING));
         taskService.setVariable(agreeReqVO.getId(), "auditPass", "true");
         bpmTaskService.approveTask(loginUserId, agreeReqVO);
 
@@ -265,6 +267,7 @@ public class OaUniversalServiceImpl implements OaUniversalService {
 
         disagreeReqVO.setTargetTaskDefinitionKey("modifyApply");
         disagreeReqVO.setReason("[驳回]" + disagreeReqVO.getReason());
+        disagreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_RETURNED));
         taskService.setVariable(disagreeReqVO.getId(), "auditPass", "false");
         taskService.setVariable(disagreeReqVO.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_RETURNED);
         bpmTaskService.returnTask(loginUserId, disagreeReqVO);
@@ -310,6 +313,7 @@ public class OaUniversalServiceImpl implements OaUniversalService {
             reason = reason + returnReqVO.getReason();
         }
         returnReqVO.setReason(reason);
+        returnReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_RECALLED));
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_RECALLED);
         bpmTaskService.revocationTask(loginUserId, returnReqVO);
 
@@ -347,6 +351,7 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         BpmTaskApproveReqVO approveReqVO = new BpmTaskApproveReqVO();
         approveReqVO.setId(currentTask.getId())
                 .setReason("[再次提交]");
+        approveReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_COMMITTED));
         if (CollectionUtil.isNotEmpty(reCommitReqVO.getStartUserSelectAssignees())) {
             // 添加审批人信息到流程参数中
             Map<String, List<Long>> startUserSelectAssignees = new HashMap<>();
@@ -390,6 +395,7 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         BpmTaskApproveReqVO approveReqVO = new BpmTaskApproveReqVO();
         approveReqVO.setId(currentTask.getId())
                 .setReason("[关闭]");
+        approveReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_CLOSED));
         taskService.setVariable(currentTask.getId(), "auditPass", "false");
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_CLOSED);
         // 关闭,使用审批通过的方法实现

+ 11 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java

@@ -228,7 +228,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 
         // 情况三:审批普通的任务。大多数情况下,都是这样
         // 3.1 更新 task 状态、原因
-        updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.APPROVE.getStatus(), reqVO.getReason());
+        Integer status = BpmTaskStatusEnum.APPROVE.getStatus();
+        if (reqVO.getTaskStatus() != null) {
+            status = reqVO.getTaskStatus();
+        }
+        updateTaskStatusAndReason(task.getId(), status, reqVO.getReason());
         // 3.2 添加评论
         taskService.addComment(task.getId(), task.getProcessInstanceId(), BpmCommentTypeEnum.APPROVE.getType(),
                 BpmCommentTypeEnum.APPROVE.formatComment(reqVO.getReason()));
@@ -368,7 +372,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
      * @param status 状态
      */
     private void updateTaskStatus(String id, Integer status) {
-        // taskService.setVariableLocal(id, BpmConstants.TASK_VARIABLE_STATUS, status);
+        taskService.setVariableLocal(id, BpmConstants.TASK_VARIABLE_STATUS, status);
     }
 
     /**
@@ -572,7 +576,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
             taskService.addComment(task.getId(), currentTask.getProcessInstanceId(), BpmCommentTypeEnum.RETURN.getType(),
                     BpmCommentTypeEnum.RETURN.formatComment(reqVO.getReason()));
             // 2.2 更新 task 状态 + 原因
-            updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RETURN.getStatus(), reqVO.getReason());
+            Integer status = BpmTaskStatusEnum.RETURN.getStatus();
+            if (reqVO.getTaskStatus() != null) {
+                status = reqVO.getTaskStatus();
+            }
+            updateTaskStatusAndReason(task.getId(), status, reqVO.getReason());
         });
 
         // 3. 执行驳回