From 532edf4466b91bb0432ccb6b170cc914af6be8f7 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 12 六月 2025 11:06:39 +0800 Subject: [PATCH] 转库出库初步完成,生成单据也成功了;显示需要添加菜单及其权限 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 77 insertions(+), 22 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 2238830..585613e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -13,11 +13,12 @@ import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; +import com.zy.asrs.utils.MathUtils; import com.zy.asrs.utils.OrderInAndOutUtil; import com.zy.common.model.DetlDto; import com.zy.common.model.enums.WorkNoType; import com.zy.common.service.CommonService; -import com.zy.nc.entity.NccJcQilibcBarcodeflowWms; +import com.zy.common.utils.Synchro; import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -48,6 +49,8 @@ @Autowired private WrkMastService wrkMastService; @Autowired + private WorkService workService; + @Autowired private WrkDetlService wrkDetlService; @Autowired private PackService packService; @@ -73,6 +76,12 @@ private ManLocDetlService manLocDetlService; @Autowired private ManLocDetlMapper manLocDetlMapper; + + @Autowired + private InventoryCheckOrderService inventoryCheckOrderService; + + @Autowired + private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; @Autowired private AdjDetlService adjDetlService; @@ -523,7 +532,7 @@ ArrayList<PickMatParam> maps = new ArrayList<>(); for (OrderDetl orderDetl : list) { //鍓╀綑鍙敤鏁伴噺 - double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); + double count = MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty()); if (count <= 0) { continue; } @@ -572,13 +581,14 @@ Date now = new Date(); // 鏃犲崟缁勬墭 - if (Cools.isEmpty(param.getOrderNo())) { + if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) { // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(), elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme()); + detlDto.setWeight(elem.getWeight()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.findDto(detlDtos, detlDto); assert one != null; @@ -596,6 +606,7 @@ } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); + waitPakin.setWeight(detlDto.getWeight()); waitPakin.setBatch(detlDto.getBatch()); waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� @@ -605,6 +616,12 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setBoxType1(detlDto.getBoxType1()); + waitPakin.setBoxType2(detlDto.getBoxType2()); + waitPakin.setBoxType3(detlDto.getBoxType3()); + waitPakin.setStandby1(detlDto.getStandby1()); + waitPakin.setStandby2(detlDto.getStandby2()); + waitPakin.setStandby3(detlDto.getStandby3()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } @@ -612,18 +629,20 @@ // 鍏宠仈缁勬墭 } else { // Order order = orderService.selectByNo(param.getOrderNo()); - Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, param.getOrderNo()); - if (Cools.isEmpty(order) || order.getSettle() > 2) { - throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); - } + // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { - + Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, elem.getOrderNo()); + if (Cools.isEmpty(order)) { + throw new CoolException("鍗曟嵁缂栧彿涓嶅瓨鍦�"); + } + if (order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸蹭綔涓氬畬鎴�"); + } // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 -// OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.TRUE, order.getId(), elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(), elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3()); if (elem.getAnfme() > orderDetl.getEnableQty()) { @@ -637,6 +656,8 @@ elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme()); DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(), elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme()); + detlDto.setOrderNo(elem.getOrderNo()); + detlDto.setWeight(elem.getWeight()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.findDto(detlDtos, detlDto); assert one != null; @@ -644,6 +665,8 @@ } else { detlDtos.add(detlDto); } + + OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId); }); for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); @@ -652,7 +675,7 @@ } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); - waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 + waitPakin.setOrderNo(detlDto.getOrderNo()); // 鍗曟嵁缂栧彿 waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮� waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� @@ -662,12 +685,19 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setBoxType1(detlDto.getBoxType1()); + waitPakin.setBoxType2(detlDto.getBoxType2()); + waitPakin.setBoxType3(detlDto.getBoxType3()); + waitPakin.setStandby1(detlDto.getStandby1()); + waitPakin.setStandby2(detlDto.getStandby2()); + waitPakin.setStandby3(detlDto.getStandby3()); + waitPakin.setWeight(detlDto.getWeight()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } } // orderService.updateSettle(order.getId(), 2L, userId); - OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId); + } } @@ -731,14 +761,14 @@ @Override @Transactional public void adjust(MobileAdjustParam param, Long userId) { - BasDevp basDevp = basDevpService.selectById(param.getStaNo()); - if (null == basDevp || basDevp.getWrkNo() == null) { - throw new CoolException(param.getStaNo() + "鐩樼偣绔欐棤鏁�"); - } - if (!param.getWrkNo().equals(basDevp.getWrkNo())) { - throw new CoolException(param.getStaNo() + "鐩樼偣绔欐洿鏂帮紝璇烽噸鏂版绱�"); - } - WrkMast wrkMast = wrkMastService.selectById(param.getWrkNo()); +// BasDevp basDevp = basDevpService.selectById(param.getStaNo()); +// if (null == basDevp || basDevp.getWrkNo() == null) { +// throw new CoolException(param.getStaNo() + "鐩樼偣绔欐棤鏁�"); +// } +// if (!param.getWrkNo().equals(basDevp.getWrkNo())) { +// throw new CoolException(param.getStaNo() + "鐩樼偣绔欐洿鏂帮紝璇烽噸鏂版绱�"); +// } + WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); if (wrkMast.getWrkSts() < 10) { throw new CoolException("鐩樼偣鏃犳晥锛屼换鍔″凡鐩樼偣鍐嶅叆搴�"); } @@ -746,7 +776,10 @@ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); List<WrkDetl> list = param.getWrkDetls(); + LocDetlAdjustParam adjustParam = new LocDetlAdjustParam(); + List<LocDetlAdjustParam.LocDetlAdjust> locDetlAdjusts = new ArrayList<>(); + adjustParam.setLocNo(wrkMast.getSourceLocNo()); // 淇敼鏁伴噺 Iterator<WrkDetl> iterator = wrkDetls.iterator(); while (iterator.hasNext()) { @@ -765,6 +798,7 @@ throw new CoolException(wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); } } + //濡傛灉宸茬粡鎷f枡鍥炲簱锛屽氨闇�瑕佸彇locNo瀛楁 iterator.remove(); iterator1.remove(); } @@ -796,15 +830,36 @@ if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触"); } + String locNo = Cools.isEmpty(wrkMast.getLocNo()) ? wrkMast.getSourceLocNo() : wrkMast.getLocNo(); + List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no", locNo)); + for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) { + if (wrkDetl.getMatnr().equals(checkOrderDetl.getMatnr()) && Cools.eq(wrkDetl.getBatch(), checkOrderDetl.getBatch())) { + checkOrderDetl.setCheckAnfme(wrkDetl.getAnfme()); + checkOrderDetl.setStatus("2"); + } else { + InventoryCheckOrderDetl newDetl = new InventoryCheckOrderDetl(); + Synchro.Copy(wrkDetl, newDetl); + newDetl.setAnfme(0D); + newDetl.setCheckAnfme(wrkDetl.getAnfme()); + newDetl.setOrderNo(checkOrderDetl.getOrderNo()); + newDetl.setStatus("2"); + } + } } - + List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); + for (WrkDetl wrkDetl : wrkDetls1) { + LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()); + locDetlAdjusts.add(locDetlAdjust); + } // 淇敼鐩樼偣浠诲姟涓绘。鐘舵�� - wrkMast.setFullPlt(wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).size() != 0 ? "Y" : "N"); + wrkMast.setFullPlt(wrkDetls1.size() != 0 ? "Y" : "N"); wrkMast.setModiTime(now); wrkMast.setModiUser(userId); if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("淇敼鐩樼偣浠诲姟涓绘。澶辫触"); } + adjustParam.setList(locDetlAdjusts); + workService.adjustLocDetl2(adjustParam, userId); } @@ -1012,7 +1067,7 @@ } //鍙嚭搴撴暟閲� = 璁㈠崟鏁伴噺 - 浣滀笟涓暟閲� - Double outQty = orderDetl.getAnfme() - orderDetl.getWorkQty(); + Double outQty = MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty()); if (outQty <= 0) { break; } -- Gitblit v1.9.1