From 6ac06048d7cb60fa07b75c7eae2864487069aa6f Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 24 九月 2025 15:26:40 +0800 Subject: [PATCH] 站点管理优化 组托管理优化 AGV任务管理优化 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 97 +++++++++++++++++++++++++++++++----------------- 1 files changed, 62 insertions(+), 35 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 b01b75f..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; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -560,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湪杩涜鍏ュ簱"); } @@ -617,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()); @@ -642,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; @@ -658,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"); // 鍏ュ嚭鐘舵�� @@ -673,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); + }); } } @@ -1173,33 +1181,50 @@ /** * @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); // 淇濆瓨宸ヤ綔妗� Task task = new Task(); task.setWrkNo(workNo) - .setIoTime(now) + .setIoTime(new Date()) .setWrkSts(11L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID .setIoType(11) // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 .setTaskType("agv") @@ -1208,36 +1233,38 @@ .setFullPlt("Y") // 婊℃澘锛歒 .setPicking("N") // 鎷f枡 .setExitMk("N")// 閫�鍑� - .setSourceLocNo(orgSite) + .setSourceStaNo(orgSite) .setEmptyMk(loc.getLocSts().equals("D") ? "Y" : "N")// 绌烘澘 .setBarcode(barcode)// 鎵樼洏鐮� .setLinkMis("N") .setAppeUser(userId) - .setAppeTime(now) + .setAppeTime(new Date()) .setModiUser(userId) - .setModiTime(now); + .setModiTime(new Date()); if (!taskService.insert(task)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } List<TaskDetl> taskDetls = new ArrayList<>(); - detls.forEach(detl -> { + pakins.forEach(pakin -> { TaskDetl wrkDetl = new TaskDetl(); - BeanUtils.copyProperties(detl, wrkDetl); + 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 (!taskDetlService.insertBatch(taskDetls)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); @@ -1245,7 +1272,7 @@ // 淇敼鐩爣搴撲綅鐘舵�� 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