From 6a98b298aa126238630d238a2d1c910b362e8613 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期一, 01 七月 2024 09:19:59 +0800 Subject: [PATCH] 下片逻辑调整:优先下08片台方向玻璃,后续下06片台玻璃,提高出片节奏 --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 132 ++++++++++++++++++++++++------------------- 1 files changed, 74 insertions(+), 58 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java index 14c5322..24022fa 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java @@ -104,26 +104,23 @@ } if ("1".equals(requestWord)) { log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); - inTo(glassIdeValue, requestWord, confirmationWrodAddress, currentSlot); + inTo(glassIdeValue, requestWord, currentSlot); } else if ("2".equals(requestWord)) { //09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0 log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); -// outTo(Integer.parseInt(out08Glassstate), -// Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", 0); + outTo(out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, glassIdeValue, currentSlot); } else if ("3".equals(requestWord)) { log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘 - boolean outFlase = false; -// outTo(Integer.parseInt(out08Glassstate), -// Integer.parseInt(out10Glassstate), confirmationWrodAddress, glassIdeValue, Integer.parseInt(currentSlot)); + boolean outFlase = outTo(out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, glassIdeValue, currentSlot); log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue); if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) { - inTo(glassIdeValue, requestWord, confirmationWrodAddress, currentSlot); + inTo(glassIdeValue, requestWord, currentSlot); } } } - public void inTo(String glassId, String requestWord, String confirmationWrodAddress, String currentSlot) { + public void inTo(String glassId, String requestWord, String currentSlot) { log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot); //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 DownStorageCage nearestEmpty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.FALSE); @@ -213,7 +210,7 @@ initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); } - public Boolean outTo(String glassStatus06, String glassStatus11, String glassStatus13, String glassId) { + public Boolean outTo(String glassStatus06, String out08Glassstate, String glassStatus11, String glassStatus13, String glassId, String currentSlot) { if ("2".equals(glassStatus06) && "2".equals(glassStatus11) && "2".equals(glassStatus13)) { log.info("G06銆丟11銆丟13鍒嗗埆涓簕},{}銆亄}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", glassStatus06, glassStatus11, glassStatus13); return Boolean.FALSE; @@ -221,12 +218,14 @@ List<DownStorageCageDetails> tempList = downStorageCageDetailsService.list(new LambdaQueryWrapper<DownStorageCageDetails>() .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)); - //todo:鑾峰彇寰呰繘鐗囩幓鐠� + //鑾峰彇寰呰繘鐗囩幓鐠� DownStorageCageDetails cageDetails = new DownStorageCageDetails(); if (StringUtils.isNotBlank(glassId)) { GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); BeanUtils.copyProperties(glassInfo, cageDetails); - cageDetails.setSlot(0); + //鑾峰彇褰撳墠绗煎瓙绌烘牸淇℃伅 + DownStorageCage empty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.TRUE); + cageDetails.setSlot(empty.getSlot()); tempList.add(cageDetails); } @@ -235,13 +234,62 @@ log.info("绗煎唴娌℃湁鐜荤拑,鏃犳硶鎵ц鍑虹墖"); return Boolean.FALSE; } + Boolean flag08 = "1".equals(out08Glassstate) ? Boolean.TRUE : Boolean.FALSE; + if (!generateTaskByShelf(glassStatus11, flag08, glassStatus13, tempList, cageDetails)) { + return generateTaskByShelf(glassStatus11, !flag08, glassStatus13, tempList, cageDetails); + } + return Boolean.TRUE; + } + + private Boolean multilayerCheck(GlassInfo glassInfo, boolean isBind) { + //鏌ヨ璇ユ祦绋嬪崱鏄惁涓哄灞� + if (glassInfo.getTotalLayer() > 1) { + log.info("鎸夌収娴佺▼鍗¤幏鍙栧綋鍓嶆祦绋嬪崱鍚勫眰宸茶惤鏋舵暟閲�"); + DownGlassInfoDTO downGlassInfoDTO = downGlassInfoService.queryDownGlassMaxLayer(glassInfo.getFlowCardId()); + if (null == downGlassInfoDTO) { + if (isBind) { + return Boolean.TRUE; + } else { + log.info("鏋跺瓙宸茬粡鍗犳弧锛屽灞傜幓鐠冩棤娉曟壘鍒板搴旂殑鏍煎瓙锛岄渶鎵ц鏇挎崲鐜荤拑鐨勬搷浣�"); + return Boolean.FALSE; + } + + } + if (downGlassInfoDTO.getLayer().equals(glassInfo.getLayer())) { + log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶� 鐩存帴杩涚墖"); + return Boolean.TRUE; + } + Integer sequence = downGlassInfoService.queryMaxSequence(glassInfo.getFlowCardId(), glassInfo.getLayer()); + log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑閫氳揪娆″簭+1:{}", sequence); + DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>() + .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId()) + .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence)); + log.info("鎷垮綋鍓嶇増搴忚幏鍙栫幓鐠冧俊鎭瘂}锛屾寜鐓ф搴忓垽鏂綋鍓嶇幓鐠冩槸鍚﹀昂瀵稿搴旂殑涓婏紙涓庢暟閲忔渶澶氱殑娆″簭姣旇緝锛夈��", downGlassInfo); + if (null != downGlassInfoDTO && downGlassInfo.getWidth() == glassInfo.getWidth() && downGlassInfo.getHeight() == glassInfo.getHeight()) { + log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�"); + return Boolean.TRUE; + } else { + log.info("鍚屾搴忕幓鐠冨搴斾笉涓婏紝闇�鎵ц鏇挎崲鐜荤拑鐨勬搷浣�"); + return Boolean.FALSE; + } + } else { + log.info("闈炲灞傜幓鐠冿紝鐩存帴杩涚墖"); + return Boolean.TRUE; + } + } + + private Boolean generateTaskByShelf(String glassStatus, Boolean flag08, String glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails) { //鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅 List<Integer> workList = new ArrayList(); - if (!"2".equals(glassStatus06)) { - workList.addAll(Const.G06_WORK_STATION); - } - if (!"2".equals(glassStatus11)) { - workList.addAll(Const.G11_WORK_STATION); + + if (flag08) { + if (!"2".equals(glassStatus)) { + workList.addAll(Const.G11_WORK_STATION); + } + } else { + if (!"2".equals(glassStatus)) { + workList.addAll(Const.G06_WORK_STATION); + } } List<DownStorageCageDetails> list = new ArrayList(); Boolean isEmptyShelf = Boolean.FALSE; @@ -272,8 +320,10 @@ } } } else { - //鐩存帴璧颁汉宸ヤ笅鐗� - list = tempList.stream().filter(item -> item.getWidth() > maxWidth || item.getHeight() > maxHeight).collect(Collectors.toList()); + if (flag08 && !"2".equals(glassStatus13)) { + //鐩存帴璧颁汉宸ヤ笅鐗� + list = tempList.stream().filter(item -> item.getWidth() > maxWidth || item.getHeight() > maxHeight).collect(Collectors.toList()); + } } if (CollectionUtils.isEmpty(list)) { log.info("绗煎唴鐜荤拑鏃犳硶鎵ц鍑虹墖"); @@ -284,9 +334,11 @@ for (DownStorageCageDetails item : list) { if (item.getWidth() > maxWidth || item.getHeight() > maxHeight) { - log.info("鐜荤拑瀹藉害鎴栭珮搴﹁秴鍑洪槇鍊硷紝鎵ц浜哄伐涓嬬墖"); - tempGlassId = item.getGlassId(); - break; + if (flag08 && !"2".equals(glassStatus13)) { + log.info("鐜荤拑瀹藉害鎴栭珮搴﹁秴鍑洪槇鍊硷紝鎵ц浜哄伐涓嬬墖"); + tempGlassId = item.getGlassId(); + break; + } } } loop: @@ -382,43 +434,6 @@ } } - private Boolean multilayerCheck(GlassInfo glassInfo, boolean isBind) { - //鏌ヨ璇ユ祦绋嬪崱鏄惁涓哄灞� - if (glassInfo.getTotalLayer() > 1) { - log.info("鎸夌収娴佺▼鍗¤幏鍙栧綋鍓嶆祦绋嬪崱鍚勫眰宸茶惤鏋舵暟閲�"); - DownGlassInfoDTO downGlassInfoDTO = downGlassInfoService.queryDownGlassMaxLayer(glassInfo.getFlowCardId()); - if (null == downGlassInfoDTO) { - if (isBind) { - return Boolean.TRUE; - } else { - log.info("鏋跺瓙宸茬粡鍗犳弧锛屽灞傜幓鐠冩棤娉曟壘鍒板搴旂殑鏍煎瓙锛岄渶鎵ц鏇挎崲鐜荤拑鐨勬搷浣�"); - return Boolean.FALSE; - } - - } - if (downGlassInfoDTO.getLayer().equals(glassInfo.getLayer())) { - log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶� 鐩存帴杩涚墖"); - return Boolean.TRUE; - } - Integer sequence = downGlassInfoService.queryMaxSequence(glassInfo.getFlowCardId(), glassInfo.getLayer()); - log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑閫氳揪娆″簭+1:{}", sequence); - DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>() - .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId()) - .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence)); - log.info("鎷垮綋鍓嶇増搴忚幏鍙栫幓鐠冧俊鎭瘂}锛屾寜鐓ф搴忓垽鏂綋鍓嶇幓鐠冩槸鍚﹀昂瀵稿搴旂殑涓婏紙涓庢暟閲忔渶澶氱殑娆″簭姣旇緝锛夈��", downGlassInfo); - if (null != downGlassInfoDTO && downGlassInfo.getWidth() == glassInfo.getWidth() && downGlassInfo.getHeight() == glassInfo.getHeight()) { - log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�"); - return Boolean.TRUE; - } else { - log.info("鍚屾搴忕幓鐠冨搴斾笉涓婏紝闇�鎵ц鏇挎崲鐜荤拑鐨勬搷浣�"); - return Boolean.FALSE; - } - } else { - log.info("闈炲灞傜幓鐠冿紝鐩存帴杩涚墖"); - return Boolean.TRUE; - } - } - public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean isBind, DownStorageCageDetails cageDetails) { //鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅 DownStorageCageDetails downStorageCageDetails = null; @@ -478,6 +493,7 @@ downGlassTask.setWidth((int) glassInfo.getWidth()); downGlassTask.setHeight((int) glassInfo.getHeight()); downGlassTask.setFlowCardId(glassInfo.getFlowCardId()); + downGlassTask.setLayer(glassInfo.getLayer()); downGlassTask.setTaskStauts(0); downGlassTask.setCreateTime(new Date()); downGlassTaskService.save(downGlassTask); -- Gitblit v1.8.0