补全缺少的批次和货主编码

This commit is contained in:
zhou-hongcheng
2026-03-03 13:59:31 +08:00
parent 28932f1756
commit 2a7091a63e
2 changed files with 10 additions and 0 deletions
@@ -196,6 +196,7 @@ public class MaterialInventoryImpl extends ServiceImpl<MaterialInventoryMapper,
Long shipperId = materialInventoryDO.getShipperId();
String shipperName = "";
String shipperCode = "";
String batchNumber = "";
if (shipperId == null && materialInventoryDO.getMaterialBaseInfoId() != null) {
// shipperId = materialBaseInfoIdToShipperIdMap.get(materialInventoryDO.getMaterialBaseInfoId());
MaterialBaseInfoPO materialBaseInfoPO = materialBaseInfoIdToShipperIdMap.get(materialInventoryDO.getMaterialBaseInfoId());
@@ -203,6 +204,12 @@ public class MaterialInventoryImpl extends ServiceImpl<MaterialInventoryMapper,
shipperName = materialBaseInfoPO.getShipperName();
shipperCode = materialBaseInfoPO.getShipperCode();
}
if (StringUtils.isEmpty(shipperCode) || materialInventoryDO.getBatchNumber() == null) {
Long materialInventoryId = materialInventoryDO.getMaterialInventoryId();
MaterialInventory materialInventory1 = materialInventoryMapper.selectById(materialInventoryId);
shipperCode = materialInventory1.getShipperCode();
batchNumber = materialInventory1.getBatchNumber();
}
//TODO 若数据量升级 后期优化
// 查询现有库存时,按唯一索引(storage_location_id, material_base_info_id, shipper_id) 查询
@@ -242,6 +249,7 @@ public class MaterialInventoryImpl extends ServiceImpl<MaterialInventoryMapper,
}
if (StringUtils.isEmpty(materialInventory.getShipperCode())){
materialInventory.setShipperCode(shipperCode);
materialInventory.setBatchNumber(batchNumber);
}
// 如果批次号、容器ID、物料状态等字段在唯一性约束中,应该保留;否则,使用第一个值
// 由于唯一性约束只包含storage_location_id和material_base_info_id,我们保留这些字段的值
@@ -426,6 +426,7 @@ public class ShiftManageDomainService {
shiftMaterialDetailPO.setGrossWeight(materialInventoryOldDb.getGrossWeight());
shiftMaterialDetailPO.setVolume(materialInventoryOldDb.getVolume());
shiftMaterialDetailPO.setArea(materialInventoryOldDb.getArea());
shiftMaterialDetailPO.setMaterialInventoryId(materialInventoryOldDb.getMaterialInventoryId());
materialInventoryNowList.add(genMaterialInventory(shiftMaterialDetailPO));
List<ShiftMaterialDetailPO> shiftMaterialDetailPOChildrenList = shiftMaterialDetailPO.getChildren();
for (ShiftMaterialDetailPO shiftMaterialDetailPOChildren : shiftMaterialDetailPOChildrenList){
@@ -533,6 +534,7 @@ public class ShiftManageDomainService {
materialInventoryDONow.setGrossWeight(shiftMaterialDetailPO.getGrossWeight());
materialInventoryDONow.setVolume(shiftMaterialDetailPO.getVolume());
materialInventoryDONow.setArea(shiftMaterialDetailPO.getArea());
materialInventoryDONow.setMaterialInventoryId(shiftMaterialDetailPO.getMaterialInventoryId());
materialInventoryDONow.setOrganizationId(loginUser.getUserPo().getOrganizationId());
materialInventoryDONow.setOrganizationName(loginUser.getUserPo().getOrganizationName());
materialInventoryDONow.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());