diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java index 4e216eb3..1fc09c37 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java @@ -760,12 +760,16 @@ public class MaterialCodeController extends BaseController { * 导出老鼠图PDF */ @PostMapping("exportPdf") - public ApiResult exportPdf(HttpServletResponse response, @RequestBody @NotEmpty List list) throws Exception { - VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(list)).throwMessage("没有需要导出的数据"); + public ApiResult exportPdf(HttpServletResponse response, @Valid @RequestBody MaterialPdfExportQO qo) throws Exception { + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qo.getIds())).throwMessage("没有需要导出的数据"); + + // 每页数量校验 + Integer perPage = qo.getPerPage() != null ? qo.getPerPage() : 6; + List validPerPage = List.of(2, 4, 6, 8, 9); + VUtil.trueThrowBusinessError(!validPerPage.contains(perPage)).throwMessage("每页数量只能为2/4/6/8/9"); // 从 list 中提取物料ID(明细ID) - List materialIds = list.stream() - .map(ShipmentMaterialCodeQRVO::getId) + List materialIds = qo.getIds().stream() .filter(Objects::nonNull) .toList(); VUtil.trueThrowBusinessError(materialIds.isEmpty()).throwMessage("物料ID不能为空"); @@ -810,8 +814,8 @@ public class MaterialCodeController extends BaseController { allWeight = allWeight.add(weight.multiply(num)); } - // 从 list 中获取第一条数据 - ShipmentMaterialCodeQRVO firstItem = list.get(0); + // 从 materialIds 中获取第一条数据 + WmsShipmentMaterialCodeItem firstItem = materialCodeItems.get(0); // 根据物料码主表ID查询清单信息(清单编号、机台编号、销售订单号、客户名称、下单日期) WmsShipmentMaterialCode materialCode = null; @@ -829,25 +833,28 @@ public class MaterialCodeController extends BaseController { // 构建表头数据 MaterialPdfVO material = new MaterialPdfVO(); // 优先使用从数据库查询的清单信息,如果没有则使用前端传入的数据 - material.setNo(materialCode != null ? materialCode.getNo() : firstItem.getNo()); // 清单编号 - material.setDeviceNo(materialCode != null ? materialCode.getDeviceNo() : firstItem.getDeviceNo()); // 机台编号 - material.setMaterialNo(firstItem.getMaterialNo()); // 物料编号 - material.setSoNo(materialCode != null ? materialCode.getSoNo() : firstItem.getSoNo()); // 销售订单号 - material.setCustomerName(materialCode != null ? materialCode.getCustomerName() : firstItem.getCustomerName()); // 客户名称 - material.setOrderDay(materialCode != null ? materialCode.getOrderDate() : firstItem.getOrderDate()); // 下单日期 - material.setWeight(allWeight); // 总重量 + material.setNo(materialCode != null ? materialCode.getNo() : firstItem.getMaterialCodeId().toString()); // 清单编号 + material.setDeviceNo(materialCode != null ? materialCode.getDeviceNo() : null); // 机台编号 + material.setMaterialNo(firstItem.getMaterialNo()); // 物料编号 + material.setSoNo(materialCode != null ? materialCode.getSoNo() : null); // 销售订单号 + material.setCustomerName(materialCode != null ? materialCode.getCustomerName() : null); // 客户名称 + material.setOrderDay(materialCode != null ? materialCode.getOrderDate() : null); // 下单日期 + material.setWeight(allWeight); // 总重量 - // 用清单编号生成二维码(放在红圈位置) - String qrCodeNo = materialCode != null ? materialCode.getNo() : firstItem.getNo(); + // 用清单编号生成二维码 + String qrCodeNo = materialCode != null ? materialCode.getNo() : ""; material.setQrCode(QRCodeUtil.generateQRCodeBase64(qrCodeNo, 100, 100)); // 制作pdf Map variables = new HashMap<>(); variables.put("info", material); - variables.put("pages", PdfPageDTO.create(items, 9, new MaterialPdfDTO())); + variables.put("pages", PdfPageDTO.create(items, perPage, new MaterialPdfDTO())); + + // 根据每页数量选择对应模板 + String templateName = "物料老鼠图" + perPage; String html = ThymeleafUtil.generator( "/template/", - "物料老鼠图", + templateName, ".html", variables ); diff --git a/nflg-wms-shipment/src/main/resources/template/物料老鼠图2.html b/nflg-wms-shipment/src/main/resources/template/物料老鼠图2.html new file mode 100644 index 00000000..9428a5f2 --- /dev/null +++ b/nflg-wms-shipment/src/main/resources/template/物料老鼠图2.html @@ -0,0 +1,150 @@ + + + + + + + 物料老鼠图 + + + +
+ + + + + + + + + + + + + + + + + + + + +
清单编号:12255665451615机台编号:1111物料编号:12255665451615 + 二维码 +
销售订单号:1客户名称:12255665451615
下单日期:1总重:348.41页码:1/2
+
+
+
+ +
+
+
SAP编码:2222222222
+
图号:图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号 +
+
名称:名称名称名称名称名称名称名称名称名称名名称名名称名称名称称名称名称名称称名称名称名称 +
+
数量:1    重量:348.41
+
+
+ + \ No newline at end of file diff --git a/nflg-wms-shipment/src/main/resources/template/物料老鼠图4.html b/nflg-wms-shipment/src/main/resources/template/物料老鼠图4.html new file mode 100644 index 00000000..711abeca --- /dev/null +++ b/nflg-wms-shipment/src/main/resources/template/物料老鼠图4.html @@ -0,0 +1,151 @@ + + + + + + + 物料老鼠图 + + + +
+ + + + + + + + + + + + + + + + + + + + +
清单编号:12255665451615机台编号:1111物料编号:12255665451615 + 二维码 +
销售订单号:1客户名称:12255665451615
下单日期:1总重:348.41页码:1/2
+
+
+
+ +
+
+
SAP编码:2222222222
+
图号:图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号 +
+
名称:名称名称名称名称名称名称名称名称名称名名称名名称名称名称称名称名称名称称名称名称名称 +
+
数量:1    重量:348.41
+
+
+ + \ No newline at end of file diff --git a/nflg-wms-shipment/src/main/resources/template/物料老鼠图6.html b/nflg-wms-shipment/src/main/resources/template/物料老鼠图6.html new file mode 100644 index 00000000..76469df1 --- /dev/null +++ b/nflg-wms-shipment/src/main/resources/template/物料老鼠图6.html @@ -0,0 +1,150 @@ + + + + + + + 物料老鼠图 + + + +
+ + + + + + + + + + + + + + + + + + + + +
清单编号:12255665451615机台编号:1111物料编号:12255665451615 + 二维码 +
销售订单号:1客户名称:12255665451615
下单日期:1总重:348.41页码:1/2
+
+
+
+ +
+
+
SAP编码:2222222222
+
图号:图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号 +
+
名称:名称名称名称名称名称名称名称名称名称名名称名名称名称名称称名称名称名称称名称名称名称 +
+
数量:1    重量:348.41
+
+
+ + \ No newline at end of file diff --git a/nflg-wms-shipment/src/main/resources/template/物料老鼠图8.html b/nflg-wms-shipment/src/main/resources/template/物料老鼠图8.html new file mode 100644 index 00000000..4da66c15 --- /dev/null +++ b/nflg-wms-shipment/src/main/resources/template/物料老鼠图8.html @@ -0,0 +1,151 @@ + + + + + + + 物料老鼠图 + + + +
+ + + + + + + + + + + + + + + + + + + + +
清单编号:12255665451615机台编号:1111物料编号:12255665451615 + 二维码 +
销售订单号:1客户名称:12255665451615
下单日期:1总重:348.41页码:1/2
+
+
+
+ +
+
+
SAP编码:2222222222
+
图号:图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号图号 +
+
名称:名称名称名称名称名称名称名称名称名称名名称名名称名称名称称名称名称名称称名称名称名称 +
+
数量:1    重量:348.41
+
+
+ + \ No newline at end of file diff --git a/nflg-wms-shipment/src/main/resources/template/物料老鼠图.html b/nflg-wms-shipment/src/main/resources/template/物料老鼠图9.html similarity index 100% rename from nflg-wms-shipment/src/main/resources/template/物料老鼠图.html rename to nflg-wms-shipment/src/main/resources/template/物料老鼠图9.html