fix:【bpm 工作流】跨进程调用,无法回调 crm 的工作流结果的问题
parent
8eea97add4
commit
3c5c3ddc87
|
@ -0,0 +1,25 @@
|
|||
package cn.iocoder.yudao.module.bpm.api.event;
|
||||
|
||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmHttpRequestUtils;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
/**
|
||||
* 合同审批的结果的监听器实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public class CrmContractStatusListener extends BpmProcessInstanceStatusEventListener {
|
||||
|
||||
@Override
|
||||
public String getProcessDefinitionKey() {
|
||||
return "crm-contract-audit";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(@RequestBody @Valid BpmProcessInstanceStatusEvent event) {
|
||||
BpmHttpRequestUtils.executeBpmHttpRequest(event,
|
||||
"http://crm-server/rpc-api/crm/contract/update-audit-status");
|
||||
}
|
||||
|
||||
}
|
|
@ -2,8 +2,6 @@ package cn.iocoder.yudao.module.bpm.api.event;
|
|||
|
||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmHttpRequestUtils;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package cn.iocoder.yudao.module.bpm.framework.rpc.config;
|
||||
|
||||
import cn.iocoder.yudao.module.bpm.api.event.CrmContractStatusListener;
|
||||
import cn.iocoder.yudao.module.bpm.api.event.CrmReceivableStatusListener;
|
||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
||||
import cn.iocoder.yudao.module.system.api.dept.PostApi;
|
||||
|
@ -26,4 +27,10 @@ public class RpcConfiguration {
|
|||
return new CrmReceivableStatusListener();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(name = "crmContractStatusListener")
|
||||
public CrmContractStatusListener crmContractStatusListener() {
|
||||
return new CrmContractStatusListener();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,19 +2,28 @@ package cn.iocoder.yudao.module.crm.service.contract.listener;
|
|||
|
||||
import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
|
||||
import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener;
|
||||
import cn.iocoder.yudao.module.crm.enums.ApiConstants;
|
||||
import cn.iocoder.yudao.module.crm.service.contract.CrmContractService;
|
||||
import cn.iocoder.yudao.module.crm.service.contract.CrmContractServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 合同审批的结果的监听器实现类
|
||||
*
|
||||
* @author HUIHUI
|
||||
*/
|
||||
@Component
|
||||
@RestController
|
||||
@Validated
|
||||
@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory =
|
||||
public class CrmContractStatusListener extends BpmProcessInstanceStatusEventListener {
|
||||
|
||||
private static final String PREFIX = ApiConstants.PREFIX + "/contract";
|
||||
|
||||
@Resource
|
||||
private CrmContractService contractService;
|
||||
|
||||
|
@ -24,7 +33,8 @@ public class CrmContractStatusListener extends BpmProcessInstanceStatusEventList
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void onEvent(BpmProcessInstanceStatusEvent event) {
|
||||
@PostMapping(PREFIX + "/update-audit-status") // 目的:提供给 bpm-server rpc 调用
|
||||
protected void onEvent(@RequestBody BpmProcessInstanceStatusEvent event) {
|
||||
contractService.updateContractAuditStatus(Long.parseLong(event.getBusinessKey()), event.getStatus());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue