src/main/java/com/zy/asrs/task/AgvWarnScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/OverYearLogScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/config/ScheduleConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
@@ -55,7 +55,7 @@ * 删除告警日志 */ @Scheduled(cron = "0 0 1 * * ? ") private void delWarnLog() { public void delWarnLog() { String format = DateUtil.format(DateUtil.offsetMonth(new Date(), -1), "yyyy-MM-dd HH:mm:ss"); List<AgvWarnLog> agvWarnList = agvWarnLogService.selectList(new EntityWrapper<AgvWarnLog>().le("modi_time", format)); for (AgvWarnLog agvWarn : agvWarnList) { @@ -67,7 +67,7 @@ * 超过一分钟没更新的,删除 */ @Scheduled(fixedDelay = 10000) private void del() { public void del() { String format = DateUtil.format(DateUtil.offsetMinute(new Date(), -1), "yyyy-MM-dd HH:mm:ss"); List<AgvWarn> agvWarnList = agvWarnService.selectList(new EntityWrapper<AgvWarn>().le("modi_time", format)); for (AgvWarn agvWarn : agvWarnList) { @@ -76,7 +76,7 @@ } @Scheduled(fixedDelay = 20000) private void report() { public void report() { List<Agv> agvs = agvBasMapper.selectList(new EntityWrapper<Agv>()); Config first = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE1")); Config second = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE2")); src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -46,10 +46,10 @@ 定时处理AGV工作档中工作状态为205.工作完成 且 (1.入库 || 53,拣料入库 || 57.盘点入库 || 10.空板入库 || 11.单层移库 || 12.跨层移库 || 108.自动调拨 || 109.手动调拨)的数据 */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 1000) @Scheduled(fixedDelay = 3000) public void excutePutwayWrk(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 205) .eq("wrk_sts", 205L) .andNew().eq("io_type",53) .or().eq("io_type",1) .or().eq("io_type",57) @@ -80,10 +80,10 @@ 定时处理AGV工作档中工作状态为206.出库完成 且 (101.出库 || 110.空板出库) */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 1000) @Scheduled(fixedDelay = 3000) public void excuteCarryWrk(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 206) .eq("wrk_sts", 206L) .andNew().eq("io_type",110) .or().eq("io_type",101)); if(!Cools.isEmpty(agvWrkMastList)){ @@ -103,10 +103,10 @@ 定时处理AGV工作档中工作状态为206.出库完成 且 (101.出库 || 110.空板出库) */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 1000) @Scheduled(fixedDelay = 3000) public void excuteCarryWrk2(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 208) .eq("wrk_sts", 208L) .andNew().eq("io_type",110) .or().eq("io_type",101)); if(!Cools.isEmpty(agvWrkMastList)){ @@ -126,11 +126,11 @@ 定时处理AGV工作档中工作状态为201.生成入库任务ID 且(出库类型为 53.拣料再入库 || 1.入库 || 10.空板入库栽 || 57.盘点再入库)的数据 */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 3000) @Scheduled(fixedDelay = 5000) public synchronized void startPutwayWrk(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50) ,new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 201) .eq("wrk_sts", 201L) .andNew().eq("io_type", 53) .or().eq("io_type", 1) .or().eq("io_type", 10) @@ -161,11 +161,11 @@ 定时处理AGV工作档中工作状态为201.生成入库任务ID 且(出库类型为 53.拣料再入库 || 1.入库 || 10.空板入库栽 || 57.盘点再入库)的数据 */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 1000) @Scheduled(fixedDelay = 4000) public void startAllcationIn(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50) ,new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 211) .eq("wrk_sts", 211L) .andNew().eq("io_type", 112)).getRecords(); if(!Cools.isEmpty(agvWrkMastList)){ @@ -184,11 +184,11 @@ 定时处理AGV工作档中工作状态为21.生成出库任务 且(出库类型为 101.出库 || 103.拣料出库 || 11.库格移栽 || 110.空板出库 || 107.盘点出库)的数据 */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 2000) @Scheduled(fixedDelay = 4000) public void startCarryWrk(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50) ,new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 21) .eq("wrk_sts", 21L) //.like("loc_no","@") .andNew().eq("io_type", 101) .or().eq("io_type", 103) @@ -252,7 +252,7 @@ 自动生成空板出库任务 */ //@Scheduled(cron = "0/1 * * * * ? ") @Scheduled(fixedDelay = 1000) @Scheduled(fixedDelay = 3000) public void autoEmptyOut(){ boolean packageEmptyAutoOUt = Cools.eq("Y",Parameter.get().getPackageEmptyAutoOUt()); boolean mateEmptyAutoOut = Cools.eq("Y",Parameter.get().getMateEmptyAutoOut()); src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -68,7 +68,7 @@ * crnNo :2目标楼层 */ @Scheduled(cron = "0/10 * * * * ? ") private synchronized void execute2() { public synchronized void execute2() { List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 108).andNew().eq("crn_no", 2).or().eq("crn_no", 3).orderBy("io_pri", false).orderBy("appe_time", true)); if (agvWrkMastList.isEmpty()) { return; @@ -112,7 +112,7 @@ * ioType 111.手动调拨 */ @Scheduled(cron = "0/10 * * * * ? ") private void execute3() { public void execute3() { List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 111).orderBy("io_pri", false).orderBy("appe_time", true)); if (agvWrkMastList.isEmpty()) { return; @@ -127,8 +127,8 @@ } @Scheduled(cron = "0/2 * * * * ? ") private void execute4() { //@Scheduled(cron = "0/2 * * * * ? ") public void execute4() { List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 114).orderBy("io_pri", false).orderBy("appe_time", true)); if (agvWrkMastList.isEmpty()) { return; @@ -145,7 +145,7 @@ // // 空板自动回库 库位-接驳点 // //@Scheduled(cron = "0/2 * * * * ? ") // private void autoEmptyBack(){ // public void autoEmptyBack(){ // // 查询 不为1楼的空货架 // List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( // new EntityWrapper<AgvLocMast>() @@ -170,8 +170,8 @@ * wrkSts 214.空料架回流待分配 * ioType 113.空托盘手动回流 */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack3() { @Scheduled(cron = "0/4 * * * * ? ") public void autoEmptyBack3() { // 工作档为201 且 入出库类型为109 List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 214).eq("loc_no", "").eq("io_type", 113).orderBy("io_pri", false)); if (agvWrkMastList.isEmpty()) { @@ -215,7 +215,7 @@ * 2楼或3楼站点可入信号全部没有,代表走电梯自动搬运模式 */ @Scheduled(cron = "0/30 * * * * ? ") private void autoEmptyBack4() { public void autoEmptyBack4() { List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>() // TODO 四期 .eq("loc_sts", "D").eq("loc_type1", 3).andNew().ne("floor", 1).or().ne("lev1", 1)); @@ -266,7 +266,7 @@ */ // TODO 四期 @Scheduled(cron = "0/10 * * * * ? ") private void autoEmptyBackSiqi() { public void autoEmptyBackSiqi() { Config config2 = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_EMPTY")); //先判断空库位数了 List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_type1", 6).eq("floor", 1).eq("lev1", 2).eq("loc_sts", "O")); @@ -307,7 +307,7 @@ } private void executeLocType6() { public void executeLocType6() { // 查询 二厂的的半成品箱壳类型的空货架 List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_sts", "D").eq("loc_type1", 6).in("floor", 2,3).orderBy("bay1",false)); if (agvLocMasts.isEmpty()) { @@ -322,7 +322,7 @@ } } private boolean determineFloorConnection(Integer floor) { public boolean determineFloorConnection(Integer floor) { try { List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("floor", floor).like("dev_no", "DB_")); if (!agvBasDevps.isEmpty()) { @@ -345,8 +345,8 @@ * 手动: 生成 113 手动回流 * 优先选择先到接驳位(接驳位可入) 后选择直接回库 */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack5() { @Scheduled(cron = "0/8 * * * * ? ") public void autoEmptyBack5() { List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().ne("floor", 1).eq("loc_sts", "F").like("dev_no", "DB")); if (agvBasDevps.isEmpty()) { return; @@ -365,7 +365,7 @@ * 手动: 生成 113 手动回流 */ @Scheduled(cron = "0/30 * * * * ? ") private void autoEmptyBack6() { public void autoEmptyBack6() { List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("floor", 1).eq("loc_sts", "F").like("dev_no", "DB")); if (agvBasDevps.isEmpty()) { return; @@ -382,8 +382,8 @@ /** * 跨层自动移库 */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack7() throws ParseException { @Scheduled(cron = "0/8 * * * * ? ") public void autoEmptyBack7() throws ParseException { Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String currentDay = sdf.format(now); @@ -431,7 +431,7 @@ * 在库位不够的情况下,箱壳入库别的楼层库位的时候,晚上进行跨层移库 */ @Scheduled(cron = "0/30 * * * * ? ") private void autoEmptyBack8() throws ParseException { public void autoEmptyBack8() throws ParseException { Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String currentDay = sdf.format(now); src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
@@ -19,15 +19,15 @@ @Autowired private OverYearLogHandler overYearLogHandler; @Scheduled(cron = "0/1 * * * * ? ") private void execute(){ @Scheduled(cron = "0/3 * * * * ? ") public void execute(){ ReturnT<String> returnT = overYearLogHandler.start(); if (!returnT.isSuccess()) { log.error(returnT.getMsg()); } } @Scheduled(cron = "* * 1 * * ? ") private void executeOrderLog() { public void executeOrderLog() { ReturnT<String> returnT = overYearLogHandler.start2(); if (!returnT.isSuccess()) { log.error(returnT.getMsg()); src/main/java/com/zy/common/config/ScheduleConfig.java
@@ -15,9 +15,9 @@ //采用定长的线程池,防止定时任务异常时导致大量线程被占用; // 创建一个 ScheduledThreadPoolExecutor,核心线程数为 12,最大线程数为 24 ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(12, new ThreadPoolExecutor.DiscardPolicy()); ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(3, new ThreadPoolExecutor.DiscardPolicy()); // 设置最大线程数为 50 executor.setMaximumPoolSize(24); executor.setMaximumPoolSize(6); taskRegistrar.setScheduler(executor); } }