From 93ee65e3c9ed6abf9aec61b90916a7ee6c600021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 25 May 2026 09:06:27 +0800 Subject: [PATCH] =?UTF-8?q?bug-1507=20=E5=AF=BC=E5=87=BA=E7=9A=84=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E6=B8=85=E5=8D=95=E5=9C=A8=E9=A1=B5=E9=9D=A2=E5=8F=B3?= =?UTF-8?q?=E4=B8=8A=E8=A7=92=E6=B7=BB=E5=8A=A0=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=8D=B8=E8=B4=A7=E6=97=B6=E6=94=AF=E6=8C=81=E6=89=AB?= =?UTF-8?q?=E8=AF=A5=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeliveryController.java | 14 ++++++++------ .../template/发货清单模版.xlsx | Bin 12054 -> 12119 bytes 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java index 36e93012..260aa8c2 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java @@ -19,6 +19,7 @@ import com.nflg.wms.shipment.pojo.dto.DeliveryExportDTO; import com.nflg.wms.shipment.pojo.qo.DeliverySearchFromCRMQO; import com.nflg.wms.shipment.service.BasdeSerialNumberControllerService; import com.nflg.wms.shipment.service.CRMService; +import com.nflg.wms.shipment.util.QRCodeUtil; import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.service.BomMaterialService; import jakarta.annotation.Resource; @@ -39,9 +40,7 @@ import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -199,7 +198,7 @@ public class DeliveryController extends BaseController { * 根据发货单导出子项 */ @GetMapping("exportItemToExcel") - public void exportItemToExcel(HttpServletResponse response, @RequestParam Long id) throws IOException { + public void exportItemToExcel(HttpServletResponse response, @RequestParam Long id) throws Exception { WmsShipmentDelivery delivery = deliveryService.getById(id); VUtil.trueThrowBusinessError(Objects.isNull(delivery)).throwMessage("清单不存在"); // AtomicInteger index = new AtomicInteger(1); @@ -215,10 +214,13 @@ public class DeliveryController extends BaseController { List list = deliveryItemService.getItemsVO(id); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("发货清单-" + delivery.getNo() + ".xlsx", StandardCharsets.UTF_8)); + Map ext = new HashMap<>(); + ext.put("pic", QRCodeUtil.generateQRCode(delivery.getNo(), 200, 200)); new Workbook() .addSheet(new TemplateSheet(new ClassPathResource("template/发货清单模版.xlsx").getInputStream()) .setData("info", delivery) .setData("list", list) + .setData("ext", ext) ).writeTo(response.getOutputStream()); } @@ -337,7 +339,7 @@ public class DeliveryController extends BaseController { } /** - * 根据车牌号查询已装车的箱子(PDA使用) + * 根据车牌号/发货单号查询已装车的箱子(PDA使用) */ @GetMapping("getBoxByPlateNumber") public ApiResult> getBoxByPlateNumber(@RequestParam String plateNumber) { @@ -363,7 +365,7 @@ public class DeliveryController extends BaseController { .update(); if (!deliveryItemService.lambdaQuery() .eq(WmsShipmentDeliveryItem::getDeliveryId, delivery.getId()) - .exists()){ + .exists()) { deliveryService.lambdaUpdate() .set(WmsShipmentDelivery::getBoxStatus, 0) .set(WmsShipmentDelivery::getUpdateBy, UserUtil.getUserName()) diff --git a/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx b/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx index 2c7a81606cb343c52e66da4dda33c0dfcbc124d6..01e4dbd2c588bd0f32cd6cb413a614d9f7cd08f2 100644 GIT binary patch delta 8100 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 W=w-@t`)9=^$S*c#WI^T^$^QYk8#Vs` delta 7970 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