From e2ed35c5dbda6ff80fddf5f0ae1fe39ad407fb6b Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期日, 02 三月 2025 14:47:07 +0800 Subject: [PATCH] 四期 --- src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 197 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 134 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java index b267d6b..ee16bee 100644 --- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java +++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java @@ -11,7 +11,9 @@ import com.zy.asrs.service.AgvBasDevpService; import com.zy.asrs.service.AgvLocMastService; import com.zy.asrs.service.AgvWrkMastService; +import com.zy.asrs.task.core.ProcesTimeData; import com.zy.asrs.task.handler.AutoMoveHandler; +import com.zy.asrs.utils.TimeUtils; import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; @@ -66,13 +68,7 @@ */ @Scheduled(cron = "0/1 * * * * ? ") private 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) - ); + 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; } @@ -116,12 +112,7 @@ */ @Scheduled(cron = "0/2 * * * * ? ") private 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) - ); + 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; } @@ -137,12 +128,7 @@ @Scheduled(cron = "0/2 * * * * ? ") private 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) - ); + 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; } @@ -186,11 +172,7 @@ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack3() { // 宸ヤ綔妗d负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)); + 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()) { return; } @@ -231,40 +213,86 @@ * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱 * 2妤兼垨3妤肩珯鐐瑰彲鍏ヤ俊鍙峰叏閮ㄦ病鏈夛紝浠h〃璧扮數姊嚜鍔ㄦ惉杩愭ā寮� */ - @Scheduled(cron = "0/2 * * * * ? ") + @Scheduled(cron = "0/30 * * * * ? ") private void autoEmptyBack4() { - // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋� - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - // TODO 鍥涙湡 - .eq("loc_sts", "D") - .eq("loc_type1", 3) - .ne("floor", 1) - .ne("lev1", 1)); + 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)); if (agvLocMasts.isEmpty()) { return; } + + for (AgvLocMast agvLocMast : agvLocMasts) { - try { - autoMoveHandler.autoEmptyBack4(agvLocMast); - } catch (Exception e) { - log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + if (agvLocMast.getLocNo().contains("02F1")) { + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_3_TIME")); + boolean flag = false; + if (config != null && !Cools.isEmpty(config.getValue())) { + try { + // 鍒ゆ柇鏄惁鍦ㄦ墽琛屾椂闂村唴 + ProcesTimeData procesTimeData = JSONObject.parseObject(config.getValue(), ProcesTimeData.class); + if (procesTimeData != null && config.getStatus() == 1 && TimeUtils.between(procesTimeData)) { + flag = true; + } + } catch (Exception e) { + log.error("6绫诲瀷绌鸿揣鏋惰繑鍥炵殑鎵ц鏃堕棿鐐硅В鏋愬紓甯革細===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + flag = true; + } + } + if (flag) { + try { + autoMoveHandler.autoEmptyBack4(agvLocMast); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + } + } + } else { + try { + autoMoveHandler.autoEmptyBack4(agvLocMast); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + } } + } + + } /** - // TODO 鍥涙湡 + * 灏嗕簩鍘傜殑6绫诲瀷鐨勭┖璐ф灦璋冩嫧鍥炲惛濉戜簩妤� */ - @Scheduled(cron = "0/2 * * * * ? ") + // TODO 鍥涙湡 + @Scheduled(cron = "0/30 * * * * ? ") private void autoEmptyBackSiqi() { + // 鏌ヨ6绫诲瀷绌鸿揣鏋惰繑鍥炵殑鎵ц鏃堕棿鐐� + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_TIME")); + if (config != null && !Cools.isEmpty(config.getValue())) { + boolean flag = false; + try { + // 鍒ゆ柇鏄惁鍦ㄦ墽琛屾椂闂村唴 + ProcesTimeData procesTimeData = JSONObject.parseObject(config.getValue(), ProcesTimeData.class); + if (procesTimeData != null && config.getStatus() == 1 && TimeUtils.between(procesTimeData)) { + flag = true; + } + } catch (Exception e) { + log.error("6绫诲瀷绌鸿揣鏋惰繑鍥炵殑鎵ц鏃堕棿鐐硅В鏋愬紓甯革細===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + flag = true; + } + if (flag) { + executeLocType6(); + } + } +// else { +// executeLocType6(); +// } + } + + + private void executeLocType6() { // 鏌ヨ 浜屽巶鐨勭殑鍗婃垚鍝佺澹崇被鍨嬬殑绌鸿揣鏋� - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - .eq("loc_sts", "D") - .eq("loc_type1", 6) - .eq("floor", 2)); + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_sts", "D").eq("loc_type1", 6).eq("floor", 2)); if (agvLocMasts.isEmpty()) { return; } @@ -276,7 +304,6 @@ } } } - private boolean determineFloorConnection(Integer floor) { try { @@ -300,14 +327,10 @@ * 鑷姩锛� 鐢熸垚 109 鑷姩鍥炴祦 * 鎵嬪姩锛� 鐢熸垚 113 鎵嬪姩鍥炴祦 * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱 - * */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack5() { - List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() - .ne("floor", 1) - .eq("loc_sts", "F") - .like("dev_no", "DB")); + List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().ne("floor", 1).eq("loc_sts", "F").like("dev_no", "DB")); if (agvBasDevps.isEmpty()) { return; } @@ -324,12 +347,9 @@ * 妫�娴�1妤兼帴椹崇偣 * 鎵嬪姩锛� 鐢熸垚 113 鎵嬪姩鍥炴祦 */ - @Scheduled(cron = "0/2 * * * * ? ") + @Scheduled(cron = "0/30 * * * * ? ") private void autoEmptyBack6() { - List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() - .eq("floor", 1) - .eq("loc_sts", "F") - .like("dev_no", "DB")); + List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("floor", 1).eq("loc_sts", "F").like("dev_no", "DB")); if (agvBasDevps.isEmpty()) { return; } @@ -343,8 +363,7 @@ } /** - * 鑷姩绉诲簱 - * + * 璺ㄥ眰鑷姩绉诲簱 */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack7() throws ParseException { @@ -374,12 +393,7 @@ return; } - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - .eq("floor", 1) - .eq("lev1", 1) - .eq("loc_sts", "F") - .eq("loc_type1", 3)); + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("floor", 1).eq("lev1", 1).eq("loc_sts", "F").eq("loc_type1", 3)); if (agvLocMasts.isEmpty()) { return; } @@ -393,4 +407,61 @@ } } } + + + /** + * 鎵撴爣璁扮殑搴撲綅杩涜鑷姩绉诲簱锛屽洓鏈� + * 鍦ㄥ簱浣嶄笉澶熺殑鎯呭喌涓嬶紝绠卞3鍏ュ簱鍒殑妤煎眰搴撲綅鐨勬椂鍊欙紝鏅氫笂杩涜璺ㄥ眰绉诲簱 + */ + @Scheduled(cron = "0/30 * * * * ? ") + private void autoEmptyBack8() throws ParseException { + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String currentDay = sdf.format(now); + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoTime2")); + if (Cools.isEmpty(config)) { + + } else { + if (config.getStatus().intValue() == 0) { + return; + } + JSONObject jsonObject = JSON.parseObject(config.getValue().toString()); + Integer maxTansk = jsonObject.getInteger("maxTansk"); + //Integer startTime = jsonObject.getInteger("startTime"); + String startTime = jsonObject.getString("startTime"); + long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentDay + " " + startTime).getTime(); + long time = now.getTime(); + long time3 = time - time1; + + + if (time3 > 0) { + + List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 12)); + if (agvWrkMasts != null && maxTansk <= agvWrkMasts.size()) { + return; + } + + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("floor", 1).eq("loc_sts", "F").eq("loc_type1", 3).isNotNull("ctn_no")); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + if (agvLocMast.getLev1() == 1 && agvLocMast.getFloor() == 1 && !Cools.isEmpty(agvLocMast.getCtnNo()) && agvLocMast.getCtnNo().toString().equals("2")) { + try { + autoMoveHandler.autoTransfersV2(agvLocMast, maxTansk); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "鍥涙湡瀹氭椂绉诲簱浠诲姟 鍚稿 --> 鍚稿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + } + } else if (agvLocMast.getLev1() == 2 && agvLocMast.getFloor() == 1 && !Cools.isEmpty(agvLocMast.getCtnNo()) && agvLocMast.getCtnNo().toString().equals("1")) { + try { + autoMoveHandler.autoTransfersV2(agvLocMast, maxTansk); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "鍥涙湡瀹氭椂绉诲簱浠诲姟 鍚稿 --> 鍚稿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + } + } + + } + } + } + } } -- Gitblit v1.9.1