fix:【bpm 工作流】跨进程调用,无法回调 crm 的工作流结果的问题

This commit is contained in:
YunaiV
2025-07-30 18:51:23 +08:00
parent 8eea97add4
commit 3c5c3ddc87
4 changed files with 45 additions and 5 deletions

View File

@@ -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());
}