From 979f2505861b77b8702604739486b62f1e339e76 Mon Sep 17 00:00:00 2001 From: dubin <bindu_bean@163.com> Date: 星期二, 07 十月 2025 08:44:11 +0800 Subject: [PATCH] 联调 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 342 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 254 insertions(+), 88 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 0f8a0f9..af100de 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -71,6 +71,10 @@ private ManLocDetlService manLocDetlService; @Autowired private ManLocDetlMapper manLocDetlMapper; + @Autowired + private MatBarcodeService matBarcodeService; + @Autowired + private AdjDetlService adjDetlService; @Override @@ -105,94 +109,133 @@ Date now = new Date(); // 鏃犲崟缁勬墭 -// if (Cools.isEmpty(param.getOrderNo())) { -// -// // 鐢熸垚鍏ュ簱閫氱煡妗� -// List<DetlDto> detlDtos = new ArrayList<>(); -// param.getCombMats().forEach(elem -> { -// DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); -// if (DetlDto.has(detlDtos, detlDto)) { -// DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); -// assert one != null; -// one.setAnfme(one.getAnfme() + detlDto.getAnfme()); -// } else { -// detlDtos.add(detlDto); -// } -// }); -// -// -// for (DetlDto detlDto : detlDtos) { -// Mat mat = matService.selectByMatnr(detlDto.getMatnr()); -// if (Cools.isEmpty(mat)) { -// throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); -// } -// WaitPakin waitPakin = new WaitPakin(); -// waitPakin.sync(mat); -// waitPakin.setBatch(detlDto.getBatch()); -// waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� -// waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� -// waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺 -// waitPakin.setStatus("Y"); // 鐘舵�� -// waitPakin.setAppeUser(userId); -// waitPakin.setAppeTime(now); -// waitPakin.setModiUser(userId); -// waitPakin.setModiTime(now); -// if (!waitPakinService.insert(waitPakin)) { -// throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); -// } -// } -// // 鍏宠仈缁勬墭 -// } else { + if (Cools.isEmpty(param.getOrderNo())) { - Order order = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", param.getOrderNo())); - if (Cools.isEmpty(order) || order.getSettle() > 2) { - throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); + // 鐢熸垚鍏ュ簱閫氱煡妗� + List<DetlDto> detlDtos = new ArrayList<>(); + param.getCombMats().forEach(elem -> { + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getProType(), elem.getTemp2(), elem.getOutOrderNo()); + detlDto.setMemo(detlDto.getMemo()); + if (DetlDto.has(detlDtos, detlDto)) { + DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); + assert one != null; + one.setAnfme(one.getAnfme() + detlDto.getAnfme()); + } else { + detlDtos.add(detlDto); + } + }); + + + for (DetlDto detlDto : detlDtos) { + Mat mat = matService.selectByMatnr(detlDto.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭� + MatBarcode matBarcode = new MatBarcode(); + MatBarcode mb = matBarcodeService.selectbyMatnr(detlDto.getMatnr()); + if (mb != null){ + if (!mb.getZpallet().equals(param.getBarcode())){ + throw new CoolException(detlDto.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�"); + } + }else { + matBarcode.setZpallet(param.getBarcode());//鎵樼洏鐮� + matBarcode.setMatnr(mat.getMatnr());//鐗╂枡鍙� + matBarcode.setMaktx(mat.getMaktx());//鐗╂枡鍚嶇О + matBarcode.setSpecs(mat.getSpecs());//瑙勬牸 + matBarcode.setModel(mat.getModel());//鍨嬪彿 + if (!matBarcodeService.insert(matBarcode)) { + throw new CoolException("鐗╂枡涓庢墭鐩樼粦瀹氬け璐�"); + } + } + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); + waitPakin.setProType(detlDto.getProType()); + waitPakin.setTemp2(detlDto.getTemp2()); + waitPakin.setOutOrderNo(detlDto.getOutOrderNo()); + waitPakin.setBatch(detlDto.getBatch()); + waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� + waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺 + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + waitPakin.setMemo(detlDto.getMemo()); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + } + // 鍏宠仈缁勬墭 + } else { + + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo())); + if (Cools.isEmpty(order) || order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); + } + // 鐢熸垚鍏ュ簱閫氱煡妗� + List<DetlDto> detlDtos = new ArrayList<>(); + param.getCombMats().forEach(elem -> { + + // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 + //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() ); + OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId()); + if (elem.getAnfme() > orderDetl.getEnableQty()) { + throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); + } + // 淇敼璁㈠崟浣滀笟鏁伴噺 + if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); + } + + Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭� + MatBarcode matBarcode = new MatBarcode(); + MatBarcode mb = matBarcodeService.selectbyMatnr(orderDetl.getMatnr()); + if (mb != null){ + if (!mb.getZpallet().equals(param.getBarcode())){ + throw new CoolException(orderDetl.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�"); + } + }else { + matBarcode.setZpallet(param.getBarcode());//鎵樼洏鐮� + matBarcode.setMatnr(mat.getMatnr());//鐗╂枡鍙� + matBarcode.setMaktx(mat.getMaktx());//鐗╂枡鍚嶇О + matBarcode.setSpecs(mat.getSpecs());//瑙勬牸 + matBarcode.setModel(mat.getModel());//鍨嬪彿 + if (!matBarcodeService.insert(matBarcode)) { + throw new CoolException("鐗╂枡涓庢墭鐩樼粦瀹氬け璐�"); + } + } + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); + waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 + waitPakin.setBatch(orderDetl.getBatch()); // 搴忓垪鐮� + waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� + waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(elem.getAnfme()); // 鏁伴噺 + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + + waitPakin.setBatch(orderDetl.getBatch()); + waitPakin.setSPgNO(orderDetl.getSPgNO()); + waitPakin.setOutOrderNo(orderDetl.getOutOrderNo()); + waitPakin.setProType(orderDetl.getProType()); + waitPakin.setLuHao(orderDetl.getLuHao()); + waitPakin.setPacking(orderDetl.getPacking()); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + }); + + orderService.updateSettle(order.getId(), 2L, userId); } - // 鐢熸垚鍏ュ簱閫氱煡妗� - List<DetlDto> detlDtos = new ArrayList<>(); - param.getCombMats().forEach(elem -> { - - // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 - //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() ); - OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId()); - if (elem.getAnfme() > orderDetl.getEnableQty()) { - throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); - } - // 淇敼璁㈠崟浣滀笟鏁伴噺 - if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) { - throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); - } - - Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); - if (Cools.isEmpty(mat)) { - throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); - } - WaitPakin waitPakin = new WaitPakin(); - waitPakin.sync(mat); - waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 - waitPakin.setBatch(orderDetl.getBatch()); // 搴忓垪鐮� - waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� - waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� - waitPakin.setAnfme(elem.getAnfme()); // 鏁伴噺 - waitPakin.setStatus("Y"); // 鐘舵�� - waitPakin.setAppeUser(userId); - waitPakin.setAppeTime(now); - waitPakin.setModiUser(userId); - waitPakin.setModiTime(now); - - waitPakin.setBatch(orderDetl.getBatch()); - waitPakin.setSPgNO(orderDetl.getSPgNO()); - waitPakin.setOutOrderNo(orderDetl.getOutOrderNo()); - waitPakin.setProType(orderDetl.getProType()); - waitPakin.setLuHao(orderDetl.getLuHao()); - waitPakin.setPacking(orderDetl.getPacking()); - if (!waitPakinService.insert(waitPakin)) { - throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); - } - }); - - orderService.updateSettle(order.getId(), 2L, userId); - // } } @@ -366,7 +409,8 @@ // Mat analyse = MatUtils.analyseMat(elem.getMatnr()); // // 鏉$爜銆佺墿鏂欎唬鐮併�佸簭鍒楀彿銆佹暟閲� // DetlDto detlDto = new DetlDto(elem.getMatnr(), analyse.getMatnr(), analyse.getBarcode(), elem.getAnfme()); -//// DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + + /// / DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); // if (DetlDto.has(detlDtos, detlDto)) { // DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); // assert one != null; @@ -491,7 +535,6 @@ // // } // } - @Override @Transactional public void pakoutByOrder(JSONObject param, Long userId) { @@ -630,4 +673,127 @@ throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } } + + + @Override + @Transactional + public void adjustNew(MobileAdjustParam param, Boolean re, Long userId) { + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("鎵樼洏鐮�:" + param.getBarcode() + " 鏃犳湁鏁堝伐浣滄。"); + } + + + List<CombParam.CombMat> combMats = param.getCombMats(); + String recordRecordLog = "鎵樼洏鐮�" + param.getBarcode() + "鐩樼偣璁板綍锛�"; + AdjDetl adjDetl = new AdjDetl(); + adjDetl.setAppeTime(new Date()); + adjDetl.setAppeUser(userId); + adjDetl.setModiTime(new Date()); + adjDetl.setModiUser(userId); + adjDetl.setLocNo(wrkMast.getSourceLocNo()); + + for (CombParam.CombMat wrkDetl : combMats) { + WrkDetl wrkDetlOld = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>() + .eq("wrk_no", wrkMast.getWrkNo()) + .eq("matnr", wrkDetl.getMatnr()) +// .eq("batch",Cools.isEmpty(wrkDetl.getBatch())?"":wrkDetl.getBatch()) + ); + + + adjDetl.setMatnr(wrkDetl.getMatnr()); + adjDetl.setBatch(wrkDetl.getBatch()); + adjDetl.setAdjQty(wrkDetl.getAnfme()); + + if (Cools.isEmpty(wrkDetlOld)) { + WrkDetl detl = new WrkDetl(); + detl.sync(wrkDetl); + detl.setWrkNo(wrkMast.getWrkNo()); + detl.setZpallet(wrkMast.getBarcode()); + wrkDetlService.insert(detl); + recordRecordLog = recordRecordLog + "\n" + "鏂板涓�鏉℃槑缁�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鏁伴噺锛�" + wrkDetl.getAnfme(); + adjDetl.setOriQty(0.0); + adjDetlService.insert(adjDetl); + + } else if (wrkDetlOld.getAnfme() != wrkDetl.getAnfme()) { + wrkDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + recordRecordLog = recordRecordLog + "\n" + "鏇存柊涓�鏉℃槑缁�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鍘熸暟閲忥細" + wrkDetlOld.getAnfme() + "\t鏂版暟閲忥細" + wrkDetl.getAnfme(); + adjDetl.setOriQty(wrkDetlOld.getAnfme()); + adjDetlService.insert(adjDetl); + + } else if (wrkDetlOld.getAnfme() == wrkDetl.getAnfme()) { + recordRecordLog = recordRecordLog + "\n" + "涓�鏉℃槑缁嗕繚鎸佷笉鍙�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鏁伴噺锛�" + wrkDetlOld.getAnfme(); + continue; + } else { + throw new CoolException("鎵樼洏鐮�:" + param.getBarcode() + " 鏈煡寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + } + log.info(recordRecordLog); + } + + @Override + public void combToWms(WaitPakin waitPakin) { + // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 +// if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). +// eq("zpallet", waitPakin.getBarcode()).eq("io_status", "N")) > 0) { +// throw new CoolException(waitPakin.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); +// } + + if (waitPakin.getBarcode().length() != 8) { + throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + waitPakin.getBarcode()); + } + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", waitPakin.getBarcode())); + int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", waitPakin.getBarcode())); + int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getBarcode())); + if (countLoc > 0 || countWrk > 0) { + throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + waitPakin.getBarcode()); + } + + Date now = new Date(); + // 鐢熸垚鍏ュ簱閫氱煡妗� + List<DetlDto> detlDtos = new ArrayList<>(); + Mat byId = matService.selectById(waitPakin.getModiUser()); + DetlDto detlDto = new DetlDto(byId.getMatnr(), waitPakin.getBatch(), waitPakin.getAnfme(), waitPakin.getProType(), waitPakin.getTemp2(), waitPakin.getOutOrderNo()); + detlDto.setMemo(detlDto.getMemo()); + if (DetlDto.has(detlDtos, detlDto)) { + DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); + assert one != null; + one.setAnfme(one.getAnfme() + detlDto.getAnfme()); + } else { + detlDtos.add(detlDto); + } + + + for (DetlDto dto : detlDtos) { + Mat mat = matService.selectByMatnr(dto.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(dto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭� + MatBarcode mb = matBarcodeService.selectbyMatnr(dto.getMatnr()); + if (mb != null){ + if (!mb.getZpallet().equals(waitPakin.getBarcode())){ + throw new CoolException(detlDto.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�"); + } + } + WaitPakin waitPakin1 = new WaitPakin(); + waitPakin1.sync(mat); + waitPakin1.setProType(dto.getProType()); + waitPakin1.setTemp2(dto.getTemp2()); + waitPakin1.setOutOrderNo(dto.getOutOrderNo()); + waitPakin1.setBatch(dto.getBatch()); + waitPakin1.setZpallet(waitPakin.getBarcode()); // 鎵樼洏鐮� + waitPakin1.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin1.setAnfme(dto.getAnfme()); // 鏁伴噺 + waitPakin1.setStatus("Y"); // 鐘舵�� + waitPakin1.setAppeUser(waitPakin.getAppeUser()); + waitPakin1.setAppeTime(now); + waitPakin1.setModiUser(waitPakin.getAppeUser()); + waitPakin1.setModiTime(now); + waitPakin1.setMemo(detlDto.getMemo()); + if (!waitPakinService.insert(waitPakin1)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + } + } } -- Gitblit v1.9.1