收货修改

This commit is contained in:
秦鸿展
2026-04-18 16:11:38 +08:00
parent 1d78832604
commit 5917caacd3
2 changed files with 21 additions and 2 deletions
@@ -488,8 +488,12 @@ public class StockInOrderDomainService {
// 复制特定字段:生产日期、过期日期、存货日期、批次参考号、单据参考号、箱号/卡板号、扩展属性1-4
// 这些字段可能使用驼峰命名或下划线命名,使用反射获取和设置
copySpecialFields(inMaterialDetailPO, receiptMaterialDetailDO);
//收货计划数量赋值
receiptMaterialDetailDO.setQuantity(inMaterialDetailPO.getInboundQuantity());
// 收货计划数量:与入库明细「计划数量」quantity 一致;inbound_quantity 常为空(仅占位或后置填报),不能单用它否则会变成 0
BigDecimal planQty = inMaterialDetailPO.getQuantity();
if (planQty == null) {
planQty = inMaterialDetailPO.getInboundQuantity();
}
receiptMaterialDetailDO.setQuantity(planQty);
receiptMaterialDetailDOList.add(receiptMaterialDetailDO);
});
stockReceiptOrderDO.setMaterialDetailList(receiptMaterialDetailDOList);
@@ -1191,6 +1191,7 @@ public class StockReceiptOrderDomainService {
shelfMaterialDetailDO.setExtAttr4(sdf.parse(receiptMaterialDetailDO.getExtAttr4()));
} catch (Exception e) { }
}
applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDO, receiptMaterialDetailDO.getLotNo());
shelfMaterialDetailDOList.add(shelfMaterialDetailDO);
}
// 子项有收货数量时,每个子项生成一条上架明细(一明细两子项 → 两条上架明细)
@@ -1230,6 +1231,7 @@ public class StockReceiptOrderDomainService {
shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr4()));
} catch (Exception e) { }
}
applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDOChildren, receiptMaterialDetailDOChildren.getLotNo());
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
});
}
@@ -1329,6 +1331,7 @@ public class StockReceiptOrderDomainService {
// 如果转换失败,不设置该字段
}
}
applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDO, receiptMaterialDetailPO.getLotNo());
shelfMaterialDetailDOList.add(shelfMaterialDetailDO);
receiptQuantity = receiptQuantity.add(receiptMaterialDetailPO.getReceiptQuantity());
}
@@ -1370,6 +1373,7 @@ public class StockReceiptOrderDomainService {
shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailPOChildren.getExtAttr4()));
} catch (Exception e) { }
}
applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDOChildren, receiptMaterialDetailPOChildren.getLotNo());
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
receiptQuantity = receiptQuantity.add(receiptMaterialDetailPOChildren.getReceiptQuantity());
}
@@ -1450,6 +1454,7 @@ public class StockReceiptOrderDomainService {
// 如果转换失败,不设置该字段
}
}
applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDO, receiptMaterialDetailPO.getLotNo());
// 处理子项:如果子项的已收货数量为0,跳过该子项
if (receiptMaterialDetailPO.getChildren() != null && !receiptMaterialDetailPO.getChildren().isEmpty()) {
receiptMaterialDetailPO.getChildren().forEach(receiptMaterialDetailDOChildren -> {
@@ -1491,6 +1496,7 @@ public class StockReceiptOrderDomainService {
// 如果转换失败,不设置该字段
}
}
applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDOChildren, receiptMaterialDetailDOChildren.getLotNo());
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
});
}
@@ -1958,4 +1964,13 @@ public class StockReceiptOrderDomainService {
public List<StockReceiptOrderPO> queryPrintInfo(StockReceiptOrderDTO stockReceiptOrderDTO) {
return stockReceiptOrderService.queryPrintInfo(stockReceiptOrderDTO);
}
/**
* 收货明细为 lot_no,上架明细为 lot_number,字段名不同,BeanUtils.copyProperties 不会拷贝,生成上架明细时显式赋值。
*/
private static void applyReceiptLotNoToShelfLotNumber(ShelfMaterialDetailDO shelf, String receiptLotNo) {
if (shelf != null) {
shelf.setLotNumber(receiptLotNo);
}
}
}