feat(normal-pgi): 添加批次号支持并优化二维码处理逻辑

- 在PGI控制器中为采购订单项目设置空字符串作为默认批次号
- 修复物料收货数量比较操作符周围的空格格式问题
- 重构二维码处理逻辑,提取批次号信息并存储到集合中
- 将提取的批次号通过逗号连接后设置到申请对象中
- 在QMS服务中为库存申请设置批次号字段
This commit is contained in:
曹鹏飞 2026-06-23 11:25:28 +08:00
parent e2039b90d6
commit 1969fabfc9
2 changed files with 25 additions and 11 deletions

View File

@ -410,6 +410,7 @@ public class NormalPGIController extends BaseController {
.setFactory(order.getIuCode()) .setFactory(order.getIuCode())
.setInspectionQty(qcItem.getReceiptNum() != null ? qcItem.getReceiptNum().intValue() : 0) .setInspectionQty(qcItem.getReceiptNum() != null ? qcItem.getReceiptNum().intValue() : 0)
.setPurchaseGroup(order.getPurchaseGroup()) .setPurchaseGroup(order.getPurchaseGroup())
.setBatchNo("")
); );
qcDto.getReceiptIds().add(qcItem.getId()); qcDto.getReceiptIds().add(qcItem.getId());
@ -678,7 +679,7 @@ public class NormalPGIController extends BaseController {
for (SrmMaterialReceiptQO item : request) { for (SrmMaterialReceiptQO item : request) {
if (item.getReceiptNum().compareTo(BigDecimal.ZERO)==0) if (item.getReceiptNum().compareTo(BigDecimal.ZERO) == 0)
continue; continue;
// 处理二维码 // 处理二维码
List<PDAScanCodeQO> autoFindChildCodes = Lists.newArrayList(); List<PDAScanCodeQO> autoFindChildCodes = Lists.newArrayList();
@ -1180,27 +1181,38 @@ public class NormalPGIController extends BaseController {
// pushDto.getContent().getLineVOList().add(srmItem); // pushDto.getContent().getLineVOList().add(srmItem);
// } // }
Set<String> qrCodes = new HashSet<>(); Set<String> qrCodes = new HashSet<>();
Set<String> batchNos = new HashSet<>();
if (CollectionUtil.isNotEmpty(codes)) { if (CollectionUtil.isNotEmpty(codes)) {
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.lambdaQuery() List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.lambdaQuery()
.in(WmsQrCodeMaster::getMaterialCode, codes.stream() .in(WmsQrCodeMaster::getMaterialCode, codes.stream()
.map(SrmMaterialReceiptScanCodes::getCodeId) .map(SrmMaterialReceiptScanCodes::getCodeId)
.toList() .toList()
).list(); ).list();
qrCodes.addAll( List<WmsQrCodeMaster> qrCodeMasters0 = qrCodeMasters.stream()
qrCodeMasters.stream()
.filter(q -> q.getPackagingType() == 0) .filter(q -> q.getPackagingType() == 0)
.toList();
batchNos = qrCodeMasters0.stream()
.map(WmsQrCodeMaster::getBatchNo)
.collect(Collectors.toSet());
qrCodes.addAll(
qrCodeMasters0.stream()
.map(WmsQrCodeMaster::getMaterialCode) .map(WmsQrCodeMaster::getMaterialCode)
.toList() .toList()
); );
qrCodes.addAll( qrCodeMasters0 = qrCodeMasterService.lambdaQuery()
qrCodeMasterService.lambdaQuery()
.in(WmsQrCodeMaster::getParentBarcodeId, qrCodeMasters.stream() .in(WmsQrCodeMaster::getParentBarcodeId, qrCodeMasters.stream()
.filter(q -> q.getPackagingType() == 1) .filter(q -> q.getPackagingType() == 1)
.map(WmsQrCodeMaster::getId) .map(WmsQrCodeMaster::getId)
.toList() .toList()
) )
.list() .list();
.stream() batchNos.addAll(
qrCodeMasters0.stream()
.map(WmsQrCodeMaster::getBatchNo)
.collect(Collectors.toSet())
);
qrCodes.addAll(
qrCodeMasters0.stream()
.map(WmsQrCodeMaster::getMaterialCode) .map(WmsQrCodeMaster::getMaterialCode)
.toList() .toList()
); );
@ -1220,6 +1232,7 @@ public class NormalPGIController extends BaseController {
.setInspectionQty(item.getReceiptNum() != null ? item.getReceiptNum().intValue() : 0) .setInspectionQty(item.getReceiptNum() != null ? item.getReceiptNum().intValue() : 0)
.setPurchaseGroup(order.getPurchaseGroup()) .setPurchaseGroup(order.getPurchaseGroup())
.setQrCodes(qrCodes) .setQrCodes(qrCodes)
.setBatchNo(StrUtil.join(",", batchNos))
); );
} }

View File

@ -193,6 +193,7 @@ public class QmsService {
apply.setWarehouse(inventory.getWarehouseNo()); apply.setWarehouse(inventory.getWarehouseNo());
apply.setStorageLocation(inventory.getBinLocation()); apply.setStorageLocation(inventory.getBinLocation());
apply.setStorageDays((int) LocalDateTimeUtil.between(inventory.getCreateTime(), LocalDateTime.now(), ChronoUnit.DAYS)); apply.setStorageDays((int) LocalDateTimeUtil.between(inventory.getCreateTime(), LocalDateTime.now(), ChronoUnit.DAYS));
apply.setBatchNo(inventory.getBatchNo());
List<String> qrCodes = getInventoryInspectionQrCodes(apply); List<String> qrCodes = getInventoryInspectionQrCodes(apply);
apply.setQrCodes(qrCodes); apply.setQrCodes(qrCodes);