Browse Source

2025-12-25

获取oa流程流转信息时,如果节点isRemark=6,需要再次调用流程流转信息,总时间控制在30秒内
master
fengyuan_yang 3 weeks ago
parent
commit
88a222ad19
  1. 16
      src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java

16
src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java

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

Loading…
Cancel
Save