mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	✨ CRM:完善合同的审批逻辑
This commit is contained in:
		| @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessI | ||||
| import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; | ||||
| import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; | ||||
| import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | ||||
| import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent; | ||||
| import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceResultEvent; | ||||
| import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; | ||||
| import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; | ||||
| import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; | ||||
|   | ||||
| @@ -1,44 +0,0 @@ | ||||
| package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; | ||||
|  | ||||
| import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; | ||||
| import lombok.Data; | ||||
| import org.springframework.context.ApplicationEvent; | ||||
|  | ||||
| import jakarta.validation.constraints.NotNull; | ||||
|  | ||||
| /** | ||||
|  * 流程实例的结果发生变化的 Event | ||||
|  * 定位:由于额外增加了 {@link BpmProcessInstanceExtDO#getResult()} 结果,所以增加该事件 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @SuppressWarnings("ALL") | ||||
| @Data | ||||
| public class BpmProcessInstanceResultEvent extends ApplicationEvent { | ||||
|  | ||||
|     /** | ||||
|      * 流程实例的编号 | ||||
|      */ | ||||
|     @NotNull(message = "流程实例的编号不能为空") | ||||
|     private String id; | ||||
|     /** | ||||
|      * 流程实例的 key | ||||
|      */ | ||||
|     @NotNull(message = "流程实例的 key 不能为空") | ||||
|     private String processDefinitionKey; | ||||
|     /** | ||||
|      * 流程实例的结果 | ||||
|      */ | ||||
|     @NotNull(message = "流程实例的结果不能为空") | ||||
|     private Integer result; | ||||
|     /** | ||||
|      * 流程实例对应的业务标识 | ||||
|      * 例如说,请假 | ||||
|      */ | ||||
|     private String businessKey; | ||||
|  | ||||
|     public BpmProcessInstanceResultEvent(Object source) { | ||||
|         super(source); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,34 +0,0 @@ | ||||
| package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; | ||||
|  | ||||
| import cn.hutool.core.util.StrUtil; | ||||
| import org.springframework.context.ApplicationListener; | ||||
|  | ||||
| /** | ||||
|  * {@link BpmProcessInstanceResultEvent} 的监听器 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| public abstract class BpmProcessInstanceResultEventListener | ||||
|         implements ApplicationListener<BpmProcessInstanceResultEvent> { | ||||
|  | ||||
|     @Override | ||||
|     public final void onApplicationEvent(BpmProcessInstanceResultEvent event) { | ||||
|         if (!StrUtil.equals(event.getProcessDefinitionKey(), getProcessDefinitionKey())) { | ||||
|             return; | ||||
|         } | ||||
|         onEvent(event); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return 返回监听的流程定义 Key | ||||
|      */ | ||||
|     protected abstract String getProcessDefinitionKey(); | ||||
|  | ||||
|     /** | ||||
|      * 处理事件 | ||||
|      * | ||||
|      * @param event 事件 | ||||
|      */ | ||||
|     protected abstract void onEvent(BpmProcessInstanceResultEvent event); | ||||
|  | ||||
| } | ||||
| @@ -1,5 +1,6 @@ | ||||
| package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; | ||||
|  | ||||
| import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceResultEvent; | ||||
| import lombok.AllArgsConstructor; | ||||
| import org.springframework.context.ApplicationEventPublisher; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
|   | ||||
| @@ -1,36 +0,0 @@ | ||||
| package cn.iocoder.yudao.module.bpm.framework.bpm.listener; | ||||
|  | ||||
| import cn.hutool.core.util.StrUtil; | ||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||
| import cn.iocoder.yudao.module.bpm.api.listener.BpmResultListenerApi; | ||||
| import cn.iocoder.yudao.module.bpm.api.listener.dto.BpmResultListenerRespDTO; | ||||
| import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent; | ||||
| import jakarta.annotation.Resource; | ||||
| import org.springframework.context.ApplicationListener; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| // TODO @芋艿:后续改成支持 RPC | ||||
| /** | ||||
|  * 业务流程结果监听器实现类 | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| @Component | ||||
| public class BpmServiceResultListener implements ApplicationListener<BpmProcessInstanceResultEvent> { | ||||
|  | ||||
|     @Resource | ||||
|     private List<BpmResultListenerApi> bpmResultListenerApis; | ||||
|  | ||||
|     @Override | ||||
|     public final void onApplicationEvent(BpmProcessInstanceResultEvent event) { | ||||
|         bpmResultListenerApis.forEach(bpmResultListenerApi -> { | ||||
|             if (!StrUtil.equals(event.getProcessDefinitionKey(), bpmResultListenerApi.getProcessDefinitionKey())) { | ||||
|                 return; | ||||
|             } | ||||
|             bpmResultListenerApi.onEvent(BeanUtils.toBean(event, BpmResultListenerRespDTO.class)); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.bpm.service.oa.listener; | ||||
|  | ||||
| import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent; | ||||
| import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventListener; | ||||
| import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceResultEvent; | ||||
| import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceResultEventListener; | ||||
| import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService; | ||||
| import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveServiceImpl; | ||||
| import org.springframework.stereotype.Component; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV