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; +}