|
|
@@ -0,0 +1,45 @@
|
|
|
+package com.common.workflow.service.activiti.supplierInfoChangeListener;
|
|
|
+
|
|
|
+import com.common.workflow.service.client.FeignClient;
|
|
|
+import com.common.workflow.service.dto.ApproveInfoDTO;
|
|
|
+import com.common.workflow.service.dto.ApproveParamsDTO;
|
|
|
+import feign.Feign;
|
|
|
+import feign.jackson.JacksonDecoder;
|
|
|
+import feign.jackson.JacksonEncoder;
|
|
|
+import org.activiti.engine.ActivitiException;
|
|
|
+import org.activiti.engine.delegate.DelegateTask;
|
|
|
+import org.activiti.engine.delegate.TaskListener;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+
|
|
|
+@Component("changePreFenTrailService")
|
|
|
+public class ChangePreFenTrailService implements TaskListener {
|
|
|
+ // 二级单位分办
|
|
|
+ @Override
|
|
|
+ public void notify(DelegateTask delegateTask) {
|
|
|
+ String callbackUrl = delegateTask.getVariable("callbackUrl").toString();
|
|
|
+ String businessKey = delegateTask.getVariable("businessKey").toString();
|
|
|
+ ApproveParamsDTO approveParams = new ApproveParamsDTO();
|
|
|
+ approveParams.setBusinessKey(businessKey);
|
|
|
+ ApproveInfoDTO approveInfo = null;
|
|
|
+
|
|
|
+ if (callbackUrl.length() > 0) {
|
|
|
+ FeignClient client = Feign.builder()
|
|
|
+ .decoder(new JacksonDecoder())
|
|
|
+ .encoder(new JacksonEncoder())
|
|
|
+ .target(FeignClient.class, callbackUrl);
|
|
|
+ approveInfo = client.getChangePreFirstAuditors(approveParams);
|
|
|
+ } else {
|
|
|
+ throw new ActivitiException("无回调地址,请联系管理员!");
|
|
|
+ }
|
|
|
+ if (approveInfo.getUsers().length() <= 0) {
|
|
|
+ throw new ActivitiException("未找到审核用户,请联系管理员!");
|
|
|
+ }
|
|
|
+ System.out.println("信息变更工作流获取分办人: " + approveInfo.getUsers());
|
|
|
+ delegateTask.setVariable("users", approveInfo.getUsers());
|
|
|
+ delegateTask.setVariableLocal("users", approveInfo.getUsers());
|
|
|
+ delegateTask.addCandidateUsers(Arrays.asList(approveInfo.getUsers().split(",")));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|