From 31b586dbc4dd87c88ac585f00071df32798e8d42 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 24 九月 2025 15:43:11 +0800 Subject: [PATCH] 缓冲库区修改 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 143 +++++++++++++++++++++++++++++------------------ 1 files changed, 88 insertions(+), 55 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 9048fa9..c02566b 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -29,6 +29,7 @@ import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -97,8 +98,15 @@ @Resource private OrderDetlPakoutService orderDetlPakoutService; + @Autowired private LocCacheService locCacheService; + + @Autowired + private TaskService taskService; + + @Autowired + private TaskDetlService taskDetlService; @Override @Transactional @@ -553,7 +561,8 @@ } // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). - eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { + eq("zpallet", param.getBarcode()) + .eq("io_status", "N")) > 0) { throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); } @@ -572,7 +581,6 @@ // 鏃犲崟缁勬墭 if (Cools.isEmpty(param.getOrderNo())) { - // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { @@ -611,13 +619,13 @@ // 鍏宠仈缁勬墭 } 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) || order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); + } // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 // 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()); @@ -636,6 +644,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.setOrderId(order.getId()); + detlDto.setOrderNo(order.getOrderNo()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.findDto(detlDtos, detlDto); assert one != null; @@ -652,8 +662,8 @@ WaitPakin waitPakin = new WaitPakin(); BeanUtils.copyProperties(mat, waitPakin); // waitPakin.sync(mat); - waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 - waitPakin.setOrderId(order.getId()); + waitPakin.setOrderNo(detlDto.getOrderNo()); // 鍗曟嵁缂栧彿 + waitPakin.setOrderId(detlDto.getOrderId()); waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮� waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� @@ -667,8 +677,12 @@ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } } -// orderService.updateSettle(order.getId(), 2L, userId); - OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId); + + Set<String> stringSet = param.getCombMats().stream().map(CombParam.CombMat::getOrderNo).collect(Collectors.toSet()); + stringSet.forEach(orderNo -> { + Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, orderNo); + OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId); + }); } } @@ -1167,79 +1181,98 @@ /** * @author Ryan + * @date 2025/9/24 + * @description: 鑾峰彇璁㈠崟鐗╂枡淇℃伅 + * @version 1.0 + */ + @Override + public R getMatsByQRcode(PakinMatsByQRParams params) { + if (Objects.isNull(params)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(params.getOrderNo())) { + throw new CoolException("鍗曞彿涓嶈兘涓虹┖锛侊紒"); + } + OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("order_no", params.getOrderNo())); + if (Objects.isNull(orderPakin)) { + throw new CoolException("鏁版嵁閿欒锛氬崟鎹笉瀛樺湪锛侊紒"); + } + List<OrderDetlPakin> detlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>() + .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr()) + .eq("order_id", orderPakin.getId())); + if (Objects.isNull(detlPakins) || detlPakins.isEmpty()) { + throw new CoolException("鏁版嵁閿欒锛� 鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�"); + } + + return R.ok().add(detlPakins); + } + + /** + * @author Ryan * @date 2025/9/22 * @description: 鐢熸垚AGV鎼繍浠诲姟 * @version 1.0 */ @Transactional(rollbackFor = Exception.class) public void generateAgvTask(String type, LocCache loc, String orgSite, String barcode, Long userId) { - WaitPakin pakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); - if (Objects.isNull(pakin)) { + List<WaitPakin> pakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); + if (Objects.isNull(pakins) || pakins.isEmpty()) { throw new CoolException("缁勬墭淇℃伅涓嶅瓨鍦紒锛�"); } - OrderPakin orderPakin = orderPakinService.selectById(pakin.getOrderId()); - if (Objects.isNull(orderPakin)) { - throw new CoolException("鍗曟嵁涓嶈兘涓虹┖锛侊紒"); - } - - List<OrderDetlPakin> detls = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", pakin.getOrderId())); - if (Objects.isNull(detls) || detls.isEmpty()) { - throw new CoolException("鏁版嵁閿欒锛氬崟鎹槑缁嗕笉瀛樺湪锛侊紒"); - } - - Date now = new Date(); // 鑾峰彇宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.PICK.type); // 淇濆瓨宸ヤ綔妗� - WrkMast wrkMast = new WrkMast(); - wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(now); - wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID - wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 - wrkMast.setTaskType("agv"); - wrkMast.setIoPri(10D); - wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅 - wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 - wrkMast.setPicking("N"); // 鎷f枡 - wrkMast.setExitMk("N"); // 閫�鍑� - wrkMast.setSourceStaNo(orgSite); - wrkMast.setEmptyMk(loc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘 - wrkMast.setBarcode(barcode); // 鎵樼洏鐮� - wrkMast.setLinkMis("N"); - wrkMast.setAppeUser(userId); - wrkMast.setAppeTime(now); - wrkMast.setModiUser(userId); - wrkMast.setModiTime(now); - if (!wrkMastService.insert(wrkMast)) { + Task task = new Task(); + task.setWrkNo(workNo) + .setIoTime(new Date()) + .setWrkSts(11L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + .setIoType(11) // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 + .setTaskType("agv") + .setIoPri(10D) + .setLocNo(loc.getLocNo()) // 鐩爣搴撲綅 + .setFullPlt("Y") // 婊℃澘锛歒 + .setPicking("N") // 鎷f枡 + .setExitMk("N")// 閫�鍑� + .setSourceStaNo(orgSite) + .setEmptyMk(loc.getLocSts().equals("D") ? "Y" : "N")// 绌烘澘 + .setBarcode(barcode)// 鎵樼洏鐮� + .setLinkMis("N") + .setAppeUser(userId) + .setAppeTime(new Date()) + .setModiUser(userId) + .setModiTime(new Date()); + if (!taskService.insert(task)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } - List<WrkDetl> taskDetls = new ArrayList<>(); - detls.forEach(detl -> { - WrkDetl wrkDetl = new WrkDetl(); - BeanUtils.copyProperties(detl, wrkDetl); + List<TaskDetl> taskDetls = new ArrayList<>(); + pakins.forEach(pakin -> { + TaskDetl wrkDetl = new TaskDetl(); + BeanUtils.copyProperties(pakin, wrkDetl); wrkDetl.setWrkNo(workNo) .setIoTime(new Date()) - .setAnfme(detl.getAnfme()) + .setOrderNo(pakin.getOrderNo()) + .setAnfme(pakin.getAnfme()) .setZpallet(pakin.getZpallet()) - .setBatch(detl.getBatch()) - .setMatnr(detl.getMatnr()) - .setMaktx(detl.getMaktx()) + .setBatch(pakin.getBatch()) + .setMatnr(pakin.getMatnr()) + .setMaktx(pakin.getMaktx()) .setAppeUser(userId) - .setUnit(detl.getUnit()) - .setModel(detl.getModel()) + .setUnit(pakin.getUnit()) + .setModel(pakin.getModel()) .setAppeTime(new Date()) .setModiUser(userId); taskDetls.add(wrkDetl); }); + //淇濆瓨宸ヤ綔妗f槑缁� - if (!wrkDetlService.insertBatch(taskDetls)) { + if (!taskDetlService.insertBatch(taskDetls)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } // 淇敼鐩爣搴撲綅鐘舵�� if (loc.getLocSts().equals("O")) { loc.setLocSts("S"); // S.鍏ュ簱棰勭害 - loc.setModiTime(now); + loc.setModiTime(new Date()); loc.setModiUser(userId); if (!locCacheService.updateById(loc)) { throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); -- Gitblit v1.9.1