From 43a31db7ca446f0e9348ef2ca992dc6a738fc1f7 Mon Sep 17 00:00:00 2001 From: zyd Date: Wed, 8 Jun 2022 11:34:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AE=A1=E6=8E=A7=E6=B3=A8=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/adc/da/Timer/ProcessTimer.java | 151 ++++++++++-------- .../com/adc/da/scheduled/ScheduledSync.java | 18 ++- 2 files changed, 95 insertions(+), 74 deletions(-) diff --git a/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java b/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java index 398b9319..9846d4f2 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java +++ b/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java @@ -16,6 +16,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -48,6 +49,13 @@ public class ProcessTimer { @Autowired private WorkFlowController workFlowController; + /** + * 根据配置文件设置是否开启定时器 + */ + + @Value("${isNotScheduled}") + private boolean isNotScheduled; //是否开启定时器 + /*** * @Description: 自动催办,任务截至时间前3天开始每天催办 * @Author: yangxuenan @@ -59,44 +67,48 @@ public class ProcessTimer { // @Scheduled(cron = "*/5 * * * * ?")//每5秒执行一次 // @Scheduled(cron = "0/20 * * * * ?") public void urging() { - List busProcessNames = workFlowFeignClient.queryBusProcessNameForEnd(null); - if (null != busProcessNames && 0 < busProcessNames.size()) { - for (BusProcessName busProcessName : busProcessNames) { - String type = busProcessName.getPrcType(); - Integer typeInt = 99; - if (StringUtils.isNotEmpty(type)) { - typeInt = Integer.valueOf(type); - } - type = chooseType(typeInt, type); + if(isNotScheduled){ + log.info("=================================自动催办定时任务启动====================================="); + List busProcessNames = workFlowFeignClient.queryBusProcessNameForEnd(null); + if (null != busProcessNames && 0 < busProcessNames.size()) { + for (BusProcessName busProcessName : busProcessNames) { + String type = busProcessName.getPrcType(); + Integer typeInt = 99; + if (StringUtils.isNotEmpty(type)) { + typeInt = Integer.valueOf(type); + } + type = chooseType(typeInt, type); - UserEO userEO = userEOService.selectByPrimaryKey(busProcessName.getCreatUserName()); - String[] array = userEO.getEmail().split(","); - String overTime = busProcessName.getOverTime(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - Date dateTime = null; - Integer num = 3; - try { - dateTime = simpleDateFormat.parse(overTime); - Date now = new Date(); - long daysBetween = (dateTime.getTime() - now.getTime() + 1000000) / (60 * 60 * 24 * 1000); - num = Integer.valueOf(String.valueOf(daysBetween)); - } catch (ParseException e) { - SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); + UserEO userEO = userEOService.selectByPrimaryKey(busProcessName.getCreatUserName()); + String[] array = userEO.getEmail().split(","); + String overTime = busProcessName.getOverTime(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date dateTime = null; + Integer num = 3; try { - dateTime = simpleDateFormat1.parse(overTime); + dateTime = simpleDateFormat.parse(overTime); Date now = new Date(); long daysBetween = (dateTime.getTime() - now.getTime() + 1000000) / (60 * 60 * 24 * 1000); num = Integer.valueOf(String.valueOf(daysBetween)); - } catch (ParseException e1) { - e.getMessage(); + } catch (ParseException e) { + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); + try { + dateTime = simpleDateFormat1.parse(overTime); + Date now = new Date(); + long daysBetween = (dateTime.getTime() - now.getTime() + 1000000) / (60 * 60 * 24 * 1000); + num = Integer.valueOf(String.valueOf(daysBetween)); + } catch (ParseException e1) { + e.getMessage(); + } } - } - String msg = "您好,[" + busProcessName.getPrcNum() + "]-[" + busProcessName.getPrcName() + "] 您有待办任务未及时办理,距离截至日期还有[" + String.valueOf(num) + "]天 请及时办理,请登录全球标准法规管理系统 ( http://39.98.140.126:10005/#/login ) 办理:链接 ( http://39.98.140.126:10005/#/processCenter?tabsName=ProcessCenter ) 。\n" + - " ——来自 全球标准法规管理系统"; - String title = "GSRM——【待办任务】[" + type + "] 您有未完成的待办任务"; - mailUtil.sendMsgFeign(array, title, msg); + String msg = "您好,[" + busProcessName.getPrcNum() + "]-[" + busProcessName.getPrcName() + "] 您有待办任务未及时办理,距离截至日期还有[" + String.valueOf(num) + "]天 请及时办理,请登录全球标准法规管理系统 ( http://39.98.140.126:10005/#/login ) 办理:链接 ( http://39.98.140.126:10005/#/processCenter?tabsName=ProcessCenter ) 。\n" + + " ——来自 全球标准法规管理系统"; + String title = "GSRM——【待办任务】[" + type + "] 您有未完成的待办任务"; + mailUtil.sendMsgFeign(array, title, msg); + } } + log.info("=================================自动催办定时任务结束====================================="); } } @@ -169,20 +181,24 @@ public class ProcessTimer { @Scheduled(cron = "0 0 10 * * ? ")//每天十点执行 // @Scheduled(cron = "*/20 * * * * ? ")//每天十点执行 public void everyDayTenOlockScan() { - List busProcessNews=new ArrayList<>(); - busProcessNews=workFlowFeignClient.everyDayTenOlock(); - if (!busProcessNews.isEmpty()){ - for (BusProcessNew bus:busProcessNews) { - JSONObject jsonObject= JSON.parseObject(bus.getMesg()); - jsonObject.put("auto","1"); - ResponseMessage responseMessage = workFlowController.startProcessNew("19",jsonObject.getString("revisionId"),null); - BusMes busMes=new BusMes(); - busMes.setTaskIds(String.valueOf(responseMessage.getData())); - busMes.setJson(jsonObject.toJSONString()); - busMes.setUserId(jsonObject.getString("revisionId")); - Wrapper wrapper=workFlowFeignClient.completeTaskByUserId(busMes); - log.info("政策课题组会后流程已发起"); + if(isNotScheduled){ + log.info("=================================政策课题组会后流程定时任务启动====================================="); + List busProcessNews=new ArrayList<>(); + busProcessNews=workFlowFeignClient.everyDayTenOlock(); + if (!busProcessNews.isEmpty()){ + for (BusProcessNew bus:busProcessNews) { + JSONObject jsonObject= JSON.parseObject(bus.getMesg()); + jsonObject.put("auto","1"); + ResponseMessage responseMessage = workFlowController.startProcessNew("19",jsonObject.getString("revisionId"),null); + BusMes busMes=new BusMes(); + busMes.setTaskIds(String.valueOf(responseMessage.getData())); + busMes.setJson(jsonObject.toJSONString()); + busMes.setUserId(jsonObject.getString("revisionId")); + Wrapper wrapper=workFlowFeignClient.completeTaskByUserId(busMes); + log.info("政策课题组会后流程已发起"); + } } + log.info("=================================政策课题组会后流程定时任务启动====================================="); } } @@ -190,36 +206,33 @@ public class ProcessTimer { // @Scheduled(cron = "0 0 0/1 * * ? ")//每天十点执行 // @Scheduled(cron = "*/40 * * * * ? ")//20s public void everyDayTenOlockScanSAM() { - List busProcessNews=new ArrayList<>(); - busProcessNews=workFlowFeignClient.everyDayTenOlockSAM(); - if (!busProcessNews.isEmpty()){ - for (BusProcessNew bus:busProcessNews) { - JSONObject jsonObject= JSON.parseObject(bus.getMesg()); - String taskInfo = bus.getTaskInfo(); - String result = jsonObject.getJSONObject("roleList").getString("dockUser"); - result = result.split(",")[0]; - jsonObject.put("member",result); - if(taskInfo.equals("标准化活动参会流程-流程结束")){ - jsonObject.put("auto","1"); - ResponseMessage responseMessage = workFlowController.startProcessNew("22",result,null); - BusMes busMes=new BusMes(); - busMes.setTaskIds(String.valueOf(responseMessage.getData())); - busMes.setJson(jsonObject.toJSONString()); - busMes.setUserId(result); + if(isNotScheduled){ + log.info("=================================标准化活动参会流程定时任务启动====================================="); + List busProcessNews=new ArrayList<>(); + busProcessNews=workFlowFeignClient.everyDayTenOlockSAM(); + if (!busProcessNews.isEmpty()){ + for (BusProcessNew bus:busProcessNews) { + JSONObject jsonObject= JSON.parseObject(bus.getMesg()); + String taskInfo = bus.getTaskInfo(); + String result = jsonObject.getJSONObject("roleList").getString("dockUser"); + result = result.split(",")[0]; + jsonObject.put("member",result); + if(taskInfo.equals("标准化活动参会流程-流程结束")){ + jsonObject.put("auto","1"); + ResponseMessage responseMessage = workFlowController.startProcessNew("22",result,null); + BusMes busMes=new BusMes(); + busMes.setTaskIds(String.valueOf(responseMessage.getData())); + busMes.setJson(jsonObject.toJSONString()); + busMes.setUserId(result); + + Wrapper wrapper=workFlowFeignClient.completeTaskByUserId(busMes); + System.out.println("标准化活动会后流程自动发起"); + } - Wrapper wrapper=workFlowFeignClient.completeTaskByUserId(busMes); - System.out.println("标准化活动会后流程自动发起"); } - } + log.info("=================================标准化活动参会流程定时任务启动====================================="); } } - - public static void main(String[]args){ - ProcessTimer processTimer = new ProcessTimer(); - processTimer.everyDayTenOlockScan(); - processTimer.everyDayTenOlockScanSAM(); - } - } diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java index 14b4736b..276d5349 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledSync.java @@ -5,6 +5,7 @@ import com.adc.da.slrs.DataSync.service.IDataSyncService; import com.sun.org.apache.bcel.internal.generic.NEW; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -22,15 +23,22 @@ public class ScheduledSync { @Autowired private IDataSyncService iDataSyncService; + /** + * 根据配置文件设置是否开启定时器 + */ + + @Value("${isNotScheduled}") + private boolean isNotScheduled; //是否开启定时器 //每天凌晨两点执行 @Scheduled(cron="0 0 2 * * ?") - @Async public void syncSchedulingTasks() { - log.info("======================================开始同步基础数据========================================"); - iDataSyncService.orgDataSync(); //时间短 - iDataSyncService.dataSync(); //时间长 - log.info("======================================结束同步基础数据========================================"); + if(isNotScheduled){ + log.info("======================================开始同步基础数据========================================"); + iDataSyncService.orgDataSync(); //时间短 + iDataSyncService.dataSync(); //时间长 + log.info("======================================结束同步基础数据========================================"); + } } }