From cba8053789728556f83ed50ca85a98902700e56b Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期二, 16 一月 2024 19:16:41 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 251 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 222 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 4e69974..886ec7b 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -17,7 +17,9 @@ import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; +import com.zy.common.model.LocTypeDto; import com.zy.common.model.MesCombParam; +import com.zy.common.model.StartupDto; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; @@ -39,11 +41,7 @@ @Service public class MobileServiceImpl implements MobileService { - @Value("${srHangJia.url}") - private String srHangJiaUrl; - @Value("${srHangJia.reportInPath}") - private String reportOutPath; @Autowired private MatService matService; @@ -90,34 +88,158 @@ @Override @Transactional public void trussComb(TrussCombParam param, Long userId) { - param.setBarcode(String.valueOf(new Date().getTime())); + Date now = new Date(); + if (param.getSouSta()==145){ + param.setBarcode(String.valueOf(now.getTime())); + }else { + if (Cools.isEmpty(param.getBarcode())){ + throw new CoolException("鍙傛暟锛氭墭鐩樼爜涓虹┖"); + } + } + //鍒ゆ柇param鍙傛暟 if (Cools.isEmpty(param.getPalletizingNo())){ - throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖"); - }else if (Cools.isEmpty(param.getBoxType())){ - throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖"); + throw new CoolException("鍙傛暟锛氱珯鐐圭紪鍙蜂负绌�"); + }else if (Cools.isEmpty(param.getOrderNo())){ + throw new CoolException("鍙傛暟锛氶��璐у崟鍗曞彿 orderNo涓虹┖"); }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() != 1){ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); + }else if (param.getSouSta()==145 || param.getMatList().size() != 1){ + } - param.setStaEnd(param.getPalletizingNo2()); + Order order = orderService.selectByNo(param.getOrderNo()); + if (Cools.isEmpty(order)){ + throw new CoolException("鏈煡璇㈠埌姝よ鍗曪紝鍗曞彿锛�"+param.getOrderNo()); + } + DocType docType = docTypeService.selectById(order.getDocType()); + if (Cools.isEmpty(docType) || !docType.getDocName().equals("閫�璐у叆搴撳崟")){ + throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+"涓嶆槸閫�璐у叆搴撳崟"); + } - try{ - ReturnT<String> success = new PostMesDataUtils().postMesData("妗佹灦涓婁綅杞欢", srHangJiaUrl, reportOutPath, param); - if (success.getCode()!=200){ - throw new CoolException("缁勬墭澶辫触"); + List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){ + throw new CoolException("鏈煡璇㈠埌姝よ鍗曟槑缁嗭紝鍗曞彿锛�"+param.getOrderNo()); + } + List<String> orderBoxNoList = new ArrayList<>(); + for (OrderDetl orderDetl: orderDetls){ + if (orderDetl.getWorkQty()==0){ + orderBoxNoList.add(orderDetl.getBatch()); } - } catch (Exception e){ - throw new CoolException("缁勬墭澶辫触"); + } + if (orderBoxNoList.size()==0 || orderBoxNoList.size()<param.getMatList().size()){ + throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 閫�璐ф暟閲忓ぇ浜庢槑缁嗘暟閲�"); + } + List<String> matListBoxNoList = new ArrayList<>(); + for (TrussCombParam.MatList matList: param.getMatList()){ + if (!orderBoxNoList.contains(matList.getBoxNo())){ + throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�"); + }else { + matListBoxNoList.add(matList.getBoxNo()); + } + } + List<OrderDetl> orderDetlList = new ArrayList<>(); + for (OrderDetl orderDetl: orderDetls){ + if (matListBoxNoList.contains(orderDetl.getBatch())){ + orderDetl.setBrand("1"); + orderDetlList.add(orderDetl); + } + } + String matnr = null; + List<WaitPakin> waitPakins = new ArrayList<>(); + + for (OrderDetl orderDetl:orderDetlList){ + Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + matnr = mat.getMatnr(); + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); + waitPakin.setModel(orderDetl.getModel()); //鎵规 + waitPakin.setSpecs(orderDetl.getSpecs()); //瑙勬牸 + waitPakin.setBatch(orderDetl.getBatch()); //鏈ㄧ缂栫爜 + waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 + waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� + waitPakin.setOrigin(orderDetl.getOrigin()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� + waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(orderDetl.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲� + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + waitPakin.setRollUp(orderDetl.getRollUp()); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + waitPakins.add(waitPakin); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short)1); + + StartupDto dto = commonService.getLocNo(1, 1, 145, matnr,null,null, locTypeDto); + + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + waitPakins.forEach(waitPakin -> { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakin); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setRollUp(waitPakin.getRollUp()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + }); + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("O")){ + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); } } + //wms鍏ュ簱缁勬墭 閫�搴撳崟閫�搴撶粍鎵� @Override @Transactional public void trussCombOrder(TrussCombParam param, Long userId) { - - param.setBarcode(String.valueOf(new Date().getTime())); + Date now = new Date(); + param.setBarcode(String.valueOf(now.getTime())); //鍒ゆ柇param鍙傛暟 if (Cools.isEmpty(param.getPalletizingNo())){ @@ -165,20 +287,91 @@ orderDetlList.add(orderDetl); } } + String matnr = null; + List<WaitPakin> waitPakins = new ArrayList<>(); - - - - - - TrussCombParam trussCombParam = new TrussCombParam(param, order, orderDetlList); - try{ - ReturnT<String> success = new PostMesDataUtils().postMesData("妗佹灦涓婁綅杞欢", srHangJiaUrl, reportOutPath, trussCombParam); - if (success.getCode()!=200){ - throw new CoolException("缁勬墭澶辫触"); + for (OrderDetl orderDetl:orderDetlList){ + Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); } - } catch (Exception e){ - throw new CoolException("缁勬墭澶辫触"); + matnr = mat.getMatnr(); + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); + waitPakin.setModel(orderDetl.getModel()); //鎵规 + waitPakin.setSpecs(orderDetl.getSpecs()); //瑙勬牸 + waitPakin.setBatch(orderDetl.getBatch()); //鏈ㄧ缂栫爜 + waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 + waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� + waitPakin.setOrigin(orderDetl.getOrigin()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� + waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(orderDetl.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲� + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + waitPakin.setRollUp(orderDetl.getRollUp()); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + waitPakins.add(waitPakin); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short)1); + + StartupDto dto = commonService.getLocNo(1, 1, 145, matnr,null,null, locTypeDto); + + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + waitPakins.forEach(waitPakin -> { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakin); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setRollUp(waitPakin.getRollUp()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + }); + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("O")){ + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); } } @Override -- Gitblit v1.9.1