From 7956f09935a708f17b0f1b29a6625475f53c7509 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 16 十月 2024 09:52:15 +0800 Subject: [PATCH] 版本整合03 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 91 insertions(+), 2 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 474bbf0..37bfe0d 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 @@ -80,6 +80,12 @@ @Value("${mes.max.secondLength}") private String secondLength; + @Value("${mes.cache.cacheWidth}") + private double cacheWidth; + + @Value("${mes.cache.cacheHeight}") + private double cacheHeight; + @Value("${mes.min.one.firstLength}") private String minOneFirstLength; @@ -165,9 +171,9 @@ Damage damage = new Damage(); damage.setGlassId(e.getGlassId()); damage.setLine(e.getEndCell()); - damage.setWorkingProcedure("鍐峰姞宸�"); + damage.setWorkingProcedure("纾ㄨ竟"); damage.setRemark("纾ㄨ竟鍓嶅崸寮忕悊鐗�"); - damage.setStatus(0); + damage.setStatus(1); damage.setType(e.getTaskStatus()); return damage; }).collect(Collectors.toList()); @@ -187,6 +193,16 @@ */ public void inTo(String glassId, String confirmationWrodAddress, String currentSlot) { log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot); + + GlassInfo feedGlassInfo = glassInfoService.getOne( + new LambdaQueryWrapper<GlassInfo>() + .eq(GlassInfo::getGlassId, glassId) + ); + if (Math.max(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheWidth || Math.min(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheHeight) { + log.info("1.1銆佺幓鐠冭秴杩囧崸寮忕悊鐗囨渶澶у昂瀵�:{}", feedGlassInfo); + return; + } + //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot), Boolean.FALSE); Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧"); @@ -770,6 +786,79 @@ } /** + * 淇濆瓨鍑虹墖浠诲姟鐩稿叧淇℃伅 + * + * @param glassInfo + * @param endcell + * @param confirmationWrodAddress + * @param glassId + * @return + */ + private boolean saveOutGlassMessageBySlot(EdgStorageCageDetails glassInfo, int endcell, String confirmationWrodAddress, String glassId, Integer currentSlot) { + if (glassInfo != null) { + log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(), + 2, glassInfo.getSlot(), endcell); + if (glassInfo.getGlassId().equals(glassId)) { + log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); + EdgStorageCageDetails details = new EdgStorageCageDetails(); + //鐜荤拑淇℃伅鏇挎崲 + String glassIdChange = queryAndChangeGlass(glassId); + if (StringUtils.isBlank(glassIdChange)) { + BeanUtils.copyProperties(glassInfo, details); + } else { + GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); + BeanUtils.copyProperties(glassInfo, details); + } + EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(currentSlot, Boolean.TRUE); + Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�"); + log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty); + details.setSlot(nearestEmpty.getSlot()); + details.setState(Const.GLASS_STATE_OUT); + edgStorageCageDetailsService.save(details); + boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), nearestEmpty.getSlot(), endcell, Const.GLASS_CACHE_TYPE_THROUGH); + log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus); + } else { + log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); + if (endcell != currentSlot) { + EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>() + .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) + .eq(EdgStorageCageDetails::getSlot, currentSlot).eq(EdgStorageCageDetails::getWidth, glassInfo.getWidth()) + .eq(EdgStorageCageDetails::getHeight, glassInfo.getHeight()).eq(EdgStorageCageDetails::getThickness, glassInfo.getThickness()) + ); + if (null != currentGlass) { + glassInfo = currentGlass; + endcell = currentSlot; + } + } + //鐜荤拑淇℃伅鏇挎崲 + String glassIdChange = queryAndChangeGlass(glassInfo.getGlassId()); + //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞� + queryEdgAndChangeGlass(glassInfo.getGlassId(), glassIdChange); + LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT); + edgStorageCageDetailsService.update(wrapper); + log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT); + + boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), glassInfo.getSlot(), endcell, Const.GLASS_CACHE_TYPE_OUT); + log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus); + } + boolean glassSizeStatus = saveGlassSize(glassInfo, endcell); + log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus); + S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1); + log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�"); + Damage damage = new Damage(); + damage.setGlassId(glassInfo.getGlassId()); + damage.setWorkingProcedure("鍒囧壊"); + damage.setLine(1001); + damage.setType(1); + damage.setRemark("杩囧崸寮忕悊鐗�"); + damageService.insertDamage(damage); + return Boolean.TRUE; + } + return Boolean.FALSE; + } + + /** * 娣诲姞鐞嗙墖绗间换鍔� * * @param glassId -- Gitblit v1.8.0