From 7fba108547c985f3a9e1736b32dc028bad3b63a1 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期二, 21 一月 2025 16:12:57 +0800 Subject: [PATCH] 页面优化 --- src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 270 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 184 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java index 26a801d..2182cb5 100644 --- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java +++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java @@ -1,20 +1,28 @@ package com.zy.asrs.task; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; import com.zy.asrs.entity.AgvBasDevp; import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.service.AgvBasDevpService; import com.zy.asrs.service.AgvLocMastService; import com.zy.asrs.service.AgvWrkMastService; -import com.zy.asrs.task.core.ReturnT; +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; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -31,24 +39,26 @@ private AgvWrkMastService agvWrkMastService; @Autowired private AgvBasDevpService agvBasDevpService; + @Autowired + private ConfigService configService; // 璋冩嫧鍑哄簱 // @Scheduled(cron = "0/2 * * * * ? ") - private void execute(){ - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - .isNotNull("loc_type") - .ne("loc_type", "") - .eq("floor", 1) - .eq("loc_sts","F")); - if (agvLocMasts.isEmpty()) { - return; - } - for (AgvLocMast agvLocMast : agvLocMasts) { - ReturnT<String> returnT = autoMoveHandler.start(agvLocMast); - } - - } +// private void execute(){ +// List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( +// new EntityWrapper<AgvLocMast>() +// .isNotNull("loc_type") +// .ne("loc_type", "") +// .eq("floor", 1) +// .eq("loc_sts","F")); +// if (agvLocMasts.isEmpty()) { +// return; +// } +// for (AgvLocMast agvLocMast : agvLocMasts) { +// ReturnT<String> returnT = autoMoveHandler.start(agvLocMast); +// } +// +// } /** * 鑷姩璋冩嫧浠诲姟锛屼粠1妤艰皟鎷ㄥ埌2妤硷紝3妤� @@ -56,23 +66,18 @@ * ioType 108.鑷姩璋冩嫧 * crnNo :2鐩爣妤煎眰 */ - @Scheduled(cron = "0/2 * * * * ? ") - private 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("appe_time",true) - ); + @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)); if (agvWrkMastList.isEmpty()) { return; } for (AgvWrkMast agvWrkMast : agvWrkMastList) { - try{ + try { + // TODO 鑷姩鍥炴祦 autoMoveHandler.start2(agvWrkMast); - } catch (Exception e){ - log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } catch (Exception e) { + //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); } } @@ -106,20 +111,32 @@ * ioType 111.鎵嬪姩璋冩嫧 */ @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("appe_time",true) - ); + 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)); if (agvWrkMastList.isEmpty()) { return; } for (AgvWrkMast agvWrkMast : agvWrkMastList) { - try{ + try { autoMoveHandler.start3(agvWrkMast); - } catch (Exception e){ - log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } catch (Exception e) { + //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } + } + + } + + @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)); + if (agvWrkMastList.isEmpty()) { + return; + } + for (AgvWrkMast agvWrkMast : agvWrkMastList) { + try { + autoMoveHandler.start4(agvWrkMast); + } catch (Exception e) { + log.error("宸ヤ綔鍙�" + agvWrkMast.getWrkNo() + "璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); } } @@ -153,20 +170,17 @@ * ioType 113.绌烘墭鐩樻墜鍔ㄥ洖娴� */ @Scheduled(cron = "0/2 * * * * ? ") - private void autoEmptyBack3(){ + 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)); + 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; } for (AgvWrkMast agvWrkMast : agvWrkMastList) { - try{ + try { autoMoveHandler.autoEmptyBack3(agvWrkMast); - } catch (Exception e){ - log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"绌烘澘鑷姩鍥炲簱 鎺ラ┏鐐� - 1妤煎簱浣�,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } catch (Exception e) { + log.error("宸ヤ綔鍙�" + agvWrkMast.getWrkNo() + "绌烘澘鑷姩鍥炲簱 鎺ラ┏鐐� - 1妤煎簱浣�,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); } } } @@ -200,40 +214,81 @@ * 2妤兼垨3妤肩珯鐐瑰彲鍏ヤ俊鍙峰叏閮ㄦ病鏈夛紝浠h〃璧扮數姊嚜鍔ㄦ惉杩愭ā寮� */ @Scheduled(cron = "0/2 * * * * ? ") - private void autoEmptyBack4(){ -// if (determineFloorConnection(2)){ - // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋� - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - .ne("floor", 1) - .eq("loc_sts","D") - .eq("loc_type1",3)); - if (agvLocMasts.isEmpty()) { - return; + 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)); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try { + autoMoveHandler.autoEmptyBack4(agvLocMast); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); } - for (AgvLocMast agvLocMast : agvLocMasts) { - try{ - autoMoveHandler.autoEmptyBack4(agvLocMast); - } catch (Exception e){ - log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); - } - } -// } + } } - private boolean determineFloorConnection(Integer floor){ - try{ + + /** + * 灏嗕簩鍘傜殑6绫诲瀷鐨勭┖璐ф灦璋冩嫧鍥炲惛濉戜簩妤� + */ + // TODO 鍥涙湡 + @Scheduled(cron = "0/2 * * * * ? ") + 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 && 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)); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try { + autoMoveHandler.autoEmptyBackSiqi(agvLocMast); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + } + } + } + + private boolean determineFloorConnection(Integer floor) { + try { List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("floor", floor).like("dev_no", "DB_")); - if (!agvBasDevps.isEmpty()){ - for (AgvBasDevp agvBasDevp:agvBasDevps){ - if (agvBasDevp.getInEnable().equals("Y")){ + if (!agvBasDevps.isEmpty()) { + for (AgvBasDevp agvBasDevp : agvBasDevps) { + if (agvBasDevp.getInEnable().equals("Y")) { return false; } } return true; } - }catch (Exception e){ - log.error("鍒ゆ柇褰撳墠妤煎眰鎺ラ┏浣嶆槸鍚﹀叏閮ㄥ叧闂紝寮傚父"+e.getMessage()); + } catch (Exception e) { + log.error("鍒ゆ柇褰撳墠妤煎眰鎺ラ┏浣嶆槸鍚﹀叏閮ㄥ叧闂紝寮傚父" + e.getMessage()); } return false; } @@ -246,19 +301,16 @@ * */ @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")); + private 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; } for (AgvBasDevp agvBasDevp : agvBasDevps) { - try{ + try { autoMoveHandler.autoEmptyBack5(agvBasDevp); - } catch (Exception e){ - log.error("绔欑偣鍙�"+agvBasDevp.getDevNo()+"绔欑偣鏄惁鑷姩 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } catch (Exception e) { + log.error("绔欑偣鍙�" + agvBasDevp.getDevNo() + "绔欑偣鏄惁鑷姩 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); } } } @@ -268,20 +320,66 @@ * 鎵嬪姩锛� 鐢熸垚 113 鎵嬪姩鍥炴祦 */ @Scheduled(cron = "0/2 * * * * ? ") - private void autoEmptyBack6(){ - List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() - .eq("floor", 1) - .eq("loc_sts", "F") - .like("dev_no", "DB")); + private 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; } for (AgvBasDevp agvBasDevp : agvBasDevps) { - try{ + try { autoMoveHandler.autoEmptyBack6(agvBasDevp); - } catch (Exception e){ - log.error("绔欑偣鍙�"+agvBasDevp.getDevNo()+"妫�娴�1妤兼帴椹崇偣 鐢熸垚 113 鎵嬪姩鍥炴祦,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } catch (Exception e) { + log.error("绔欑偣鍙�" + agvBasDevp.getDevNo() + "妫�娴�1妤兼帴椹崇偣 鐢熸垚 113 鎵嬪姩鍥炴祦,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); } } } + + /** + * 鑷姩绉诲簱 + * + */ + @Scheduled(cron = "0/2 * * * * ? ") + private void autoEmptyBack7() 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", "autoTime")); + 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 && time3 < (1000 * 60 * 10)) { + + List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type", 12)); + if (maxTansk <= agvWrkMasts.size()) { + return; + } + + 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; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try { + autoMoveHandler.autoTransfers(agvLocMast, maxTansk); + } catch (Exception e) { + log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "瀹氭椂绉诲簱浠诲姟 鍚稿涓�妤� --> 鍚稿浜屾ゼ,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage()); + } + } + } + } + } + + } -- Gitblit v1.9.1