Browse Source

BPM:增加 task 的审批建议

YunaiV 1 year ago
parent
commit
c4688d887c

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java

@@ -15,7 +15,7 @@ public enum BpmCommentTypeEnum {
     APPROVE("1", "审批通过", ""), // 理由:直接使用用户的评论
     REJECT("2", "不通过", ""),
     CANCEL("3", "已取消", ""),
-    BACK("4", "退回", ""),
+    BACK("4", "退回", ""), // 理由:直接使用用户的评论
     DELEGATE("5", "委派", ""),
     ADD_SIGN("6", "加签", "[{}]{}给了[{}],理由为:{}"),
     SUB_SIGN("7", "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"),

+ 14 - 14
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceResultEnum.java → yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskStatustEnum.java

@@ -5,13 +5,13 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * 流程实例的结果
+ * 流程任务 Task 的状态枚举
  *
  * @author jason
  */
 @Getter
 @AllArgsConstructor
-public enum BpmProcessInstanceResultEnum {
+public enum BpmTaskStatustEnum {
 
     RUNNING(1, "审批中"),
     APPROVE(2, "审批通过"),
@@ -43,28 +43,28 @@ public enum BpmProcessInstanceResultEnum {
 //    WAIT_BEFORE_TASK(9, "处理中【待前置任务完成】");
 
     /**
-     * 结果
+     * 状态
      * <p>
-     * 如果新增时,注意 {@link #isEndResult(Integer)} 是否需要变更
+     * 如果新增时,注意 {@link #isEndStatus(Integer)} 是否需要变更
      */
-    private final Integer result;
+    private final Integer status;
     /**
-     * 描述
+     * 名字
      */
-    private final String desc;
+    private final String name;
 
     /**
-     * 判断该结果是否已经处于 End 最终结果
+     * 判断该状态是否已经处于 End 最终状态
      * <p>
-     * 主要用于一些结果更新的逻辑,如果已经是最终结果,就不再进行更新
+     * 主要用于一些状态更新的逻辑,如果已经是最终状态,就不再进行更新
      *
-     * @param result 结果
+     * @param status 状态
      * @return 是否
      */
-    public static boolean isEndResult(Integer result) {
-        return ObjectUtils.equalsAny(result,
-                APPROVE.getResult(), REJECT.getResult(), CANCEL.getResult(),
-                BACK.getResult(), APPROVING.getResult());
+    public static boolean isEndStatus(Integer status) {
+        return ObjectUtils.equalsAny(status,
+                APPROVE.getStatus(), REJECT.getStatus(), CANCEL.getStatus(),
+                BACK.getStatus(), APPROVING.getStatus());
     }
 
 }

+ 4 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java

@@ -27,7 +27,10 @@ public class BpmTaskRespVO {
     private Long durationInMillis;
 
     @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    private Integer status; // 参见 BpmProcessInstanceResultEnum 枚举
+    private Integer status; // 参见 BpmTaskStatusEnum 枚举
+
+    @Schema(description = "审批理由", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String reason;
 
     /**
      * 负责人的用户信息

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

@@ -57,6 +57,7 @@ public interface BpmTaskConvert {
         List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(pageResult.getList(), task -> {
             BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
             taskVO.setStatus((Integer) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_STATUS));
+            taskVO.setReason((String) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_REASON));
             // 流程实例
             HistoricProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
             if (processInstance != null) {
@@ -76,6 +77,7 @@ public interface BpmTaskConvert {
         List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(taskList, task -> {
             BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
             taskVO.setStatus((Integer) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_STATUS));
+            taskVO.setReason((String) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_REASON));
             // 流程实例
             AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
             taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskRespVO.ProcessInstance.class,

+ 0 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/package-info.java

@@ -1 +0,0 @@
-package cn.iocoder.yudao.module.bpm.convert.task;

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
+import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -59,7 +59,7 @@ public class BpmOALeaveDO extends BaseDO {
     /**
      * 请假的结果
      *
-     * 枚举 {@link BpmProcessInstanceResultEnum}
+     * 枚举 {@link BpmTaskStatustEnum}
      * 考虑到简单,所以直接复用了 BpmProcessInstanceResultEnum 枚举,也可以自己定义一个枚举哈
      */
     private Integer result;

+ 8 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/enums/BpmConstants.java

@@ -22,5 +22,13 @@ public class BpmConstants {
      * @see org.flowable.task.api.Task#getTaskLocalVariables()
      */
     public static final String TASK_VARIABLE_STATUS = "TASK_STATUS";
+    /**
+     * 任务的变量 - 理由
+     *
+     * 例如说:审批通过、不通过的理由
+     *
+     * @see org.flowable.task.api.Task#getTaskLocalVariables()
+     */
+    public static final String TASK_VARIABLE_REASON = "TASK_REASON";
 
 }

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java

@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
 import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOALeaveMapper;
-import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
+import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -48,7 +48,7 @@ public class BpmOALeaveServiceImpl implements BpmOALeaveService {
         // 插入 OA 请假单
         long day = LocalDateTimeUtil.between(createReqVO.getStartTime(), createReqVO.getEndTime()).toDays();
         BpmOALeaveDO leave = BpmOALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day)
-                .setResult(BpmProcessInstanceResultEnum.RUNNING.getResult());
+                .setResult(BpmTaskStatustEnum.RUNNING.getStatus());
         leaveMapper.insert(leave);
 
         // 发起 BPM 流程

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

@@ -14,7 +14,7 @@ import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
 import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmCommentTypeEnum;
-import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
+import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskAddSignTypeEnum;
 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmConstants;
 import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService;
@@ -178,15 +178,15 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         }
 
         // 情况三:审批普通的任务。大多数情况下,都是这样
-        // 更新流程任务 status 为审批通过
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.APPROVE.getResult());
-        // 添加评论
+        // 3.1 更新 task 状态、原因
+        updateTaskStatus(task.getId(), BpmTaskStatustEnum.APPROVE.getStatus());
+        // 3.2 添加评论
         taskService.addComment(task.getId(), task.getProcessInstanceId(),
                 BpmCommentTypeEnum.APPROVE.getType(), reqVO.getReason());
-        // 调用 BPM complete 去完成任务
+        // 3.3 调用 BPM complete 去完成任务
         taskService.complete(task.getId(), instance.getProcessVariables());
 
-        // 处理加签任务
+        // 【加签专属】处理加签任务
         handleParentTaskIfSign(task.getParentTaskId());
     }
 
@@ -204,14 +204,14 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 //                new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.SIGN_AFTER.getResult())
 //                        .setReason(reqVO.getReason()).setEndTime(LocalDateTime.now()));
         // TODO @芋艿:reqVO.reason???
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.APPROVING.getResult());
+        updateTaskStatus(task.getId(), BpmTaskStatustEnum.APPROVING.getStatus());
 
         // 2. 激活子任务
         List<String> childrenTaskIdList = getChildrenTaskIdList(task.getId());
         for (String childrenTaskId : childrenTaskIdList) {
             taskService.resolveTask(childrenTaskId);
             // 更新任务扩展表中子任务为进行中
-            updateTaskStatus(childrenTaskId, BpmProcessInstanceResultEnum.RUNNING.getResult());
+            updateTaskStatus(childrenTaskId, BpmTaskStatustEnum.RUNNING.getStatus());
         }
         // 2.1 更新任务扩展表中子任务为进行中
 //        taskExtMapper.updateBatchByTaskIdList(childrenTaskIdList,
@@ -252,11 +252,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
             // 3.1.1 owner 重新赋值给父任务的 assignee,这样它就可以被审批
             taskService.resolveTask(parentTaskId);
             // 3.1.2 更新流程任务 status
-            updateTaskStatus(parentTaskId, BpmProcessInstanceResultEnum.RUNNING.getResult());
+            updateTaskStatus(parentTaskId, BpmTaskStatustEnum.RUNNING.getStatus());
         // 3.2 情况二:处理向【向后】加签
         } else if (BpmTaskAddSignTypeEnum.AFTER.getType().equals(scopeType)) {
             // 3.2.1 完成自己(因为它已经没有子任务,所以也可以完成)
-            updateTaskStatus(parentTaskId, BpmProcessInstanceResultEnum.APPROVE.getResult());
+            updateTaskStatus(parentTaskId, BpmTaskStatustEnum.APPROVE.getStatus());
             taskService.complete(parentTaskId);
         }
 
@@ -299,7 +299,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 //        taskExtMapper.updateByTaskId(
 //                new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.RUNNING.getResult())
 //                        .setReason(reqVO.getReason()));
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.RUNNING.getResult());
+        updateTaskStatus(task.getId(), BpmTaskStatustEnum.RUNNING.getStatus());
     }
 
     @Override
@@ -313,7 +313,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         }
 
         // 更新流程实例为不通过
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.REJECT.getResult());
+        updateTaskStatus(task.getId(), BpmTaskStatustEnum.REJECT.getStatus());
         processInstanceService.updateProcessInstanceExtReject(instance.getProcessInstanceId(), reqVO.getReason());
 
 //        // 更新任务拓展表为不通过
@@ -342,13 +342,21 @@ public class BpmTaskServiceImpl implements BpmTaskService {
      * @param status 状态
      */
     private void updateTaskStatus(String id, Integer status) {
-//        try {
-//        } catch (FlowableObjectNotFoundException exception) {
-//            historyService.
-//        }
         taskService.setVariableLocal(id, BpmConstants.TASK_VARIABLE_STATUS, status);
     }
 
+    /**
+     * 更新流程任务的 status 状态、reason 理由
+     *
+     * @param id 任务编号
+     * @param status 状态
+     * @param reason 理由(审批通过、审批不通过的理由)
+     */
+    private void updateTaskStatus(String id, Integer status, String reason) {
+        taskService.setVariableLocal(id, BpmConstants.TASK_VARIABLE_STATUS, status);
+        taskService.setVariableLocal(id, BpmConstants.TASK_VARIABLE_REASON, reason);
+    }
+
     /**
      * 校验任务是否存在, 并且是否是分配给自己的任务
      *
@@ -382,7 +390,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 //        if (BpmTaskAddSignTypeEnum.AFTER_CHILDREN_TASK.getType().equals(task.getScopeType())) {
 //            status = BpmProcessInstanceResultEnum.WAIT_BEFORE_TASK.getResult();
 //        }
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.RUNNING.getResult());
+        updateTaskStatus(task.getId(), BpmTaskStatustEnum.RUNNING.getStatus());
     }
 
     @Override
@@ -392,7 +400,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 //                .setEndTime(LocalDateTime.now());
 //        taskExtMapper.updateByTaskId(taskExtDO);
 
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.APPROVE.getResult());
+        updateTaskStatus(task.getId(), BpmTaskStatustEnum.APPROVE.getStatus());
     }
 
     @Override
@@ -405,11 +413,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         }
 
         Integer status = (Integer) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_STATUS);
-        if (BpmProcessInstanceResultEnum.isEndResult(status)) {
+        if (BpmTaskStatustEnum.isEndStatus(status)) {
             log.error("[updateTaskExtCancel][taskId({}) 处于结果({}),无需进行更新]", taskId, status);
             return;
         }
-        updateTaskStatus(taskId, BpmProcessInstanceResultEnum.CANCEL.getResult());
+        updateTaskStatus(taskId, BpmTaskStatustEnum.CANCEL.getStatus());
 
         if (true) {
             return;
@@ -438,7 +446,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 //                    return;
 //                }
                 Integer status = (Integer) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_STATUS);
-                if (BpmProcessInstanceResultEnum.isEndResult(status)) {
+                if (BpmTaskStatustEnum.isEndStatus(status)) {
                     log.error("[updateTaskExtCancel][taskId({}) 处于结果({}),无需进行更新]", taskId, status);
                     return;
                 }
@@ -446,7 +454,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
                 // 更新任务
 //                taskExtMapper.updateById(new BpmTaskExtDO().setId(taskExt.getId()).setResult(BpmProcessInstanceResultEnum.CANCEL.getResult())
 //                        .setEndTime(LocalDateTime.now()).setReason(BpmProcessInstanceDeleteReasonEnum.translateReason(task.getDeleteReason())));
-                updateTaskStatus(taskId, BpmProcessInstanceResultEnum.CANCEL.getResult());
+                updateTaskStatus(taskId, BpmTaskStatustEnum.CANCEL.getStatus());
             }
 
         });
@@ -520,19 +528,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
             throw exception(TASK_IS_PENDING);
         }
         // 1.2 校验源头和目标节点的关系,并返回目标元素
-        FlowElement targetElement = validateTargetTaskCanReturn(task.getTaskDefinitionKey(), reqVO.getTargetTaskDefinitionKey(), task.getProcessDefinitionId());
-
-        // 3. 更新任务扩展表 TODO 芋艿:需要提前搞
-        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.BACK.getResult());
+        FlowElement targetElement = validateTargetTaskCanReturn(task.getTaskDefinitionKey(),
+                reqVO.getTargetTaskDefinitionKey(), task.getProcessDefinitionId());
 
-        // 2. 调用 flowable 框架的回退逻辑
-        returnTask0(task, targetElement, reqVO);
-
-        // 3. 更新任务扩展表
-//        updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.BACK.getResult());
-//        taskExtMapper.updateByTaskId(new BpmTaskExtDO().setTaskId(task.getId())
-//                .setResult(BpmProcessInstanceResultEnum.BACK.getResult())
-//                .setEndTime(LocalDateTime.now()).setReason(reqVO.getReason()));
+        // 2. 调用 Flowable 框架的回退逻辑
+        returnTask(task, targetElement, reqVO);
     }
 
     /**
@@ -568,7 +568,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
      * @param targetElement 需要回退到的目标任务
      * @param reqVO         前端参数封装
      */
-    public void returnTask0(Task currentTask, FlowElement targetElement, BpmTaskReturnReqVO reqVO) {
+    public void returnTask(Task currentTask, FlowElement targetElement, BpmTaskReturnReqVO reqVO) {
         // 1. 获得所有需要回撤的任务 taskDefinitionKey,用于稍后的 moveActivityIdsToSingleActivityId 回撤
         // 1.1 获取所有正常进行的任务节点 Key
         List<Task> taskList = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).list();
@@ -584,11 +584,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
             if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) {
                 return;
             }
+            // 2.1 添加评论
             taskService.addComment(task.getId(), currentTask.getProcessInstanceId(),
-                    BpmCommentTypeEnum.BACK.getType().toString(), reqVO.getReason());
-
-            // TODO 芋艿:这里加下驳回的
-            updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.BACK.getResult());
+                    BpmCommentTypeEnum.BACK.getType(), reqVO.getReason());
+            // 2.2 更新 task 状态 + 原因
+            updateTaskStatus(task.getId(), BpmTaskStatustEnum.BACK.getStatus(), reqVO.getReason());
         });
 
         // 3. 执行驳回
@@ -626,7 +626,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 //        taskExtMapper.updateByTaskId(
 //                new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.DELEGATE.getResult())
 //                        .setReason(reqVO.getReason()));
-        updateTaskStatus(taskId, BpmProcessInstanceResultEnum.DELEGATE.getResult());
+        updateTaskStatus(taskId, BpmTaskStatustEnum.DELEGATE.getStatus());
     }
 
     /**
@@ -677,7 +677,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         // 2.5 保存当前任务修改后的值
         taskService.saveTask(taskEntity);
         if (reqVO.getType().equals(BpmTaskAddSignTypeEnum.BEFORE.getType())) {
-            updateTaskStatus(taskEntity.getId(), BpmProcessInstanceResultEnum.WAIT.getResult()); // TODO 芋艿:貌似只能放在这个地方,不然会有并发修改的报错
+            updateTaskStatus(taskEntity.getId(), BpmTaskStatustEnum.WAIT.getStatus()); // TODO 芋艿:貌似只能放在这个地方,不然会有并发修改的报错
         }
 
         // 3. 创建加签任务
@@ -767,7 +767,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         taskService.saveTask(task);
         // 3. TODO
         if (BpmTaskAddSignTypeEnum.AFTER.getType().equals(parentTask.getScopeType())) {
-            updateTaskStatus(task.getId(), BpmProcessInstanceResultEnum.WAIT.getResult());
+            updateTaskStatus(task.getId(), BpmTaskStatustEnum.WAIT.getStatus());
         }
     }
 

+ 1 - 1
yudao-module-bpm/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/BpmnModelUtils.java

@@ -55,7 +55,7 @@ public class BpmnModelUtils {
     /**
      * 获得 BPMN 流程中,指定的元素们
      *
-     * @param model
+     * @param model 模型
      * @param clazz 指定元素。例如说,{@link UserTask}、{@link Gateway} 等等
      * @return 元素们
      */

+ 4 - 4
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/util/CrmAuditStatusUtils.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.crm.util;
 
 import cn.hutool.core.lang.Assert;
-import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
+import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum;
 import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum;
 
 /**
@@ -17,9 +17,9 @@ public class CrmAuditStatusUtils {
      * @param bpmResult BPM 审批结果
      */
     public static Integer convertBpmResultToAuditStatus(Integer bpmResult) {
-        Integer auditStatus = BpmProcessInstanceResultEnum.APPROVE.getResult().equals(bpmResult) ? CrmAuditStatusEnum.APPROVE.getStatus()
-                : BpmProcessInstanceResultEnum.REJECT.getResult().equals(bpmResult) ? CrmAuditStatusEnum.REJECT.getStatus()
-                : BpmProcessInstanceResultEnum.CANCEL.getResult().equals(bpmResult) ? BpmProcessInstanceResultEnum.CANCEL.getResult() : null;
+        Integer auditStatus = BpmTaskStatustEnum.APPROVE.getStatus().equals(bpmResult) ? CrmAuditStatusEnum.APPROVE.getStatus()
+                : BpmTaskStatustEnum.REJECT.getStatus().equals(bpmResult) ? CrmAuditStatusEnum.REJECT.getStatus()
+                : BpmTaskStatustEnum.CANCEL.getStatus().equals(bpmResult) ? BpmTaskStatustEnum.CANCEL.getStatus() : null;
         Assert.notNull(auditStatus, "BPM 审批结果({}) 转换失败", bpmResult);
         return auditStatus;
     }