From a5ba6fbce1527c514392c01a914e15365d32dfab Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期四, 19 六月 2025 14:14:20 +0800 Subject: [PATCH] #批量出库同一托盘不同箱号界面显示bug修复 --- src/main/java/com/zy/asrs/controller/OutController.java | 103 ++++++++++++++++++++++++++------------------------- 1 files changed, 53 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 3cd93bf..51211a5 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -63,72 +63,75 @@ return R.parse(BaseRes.PARAM); } - // 璁㈠崟鏄庣粏 List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); if (orderDetls.isEmpty()) { return R.parse("璇烽�夋嫨鏁版嵁"); } - // 鑾峰彇璁㈠崟涓昏〃 - Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderDetls.get(0).getOrderNo())); + Order order = orderService.selectOne( + new EntityWrapper<Order>().eq("order_no", orderDetls.get(0).getOrderNo()) + ); if (order == null) { return R.parse("璁㈠崟鏁版嵁涓虹┖"); } + // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞� + Map<String, List<OrderDetl>> brandGroup = orderDetls.stream() + .collect(Collectors.groupingBy(OrderDetl::getBrand)); + List<LocDto> locDtos = new ArrayList<>(); - Set<String> exist = new HashSet<>(); + // 姣忎釜鍖呰缁勬煡涓�娆″簱瀛� + for (Map.Entry<String, List<OrderDetl>> entry : brandGroup.entrySet()) { + String brand = entry.getKey(); + List<OrderDetl> brandOrderDetls = entry.getValue(); - for (OrderDetl orderDetl : orderDetls) { - double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); - if (issued <= 0.0D) { continue; } - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("brand",orderDetl.getBrand())); - if (issued > 0 && !locDetls.isEmpty()) { - // 鏍规嵁鍗曟嵁绫诲瀷杩斿洖鍑哄簱鍙e垪琛� 21鍑哄簱鍙o紝22鐩樼偣鍙o紝23鍙嶄慨鍝佸嚭搴撳彛 - List<Integer> staNos = new ArrayList<>(); - if (order.getDocType() == 21) { - staNos.add(3077); - staNos.add(3106); - } else if(order.getDocType() == 22) { - staNos.add(2041); - } else if(order.getDocType() == 23) { - staNos.add(3092); - staNos.add(3102); - staNos.add(3095); - } - LocDto locDto = new LocDto(); - locDto.setLocNo(locDetls.get(0).getLocNo()); -// wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸 -// wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸 - locDto.setUnit(locDetls.get(0).getUnit()); // 绠卞彿 - locDto.setModel(locDetls.get(0).getModel()); // 鍗峰彿 - locDto.setThreeCode(locDetls.get(0).getThreeCode()); - locDto.setBrand(orderDetl.getBrand()); // 鍖呰缁勫彿 -// locDto.setOrigin(locDetl.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃� -// locDto.setWeight(locDetl.getWeight()); // 鍑�閲� -// locDto.setVolume(locDetl.getVolume()); // 姣涢噸 -// locDto.setPrice(locDetl.getPrice()); -// locDto.setSpecs(locDetl.getSpecs()); -// locDto.setZpallet(locDetl.getZpallet()); - locDto.setOrderNo(orderDetl.getOrderNo()); - locDto.setStaNos(staNos); - locDto.setOrderDetlId(orderDetl.getId()); - locDtos.add(locDto); -// exist.add(locDetl.getLocNo()); -// // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 -// issued = issued - locDetl.getAnfme(); - } else { - break; - } -// if (issued > 0) { -// LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); -// locDto.setLack(Boolean.TRUE); -// locDtos.add(locDto); -// } + // 鏌ヨ繖涓寘瑁呯粍瀵瑰簲鐨勬墍鏈夊簱瀛� + List<LocDetl> locDetls = locDetlService.selectList( + new EntityWrapper<LocDetl>().eq("brand", brand) + ); + if (locDetls.isEmpty()) continue; + + // 鑾峰彇鍑哄簱鍙� + List<Integer> staNos = new ArrayList<>(); + if (order.getDocType() == 21) { + staNos.add(3077); staNos.add(3106); + } else if (order.getDocType() == 22) { + staNos.add(2041); + } else if (order.getDocType() == 23) { + staNos.add(3092); staNos.add(3102); staNos.add(3095); + } + + // 鍘婚噸 key锛岄伩鍏嶇浉鍚� loc+unit+model 閲嶅鏄剧ず + Set<String> seen = new HashSet<>(); + + for (LocDetl locDetl : locDetls) { + String key = locDetl.getLocNo() + "|" + locDetl.getUnit() + "|" + locDetl.getModel(); + if (seen.contains(key)) continue; + seen.add(key); + + // 瀵瑰簲澶氫釜鏄庣粏鏃讹紝鍒嗛厤鍒扮涓�涓槑缁嗭紙鎴栦綘鍙互鎷嗗垎澶氫釜锛� + OrderDetl firstDetl = brandOrderDetls.get(0); + + LocDto locDto = new LocDto(); + locDto.setLocNo(locDetl.getLocNo()); + locDto.setUnit(locDetl.getUnit()); + locDto.setModel(locDetl.getModel()); + locDto.setThreeCode(locDetl.getThreeCode()); + locDto.setBrand(brand); + locDto.setOrderNo(firstDetl.getOrderNo()); + locDto.setStaNos(staNos); + locDto.setOrderDetlId(firstDetl.getId()); + + locDtos.add(locDto); + } } + return R.ok().add(locDtos); } + + @PostMapping("/out/refund/loc/preview/auth") @ManagerAuth public R refundLocPreview(@RequestBody List<Long> ids) { -- Gitblit v1.9.1