From 242c1475731393bdb03c2d2655f3c29cab7af201 Mon Sep 17 00:00:00 2001 From: zhangke Date: Thu, 5 Mar 2026 11:15:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=94=B6=E8=B4=A7=E3=80=81?= =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E7=9A=84=E7=BB=9F=E4=B8=80=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QrCodeMasterController.java | 36 +++++++++++++++++++ .../wms/common/pojo/qo/QRCodeSearchQO.java | 30 ++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java index 5220e449..58371fae 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java @@ -287,4 +287,40 @@ public class QrCodeMasterController extends BaseController { return ApiResult.success(); } + + + /** + * 物料出入库统一扫码接口 + * + * @param request + * @return + * @author + * */ + @PostMapping("pda/scan") + @ApiMark(moduleName = "扫码", apiName = "扫码获取扫码信息") + public ApiResult scan(@Valid @RequestBody QRCodeSearchQO request) { + WmsQrCodeMaster qrCodeMaster = qrCodeMasterService.lambdaQuery() + .eq(WmsQrCodeMaster::getBarcodeCode, request.getPackageCode()) + .eq(WmsQrCodeMaster::getProcessStage, request.getProcessStage()) + .one(); + //判断是否为有效码 + VUtil.trueThrowBusinessError(ObjectUtil.isNull(qrCodeMaster)).throwMessage("无效码"); + QrCodeVO qrCodeVO = Convert.convert(QrCodeVO.class, qrCodeMaster); + if (qrCodeMaster.getPackagingType() == 1) { + // 查询子条形码并累加其数量 + List qrCodeMasters = qrCodeMasterService.lambdaQuery() + .eq(WmsQrCodeMaster::getParentBarcodeId, qrCodeMaster.getId()) + .eq(WmsQrCodeMaster::getProcessStage, request.getProcessStage()) + .list(); + VUtil.trueThrowBusinessError(ObjectUtil.isNull(qrCodeMasters)) + .throwMessage("此箱[" + request.getPackageCode() + "]为空箱"); + + + BigDecimal quantity = qrCodeMasters.stream().map(WmsQrCodeMaster::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add); + qrCodeVO.setQuantity(quantity); + List qrCodeVOS = Convert.toList(QrCodeVO.class, qrCodeMasters); + qrCodeVO.setChildrenCode(qrCodeVOS); + } + return ApiResult.success(qrCodeVO); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java new file mode 100644 index 00000000..5b5a7243 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QRCodeSearchQO.java @@ -0,0 +1,30 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class QRCodeSearchQO { + /** + * 包装编号 + */ + @NotNull + @NotBlank + private String packageCode; + + /** + * Unpackaged((short) 0, "未装箱"), + * Packaged((short) 1, "已装箱"), + * UnLoaded((short) 2, "未打包"), + * Loaded((short) 3, "已打包"), + * Received ((short) 4, "已收货"), + * Checking((short) 5, "质检中"), + * InBound((short) 6, "已入库"), + * OutBound((short) 7, "已出库"), //已被使用,只有退库的时候才会被重新激活 + * Hold((short) 8, "已挂起");// 用于仓库转储,出库之后此二维码还需要继续使用,用一个特殊的状态标记 + */ + private Short processStage; +}