feat(normalPGI): 添加收货单存在性验证并集成SAP物料信息查询

- 验证收货单是否存在,不存在时抛出业务异常
- 集成SAP同步参数服务获取物料信息
- 添加工厂代码和仓库编号字段到无扫描项目返回结果
- 重构数据映射逻辑以支持动态物料信息获取
This commit is contained in:
曹鹏飞 2026-06-02 18:43:45 +08:00
parent b4b73a50ee
commit e93fb50543
1 changed files with 14 additions and 7 deletions

View File

@ -193,6 +193,8 @@ public class NormalPGIController extends BaseController {
*/
@GetMapping("getListForNoScan")
public ApiResult<List<NoScanItemVO>> getListForNoScan(@RequestParam Long orderId) {
WmsSrmOrder order = wmsSrmOrderService.getById(orderId);
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("收货单不存在");
List<WmsSrmOrderItem> items = wmsSrmOrderItemService.lambdaQuery()
.eq(WmsSrmOrderItem::getOrderId, orderId)
.list();
@ -200,13 +202,18 @@ public class NormalPGIController extends BaseController {
|| noScanningBaseControllerService.existsQrCode(item.getItemCode()));
return ApiResult.success(
items.stream()
.map(item -> new NoScanItemVO()
.setRowNo(item.getLineNumber())
.setOrderItemId(item.getId())
.setMaterialNo(item.getItemCode())
.setMaterialDesc(item.getItemName())
.setWarehouseNo("")
.setNum(item.getDeliveryQty().subtract(item.getReceiptQty())))
.map(item -> {
SAPSyncParamsDTO syncParamsDTO = sapCommonService.getMaterialInfoInOrder(item.getPoNum(),
order.getSupplierNum(), item.getItemCode(), item.getPoLineNumber());
return new NoScanItemVO()
.setRowNo(item.getLineNumber())
.setOrderItemId(item.getId())
.setMaterialNo(item.getItemCode())
.setMaterialDesc(item.getItemName())
.setFactoryNo(order.getIuCode())
.setWarehouseNo(syncParamsDTO.getWarehouseNo())
.setNum(item.getDeliveryQty().subtract(item.getReceiptQty()));
})
.toList()
);
}