From 4b228fa36975becb8a5bad223138e6561615b060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 12 Nov 2025 14:29:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bug-884=20=E6=B7=BB=E5=8A=A0=E3=80=90?= =?UTF-8?q?=E5=89=AF=E4=BA=A7=E5=93=81(=E6=8B=86=E8=A7=A3)=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E3=80=91=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BarcodePrintingController.java | 8 --- .../controller/InProduceOrderController.java | 11 ----- .../InProduceOrderSurplusController.java | 49 +++++++++++++++++++ .../controller/NormalOrderController.java | 11 ----- .../com/nflg/wms/starter/BaseController.java | 17 +++++++ 5 files changed, 66 insertions(+), 30 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/BarcodePrintingController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/BarcodePrintingController.java index 6f870c5e..515fc69e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/BarcodePrintingController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/BarcodePrintingController.java @@ -195,14 +195,6 @@ public class BarcodePrintingController extends BaseController { } } - private String generateQRContent(DeliverNormalOrderItemDTO order, String indexNo) { - String content = StrUtil.format("{}${}${}${}${}${}${}${}${}" - , order.getPrintNo(), order.getExternalOrderNo(), order.getRowNo(), order.getMaterialNo(), order.getPrintNum() - , order.getMaterialDesc(), "", order.getBatchNo(), Optional.ofNullable(indexNo).orElse("")); - log.debug("二维码内容:" + content); - return content; - } - /** * 导出物料条码pdf(整张或者一张一个) * @param request 请求参数 diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java index 38143f84..c05064ae 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java @@ -40,7 +40,6 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.net.URL; -import java.text.DecimalFormat; import java.time.Instant; import java.time.LocalDateTime; import java.util.*; @@ -54,8 +53,6 @@ import java.util.stream.Collectors; @RequestMapping("/in/produce") public class InProduceOrderController extends BaseController { - private static final DecimalFormat DF = new DecimalFormat("0.00"); - @Resource private SapService sapService; @@ -255,14 +252,6 @@ public class InProduceOrderController extends BaseController { } } - private String generateQRContent(DeliverNormalOrderItemDTO order,String indexNo){ - String content = StrUtil.format("{}${}${}${}${}${}${}${}${}" - , order.getPrintNo(), order.getExternalOrderNo(),order.getRowNo(),order.getMaterialNo(),order.getPrintNum() - , order.getMaterialDesc(), order.getSupplierCode(), order.getBatchNo(), Optional.ofNullable(indexNo).orElse("")); - log.debug("二维码内容:"+ content); - return content; - } - /** * 导出报工单PDF(单个) * @param id 订单id diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderSurplusController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderSurplusController.java index 30bf9755..02608210 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderSurplusController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderSurplusController.java @@ -17,6 +17,7 @@ import com.nflg.wms.admin.util.QRCodeUtil; import com.nflg.wms.admin.util.ThymeleafUtil; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; +import com.nflg.wms.common.pojo.dto.DeliverNormalOrderItemDTO; import com.nflg.wms.common.pojo.dto.InventoryDTO; import com.nflg.wms.common.pojo.dto.MaterialQRCodeContentDTO; import com.nflg.wms.common.pojo.qo.*; @@ -35,10 +36,12 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.ClassPathResource; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; +import java.net.URL; import java.time.Instant; import java.time.LocalDateTime; import java.util.*; @@ -319,6 +322,52 @@ public class InProduceOrderSurplusController extends BaseController { return ApiResult.success(vo); } + /** + * 导出物料条码pdf + * @param id 订单ID + * @param type 1:逐个,2:一页 + */ + @GetMapping("exportMaterialsPdf") + public void exportMaterials(HttpServletResponse response, @Valid @RequestParam @NotNull Long id + , @Valid @RequestParam @NotNull Integer type) throws Exception { + WmsInProduceOrderSurplus order = inProduceOrderSurplusService.getById(id); + VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); + List list = inProduceOrderSurplusItemService.getList(id); + List datas = new ArrayList<>(); + for (WmsInProduceOrderSurplusItem item : list) { + BigDecimal[] result = item.getNum().divideAndRemainder(BigDecimal.ONE); + for (int i = 0, count = result[0].intValue(); i < count; i++) { + DeliverNormalOrderItemDTO dto = new DeliverNormalOrderItemDTO(); + dto.setMaterialNo(item.getMatnr()); + dto.setMaterialDesc(item.getMaktx2()); + dto.setExternalOrderNo(order.getAufnr()); + dto.setRowNo(""); + dto.setIndex(i); + dto.setPrintNo(IdUtil.getSnowflakeNextIdStr()); + if (i == count - 1 && result[1].compareTo(BigDecimal.ZERO) > 0) { + dto.setPrintNum(DF.format(result[1])); + } else { + dto.setPrintNum(DF.format(BigDecimal.ONE)); + } + dto.setSupplierCode(""); + dto.setBatchNo(""); + dto.setQrCode(QRCodeUtil.generateQRCodeBase64(generateQRContent(dto, ""), 100, 100)); + datas.add(dto); + } + } + Map variables = new HashMap<>(); + variables.put("list", datas); + if (Objects.equals(type, 1)) { + String html = ThymeleafUtil.generator("/template/qrcode/", "dp-1", ".html", variables); + URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); + PdfGeneratorUtil.generatePdf("普通物料条码(逐个)", html, baseUrl.toString(), response); + } else { + String html = ThymeleafUtil.generator("/template/qrcode/", "dp-2", ".html", variables); + URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); + PdfGeneratorUtil.generatePdf("普通物料条码(整张)", html, baseUrl.toString(), response); + } + } + /** * 导出拆解单 */ diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java index a753f6ce..fe1a2fce 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java @@ -41,7 +41,6 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.net.URL; -import java.text.DecimalFormat; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -60,8 +59,6 @@ public class NormalOrderController extends BaseController { @Resource private IUserSupplierService userSupplierService; - private static final DecimalFormat DF = new DecimalFormat("0.00"); - @Resource private IWmsSrmOrderService srmOrderService; @@ -202,14 +199,6 @@ public class NormalOrderController extends BaseController { return datas; } - private String generateQRContent(DeliverNormalOrderItemDTO order, String indexNo) { - String content = StrUtil.format("{}${}${}${}${}${}${}${}${}" - , order.getPrintNo(), order.getExternalOrderNo(), order.getRowNo(), order.getMaterialNo(), order.getPrintNum() - , order.getMaterialDesc(), order.getSupplierCode(), order.getBatchNo(), Optional.ofNullable(indexNo).orElse("")); - log.debug("二维码内容:" + content); - return content; - } - /** * 搜索送货单 * @param request 请求参数 diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/BaseController.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/BaseController.java index 0aba87d7..5870ba10 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/BaseController.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/BaseController.java @@ -1,9 +1,26 @@ package com.nflg.wms.starter; +import cn.hutool.core.util.StrUtil; +import com.nflg.wms.common.pojo.dto.DeliverNormalOrderItemDTO; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; +import java.text.DecimalFormat; +import java.util.Optional; + +@Slf4j @Validated @RestController public class BaseController { + + protected final DecimalFormat DF = new DecimalFormat("0.00"); + + protected String generateQRContent(DeliverNormalOrderItemDTO order, String indexNo) { + String content = StrUtil.format("{}${}${}${}${}${}${}${}${}" + , order.getPrintNo(), order.getExternalOrderNo(), order.getRowNo(), order.getMaterialNo(), order.getPrintNum() + , order.getMaterialDesc(), order.getSupplierCode(), order.getBatchNo(), Optional.ofNullable(indexNo).orElse("")); + log.debug("二维码内容:" + content); + return content; + } }