|
@@ -77,6 +77,68 @@ public class DingTalkScheduledTask {
|
|
|
updateChuanyunAskForLeave(DingTalkConstant.PROCESS_CODE_ASKFORLEAVE);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 业务招待申请更新
|
|
|
+ * @throws ApiException
|
|
|
+ */
|
|
|
+ @Scheduled(fixedDelay = 3600000L,initialDelay = 10000L)
|
|
|
+ void updateChuanyunBusinessEntertainmentProcessInstanceList() throws ApiException {
|
|
|
+ updateChuanyunBusinessEntertainment(DingTalkConstant.PROCESS_CODE_BUSINESSENTERTAINMENT);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void updateChuanyunBusinessEntertainment(String businessTripProcessCode) throws ApiException {
|
|
|
+ var flag=true;
|
|
|
+ //单个请求
|
|
|
+ var oApiProcessInstanceListIdsRequest=new OapiProcessinstanceListidsRequest();
|
|
|
+ oApiProcessInstanceListIdsRequest.setProcessCode(businessTripProcessCode);
|
|
|
+ oApiProcessInstanceListIdsRequest.setStartTime(LocalDateTime.now().minusDays(90).toInstant(ZoneOffset.UTC).toEpochMilli());
|
|
|
+ oApiProcessInstanceListIdsRequest.setEndTime(LocalDateTime.now().toInstant(ZoneOffset.UTC).toEpochMilli());
|
|
|
+ oApiProcessInstanceListIdsRequest.setCursor(0L);
|
|
|
+ oApiProcessInstanceListIdsRequest.setSize(20L);
|
|
|
+// while(flag){
|
|
|
+// LocalDateTime start=LocalDateTime.now();
|
|
|
+// OapiProcessinstanceListidsResponse oapiProcessinstanceListidsResponse=processInstanceListIdsClient.execute(oApiProcessInstanceListIdsRequest,DingTalkConstant.DING_TALK_TOKEN);
|
|
|
+// List<ChuanyunAskForLeaveDO> chuanyunAskForLeaveDoList=new ArrayList<>();
|
|
|
+// if(oapiProcessinstanceListidsResponse.getErrcode()!=0){
|
|
|
+// log.info(oapiProcessinstanceListidsResponse.getErrmsg());
|
|
|
+// try {
|
|
|
+// Thread.sleep(5000);
|
|
|
+// } catch (InterruptedException e) {
|
|
|
+// log.error(e.getMessage());
|
|
|
+// }
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// //逐个请求
|
|
|
+// oapiProcessinstanceListidsResponse.getResult().getList().forEach(resultId->{
|
|
|
+// Optional<DingTalkProcessInstance> instance=dingTalkProcessInstanceDao.findById(resultId);
|
|
|
+// if(instance.isEmpty()){
|
|
|
+// OapiProcessinstanceGetRequest request=new OapiProcessinstanceGetRequest();
|
|
|
+// request.setProcessInstanceId(resultId);
|
|
|
+// try {
|
|
|
+// OapiProcessinstanceGetResponse oapiProcessinstanceGetResponse = processInstanceClient.execute(request, DingTalkConstant.DING_TALK_TOKEN);
|
|
|
+// ChuanyunAskForLeaveDO chuanyunAskForLeaveDo = ChuanyunAskForLeaveDO.fromAskForLeaveDTO(oapiProcessinstanceGetResponse.getProcessInstance());
|
|
|
+// List<ChuanyunAskForLeaveDO> existsAskForLeave = chuanyunAskForLeaveDao.findByTitleSQL(chuanyunAskForLeaveDo.getTitle());
|
|
|
+// if(existsAskForLeave != null && !existsAskForLeave.isEmpty()) {
|
|
|
+// chuanyunAskForLeaveDao.deleteById(existsAskForLeave.get(0).getObjectId());
|
|
|
+// }
|
|
|
+// chuanyunAskForLeaveDoList.add(chuanyunAskForLeaveDo);
|
|
|
+// } catch (ApiException e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
+// });
|
|
|
+//
|
|
|
+// //保存id列表和实例列表,如果有更新的内容
|
|
|
+// chuanyunAskForLeaveDao.saveAll(chuanyunAskForLeaveDoList);
|
|
|
+// log.info(businessTripProcessCode+"下一个cursor为"+oapiProcessinstanceListidsResponse.getResult().getNextCursor()+"保存成功"+"耗时"+ ChronoUnit.SECONDS.between(start,LocalDateTime.now())+"秒");
|
|
|
+// flag=null!=oapiProcessinstanceListidsResponse.getResult().getNextCursor();
|
|
|
+// if (flag){
|
|
|
+// oApiProcessInstanceListIdsRequest.setCursor(oapiProcessinstanceListidsResponse.getResult().getNextCursor());
|
|
|
+// }
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
private void updateChuanyunAskForLeave(String businessTripProcessCode) throws ApiException {
|
|
|
var flag=true;
|
|
|
//单个请求
|