From 051613aa73be3e75af5a6dfdb86a722bcb5af094 Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期五, 23 八月 2024 16:46:51 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 156 ++++++++++++++++++++++++++++------------------------ 1 files changed, 84 insertions(+), 72 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 88d6363..ab141ce 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 @@ -134,13 +134,15 @@ log.info("2銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty); GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�"); - if ("1".equals(requestWord) && (glassInfo.getWidth() > throughWidth || glassInfo.getHeight() > throughHeight)) { - log.info("鐜荤拑褰撳墠灏哄瀹斤細{}锛岄珮锛歿}鍙兘鐩撮�氾紝褰撳墠杩涚墖浠诲姟闇�绛夊緟", glassInfo.getWidth(), glassInfo.getHeight()); + double glassWidth = Math.max(glassInfo.getWidth(), glassInfo.getHeight()); + double glassHeight = Math.min(glassInfo.getWidth(), glassInfo.getHeight()); + if ("1".equals(requestWord) && (glassWidth > throughWidth || glassHeight > throughHeight)) { + log.info("鐜荤拑褰撳墠灏哄瀹斤細{}锛岄珮锛歿}鍙兘鐩撮�氾紝褰撳墠杩涚墖浠诲姟闇�绛夊緟", glassWidth, glassHeight); return; } Boolean checkFlag = Boolean.FALSE; //鐜荤拑灏哄鏄惁璧颁汉宸ヤ笅鐗� - if (glassInfo.getWidth() > maxWidth || glassInfo.getHeight() > maxHeight || glassInfo.getWidth() < minWidth || glassInfo.getHeight() < minHeight) { + if (glassWidth > maxWidth || glassHeight > maxHeight || glassWidth < minWidth || glassHeight < minHeight) { log.info("璇ョ幓鐠冨昂瀵镐笉绗﹀悎瑕佹眰锛岄渶瑕佽蛋浜哄伐涓嬬墖鐩存帴杩涚墖"); } else { log.info("璇ョ幓鐠冨昂瀵搁潪浜哄伐涓嬬墖"); @@ -148,6 +150,7 @@ DownWorkstation one = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>() .eq(DownWorkstation::getLayer, glassInfo.getLayer()) .eq(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId())); + //鏄惁宸茬粡缁戝畾 true锛氬凡缁戝畾 false:鏈粦瀹� Boolean isBind = Boolean.FALSE; if (null != one) { log.info("璇ユ祦绋嬪崱宸茬粦瀹氭灦瀛�"); @@ -157,7 +160,7 @@ if (!checkFlag && !isBind) { log.info("璇ョ幓鐠冪殑娴佺▼鍗℃湭缁戝畾鏋跺瓙锛岃幏鍙栨槸鍚︽湁绌烘灦瀛�"); List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() - .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId)); + .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).orderByDesc(DownWorkstation::getWorkstationId)); if (CollectionUtils.isNotEmpty(list)) { log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫"); //缁戝畾娴佺▼鍗� @@ -176,28 +179,31 @@ endLoop: for (DownGlassInfoDTO e : downGlassInfoDTOList) { List<GlassInfo> glassInfoList = e.getGlassInfoList(); - Optional<GlassInfo> glassInfoTempOptional = glassInfoList.stream().filter(item -> item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight() - && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())) - .findFirst(); - if (glassInfoTempOptional.isPresent()) { - GlassInfo item = glassInfoTempOptional.get(); - //鐜荤拑鏄惁涓哄灞� - checkFlag = multilayerCheck(item, Boolean.FALSE); - if (checkFlag) { - //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁� - String tempFlowCardId = item.getFlowCardId(); - Integer tempLayer = item.getLayer(); - String flowCardId = glassInfo.getFlowCardId(); - Integer layer = glassInfo.getLayer(); - log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}", - item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer); - glassInfo.setFlowCardId(tempFlowCardId); - glassInfo.setLayer(tempLayer); - glassInfoService.updateById(glassInfo); - item.setFlowCardId(flowCardId); - item.setLayer(layer); - glassInfoService.updateById(item); - break endLoop; + List<GlassInfo> glassInfoTempList = glassInfoList.stream().filter(item -> item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight() + && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(glassInfoTempList)) { + for (GlassInfo item : glassInfoTempList) { + //鐜荤拑鏄惁涓哄灞傦細1銆佸厛鑾峰彇褰撳墠娴佺▼鍗¤惤鏋舵渶澶氱殑灞傛暟锛屽鏋滀负绌猴紝琛ㄦ槑鏈粦瀹氭祦绋嬪崱锛屾湭钀芥灦锛岀劧鍚庢寜鐓ф槸鍚﹀彲缁戝畾鏋跺瓙鍐冲畾鏄惁鏇挎崲銆傦紙鍙拷鐣ヤ笉璁★紝鏈牎楠屼粎鍦ㄥ墠涓�娆¤皟鐢ㄨ捣浣滅敤锛� +// 2銆佸垽鏂惤鏋舵渶澶氱殑灞傛暟鏄惁涓哄綋鍓嶆浛鎹㈢幓鐠冪殑灞傛暟锛屾槸 鍒欒蛋鏇挎崲閫昏緫杩斿洖true +// 3銆佷笉鏄渶澶氱殑灞傛暟锛岃幏鍙栬惤鏋舵渶澶氬眰鏁扮殑鐩稿悓娆″簭鐨勭幓鐠冨昂瀵镐笌褰撳墠鏇挎崲鐜荤拑鐨勫昂瀵告瘮杈冿紝鐩稿悓璧版浛鎹紝鍚﹀垯缁х画寰幆 +// 4銆佸崟灞傜幓鐠冪洿鎺ヨ蛋鏇挎崲 + checkFlag = multilayerCheck(item, Boolean.FALSE); + if (checkFlag) { + //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁� + String tempFlowCardId = item.getFlowCardId(); + Integer tempLayer = item.getLayer(); + String flowCardId = glassInfo.getFlowCardId(); + Integer layer = glassInfo.getLayer(); + log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}", + item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer); + glassInfo.setFlowCardId(tempFlowCardId); + glassInfo.setLayer(tempLayer); + glassInfoService.updateById(glassInfo); + item.setFlowCardId(flowCardId); + item.setLayer(layer); + glassInfoService.updateById(item); + break endLoop; + } } } } @@ -210,7 +216,6 @@ downStorageCageDetails.setState(Const.GLASS_STATE_IN); downStorageCageDetails.setSlot(nearestEmpty.getSlot()); downStorageCageDetailsService.save(downStorageCageDetails); - // 鐢熸垚杩涚墖浠诲姟 initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); } @@ -221,9 +226,9 @@ log.info("G06銆丟11銆丟13鍒嗗埆涓簕},{}銆亄}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", glassStatus06, glassStatus11, glassStatus13); return Boolean.FALSE; } - List<DownStorageCageDetails> tempList = downStorageCageDetailsService.list(new LambdaQueryWrapper<DownStorageCageDetails>() .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)); + log.info("鍑虹墖1銆佺鍐呯殑鐜荤拑淇℃伅鏈夛細{}", tempList); //鑾峰彇寰呰繘鐗囩幓鐠� DownStorageCageDetails cageDetails = new DownStorageCageDetails(); if (StringUtils.isNotBlank(glassId)) { @@ -234,12 +239,15 @@ cageDetails.setSlot(empty.getSlot()); tempList.add(cageDetails); } - - log.info("绗煎唴鐜荤拑鐨勬暟鎹湁锛歿}", tempList); + log.info("鍑虹墖2锛氱鍐呯幓鐠冪殑鏁版嵁(鍖呮嫭寰呰繘鐗�)鏈夛細{}", tempList); if (CollectionUtils.isEmpty(tempList)) { log.info("绗煎唴娌℃湁鐜荤拑,鏃犳硶鎵ц鍑虹墖"); return Boolean.FALSE; } + //浼樺厛璧�08鐗囧彴鐨勭幓鐠冿細璧颁汉宸ヤ笅鐗囨垨鑰�2鍙锋満姊拌噦 + //1銆�08鍙板繖纰岋紝浠呰蛋1鍙锋満姊拌噦 + //2銆�08鍙扮┖闂诧紝鍏堣蛋鎵斿伐涓嬬墖鎴�2鍙锋満姊拌噦锛屾棤鐜荤拑鍑虹墖 鍦ㄨ蛋1鍙锋満姊拌噦 + //鏈烘鑷傝绂佺敤鐨勬儏鍐典笅涓嶈兘缁х画鍚戠鐢ㄧ殑鏈烘鑷傛斁鐜荤拑 Boolean flag08 = "1".equals(out08Glassstate) ? Boolean.TRUE : Boolean.FALSE; if (!flag08) { generateTaskByShelf(glassStatus06, glassStatus11, flag08, glassStatus13, tempList, cageDetails, glassId); @@ -248,7 +256,6 @@ return generateTaskByShelf(glassStatus06, glassStatus11, !flag08, glassStatus13, tempList, cageDetails, glassId); } } - return Boolean.TRUE; } @@ -264,7 +271,6 @@ log.info("鏋跺瓙宸茬粡鍗犳弧锛屽灞傜幓鐠冩棤娉曟壘鍒板搴旂殑鏍煎瓙锛岄渶鎵ц鏇挎崲鐜荤拑鐨勬搷浣�"); return Boolean.FALSE; } - } if (downGlassInfoDTO.getLayer().equals(glassInfo.getLayer())) { log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶� 鐩存帴杩涚墖"); @@ -293,7 +299,6 @@ glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) { //鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅 List<Integer> workList = new ArrayList(); - if (flag08) { if (!"2".equals(glassStatus11)) { workList.addAll(Const.G11_WORK_STATION); @@ -303,53 +308,62 @@ workList.addAll(Const.G06_WORK_STATION); } } + List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6); + List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList()); List<DownStorageCageDetails> list = new ArrayList(); + //鏄惁鏈夌┖鏋跺瓙 true锛氭湁 false:鏃� Boolean isEmptyShelf = Boolean.FALSE; //瀵圭鍐呯幓鐠冭繘琛岃繃婊わ紝浠呭嚭绗﹀悎閫昏緫鐨勭幓鐠� if (CollectionUtils.isNotEmpty(workList)) { List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, workList)); -// log.info("鏋跺瓙琚鐢紝鏃犳硶鍑虹墖钀芥灦"); if (CollectionUtils.isEmpty(downWorkstationList)) { log.info("绗煎瓙琚鐢紝鏃犳硶璧版満姊拌噦涓嬬墖"); //璧颁汉宸ヤ笅鐗� - if (!"2".equals(glassStatus13)) { - list = tempList.stream().filter(item -> item.getWidth() > maxWidth || item.getHeight() > maxHeight).collect(Collectors.toList()); + if (flag08 && !"2".equals(glassStatus13)) { + list = tempList.stream().filter(item -> { + double firstLength = Math.max(item.getWidth(), item.getHeight()); + double secondLength = Math.min(item.getWidth(), item.getHeight()); + return firstLength > maxWidth || secondLength > maxHeight; + }).collect(Collectors.toList()); } } else { //鑾峰彇鍙惤鏋剁殑鐨勬灦瀛愪俊鎭紙鍖呮嫭绌烘灦瀛愶級 - List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> null == (item.getFlowCardId())).collect(Collectors.toList()); - //灏嗘灦瀛愮殑娴佺▼鍗″彿鍙婂眰鏁颁綔涓簁ey + //浠呰幏鍙栫┖鏋跺瓙淇℃伅 + List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> StringUtils.isBlank(item.getFlowCardId())).collect(Collectors.toList()); + //灏嗘灦瀛愮殑娴佺▼鍗″彿鍙婂眰鏁颁綔涓簁ey 涓嶅瓨鍦ㄧ┖鏋跺瓙鐨勬儏鍐� if (CollectionUtils.isEmpty(workstationsIsNotBind)) { log.info("涓嶅瓨鍦ㄦ湭缁戝畾娴佺▼鍗℃灦瀛�"); //绛涢�夊嚭瀵瑰簲鏋跺瓙宸茬粦瀹氭祦绋嬪崱鍙笅鐗囩殑鐜荤拑 Map<String, List<DownWorkstation>> listMap = downWorkstationList.stream() - .filter(item -> null != (item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); + .filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); + //杩囨护绛涢�夎幏鍙栨灦瀛愪笂瀵瑰簲娴佺▼鍗�+灞傛暟鐨勭瀛愬唴鐨勭幓鐠冧俊鎭� list = tempList.stream().filter(item -> listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList()); } else { log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭�"); - //鑾峰彇绂佺敤鏋跺瓙鐨勬祦绋嬪彿锛屽皢绗煎唴缁戝畾鏋跺瓙涓旀灦瀛愯绂佺敤鐨勬祦绋嬪崱淇℃伅 - List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6); - List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList()); + //鑾峰彇绂佺敤鍙婇潪鏈満姊拌噦鐨勬灦瀛愮殑娴佺▼鍙峰強灞傛暟瀵瑰簲鐨勭幓鐠冧俊鎭� List<DownWorkstation> downWorkstationOffList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() .and(i -> i.in(DownWorkstation::getWorkstationId, offWorkStationList).or().eq(DownWorkstation::getEnableState, Const.SLOT_OFF))); - //鑾峰彇琚鐢ㄧ殑娴佺▼鍗′俊鎭� + //鑾峰彇琚鐢ㄧ殑娴佺▼鍗′俊鎭� 涓虹┖锛氬皢杩斿洖绗煎唴鐨勬墍鏈夌幓鐠冧俊鎭� if (CollectionUtils.isEmpty(downWorkstationOffList)) { list = tempList; } else { - Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> null != (item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); + //绗煎唴瀛樺湪鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝杩囨护鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝浠呰幏鍙栧彲鍑虹墖鐨勭幓鐠冧俊鎭� 鏃犳硶鍑虹墖鐨勭幓鐠冧负锛氭湭缁戝畾鏋跺瓙銆佺粦瀹氭灦瀛愯绂佺敤銆侀潪鏈満姊拌噦瀵瑰簲鐨勬灦瀛� + Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); list = tempList.stream().filter(item -> !listOffMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList()); } + //绌烘灦瀛愯〃绀虹疆涓簍rue isEmptyShelf = Boolean.TRUE; - //todo:濡傛灉绂佺敤鏋跺瓙宸茬粦瀹氭祦绋嬪崱锛屽洜涓烘椂闂翠笉纭畾锛岀瀛愬唴鐨勭幓鐠冨彲閲嶆柊缁戝畾鏂版灦瀛� -// list = tempList.stream().filter(item -> !listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList()); - } } } else { if (flag08 && !"2".equals(glassStatus13)) { //鐩存帴璧颁汉宸ヤ笅鐗� - list = tempList.stream().filter(item -> item.getWidth() > maxWidth || item.getHeight() > maxHeight).collect(Collectors.toList()); + list = tempList.stream().filter(item -> { + double firstLength = Math.max(item.getWidth(), item.getHeight()); + double secondLength = Math.min(item.getWidth(), item.getHeight()); + return firstLength > maxWidth || secondLength > maxHeight; + }).collect(Collectors.toList()); } } if (CollectionUtils.isEmpty(list)) { @@ -357,10 +371,12 @@ return Boolean.FALSE; } String tempGlassId = null; - Boolean isBind = Boolean.FALSE; + Boolean isNeedBind = Boolean.FALSE; for (DownStorageCageDetails item : list) { - if (item.getWidth() > maxWidth || item.getHeight() > maxHeight) { + double firstLength = Math.max(item.getWidth(), item.getHeight()); + double secondLength = Math.min(item.getWidth(), item.getHeight()); + if (firstLength > maxWidth || secondLength > maxHeight) { if (flag08 && !"2".equals(glassStatus13)) { log.info("鐜荤拑瀹藉害鎴栭珮搴﹁秴鍑洪槇鍊硷紝鎵ц浜哄伐涓嬬墖"); tempGlassId = item.getGlassId(); @@ -369,14 +385,15 @@ } } loop: - if (tempGlassId == null) { + if (StringUtils.isBlank(tempGlassId)) { //鑾峰彇姝e湪钀芥灦鐨勭粦瀹氭祦绋嬪崱鐨勪俊鎭�(娴佺▼鍗°�佸眰鏁般�佽惤鏋舵暟閲�) List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.TRUE); List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(downGlassFlowList)) { //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 - tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, workList); - isBind = Boolean.TRUE; + tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList); + + isNeedBind = Boolean.TRUE; break loop; } //灏嗙瀛愬唴鐨勭幓鐠冭繘琛岃繃婊わ紝浠呰幏鍙栨棤娉曡惤鏋剁殑娴佺▼鍗$幓鐠� @@ -388,8 +405,8 @@ // .isNull(DownWorkstation::getFlowCardId)); if (isEmptyShelf) { //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 - tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, workList); - isBind = Boolean.TRUE; + tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList); + isNeedBind = Boolean.TRUE; break loop; } } @@ -407,16 +424,13 @@ DownGlassInfoDTO downGlassInfoDTO = downGlassInfoService.queryDownGlassMaxLayer(item.getFlowCardId()); if (null == downGlassInfoDTO) { // 鍘嗗彶钀芥灦鐜荤拑鎸夌収鐩稿叧娴佺▼鍗″彇鏁版嵁搴撴湭鎵惧埌鏈�澶氱幓鐠冧俊鎭紝琛ㄦ槑褰撳墠娴佺▼鍗′笅鐨勬湁灞傜殑鐜荤拑鍧囨湭钀芥灦锛岀洿鎺ュ彲鍑哄綋鍓嶇幓鐠� - log.info(""); - isBind = Boolean.FALSE; tempGlassId = item.getGlassId(); + log.info("褰撳墠娴佺▼鍗′笉瀛樺湪钀芥灦鐨勭幓鐠冿紝鍙洿鎺ュ嚭鐗囪惤鏋讹紝鐜荤拑id:{}", tempGlassId); break loop; } if (downGlassInfoDTO.getLayer().equals(downGlassInfoDTO.getLayer())) { - log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶�,鐩存帴鍑虹墖"); - //鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟 tempGlassId = item.getGlassId(); - isBind = Boolean.FALSE; + log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶�,鐩存帴鍑虹墖锛岀幓鐠僫d:{}", tempGlassId); break loop; } Integer sequence = downGlassInfoService.queryMaxSequence(item.getFlowCardId(), item.getLayer()); @@ -425,10 +439,8 @@ .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId()) .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence)); if (null != downGlassInfoDTO && downGlassInfo.getWidth() == item.getWidth() && downGlassInfo.getHeight() == item.getHeight()) { - log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�"); - //鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟 tempGlassId = item.getGlassId(); - isBind = Boolean.FALSE; + log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔★紝鐜荤拑id:{}", tempGlassId); break loop; } } @@ -436,31 +448,30 @@ Map<String, List<DownStorageCageDetails>> singleLayerMap = list.stream().filter(item -> item.getTotalLayer() == 1) .collect(Collectors.groupingBy(item -> item.getFlowCardId() + item.getLayer(), Collectors.toList())); - if (tempGlassId == null) { + if (StringUtils.isBlank(tempGlassId)) { if (CollectionUtils.isNotEmpty(singleLayerMap)) { //鑾峰彇宸茶惤鏋舵祦绋嬪崱淇℃伅锛屾寜钀芥灦鏁伴噺鎺掑簭 for (DownGlassInfoDTO e : downGlassInfoDTOList) { List<DownStorageCageDetails> downStorageCageDetails = singleLayerMap.get(e.getFlowCardId() + e.getLayer()); if (CollectionUtils.isNotEmpty(downStorageCageDetails)) { tempGlassId = downStorageCageDetails.get(0).getGlassId(); - isBind = Boolean.FALSE; break; } } } } } - if (tempGlassId == null) { + if (StringUtils.isBlank(tempGlassId)) { log.info("娌℃湁鎵惧埌鍙互涓嬬墖鐨勭殑鐜荤拑锛岀粨鏉熶换鍔�"); return Boolean.FALSE; } else { //鎸夌収鍑虹墖鐨勭幓鐠僫d鏇存柊绗煎唴鐨勭幓鐠冪姸鎬佷负宸插嚭鐗� - return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isBind, cageDetails, workList); + return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isNeedBind, cageDetails, workList); } } public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean - isBind, DownStorageCageDetails cageDetails, List<Integer> workList) { + isNeedBind, DownStorageCageDetails cageDetails, List<Integer> workList) { //鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅 DownStorageCageDetails downStorageCageDetails = null; if (glassId.equals(cageDetails.getGlassId())) { @@ -484,10 +495,10 @@ } Integer endCell = null; - if (isBind) { + if (isNeedBind) { //鑾峰彇绌烘灦瀛愪俊鎭紝灏嗙┖鏋跺瓙淇℃伅缁戝畾娴佺▼鍗� DownWorkstation emptyDownWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>() - .isNull(DownWorkstation::getFlowCardId).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1")); + .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1")); if (null != emptyDownWorkstation) { log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱"); downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer()); @@ -502,7 +513,7 @@ endCell = workstation.getWorkstationId(); } //鏇存柊钀芥灦鐜荤拑鏁伴噺 - if (endCell == 7) { + if (endCell == Const.G13_WORK_STATION) { downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId()) .eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1")); } else { @@ -513,8 +524,9 @@ //鐢熸垚浠诲姟淇℃伅 DownGlassInfo downGlassInfo = new DownGlassInfo(); BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo); - //todo锛氳惤鏋剁墖搴� + //钀芥灦鐗囧簭 downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer())); + downGlassInfo.setWorkStationId(endCell); downGlassInfoService.save(downGlassInfo); //鐢熸垚浠诲姟淇℃伅 GlassInfo glassInfo = new GlassInfo(); -- Gitblit v1.8.0