From f41987779e09b4bf2e10df27ff60f4b28318d630 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 21 八月 2025 17:15:38 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 87 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index e4767f4..64997b7 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -19,6 +19,7 @@ import com.zy.asrs.utils.CodeDetectionUtil; import com.zy.asrs.utils.MatUtils; import com.zy.asrs.utils.PostMesDataUtils; +import com.zy.asrs.utils.Utils; import com.zy.common.model.DetlDto; import com.zy.common.model.LocTypeDto; import com.zy.common.model.StartupDto; @@ -426,7 +427,7 @@ null // 澶囨敞 ); if (tagMapper.insert(priTag) == 0) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("涓�绾у垎绫诲垱寤哄紓甯革紝璇疯仈绯荤鐞嗗憳"); } } // 浜岀骇鍒嗙被 @@ -456,7 +457,7 @@ null // 澶囨敞 ); if (tagMapper.insert(secTag) == 0) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("浜岀骇鍒嗙被鍒涘缓寮傚父锛岃鑱旂郴绠$悊鍛�"); } } tagId = secTag.getId(); @@ -472,7 +473,7 @@ mat.setCreateTime(now); mat.setUpdateTime(now); if (!matService.insert(mat)) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("鐗╂枡淇℃伅鏂板寮傚父锛岃鑱旂郴绠$悊鍛�"); } else { log.info("鎵撳寘涓婄嚎娣诲姞鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); } @@ -526,7 +527,7 @@ null // 澶囨敞 ); if (tagMapper.insert(priTag) == 0) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("涓�绾у垎绫诲垱寤哄紓甯革紝璇疯仈绯荤鐞嗗憳"); } } // 浜岀骇鍒嗙被 @@ -556,7 +557,7 @@ null // 澶囨敞 ); if (tagMapper.insert(secTag) == 0) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("浜岀骇鍒嗙被鍒涘缓寮傚父锛岃鑱旂郴绠$悊鍛�"); } } tagId = secTag.getId(); @@ -574,7 +575,7 @@ mat.setCreateTime(now); mat.setUpdateTime(now); if (!matService.insert(mat)) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("鏂板鐗╂枡淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); } else { log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); } @@ -813,7 +814,7 @@ } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); - waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿 + waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 鎵规 waitPakin.setModel(matList.getModel()); //鍗峰彿 鍞竴鍊� waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� @@ -821,7 +822,7 @@ waitPakin.setWeight(matList.getWeight()); //鍑�閲� waitPakin.setVolume(matList.getRoughWeight()); //姣涢噸 waitPakin.setPrice(matList.getRollExtent()); //闀垮害 - waitPakin.setSpecs(String.valueOf(matList.getJoint())); //鎺ュご + waitPakin.setSpecs(String.valueOf(matList.getJoint())); //鎺ュご MES璁㈠崟鍙� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 waitPakin.setStatus("Y"); // 鐘舵�� @@ -1133,8 +1134,20 @@ if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�"); } - if (Cools.isEmpty(basDevp.getBarcode())){ + if (Cools.isEmpty(basDevp.getBarcode()) || basDevp.getBarcode().equals("00000000")){ throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode()); + } + if (!basDevp.getInEnable().equals("Y")){ + try{ + Thread.sleep(500); + } catch (Exception e){ + + } + BasDevp basDevp1111 = basDevpService.selectById(param.getStaNo()); + if (!basDevp1111.getInEnable().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐癸紝璇风瓑寰呯炕杞畬鎴愶紱鏂欑鐮�==銆�"+basDevp.getBarcode()); + } + } if (!CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){ throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode()); @@ -1153,14 +1166,14 @@ WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setBatch(param.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿 - waitPakin.setModel(param.getTaskNo()); //鍗峰彿 鍞竴鍊� + waitPakin.setModel(param.getTaskNo()); //鍗峰彿 鍞竴鍊� 宸ヤ綔鍙� // waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 waitPakin.setZpallet(basDevp.getBarcode()); //鎵樼洏鐮� // waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� waitPakin.setWeight(param.getWeight()); //鍑�閲� // waitPakin.setVolume(matList.getRoughWeight()); //姣涢噸 // waitPakin.setPrice(matList.getRollExtent()); //闀垮害 - waitPakin.setSpecs(param.getOrderNo()); //鍗曞彿 鍊熺敤 + waitPakin.setSpecs(param.getOrderNo()); //MES璁㈠崟鍙� 鍊熺敤瑙勬牸 // waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� // waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 waitPakin.setColor(param.getColor()); // 棰滆壊 @@ -1199,7 +1212,7 @@ throw new CoolException("鍝佸彿 matnr,璇峰厛涓嬪彂鍩虹妗f锛侊紒锛�"); } if (Cools.isEmpty(mat.getUnits())){ - throw new CoolException("鍝佸彿 matnr,閲嶉噺鑼冨洿鍋忕Щ鍊间负绌猴紒锛侊紒,璇峰厛涓嬪彂鍩虹妗f锛侊紒锛�"); + throw new CoolException("鍝佸彿 matnr,閲嶉噺鑼冨洿鍋忕Щ鍊间负绌猴紒锛侊紒,璇峰厛缁存姢鍩虹妗f锛侊紒锛�"); } ArrayList<Integer> crns =new ArrayList<>(); @@ -1232,10 +1245,15 @@ } ArrayList<LocDetl> locDetlArrayList = new ArrayList<>(); - Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight()); - if (param.getDevNo() == 536) { + Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>() + .eq("matnr", param.getMatnr()) + .eq("weight", param.getWeight()); + if (param.getDevNo() == 536){ wrapper.eq("model", param.getModel()) - .eq("specs", param.getOrderNo()); + .eq("specs", param.getOrderNo()) + .orderBy("appe_time", true); + } else { + wrapper.orderBy("batch", true); } List<LocDetl> locDetls = locDetlService.selectList(wrapper); @@ -1258,11 +1276,16 @@ Wrapper<LocDetl> locDetlWrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()) .lt("weight", param.getWeight() + mat.getUnits()) .and() - .gt("weight", param.getWeight()) - .orderBy("weight", true); + .gt("weight", param.getWeight()); if (param.getDevNo() == 536){ locDetlWrapper.eq("model", param.getModel()) - .eq("specs", param.getOrderNo()); + .eq("specs", param.getOrderNo()) + .orderBy("appe_time", true) + .orderBy("weight", true); + } else { + locDetlWrapper + .orderBy("batch", true) + .orderBy("weight", true); } locDetls = locDetlService.selectList(locDetlWrapper); if (locDetls.isEmpty()){ @@ -1283,11 +1306,16 @@ Wrapper<LocDetl> locDetlWrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()) .gt("weight", param.getWeight() - mat.getUnits()) .and() - .lt("weight", param.getWeight()) - .orderBy("weight", false); + .lt("weight", param.getWeight()); if (param.getDevNo() == 536){ locDetlWrapper.eq("model", param.getModel()) - .eq("specs", param.getOrderNo()); + .eq("specs", param.getOrderNo()) + .orderBy("appe_time", true) + .orderBy("weight", false); + } else { + locDetlWrapper + .orderBy("batch", true) + .orderBy("weight", false); } locDetls = locDetlService.selectList(locDetlWrapper); @@ -1311,12 +1339,48 @@ if (locDetlArrayList.size()<batchNum){ throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayList.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum()); } + ArrayList<String> locS = new ArrayList<>(); + + ArrayList<LocDetl> locDetlArrayAnd = new ArrayList<>(); + for (LocDetl locDetl : locDetlArrayList){ + if (!locS.contains(locDetl.getLocNo())){ + locDetlArrayAnd.add(locDetl); + locS.add(locDetl.getLocNo()); + if (crnList.contains(1) || crnList.contains(2)){ + String singleLoc = Utils.singleLoc(locDetl.getLocNo()); + if (Cools.isEmpty(singleLoc)){ + log.error("寮傚父搴撲綅鍙凤細"+singleLoc+"锛涜緭鍏ュ簱浣嶅彿锛�"+locDetl.getLocNo()); + continue; + } + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", singleLoc)); + if (locMast.getLocSts().equals("F")){ + LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", singleLoc)); + if (Cools.isEmpty(locDetl1)){ + throw new CoolException("搴撲綅"+locMast.getLocNo()+"寮傚父锛屽湪搴撲絾鏄棤搴撳瓨锛侊紒锛�"); + } + if (!locS.contains(locDetl1.getLocNo())){ + if (locDetl1.getMatnr().equals(locDetl.getMatnr())){ + locDetlArrayAnd.add(locDetl1); + locS.add(locDetl1.getLocNo()); + } + } + } + } + } + } + + if (locDetlArrayAnd.isEmpty()){ + throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight()); + } + if (locDetlArrayAnd.size()<batchNum){ + throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayAnd.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum()); + } ArrayList<LocDetl> locDetlArraySou = new ArrayList<>(); - for (LocDetl locDetl : locDetlArrayList){ + for (LocDetl locDetl : locDetlArrayAnd){ if (batchNum <= 0){ - return; + break; } locDetlArraySou.add(locDetl); batchNum --; -- Gitblit v1.9.1