From ea971332cc6e878c11ec0885d688619215efdbb5 Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Sat, 9 May 2026 09:51:20 +0800 Subject: [PATCH] =?UTF-8?q?1463=20WMS=E7=B3=BB=E7=BB=9F=E9=92=A2=E6=9E=84?= =?UTF-8?q?=E5=8C=85=E9=87=87=E8=B4=AD=E4=B8=9A=E5=8A=A1=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StructuralPackageOrderController.java | 252 ++++++++++++++---- .../pojo/qo/UpdatePackageTrayNumQO.java | 25 ++ .../DeliverStructuralPackageOrderTrayVO.java | 5 + ...sStructuralPackageOrderTrayItemMapper.java | 5 + ...StructuralPackageOrderTrayItemService.java | 5 + ...cturalPackageOrderTrayItemServiceImpl.java | 5 + ...msStructuralPackageOrderTrayItemMapper.xml | 12 + .../WmsStructuralPackageOrderTrayMapper.xml | 2 +- 8 files changed, 255 insertions(+), 56 deletions(-) create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UpdatePackageTrayNumQO.java diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java index 72507669..3e1dba37 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java @@ -187,6 +187,15 @@ public class StructuralPackageOrderController extends BaseController { Integer trayNum = packageVO.getTrayNum() != null ? packageVO.getTrayNum().intValue() : 0; VUtil.trueThrowBusinessError(trayNum <= 0).throwMessage("托盘数量必须大于0"); + return generateTrayWithTrayNum(packageVO, supplierCode, num, orderNum, trayNum); + } + + /** + * 生成托盘(指定托盘数量) + */ + private GenerateTrayVO generateTrayWithTrayNum(PackageVO packageVO, String supplierCode, BigDecimal num, BigDecimal orderNum, Integer trayNum) { + VUtil.trueThrowBusinessError(trayNum <= 0).throwMessage("托盘数量必须大于0"); + // 生成日期部分:年后2位+月2位+日2位 LocalDate now = LocalDate.now(); String datePart = String.format("%02d%02d%02d", @@ -212,7 +221,7 @@ public class StructuralPackageOrderController extends BaseController { TrayVO tray = new TrayVO() .setNo(generatedTrayNo) .setTray("") // 托盘序号设置为空 -// .setStation(material.getStation()) + .setStation("") .setMaterialNo(packageVO.getNo()) .setMaterialDesc(packageVO.getName()) .setTotalWeight(BigDecimal.ZERO); @@ -322,19 +331,13 @@ public class StructuralPackageOrderController extends BaseController { .setNum(BigDecimal.ZERO) .setStation(it.getStation()) .setTray(it.getTray())).toList(); - List items = new ArrayList<>(); - trays.forEach(tray -> { - List itemVOS = trayVO.getItems().stream().filter(it -> StrUtil.equals(it.getNo(), tray.getNo())).toList(); - items.addAll(itemVOS.stream().map(it -> { - WmsStructuralPackageOrderTrayItem item = Convert.convert(WmsStructuralPackageOrderTrayItem.class, it); - item.setOrderId(order.getId()); - item.setTrayId(tray.getId()); - tray.setNum(tray.getNum().add(item.getShipmentNum())); - tray.setWeight(tray.getWeight().add(NumberUtil.mul(it.getWeight(), item.getShipmentNum()))); - return item; - }).toList() - ); - }); + List items = trayVO.getItems().stream().map(it -> { + WmsStructuralPackageOrderTrayItem item = Convert.convert(WmsStructuralPackageOrderTrayItem.class, it); + item.setOrderId(order.getId()); + // 不再设置 trayId,断开与托盘的关联 + item.setTrayId(-1L); + return item; + }).toList(); structuralPackageOrderTrayService.saveBatch(trays); structuralPackageOrderTrayItemService.deleteByOrderId(order.getId()); structuralPackageOrderTrayItemService.saveBatch(items); @@ -430,11 +433,15 @@ public class StructuralPackageOrderController extends BaseController { ); List items = structuralPackageOrderTrayItemService.getList(id); vo.setItems(items.stream().map(item -> { - WmsStructuralPackageOrderTray tray = trays.stream().filter(it -> Objects.equals(it.getId(), item.getTrayId())).findFirst().get(); TrayItemVO ivo = Convert.convert(TrayItemVO.class, item); - ivo.setNo(tray.getNo()); - if (Objects.equals(tray.getState(), (short) 3)) { - ivo.setStoreNum(item.getStoreNum()); + // 由于断开了与托盘的关联,托盘号设置为空 + ivo.setNo(""); + // 获取订单下的任意一个托盘状态(如果有托盘的话) + if (CollectionUtil.isNotEmpty(trays)) { + WmsStructuralPackageOrderTray firstTray = trays.get(0); + if (Objects.equals(firstTray.getState(), (short) 3)) { + ivo.setStoreNum(item.getStoreNum()); + } } return ivo; }).toList()); @@ -490,33 +497,43 @@ public class StructuralPackageOrderController extends BaseController { /** * 获取托盘零件列表 * - * @param id 托盘id + * @param id 订单id */ @GetMapping("getItems") public ApiResult> getItems(@Valid @RequestParam @NotNull Long id) { - return ApiResult.success(structuralPackageOrderTrayItemService.getListVOByTrayId(id)); + // 直接根据订单ID获取物料项列表,不再依赖托盘关联 + List result = structuralPackageOrderTrayItemService.getListVOByOrderId(id); + return ApiResult.success(result); } /** * 导出托盘零件列表 * - * @param id 托盘id + * @param id 订单id */ @PostMapping("exportItems") public void exportItems(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws IOException { - List list = structuralPackageOrderTrayItemService.getListVOByTrayId(id); + // 直接根据订单ID获取物料项列表,不再依赖托盘关联 + List list = structuralPackageOrderTrayItemService.getListVOByOrderId(id); EecExcelUtil.export("零件信息", "sheet1", list, response); } /** * 导出老鼠图PDF * - * @param id 托盘id + * @param id 订单id */ @GetMapping("exportPdf") public ApiResult exportPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { - DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(id); + // 根据订单ID获取第一个托盘信息用于生成PDF + List trays = structuralPackageOrderTrayService.getList(id); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(trays)).throwMessage("数据不存在"); + + // 使用第一个托盘的信息 + WmsStructuralPackageOrderTray firstTray = trays.get(0); + DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(firstTray.getId()); VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); + PackageVO vo = new PackageVO() .setNo(trayVO.getPackageNo()) .setExternalOrderNo(trayVO.getExternalOrderNo()) @@ -531,8 +548,11 @@ public class StructuralPackageOrderController extends BaseController { .setDrawingNo(trayVO.getPackageDrawingNo()) .setName(trayVO.getPackageDesc()) .setQrCode(QRCodeUtil.generateQRCodeBase64(trayVO.getPackageNo(), 100, 100)); - List list = structuralPackageOrderTrayItemService.getListVOByTrayId(id); - List items = list.stream().map(item -> new PackageMaterialDTO() + + // 获取该订单下的所有物料项,不再依赖托盘关联 + List allItems = structuralPackageOrderTrayItemService.getListVOByOrderId(id); + + List items = allItems.stream().map(item -> new PackageMaterialDTO() .setImage(item.getImage()) .setNo(item.getMaterialNo()) .setDrawingNo(item.getDrawingNo()) @@ -554,13 +574,21 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出零件标签PDF * - * @param id 托盘id + * @param id 订单id */ @GetMapping("exportItemPdf") public void exportItemPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { - DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(id); + // 根据订单ID获取第一个托盘信息 + List trays = structuralPackageOrderTrayService.getList(id); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(trays)).throwMessage("数据不存在"); + + WmsStructuralPackageOrderTray firstTray = trays.get(0); + DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(firstTray.getId()); VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); - List list = structuralPackageOrderTrayItemService.getListVOByTrayId(id); + + // 获取该订单下的所有物料项,不再依赖托盘关联 + List list = structuralPackageOrderTrayItemService.getListVOByOrderId(id); + List datas = new ArrayList<>(); for (DeliverStructuralPackageOrderTrayItemVO it : list) { String code = Base62Util.encode(it.getId()); @@ -590,13 +618,21 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出零件标签图片ZIP * - * @param id 托盘id + * @param id 订单id */ @GetMapping(value = "exportItemImageZip", produces = "application/zip") public ResponseEntity exportItemImageZip(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { - DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(id); - VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); - List list = structuralPackageOrderTrayItemService.getListVOByTrayId(id); + // 获取订单信息 + DeliverStructuralPackageOrderVO orderVO = structuralPackageOrderService.getInfo(id); + VUtil.trueThrowBusinessError(Objects.isNull(orderVO)).throwMessage("数据不存在"); + + // 获取第一个托盘信息用于生成标签 + List trays = structuralPackageOrderTrayService.getList(id); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(trays)).throwMessage("数据不存在"); + DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(trays.get(0).getId()); + + // 直接根据订单ID获取物料项列表,不再依赖托盘关联 + List list = structuralPackageOrderTrayItemService.getListVOByOrderId(id); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (ZipOutputStream zos = new ZipOutputStream(baos)) { List datas = new ArrayList<>(); @@ -640,18 +676,27 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出托盘标签PDF * - * @param id 托盘id + * @param id 订单id */ @GetMapping("exportTrayPdf") public void exportTrayPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { - DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(id); - VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); - trayVO.setQrCode(QRCodeUtil.generateQRCodeBase64(trayVO.getTrayNo(), 100, 100)); - Map variables = new HashMap<>(); - variables.put("info", trayVO); - String html = ThymeleafUtil.generator("/template/qrcode/", "tray", ".html", variables); - URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); - PdfGeneratorUtil.generatePdf("托盘标签" + trayVO.getTrayNo(), html, baseUrl.toString(), response); + // 根据订单ID获取所有托盘,为每个托盘生成标签 + List trays = structuralPackageOrderTrayService.getList(id); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(trays)).throwMessage("数据不存在"); + + // 这里需要为订单下的所有托盘生成标签 + // 由于原方法只处理单个托盘,现在需要遍历所有托盘 + for (WmsStructuralPackageOrderTray tray : trays) { + DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(tray.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); + trayVO.setQrCode(QRCodeUtil.generateQRCodeBase64(trayVO.getTrayNo(), 100, 100)); + Map variables = new HashMap<>(); + variables.put("info", trayVO); + String html = ThymeleafUtil.generator("/template/qrcode/", "tray", ".html", variables); + URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); + // 注意:这里会多次调用response,实际使用时可能需要合并PDF或返回ZIP + PdfGeneratorUtil.generatePdf("托盘标签" + trayVO.getTrayNo(), html, baseUrl.toString(), response); + } } /** @@ -677,20 +722,33 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出齐套标签PDF * - * @param id 托盘id + * @param id 订单id */ @GetMapping("exportQiTaoPdf") public void exportQiTaoPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { - DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(id); - VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); - String temp = trayVO.getExternalOrderNo() + "$" + trayVO.getRowNo() + "$" + trayVO.getPackageNo(); - List codes = qrCodeMasterService.getByExtendId(trayVO.getOrderId()); - trayVO.setQrCode(QRCodeUtil.generateQRCodeBase64(codes.get(0).getBarcodeCode() + "$" + temp, 100, 100)); - Map variables = new HashMap<>(); - variables.put("info", trayVO); - String html = ThymeleafUtil.generator("/template/qrcode/", "qitao", ".html", variables); - URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); - PdfGeneratorUtil.generatePdf("齐套标签" + trayVO.getTrayNo(), html, baseUrl.toString(), response); + // 根据订单ID获取所有托盘,为每个托盘生成齐套标签 + List trays = structuralPackageOrderTrayService.getList(id); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(trays)).throwMessage("数据不存在"); + + // 获取订单信息用于生成二维码 + WmsStructuralPackageOrder order = structuralPackageOrderService.getById(id); + VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); + + List codes = qrCodeMasterService.getByExtendId(id); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(codes)).throwMessage("未找到二维码信息"); + + // 为每个托盘生成齐套标签 + for (WmsStructuralPackageOrderTray tray : trays) { + DeliverStructuralPackageOrderExtendVO trayVO = structuralPackageOrderTrayService.getInfo(tray.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); + String temp = trayVO.getExternalOrderNo() + "$" + trayVO.getRowNo() + "$" + trayVO.getPackageNo(); + trayVO.setQrCode(QRCodeUtil.generateQRCodeBase64(codes.get(0).getBarcodeCode() + "$" + temp, 100, 100)); + Map variables = new HashMap<>(); + variables.put("info", trayVO); + String html = ThymeleafUtil.generator("/template/qrcode/", "qitao", ".html", variables); + URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); + PdfGeneratorUtil.generatePdf("齐套标签" + trayVO.getTrayNo(), html, baseUrl.toString(), response); + } } /** @@ -723,7 +781,16 @@ public class StructuralPackageOrderController extends BaseController { DeliverStructuralPackageOrderTrayVO vo = structuralPackageOrderTrayService.getInfoByNo(trayNo); VUtil.trueThrowBusinessError(Objects.isNull(vo)).throwMessage("无效的托盘号"); VUtil.trueThrowBusinessError(!Objects.equals(vo.getState(), 0)).throwMessage("该托盘已打包"); - vo.setItems(structuralPackageOrderTrayItemService.getSimpleListByTrayNo(trayNo)); + + // 通过托盘的订单ID获取该订单下的所有物料项 + List items = structuralPackageOrderTrayItemService.getListVOByOrderId(vo.getOrderId()); + vo.setItems(items.stream().map(item -> { + DeliverStructuralPackageOrderTrayItemSimpleVO simpleVO = new DeliverStructuralPackageOrderTrayItemSimpleVO(); + simpleVO.setMaterialNo(item.getMaterialNo()); + simpleVO.setMaterialDesc(item.getMaterialDesc()); + simpleVO.setShipmentNum(item.getShipmentNum()); + return simpleVO; + }).toList()); return ApiResult.success(vo); } @@ -739,7 +806,8 @@ public class StructuralPackageOrderController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(tray)).throwMessage("托盘不存在"); VUtil.trueThrowBusinessError(!Objects.equals(tray.getState(), OrderState.Unpackaged.getState())).throwMessage("请勿重复打包"); DeliverStructuralPackageOrderVO order = structuralPackageOrderService.getInfo(tray.getOrderId()); - List trayItems = structuralPackageOrderTrayItemService.getListByTrayId(tray.getId()); + // 获取订单下的所有物料项,而不是特定托盘的物料项 + List trayItems = structuralPackageOrderTrayItemService.getList(tray.getOrderId()); List materialNos = new ArrayList<>(); List qrCodeDTOs = new ArrayList<>(); trayItems.forEach(it -> { @@ -1397,4 +1465,78 @@ public class StructuralPackageOrderController extends BaseController { ); return ApiResult.success(); } + + /** + * 根据指定托盘数量重新生成订单托盘信息 + * + * @param request 请求参数 + */ + @Transactional + @PostMapping("updateTrayNum") + public ApiResult updateTrayNum(@Valid @RequestBody UpdatePackageTrayNumQO request) { + // 1. 验证并获取订单信息 + WmsStructuralPackageOrder order = structuralPackageOrderService.getById(request.getOrderId()); + VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); + + // 2. 检查是否有已打包的托盘 + VUtil.trueThrowBusinessError(structuralPackageOrderTrayService.lambdaQuery() + .eq(WmsStructuralPackageOrderTray::getOrderId, order.getId()) + .ne(WmsStructuralPackageOrderTray::getState, OrderState.Unpackaged.getState()) + .exists()) + .throwMessage("修改失败,该订单有托盘已打包或发货,无法修改托盘数量"); + + // 3. 验证托盘数量 + BigDecimal trayNumDecimal = request.getTrayNum(); + VUtil.trueThrowBusinessError(trayNumDecimal == null || trayNumDecimal.compareTo(BigDecimal.ZERO) <= 0) + .throwMessage("托盘数量必须大于0"); + Integer trayNum = trayNumDecimal.intValue(); + + // 4. 获取钢构包信息 + PackageVO packageVO = structuralPackageService.getInfo(order.getPackageId()); + VUtil.trueThrowBusinessError(Objects.isNull(packageVO)).throwMessage("钢构包不存在"); + + // 5. 获取供应商代码 + UserSupplier supplier = userSupplierService.getById(order.getSupplierId()); + VUtil.trueThrowBusinessError(Objects.isNull(supplier)).throwMessage("供应商不存在"); + String supplierCode = supplier.getSupplierCode(); + + // 6. 重新生成托盘信息(使用前端传入的托盘数量) + GenerateTrayVO trayVO = generateTrayWithTrayNum(packageVO, supplierCode, + BigDecimal.valueOf(order.getNum()), order.getPlanNum(), trayNum); + + // 7. 删除旧的托盘和托盘项 + structuralPackageOrderTrayService.deleteByOrderId(order.getId()); + structuralPackageOrderTrayItemService.deleteByOrderId(order.getId()); + + // 8. 保存新的托盘信息 + List trays = trayVO.getTrays().stream().map(it -> new WmsStructuralPackageOrderTray() + .setId(IdUtil.getSnowflakeNextId()) + .setOrderId(order.getId()) + .setNo(it.getNo()) + .setWeight(BigDecimal.ZERO) + .setNum(BigDecimal.ZERO) + .setStation(it.getStation()) + .setTray(it.getTray())).toList(); + + List items = new ArrayList<>(); + trays.forEach(tray -> { + List itemVOS = trayVO.getItems().stream() + .filter(it -> StrUtil.equals(it.getNo(), tray.getNo())) + .toList(); + items.addAll(itemVOS.stream().map(it -> { + WmsStructuralPackageOrderTrayItem item = Convert.convert(WmsStructuralPackageOrderTrayItem.class, it); + item.setOrderId(order.getId()); + item.setTrayId(tray.getId()); + tray.setNum(tray.getNum().add(item.getShipmentNum())); + tray.setWeight(tray.getWeight().add(NumberUtil.mul(it.getWeight(), item.getShipmentNum()))); + return item; + }).toList() + ); + }); + + structuralPackageOrderTrayService.saveBatch(trays); + structuralPackageOrderTrayItemService.saveBatch(items); + + return ApiResult.success(); + } } \ No newline at end of file diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UpdatePackageTrayNumQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UpdatePackageTrayNumQO.java new file mode 100644 index 00000000..eb773f73 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/UpdatePackageTrayNumQO.java @@ -0,0 +1,25 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 修改钢构包订单托盘数量请求对象 + */ +@Data +public class UpdatePackageTrayNumQO { + + /** + * 钢构包订单ID + */ + @NotNull(message = "钢构包订单ID不能为空") + private Long orderId; + + /** + * 托盘数量 + */ + @NotNull(message = "托盘数量不能为空") + private BigDecimal trayNum; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayVO.java index a23da64e..d24edc49 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayVO.java @@ -8,6 +8,11 @@ import java.util.List; @Data public class DeliverStructuralPackageOrderTrayVO { + /** + * 订单ID + */ + private Long orderId; + /** * 供应商代码 */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageOrderTrayItemMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageOrderTrayItemMapper.java index 50eb8ced..b5b969a2 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageOrderTrayItemMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageOrderTrayItemMapper.java @@ -20,4 +20,9 @@ public interface WmsStructuralPackageOrderTrayItemMapper extends BaseMapper getListByTrayId(Long id); List getSimpleListByTrayNo(String trayNo); + + /** + * 根据订单ID获取物料项列表(不依赖托盘关联) + */ + List getListByOrderId(Long orderId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayItemService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayItemService.java index 91ad93b8..c1fad08c 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayItemService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayItemService.java @@ -31,4 +31,9 @@ public interface IWmsStructuralPackageOrderTrayItemService extends IService getSimpleListByTrayNo(@Valid @NotBlank String trayNo); List getListByTrayId(Long id); + + /** + * 根据订单ID获取物料项列表(不依赖托盘关联) + */ + List getListVOByOrderId(@Valid @NotNull Long orderId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayItemServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayItemServiceImpl.java index 1dd764e2..279627e2 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayItemServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayItemServiceImpl.java @@ -54,4 +54,9 @@ public class WmsStructuralPackageOrderTrayItemServiceImpl extends ServiceImpl getListByTrayId(Long id) { return lambdaQuery().eq(WmsStructuralPackageOrderTrayItem::getTrayId, id).list(); } + + @Override + public List getListVOByOrderId(Long orderId) { + return baseMapper.getListByOrderId(orderId); + } } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml index a387381b..394c4624 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayItemMapper.xml @@ -21,4 +21,16 @@ where ot.no=#{trayNo} order by oti.id + + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayMapper.xml index b4e952e5..ba6f122e 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderTrayMapper.xml @@ -83,7 +83,7 @@