添加收货、出入库的统一扫码接口

This commit is contained in:
zhangke 2026-03-05 11:15:33 +08:00
parent 6a17f2c9e0
commit 242c147573
2 changed files with 66 additions and 0 deletions

View File

@ -287,4 +287,40 @@ public class QrCodeMasterController extends BaseController {
return ApiResult.success();
}
/**
* 物料出入库统一扫码接口
*
* @param request
* @return
* @author
* */
@PostMapping("pda/scan")
@ApiMark(moduleName = "扫码", apiName = "扫码获取扫码信息")
public ApiResult<QrCodeVO> 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<WmsQrCodeMaster> 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<QrCodeVO> qrCodeVOS = Convert.toList(QrCodeVO.class, qrCodeMasters);
qrCodeVO.setChildrenCode(qrCodeVOS);
}
return ApiResult.success(qrCodeVO);
}
}

View File

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