diff --git a/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java b/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java index 6a8b723a..e1f48805 100644 --- a/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java +++ b/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java @@ -1473,21 +1473,29 @@ public class ChangeManagementServiceImpl extends ServiceImpl> res = JSON.parseObject(String.valueOf(getRequestOperatorInfoResponses.getObj()), new TypeReference>>(){}); - // 如果节点isRemark=6,需要再次调用流程流转信息 + // 如果节点isRemark=6,需要再次调用流程流转信息,总时间控制在30秒内 + long startTime = System.currentTimeMillis(); + long maxWaitTime = 30000; // 最大等待30秒 List> irs = res.stream().filter(a -> convertToInt(a.get("isremark")) == 6).collect(Collectors.toList()); - if (!irs.isEmpty()) { + while (!irs.isEmpty() && (System.currentTimeMillis() - startTime) < maxWaitTime) { try { - // 等待2秒 - Thread.sleep(2000); + // 等待3秒 + Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } + // 检查是否超时 + if ((System.currentTimeMillis() - startTime) >= maxWaitTime) { + break; + } getRequestOperatorInfoResponses = HttpClientUtil.doPostByRawWithOA(getRequestOperatorInfoURL, requestOperatorInfoParam); if (!"0".equals(getRequestOperatorInfoResponses.getCode())) { throw new RuntimeException("OA获取流程流转信息异常信息:" + getRequestOperatorInfoResponses.getMsg()); } // 得到全部流转信息 res = JSON.parseObject(String.valueOf(getRequestOperatorInfoResponses.getObj()), new TypeReference>>(){}); + // 重新检查是否还有isRemark=6的记录 + irs = res.stream().filter(a -> convertToInt(a.get("isremark")) == 6).collect(Collectors.toList()); } // isRemark 为0的流转信息 List> isRemarks = res.stream().filter(a -> convertToInt(a.get("isremark")) == 0).collect(Collectors.toList());