Browse Source

fix: 调过不走回调修改

JieZ 2 years ago
parent
commit
a8d8b7d76a

+ 6 - 1
bpm-core/src/main/java/com/srm/bpm/logic/listener/ProcessBillListener.java

@@ -5,6 +5,8 @@ package com.srm.bpm.logic.listener;
5 5
 import com.google.common.base.MoreObjects;
6 6
 import com.google.common.primitives.Longs;
7 7
 
8
+import com.srm.bpm.infra.entity.ToaBillEntity;
9
+import com.srm.bpm.infra.service.ToaBillService;
8 10
 import com.srm.bpm.logic.service.BillLogic;
9 11
 import com.srm.config.SpringContextHolder;
10 12
 
@@ -42,9 +44,12 @@ public class ProcessBillListener implements ExecutionListener {
42 44
             // 更新审批单为结束
43 45
             if (StringUtils.isNotEmpty(businessKey)) {
44 46
                 long billId = MoreObjects.firstNonNull(Longs.tryParse(businessKey), 0L);
47
+                log.debug("ProcessBillListener流程结束回调:{}",billId);
45 48
                 if (billId > 0) {
46 49
                     final BillLogic billService = SpringContextHolder.getBean(BillLogic.class);
47
-                    billService.complete(billId, action);
50
+                    final ToaBillService toaBillService = SpringContextHolder.getBean(ToaBillService.class);
51
+                    final ToaBillEntity byId = toaBillService.getById(billId);
52
+                    billService.complete(byId, action);
48 53
                 }
49 54
             }
50 55
         }

+ 2 - 1
bpm-core/src/main/java/com/srm/bpm/logic/service/BillLogic.java

@@ -3,6 +3,7 @@
3 3
 package com.srm.bpm.logic.service;
4 4
 
5 5
 import com.srm.bpm.infra.entity.BillTaskEntity;
6
+import com.srm.bpm.infra.entity.ToaBillEntity;
6 7
 import com.srm.bpm.infra.po.ProcessDetailPO;
7 8
 import com.srm.bpm.logic.context.BillDataContext;
8 9
 import com.srm.bpm.logic.dto.BillActionParamDTO;
@@ -166,7 +167,7 @@ public interface BillLogic {
166 167
      *
167 168
      * @param billId 审批单ID
168 169
      */
169
-    void complete(long billId,String action);
170
+    void complete(ToaBillEntity byId,String action);
170 171
 
171 172
     /**
172 173
      * 获取某个审批单的审批历史记录

+ 9 - 11
bpm-core/src/main/java/com/srm/bpm/logic/service/impl/BillLogicImpl.java

@@ -894,34 +894,32 @@ public class BillLogicImpl implements BillLogic {
894 894
     /**
895 895
      * 结束并设置完成审批单
896 896
      *
897
-     * @param billId 审批单ID
897
+     * @param bill 审批单ID
898 898
      */
899 899
     @Override
900
-    @Transactional(rollbackFor = Exception.class)
901
-    public void complete(long billId, String action) {
902
-        ToaBillEntity bill = new ToaBillEntity();
900
+    //    @Transactional(rollbackFor = Exception.class)
901
+    public void complete(ToaBillEntity bill, String action) {
903 902
         final int dateline = DateTimeUtil.unixTime();
904
-        bill.setId(billId);
905 903
         bill.setCompletionTime(dateline);
906 904
         bill.setStatus(BillStatus.COMPLETE.getStatus());
907 905
         bill.setArchivedTime(dateline);
908 906
         TimerTask businessTask = new TimerTask() {
909 907
             @Override
910 908
             public void run() {
911
-                final ToaBillEntity byId = billService.getById(billId);
912 909
                 billService.upldate(bill);
910
+                log.info("查询到的审批单数据:{}", bill);
913 911
                 if (action.equals(BillAction.refuse.name())) {
914
-                    callBackLogic.callBack(byId.getProcessId(), billId,
912
+                    callBackLogic.callBack(bill.getProcessId(), bill.getId(),
915 913
                             BillTaskStatus.REFUSE.getStatus());
916 914
                 } else {
917 915
                     BillTaskEntity a = new BillTaskEntity();
918
-                    a.setBillId(byId.getId());
919
-                    a.setUserCode(byId.getSender());
916
+                    a.setBillId(bill.getId());
917
+                    a.setUserCode(bill.getSender());
920 918
                     a.setNodeStatus(BillTaskStatus.COMPLATE.getStatus());
921
-                    a.setNodeName(byId.getTitle());
919
+                    a.setNodeName(bill.getTitle());
922 920
                     a.setOpinion("通过");
923 921
                     flowMsgLogic.sendMsg(Lists.newArrayList(a));
924
-                    callBackLogic.callBack(byId.getProcessId(), billId,
922
+                    callBackLogic.callBack(bill.getProcessId(), bill.getId(),
925 923
                             BillStatus.COMPLETE.getStatus());
926 924
                 }
927 925
             }

+ 11 - 8
bpm-core/src/main/java/com/srm/bpm/logic/service/impl/FlowMsgLogicImpl.java

@@ -1,16 +1,10 @@
1 1
 
2 2
 package com.srm.bpm.logic.service.impl;
3 3
 
4
-import java.util.List;
5
-import java.util.Optional;
6
-import java.util.Set;
7
-
8
-import org.jetbrains.annotations.NotNull;
9
-import org.springframework.stereotype.Service;
10
-
11
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
12 4
 import com.google.common.collect.Lists;
13 5
 import com.google.common.collect.Sets;
6
+
7
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
14 8
 import com.srm.bpm.infra.entity.BillTaskEntity;
15 9
 import com.srm.bpm.infra.entity.ProcessNodeExtendEntity;
16 10
 import com.srm.bpm.infra.entity.ToaBillEntity;
@@ -23,6 +17,14 @@ import com.srm.bpm.logic.dto.FlowMsgDTO;
23 17
 import com.srm.bpm.logic.service.FlowMsgLogic;
24 18
 import com.srm.bpm.logic.service.PushMsgLogic;
25 19
 
20
+import org.jetbrains.annotations.NotNull;
21
+import org.springframework.scheduling.annotation.Async;
22
+import org.springframework.stereotype.Service;
23
+
24
+import java.util.List;
25
+import java.util.Optional;
26
+import java.util.Set;
27
+
26 28
 import cn.hutool.core.collection.CollectionUtil;
27 29
 import lombok.RequiredArgsConstructor;
28 30
 import lombok.extern.slf4j.Slf4j;
@@ -43,6 +45,7 @@ public class FlowMsgLogicImpl implements FlowMsgLogic {
43 45
 	private final ProcessNodeExtendService nodeExtendService;
44 46
 
45 47
 	@Override
48
+	@Async
46 49
 	public void sendMsg(List<BillTaskEntity> billTaskEntities) {
47 50
 		if (CollectionUtil.isNotEmpty(billTaskEntities)) {
48 51
 			final BillTaskEntity billTaskEntity = billTaskEntities.get(0);

+ 9 - 10
bpm-core/src/main/java/com/srm/bpm/logic/service/impl/PushMsgLogicImpl.java

@@ -12,14 +12,6 @@
12 12
 
13 13
 package com.srm.bpm.logic.service.impl;
14 14
 
15
-import java.util.Collections;
16
-import java.util.List;
17
-import java.util.stream.Collectors;
18
-
19
-import org.springframework.http.ResponseEntity;
20
-import org.springframework.stereotype.Service;
21
-import org.springframework.util.CollectionUtils;
22
-
23 15
 import com.alibaba.fastjson.JSON;
24 16
 import com.alibaba.fastjson.JSONObject;
25 17
 import com.srm.bpm.facde.RestTemplateUtil;
@@ -28,6 +20,13 @@ import com.srm.bpm.logic.service.PushMsgLogic;
28 20
 import com.srm.common.data.rest.R;
29 21
 import com.srm.config.BpmConfig;
30 22
 
23
+import org.springframework.http.ResponseEntity;
24
+import org.springframework.stereotype.Service;
25
+import org.springframework.util.CollectionUtils;
26
+
27
+import java.util.List;
28
+import java.util.stream.Collectors;
29
+
31 30
 import lombok.RequiredArgsConstructor;
32 31
 import lombok.extern.slf4j.Slf4j;
33 32
 
@@ -44,9 +43,9 @@ public class PushMsgLogicImpl implements PushMsgLogic {
44 43
 		if(!CollectionUtils.isEmpty(allMsg)) {
45 44
 			JSONObject data = new JSONObject();
46 45
 			data.put("msg", JSON.toJSON(allMsg));
47
-			log.info("回调返回的数据:{}", allMsg);
46
+			log.info("消息推送的数据:{}", allMsg);
48 47
 			final ResponseEntity<R> post = restTemplateUtil.post(bpmConfig.getPushmsgUrl(), data, "1");
49
-			log.info("回调返回的数据:{}", post);
48
+			log.info("消息返回的数据:{}", post);
50 49
 		}
51 50
 	}
52 51
 }

+ 1 - 1
bpm-server/src/main/java/com/srm/bpmserver/logic/impl/CallBackLogicImpl.java

@@ -42,7 +42,7 @@ public class CallBackLogicImpl implements CallBackLogic {
42 42
         data.put("processId", processId);
43 43
         data.put("billId", billId);
44 44
         data.put("status", status);
45
-        log.info("回调返回的数据:{}", data);
45
+        log.info("回调推送的数据:{}", data);
46 46
 
47 47
         final ResponseEntity<R> post = restTemplateUtil.post(bpmConfig.getCallbackUrl(), data, "1");
48 48
         log.info("回调返回的数据:{}", post);