| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.malk.sdzl.delegate;
- import com.malk.sdzl.service.PayService;
- import com.malk.delegate.DDEvent;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Primary;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- /**
- * OA审批事件 [主项目也有实现, 添加 @Primary 优先注入主项目实现]
- * -
- * 取消方案: 撤销和拒绝流程不继续执行连接器, 因此不使用连接器与轮询审批记录方案 [低效而且占用较高钉钉api调次数];
- * 优化方案: 通过事件订阅实现实时同步所有审批状态, 定时查询钉钉回调失败记录 [配置钉钉事件Delegate, 添加定时任务]
- */
- @Slf4j
- @Service
- @Primary
- public class DDDelegate implements DDEvent {
- @Autowired
- PayService payService;
- // 审批任务回调执行业务逻辑
- @Async
- @Override
- public void executeEvent_Task_Finish(String processInstanceId, String processCode, boolean isAgree, String remark) {
- log.info("executeEvent_Task_Finish");
- }
- @Async
- @Override
- public void executeEvent_Task_Start(String processInstanceId, String processCode) {
- log.info("executeEvent_Task_Start");
- }
- @Async
- @Override
- public void executeEvent_Task_Redirect(String processInstanceId, String processCode) {
- log.info("executeEvent_Task_Redirect");
- }
- @Async
- @Override
- public void executeEvent_Instance_Start(String processInstanceId, String processCode) {
- log.info("executeEvent_Instance_Start");
- }
- // 审批实例回调执行业务逻辑
- @Async
- @Override
- public void executeEvent_Instance_Finish(String processInstanceId, String processCode, boolean isAgree, boolean isTerminate, String staffId) {
- log.info("executeEvent_Instance_Finish");
- String approveResult = isAgree ? "agree" : "refuse";
- // if (isTerminate) approveResult = "terminated";
- if (isAgree){
- log.info("开始执行回调:{}",processInstanceId);
- // payService.synchronousAndPush(processInstanceId);
- }
- log.info("审批实例回调执行业务逻辑, {}", approveResult);
- }
- }
|