From b96e4a05a6e7d85d5a10491dbbecd22158f4e9d1 Mon Sep 17 00:00:00 2001 From: lsh <lsh> Date: 星期四, 11 七月 2024 11:04:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 330 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 328 insertions(+), 2 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 7aa331b..aeded4d 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -14,6 +14,7 @@ import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.service.*; import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.utils.CodeDetectionUtil; import com.zy.asrs.utils.MatUtils; import com.zy.asrs.utils.PostMesDataUtils; import com.zy.common.model.DetlDto; @@ -80,6 +81,8 @@ private StaDescService staDescService; @Autowired private LocMastService locMastService; + @Autowired + private WorkService workService; @Override @Transactional @@ -551,7 +554,7 @@ } else { tagId = tagService.getTop().getId(); } - mat.sync(param); + mat.sync(matParam); // mat.setMatnr(param.getMatnr()); // mat.setMaktx(param.getMaktx()); // mat.setSpecs(param.getSpecs()); @@ -567,7 +570,7 @@ log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); } } else { - mat.sync(param); + mat.sync(matParam); if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) { throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳"); } @@ -1044,4 +1047,327 @@ } /*...........................涓婇ザ姹熼摐..............浠ヤ笂.............寰愬伐姹変簯...........................*/ + + + /*...........................浜冲窞鐓滄槦..............浠ヤ笅.............浜冲窞鐓滄槦...........................*/ + /* + * 浜冲窞鐓滄槦浠诲姟涓嬪彂 // + * */ + @Override + @Transactional + public void smallContainers(SmallCompleteParam param) { + try{ + //鍒ゆ柇param鍙傛暟 + if (Cools.isEmpty(param.getType())){ + throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖"); + } + if (param.getType()==0){//鐩存帴鍏ュ簱 + smallContainersSmall(param); + } else if (param.getType()==1){//搴撳唴渚涗骇绾� //鍑哄簱 + smallContainersBig(param); + } else if (param.getType()==2){//鍏ュ簱 閫斿緞 纭寲缃� + smallContainersJar(param); + } else if (param.getType()==3){//鐩翠緵浜х嚎 + smallContainersSta(param); + } + } catch (Exception e){ + throw new CoolException("澶辫触锛侊紒锛佸師鍥狅細"+e.getMessage()); + } + } + + /* + * 灏忔枡绠辨姇鏂欏畬鎴愮粍鎵� + * */ + public void smallContainersSmall(SmallCompleteParam param) {//鐩存帴鍏ュ簱 + Long userId = 7777L;//mes + //鍒ゆ柇param鍙傛暟 + if (Cools.isEmpty(param.getType())){ + throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖"); + }else if (Cools.isEmpty(param.getStaNo())){ + throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖"); +// }else if (Cools.isEmpty(param.getDevNo())){ +// throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖"); + }else if (Cools.isEmpty(param.getMatnr())){ + throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖"); + }else if (Cools.isEmpty(param.getWeight())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖"); + }else if (Cools.isEmpty(param.getColor())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓鑹� color涓虹┖"); + } + + Mat mat = matService.selectByMatnr(param.getMatnr()); + if (Cools.isEmpty(mat)) { +// mat = new Mat(); +// mat.setMatnr(param.getMatnr()); +// mat.setMaktx(param.getMatnr()); +// mat.setTagId(tagService.getTop().getId()); +// mat.setCreateBy(userId); +// mat.setCreateTime(now); +// mat.setUpdateBy(userId); +// mat.setUpdateTime(now); +// mat.setStatus(1); +// if (!matService.insert(mat)) { +// throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } + throw new CoolException("鐗╂枡锛�"+param.getMatnr()+" 涓嶅瓨鍦紝璇峰厛涓嬪彂鐗╂枡鍩虹淇℃伅"); + } + + + BasDevp basDevp = basDevpService.selectById(param.getStaNo()); + if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�"); + } + if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�"); + } + if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�"); + } + if (Cools.isEmpty(basDevp.getBarcode())){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode()); + } + if (CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode()); + } + + + if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0 + || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0 + || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){ + throw new CoolException("鎵樼洏鏉$爜锛�"+basDevp.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭"); + } + + + Date now = new Date(); + + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); +// waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿 +// waitPakin.setModel(matList.getModel()); //鍗峰彿 鍞竴鍊� +// 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(String.valueOf(matList.getJoint())); //鎺ュご +// waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� +// waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 + waitPakin.setColor(param.getColor()); // 棰滆壊 + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + } + /* + * 鍑哄簱 + * 鐩翠緵浜х嚎 + * */ + public void smallContainersBig(SmallCompleteParam param) {//鐩翠緵浜х嚎//鍑哄簱 + Long userId = 7777L;//mes + //鍒ゆ柇param鍙傛暟 + if (Cools.isEmpty(param.getType())){ + throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖"); +// }else if (Cools.isEmpty(param.getStaNo())){ +// throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖"); + }else if (Cools.isEmpty(param.getDevNo())){ + throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖"); + }else if (Cools.isEmpty(param.getMatnr())){ + throw new CoolException("鍙傛暟锛氬搧鍙� matnr涓虹┖"); + }else if (Cools.isEmpty(param.getWeight())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖"); + }else if (Cools.isEmpty(param.getColor())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓鑹� color涓虹┖"); + } + + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight()).eq("color", param.getColor())); + if (locDetls.isEmpty()){ + locDetls = new ArrayList<LocDetl>(); + } + if (locDetls.isEmpty()){ + throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight()+"锛涢鑹�==銆媍olor:"+param.getColor()); + } + for (LocDetl locDetl : locDetls){ + StockOutParam stockOutParam = new StockOutParam(param,locDetl); + workService.startupFullTakeStore(stockOutParam, userId); + } + } + public void smallContainersJar(SmallCompleteParam param) { + Long userId = 7777L;//mes + //鍒ゆ柇param鍙傛暟 + if (Cools.isEmpty(param.getType())){ + throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖"); + }else if (Cools.isEmpty(param.getStaNo())){ + throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖"); +// }else if (Cools.isEmpty(param.getDevNo())){ +// throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖"); + }else if (Cools.isEmpty(param.getMatnr())){ + throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖"); + }else if (Cools.isEmpty(param.getWeight())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖"); + }else if (Cools.isEmpty(param.getColor())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓鑹� color涓虹┖"); + } + + Mat mat = matService.selectByMatnr(param.getMatnr()); + if (Cools.isEmpty(mat)) { +// mat = new Mat(); +// mat.setMatnr(param.getMatnr()); +// mat.setMaktx(param.getMatnr()); +// mat.setTagId(tagService.getTop().getId()); +// mat.setCreateBy(userId); +// mat.setCreateTime(now); +// mat.setUpdateBy(userId); +// mat.setUpdateTime(now); +// mat.setStatus(1); +// if (!matService.insert(mat)) { +// throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } + throw new CoolException("鐗╂枡锛�"+param.getMatnr()+" 涓嶅瓨鍦紝璇峰厛涓嬪彂鐗╂枡鍩虹淇℃伅"); + } + + + BasDevp basDevp = basDevpService.selectById(param.getStaNo()); + if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�"); + } + if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�"); + } + if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�"); + } + if (Cools.isEmpty(basDevp.getBarcode())){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode()); + } + if (CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode()); + } + + + if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0 + || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0 + || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){ + throw new CoolException("鎵樼洏鏉$爜锛�"+basDevp.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭"); + } + + + Date now = new Date(); + + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); +// waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿 +// waitPakin.setModel(matList.getModel()); //鍗峰彿 鍞竴鍊� +// 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(String.valueOf(matList.getJoint())); //鎺ュご +// waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� +// waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 + waitPakin.setColor(param.getColor()); // 棰滆壊 + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + + + } + + public void smallContainersSta(SmallCompleteParam param) { + Long userId = 7777L;//mes + //鍒ゆ柇param鍙傛暟 + if (Cools.isEmpty(param.getType())){ + throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖"); + }else if (Cools.isEmpty(param.getStaNo())){ + throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖"); + }else if (Cools.isEmpty(param.getDevNo())){ + throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖"); + }else if (Cools.isEmpty(param.getMatnr())){ + throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖"); + }else if (Cools.isEmpty(param.getWeight())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖"); + }else if (Cools.isEmpty(param.getColor())){ + throw new CoolException("鍙傛暟锛氱墿鏂欓鑹� color涓虹┖"); + } + + Mat mat = matService.selectByMatnr(param.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException("鐗╂枡锛�"+param.getMatnr()+" 涓嶅瓨鍦紝璇峰厛涓嬪彂鐗╂枡鍩虹淇℃伅"); + } + + Date now = new Date(); + + BasDevp basDevp = basDevpService.selectById(param.getStaNo()); + if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�"); + } + if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�"); + } + if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�"); + } + if (Cools.isEmpty(basDevp.getBarcode())){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode()); + } + if (CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){ + throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode()); + } + + + if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0 + || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0 + || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){ + throw new CoolException("鎵樼洏鏉$爜锛�"+basDevp.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭"); + } + + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(202)); + + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(51L); // 宸ヤ綔鐘舵�侊細鐢熸垚ID + wrkMast.setIoType(202); // 鍏ュ嚭搴撶姸鎬侊細202.鐩翠緵浜х嚎 + wrkMast.setIoPri(99D); // 浼樺厛绾� + wrkMast.setSourceStaNo(param.getStaNo()); + wrkMast.setStaNo(param.getDevNo()); + wrkMast.setBarcode(basDevp.getBarcode()); + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeUser(userId); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + if (!wrkMastService.insert(wrkMast)) { + throw new CoolException("鐢熸垚宸ヤ綔妗eけ璐�==銆嬪皬鏂欑鐩翠緵浜х嚎浠诲姟鐢熸垚"); + } + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setMatnr(param.getMatnr()); + wrkDetl.setAnfme(1D); + wrkDetl.setWeight(param.getWeight()); + wrkDetl.setBarcode(basDevp.getBarcode()); + wrkDetl.setZpallet(basDevp.getBarcode()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触==銆嬪皬鏂欑鐩翠緵浜х嚎浠诲姟鏄庣粏鐢熸垚"); + } + + } + + /*...........................浜冲窞鐓滄槦..............浠ヤ笂.............浜冲窞鐓滄槦...........................*/ } -- Gitblit v1.9.1