From 422a76133b1fa44c28a7db2dc49b24043ec9a8c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 31 Mar 2026 16:47:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(controller):=20=E6=B7=BB=E5=8A=A0=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=85=A5=E5=BA=93=E5=92=8C=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E7=AE=A1=E7=90=86=E6=8E=A7=E5=88=B6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 InProduceOrderController 实现生产订单入库管理功能 - 实现从 SAP 查询生产订单信息的功能 - 添加生产订单保存、搜索、删除等基本操作 - 实现物料条码 PDF 导出和标签图片 ZIP 批量导出 - 添加 PDA 使用的订单信息获取和收货入库接口 - 新增 InventoryController 提供库存盘点任务管理功能 - 实现库存盘点任务的创建、发布、删除等操作 - 添加盘点任务扫码记录和批量保存扫描结果功能 - 新增 InventoryCheckTaskScanRecord 文档实体用于存储盘点扫描记录 --- .../controller/InProduceOrderController.java | 3 --- .../wms/admin/controller/InventoryController.java | 15 +++++++++++++-- .../admin/controller/OutPurchaseController.java | 13 ++++++------- .../controller/PurchaseReturnController.java | 13 +++---------- .../document/InventoryCheckTaskScanRecord.java | 5 +++++ .../entity/WmsInventoryCheckTaskItemMaterial.java | 5 +++++ .../wms/repository/entity/WmsReturnRequest.java | 5 +++++ .../repository/entity/WmsReturnRequestItem.java | 5 ----- .../mapper/WmsInventoryCheckTaskMapper.xml | 11 +++++++---- .../resources/mapper/WmsReturnRequestMapper.xml | 15 ++++++++------- 10 files changed, 52 insertions(+), 38 deletions(-) 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 122c338f..b7e29291 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 @@ -300,7 +300,6 @@ public class InProduceOrderController extends BaseController { /** * 导出物料标签图片ZIP - * * @param id 订单ID */ @GetMapping(value = "exportItemImageZip", produces = "application/zip") @@ -336,7 +335,6 @@ public class InProduceOrderController extends BaseController { /** * 导出报工单PDF(单个) - * * @param id 订单id */ @GetMapping("exportOrderPdf") @@ -346,7 +344,6 @@ public class InProduceOrderController extends BaseController { /** * 导出报工单PDF(批量) - * * @param ids 订单id列表 */ @PostMapping("exportOrderPdf1") diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java index c5bea70c..daf5b31e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java @@ -5,12 +5,10 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.repository.InventoryCheckTaskScanRecordResitory; -import com.nflg.wms.admin.util.NoUtil; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.document.InventoryCheckTaskScanRecord; -import com.nflg.wms.common.pojo.dto.MaterialQRCodeContentDTO; import com.nflg.wms.common.pojo.qo.*; import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.common.util.UserUtil; @@ -63,6 +61,7 @@ public class InventoryController extends BaseController { /** * 库存查看 + * * @param request 请求参数 */ @PostMapping("search") @@ -72,6 +71,7 @@ public class InventoryController extends BaseController { /** * 保存库存盘点任务 + * * @param request 请求参数 */ @PostMapping("check/save") @@ -82,6 +82,7 @@ public class InventoryController extends BaseController { /** * 查询库存盘点任务 + * * @param request 请求参数 */ @PostMapping("check/search") @@ -91,6 +92,7 @@ public class InventoryController extends BaseController { /** * 获取库存盘点任务仓库列表 + * * @param id 任务ID * @return 仓库列表 */ @@ -120,6 +122,7 @@ public class InventoryController extends BaseController { /** * 发布库存盘点任务 + * * @param id 任务id */ @PostMapping("check/publish") @@ -130,6 +133,7 @@ public class InventoryController extends BaseController { /** * 删除库存盘点任务 + * * @param id ID */ @PostMapping("check/delete") @@ -148,6 +152,7 @@ public class InventoryController extends BaseController { /** * 盘点任务扫码(PDA使用) + * * @param request 请求参数 */ @PostMapping("check/scan") @@ -188,6 +193,7 @@ public class InventoryController extends BaseController { /** * 批量保存盘点结果(PDA使用) + * * @param request 请求参数 */ @PostMapping("check/saveScan") @@ -215,6 +221,7 @@ public class InventoryController extends BaseController { .setMaterialNo(qrCodeContent.getMaterialCode()) .setMaterialDesc(qrCodeContent.getMaterialDescription()) .setBatchNo(qrCodeContent.getBatchNo()) + .setBinNo(qrCodeContent.getBinLocation()) .setItemId(item.getId()) .setTaskId(item.getTaskId()) .setNum(qrCodeContent.getQuantity()); @@ -231,6 +238,7 @@ public class InventoryController extends BaseController { .materialId(material.getId()) .batchNo(qrCodeContent.getBatchNo()) .serialNo(qrCodeContent.getSerialNo()) + .binNo(qrCodeContent.getBinLocation()) .num(qrCodeContent.getQuantity()) .content(qrCode) .createBy(UserUtil.getUserName()) @@ -261,6 +269,7 @@ public class InventoryController extends BaseController { /** * 查看盘点结果 + * * @param request 请求参数 */ @PostMapping("check/getMaterials") @@ -270,6 +279,7 @@ public class InventoryController extends BaseController { /** * 查询物料扫码记录 + * * @param materialId 物料记录id * @return 扫码记录列表 */ @@ -280,6 +290,7 @@ public class InventoryController extends BaseController { /** * 获取推荐出库批次信息 + * * @param qo 请求参数 */ @PostMapping("getForOut") diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java index 7f2f6fad..0702a76a 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java @@ -9,19 +9,19 @@ import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; import com.nflg.wms.admin.service.BinService; import com.nflg.wms.admin.service.SapService; -import com.nflg.wms.admin.util.NoUtil; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.document.OutMaterialScanRecord; -import com.nflg.wms.common.pojo.dto.*; -import com.nflg.wms.common.pojo.qo.OutProduceSubmitItemQO; +import com.nflg.wms.common.pojo.dto.InventoryOutDTO; +import com.nflg.wms.common.pojo.dto.OptRecordDTO; +import com.nflg.wms.common.pojo.dto.ZWM3A06Input1DTO; +import com.nflg.wms.common.pojo.dto.ZWM3A06Input2DTO; import com.nflg.wms.common.pojo.qo.OutPurchaseSearchQO; import com.nflg.wms.common.pojo.qo.QRCodeQO; import com.nflg.wms.common.pojo.vo.OutPurchaseVO; import com.nflg.wms.common.pojo.vo.ZWM3A05ItemVO; import com.nflg.wms.common.pojo.vo.ZWM3A05VO; -import com.nflg.wms.common.pojo.vo.Zwm3a09VO; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.*; @@ -109,11 +109,10 @@ public class OutPurchaseController extends BaseController { .gt(WmsReturnRequestItem::getLeft, 0) .list(); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("所有物料均已完成"); - order.setPoNum(items.get(0).getPoNumberNew()); ZWM3A05VO vo = new ZWM3A05VO() .setPurchaseOrderId(order.getId()) .setLifnr(order.getSupplierCode()) - .setEbeln(order.getPoNum()) + .setEbeln(order.getPoNumberNew()) .setItems( items.stream() .map(it -> new ZWM3A05ItemVO() @@ -125,7 +124,7 @@ public class OutPurchaseController extends BaseController { .setMeins(it.getUnit()) .setLgort(it.getStorageLocation()) // .setEbelp(it.getPoLineNumberNew().toString()) - .setEbelp(Optional.ofNullable(it.getPoLineNumberNew()).map(Object::toString).orElse("")) + .setEbelp(String.valueOf(it.getPoLineNumberNew())) ) .toList() ); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java index 44c6301f..1dc65368 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java @@ -243,7 +243,7 @@ public class PurchaseReturnController extends BaseController { .findFirst() .get(); dbItem.setPoLineNumberNew(item.getEbelp()); - dbItem.setPoNumberNew(item.getEbeln()); + returnRequest.setPoNumberNew(item.getEbeln()); }); returnRequestItemService.updateBatchById(returnRequestItems); } else if (request.getDocumentType().equals(2)) { //24 退换货 @@ -271,7 +271,7 @@ public class PurchaseReturnController extends BaseController { .filter(it -> it.getMaterialCode().equals(materialNo)) .findFirst().orElse( null); dbItem.setPoLineNumberNew(item.getEbelp()); - dbItem.setPoNumberNew(item.getEbeln()); + returnRequest.setPoNumberNew(item.getEbeln()); returnRequestItemService.updateBatchById(returnRequestItems); } } @@ -524,16 +524,9 @@ public class PurchaseReturnController extends BaseController { @GetMapping("exportTicket") public void exportTicket(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception { WmsReturnRequest order = returnRequestService.getById(id); - List orderItem = returnRequestItemService.lambdaQuery() - .eq(WmsReturnRequestItem::getApplicationId, id) - .list(); - if(CollectionUtil.isNotEmpty(orderItem)) - { - order.setPoNum(orderItem.get(0).getPoNumberNew()); - } - VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("申请单不存在"); VUtil.trueThrowBusinessError(order.getApprovalStatus() != 1).throwMessage("申请单未审核通过"); + order.setPoNum(order.getPoNumberNew()); UserSupplier supplier = userSupplierService.getByCode(order.getSupplierCode()); List list = returnRequestItemService.lambdaQuery() .eq(WmsReturnRequestItem::getApplicationId, id) diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/InventoryCheckTaskScanRecord.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/InventoryCheckTaskScanRecord.java index 88f2c4f6..5296b816 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/InventoryCheckTaskScanRecord.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/InventoryCheckTaskScanRecord.java @@ -79,4 +79,9 @@ public class InventoryCheckTaskScanRecord { */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Instant createTime; + + /** + * 储位 + */ + private String binNo; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventoryCheckTaskItemMaterial.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventoryCheckTaskItemMaterial.java index f68d79b3..8ae0e51a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventoryCheckTaskItemMaterial.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventoryCheckTaskItemMaterial.java @@ -59,4 +59,9 @@ public class WmsInventoryCheckTaskItemMaterial implements Serializable { * 数量 */ private BigDecimal num; + + /** + * 储位 + */ + private String binNo; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequest.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequest.java index 4cb8dd0d..3edc52c1 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequest.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequest.java @@ -115,4 +115,9 @@ public class WmsReturnRequest implements Serializable { * 0 PC端,1 PDA端 */ private Short dataSource; + + /** + * 新的采购单号 + */ + private String poNumberNew; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java index c451deb8..4d6b75c5 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java @@ -128,9 +128,4 @@ public class WmsReturnRequestItem implements Serializable { * sap过账的行号 */ private Integer poLineNumberNew; - - /** - * 新的采购单号 - */ - private String poNumberNew; } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsInventoryCheckTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsInventoryCheckTaskMapper.xml index 0cd1459f..04ff02c0 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsInventoryCheckTaskMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsInventoryCheckTaskMapper.xml @@ -23,14 +23,17 @@ diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsReturnRequestMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsReturnRequestMapper.xml index 995730ed..8f05b7cc 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsReturnRequestMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsReturnRequestMapper.xml @@ -49,19 +49,19 @@ and rr.application_no =#{request.applicationNo} - and rr.supplier_code =#{ request.supplierCode} + and rr.supplier_code =#{request.supplierCode} - and rr.po_num =#{ request.poNum} + and rr.po_num =#{request.poNum} - - and rr.approval_status =#{ request.approvalStatus} + + and rr.approval_status =#{request.approvalStatus} - - and rr.document_type =#{ request.documentType} + + and rr.document_type =#{request.documentType} - and rr.purchase_group =#{ request.purchaseGroup} + and rr.purchase_group =#{request.purchaseGroup} and rr.approve_time>= #{request.startDate} @@ -69,6 +69,7 @@ and rr.approve_time <= #{request.endDate} + ORDER BY rr.approval_status,rr.id DESC