Browse Source

CRM: 流程状态转换封装

puhui999 1 year ago
parent
commit
5892c8897f

+ 3 - 22
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java

@@ -11,7 +11,6 @@ import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 import cn.iocoder.yudao.module.bpm.api.listener.dto.BpmResultListenerRespDTO;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
 import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
-import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractPageReqVO;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractSaveReqVO;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractTransferReqVO;
@@ -48,6 +47,8 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
 import static cn.iocoder.yudao.module.crm.enums.LogRecordConstants.*;
+import static cn.iocoder.yudao.module.crm.util.CrmAuditStatusUtils.convertAuditStatus;
+import static cn.iocoder.yudao.module.crm.util.CrmAuditStatusUtils.isEndResult;
 
 /**
  * CRM 合同 Service 实现类
@@ -296,32 +297,12 @@ public class CrmContractServiceImpl implements CrmContractService {
         if (!isEndResult(event.getResult())) {
             return;
         }
-        // 状态转换
-        if (ObjUtil.equal(event.getResult(), BpmProcessInstanceResultEnum.APPROVE.getResult())) {
-            event.setResult(CrmAuditStatusEnum.APPROVE.getStatus());
-        }
-        if (ObjUtil.equal(event.getResult(), BpmProcessInstanceResultEnum.REJECT.getResult())) {
-            event.setResult(CrmAuditStatusEnum.REJECT.getStatus());
-        }
-        if (ObjUtil.equal(event.getResult(), BpmProcessInstanceResultEnum.CANCEL.getResult())) {
-            event.setResult(CrmAuditStatusEnum.CANCEL.getStatus());
-        }
+        convertAuditStatus(event);
         // 更新合同状态
         contractMapper.updateById(new CrmContractDO().setId(Long.parseLong(event.getBusinessKey()))
                 .setAuditStatus(event.getResult()));
     }
 
-    /**
-     * 判断该结果是否处于 End 最终结果
-     *
-     * @param result 结果
-     * @return 是否
-     */
-    public static boolean isEndResult(Integer result) {
-        return ObjectUtils.equalsAny(result, BpmProcessInstanceResultEnum.APPROVE.getResult(),
-                BpmProcessInstanceResultEnum.REJECT.getResult(), BpmProcessInstanceResultEnum.CANCEL.getResult());
-    }
-
     //======================= 查询相关 =======================
 
     @Override

+ 5 - 0
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivableServiceImpl.java

@@ -43,6 +43,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
 import static cn.iocoder.yudao.module.crm.enums.LogRecordConstants.*;
 import static cn.iocoder.yudao.module.crm.util.CrmAuditStatusUtils.convertAuditStatus;
+import static cn.iocoder.yudao.module.crm.util.CrmAuditStatusUtils.isEndResult;
 
 /**
  * CRM 回款 Service 实现类
@@ -142,6 +143,10 @@ public class CrmReceivableServiceImpl implements CrmReceivableService {
 
     @Override
     public void updateReceivableAuditStatus(BpmResultListenerRespDTO event) {
+        // 判断下状态是否符合预期
+        if (!isEndResult(event.getResult())) {
+            return;
+        }
         convertAuditStatus(event);
         // 更新回款审批状态
         receivableMapper.updateById(new CrmReceivableDO().setId(Long.parseLong(event.getBusinessKey()))

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

@@ -13,11 +13,12 @@ import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum;
  */
 public class CrmAuditStatusUtils {
 
+    /**
+     * 流程审批状态转换
+     *
+     * @param event 业务流程实例的结果
+     */
     public static void convertAuditStatus(BpmResultListenerRespDTO event) {
-        // 判断下状态是否符合预期
-        if (!isEndResult(event.getResult())) {
-            return;
-        }
         // 状态转换
         if (ObjUtil.equal(event.getResult(), BpmProcessInstanceResultEnum.APPROVE.getResult())) {
             event.setResult(CrmAuditStatusEnum.APPROVE.getStatus());