From 3b0c30d5918f1b50b3eb1a92b17124d5087e4a75 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期五, 10 五月 2024 16:29:40 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 89 ++++++++++++++++++++++++++------------------ 1 files changed, 53 insertions(+), 36 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java index df47433..19e77e5 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java @@ -45,47 +45,59 @@ @Value("${mes.threshold}") private int threshold; - @Scheduled(fixedDelay = 10000) + @Scheduled(fixedDelay = 1000) public void plcHomeEdgTask() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; - String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue(); String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue(); String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue(); // 1涓篈09绌洪棽锛�2涓篈10绌洪棽锛�3涓篈09A10閮界┖闂�,0涓篈09A10閮芥湁鐜荤拑 String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue(); - String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); + String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佷负锛歿},褰撳墠鏍煎瓙鍙蜂负锛歿}", + taskRequestTypeValue, glassIdeValue, confirmationWrodValue, outGlassstate, currentSlot); if ("0".equals(taskRequestTypeValue)) { - log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0"); + if ("0".equals(confirmationWrodValue)) { + log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屼笖纭瀛椾负0锛屼笉鎵ц浠诲姟"); + return; + } + log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0"); S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0); return; } if (!"0".equals(confirmationWrodValue)) { - log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛楁敼涓�0"); + log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛楁敼涓�0"); S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0); return; } + if ("1".equals(taskRequestTypeValue)) { - log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); - inTo(glassIdeValue, confirmationWrodAddress); + log.info("3銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); + inTo(glassIdeValue, confirmationWrodAddress, currentSlot); } else if ("2".equals(taskRequestTypeValue)) { //09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0 - log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); - outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress); + log.info("3銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); + outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress, currentSlot); } else if ("3".equals(taskRequestTypeValue)) { - log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); + log.info("3銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); if ("0".equals(outGlassstate)) { - inTo(glassIdeValue, confirmationWrodAddress); + inTo(glassIdeValue, confirmationWrodAddress, currentSlot); } else { - outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress); + outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress, currentSlot); } } } - private void inTo(String glassId, String confirmationWrodAddress) { - log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅", glassId); + /** + * 杩涚墖浠诲姟 + * @param glassId + * @param confirmationWrodAddress + * @param currentSlot + */ + private void inTo(String glassId, String confirmationWrodAddress, String currentSlot) { + log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot); GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); if (glassInfo == null) { log.info("2銆佹鐜荤拑缂栧彿涓嶅瓨鍦�"); @@ -93,58 +105,63 @@ } log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo); //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 - List<EdgStorageCage> list = edgStorageCageService.selectCacheEmpty(); - log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", list); - if (CollectionUtil.isEmpty(list)) { - log.info("4銆佷笉瀛樺湪绌烘牸"); - return; - } - log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�:{}", glassInfo); + EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot)); + Assert.isTrue(nearestEmpty == null, "鏍煎瓙宸叉弧"); + log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty); + + log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); EdgStorageCageDetails details = new EdgStorageCageDetails(); BeanUtils.copyProperties(glassInfo, details); - details.setState(100); - Integer slot = list.get(0).getSlot(); - Integer deviceId = list.get(0).getDeviceId(); - log.info("5銆佽幏鍙栫┖闂叉牸瀛愪负:{},璁惧鍙蜂负{}", slot, deviceId); - details.setSlot(slot); - details.setDeviceId(deviceId); + details.setState(Const.GLASS_STATE_IN); + details.setSlot(nearestEmpty.getSlot()); + details.setDeviceId(nearestEmpty.getDeviceId()); edgStorageCageDetailsService.save(details); + log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details); - log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃"); + //娣诲姞杩涚墖浠诲姟 TaskCache taskCache = new TaskCache(); taskCache.setGlassId(glassId); taskCache.setTaskStatus(0); taskCache.setStartCell(0); - taskCache.setEndCell(slot); + taskCache.setEndCell(nearestEmpty.getSlot()); taskCache.setTaskType(1); taskCache.setCreateTime(new Date()); taskCacheService.insertTaskCache(taskCache); - log.info("6銆佸彂閫佺‘璁ゅ瓧"); + log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃{}", taskCache); + S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1); + log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚"); } - private void outTo(int line, String confirmationWrodAddress) { + /** + * 鍑虹墖浠诲姟 + * @param line + * @param confirmationWrodAddress + * @param currentSlot + */ + private void outTo(int line, String confirmationWrodAddress, String currentSlot) { Assert.isTrue(line != 0, "A09銆丄10閮芥湁鐜荤拑锛屾棤娉曞嚭鐗�"); log.info("1銆佸嚭鐗囦换鍔″嚭銆恵}銆戝彿绾�,澶囨敞(09绌洪棽锛�1;10绌洪棽锛�2;閮界┖闂诧細3)", line); int endcell = 0; List<TaskCache> oldTaskCacheList; - log.info("2銆佸垽鏂嚭鐗囩嚎璺紝鑾峰彇鏈�鍚庤鏉$嚎宸插嚭鐗囩殑浠诲姟淇℃伅(澶囨敞锛�0寰呮墽琛岋紝1宸叉墽琛�)锛岄兘绌洪棽浼樺厛鍑篈09绾�"); if (line == 2) { - endcell = 2002; + endcell = Const.A10_OUT_TARGET_POSITION; oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A10_OUT_TARGET_POSITION); } else { - endcell = 2001; + endcell = Const.A09_OUT_TARGET_POSITION; oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A09_OUT_TARGET_POSITION); } + log.info("2銆佸垽鏂嚭鐗囩嚎璺瘂}锛岃幏鍙栨渶鍚庤鏉$嚎宸插嚭鐗囩殑浠诲姟淇℃伅{}(澶囨敞锛�0寰呮墽琛岋紝1宸叉墽琛�).閮界┖闂蹭紭鍏堝嚭A09绾�", endcell, oldTaskCacheList); + String glassId = ""; if (CollectionUtil.isNotEmpty(oldTaskCacheList)) { glassId = oldTaskCacheList.get(0).getGlassId(); } - log.info("3銆佹寜鐓у巻鍙插凡鍑虹幓鐠僫d{}鍜岄槇鍊納}锛屾嬁鍑虹悊鐗囩鍐呯殑鍑虹墖淇℃伅", glassId, threshold); - EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.selectConformGlass(glassId, threshold); + EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.selectOutGlass(glassId, threshold); + log.info("3銆佹寜鐓у巻鍙插凡鍑虹幓鐠僫d{}鍜岄槇鍊納}锛屾嬁鍑虹悊鐗囩鍐呯殑鍑虹墖淇℃伅{}", glassId, threshold, glassInfo); if (glassInfo != null) { log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(), -- Gitblit v1.8.0