上架子项修改

This commit is contained in:
秦鸿展
2026-02-06 10:19:37 +08:00
parent 532d163f7a
commit 8114bf79e2
2 changed files with 32 additions and 17 deletions
@@ -398,7 +398,7 @@ public class StockShelfOrderApplicationService {
//设置容器信息 //设置容器信息
// setContainerInfo(returnShelfMaterialDetailDOChild); // setContainerInfo(returnShelfMaterialDetailDOChild);
//上架后 设置该记录不允许被修改 //上架后 设置该记录不允许被修改
shelfMaterialDetailDO.setAllowModify(2); returnShelfMaterialDetailDOChild.setAllowModify(2);
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList()); returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList());
returnShelfMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); returnShelfMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
returnShelfMaterialDetailDOChild.setLevel(2); returnShelfMaterialDetailDOChild.setLevel(2);
@@ -410,6 +410,8 @@ public class StockShelfOrderApplicationService {
} }
} }
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList()); returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
//设置子项的实际数量(等于上架数量)
returnShelfMaterialDetailDOChild.setActualQuantity(returnShelfMaterialDetailDOChild.getShelvesQuantity());
returnShelfMaterialDetailDOChildList.add(returnShelfMaterialDetailDOChild); returnShelfMaterialDetailDOChildList.add(returnShelfMaterialDetailDOChild);
actualQuantity = actualQuantity.add(returnShelfMaterialDetailDOChild.getShelvesQuantity()); actualQuantity = actualQuantity.add(returnShelfMaterialDetailDOChild.getShelvesQuantity());
} }
@@ -455,8 +457,8 @@ public class StockShelfOrderApplicationService {
* @param shelfMaterialDetailDO * @param shelfMaterialDetailDO
*/ */
private void setStorageLocationInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){ private void setStorageLocationInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
if (shelfMaterialDetailDO.getStorageLocationId() == null) { if (shelfMaterialDetailDO.getStorageLocationId() == null || shelfMaterialDetailDO.getStorageLocationId() == 0) {
throw new ServiceException("库位ID不能为空"); throw new ServiceException("库位ID不能为空或0");
} }
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shelfMaterialDetailDO.getStorageLocationId()); AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shelfMaterialDetailDO.getStorageLocationId());
if (storageLocationResult == null) { if (storageLocationResult == null) {
@@ -471,19 +473,31 @@ public class StockShelfOrderApplicationService {
if (dataObj == null) { if (dataObj == null) {
throw new ServiceException("获取上架库位信息失败:返回数据为空,库位ID:" + shelfMaterialDetailDO.getStorageLocationId()); throw new ServiceException("获取上架库位信息失败:返回数据为空,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
} }
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(dataObj), StorageLocationFeignPO.class); try {
if (storageLocationFeignPO == null) { String jsonString = JSONObject.toJSONString(dataObj);
throw new ServiceException("获取上架库位信息失败:数据解析失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId()); if (jsonString == null || jsonString.trim().isEmpty() || "null".equals(jsonString)) {
throw new ServiceException("获取上架库位信息失败:数据序列化失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
}
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(jsonString, StorageLocationFeignPO.class);
if (storageLocationFeignPO == null) {
throw new ServiceException("获取上架库位信息失败:数据解析失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
}
shelfMaterialDetailDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
shelfMaterialDetailDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
shelfMaterialDetailDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
shelfMaterialDetailDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
shelfMaterialDetailDO.setStorageCode(storageLocationFeignPO.getStorageCode());
shelfMaterialDetailDO.setStorageName(storageLocationFeignPO.getStorageName());
shelfMaterialDetailDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
shelfMaterialDetailDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
shelfMaterialDetailDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
} catch (Exception e) {
log.error("解析库位信息失败,库位ID:{},错误:{}", shelfMaterialDetailDO.getStorageLocationId(), e.getMessage(), e);
if (e instanceof ServiceException) {
throw e;
}
throw new ServiceException("获取上架库位信息失败:数据解析异常,库位ID:" + shelfMaterialDetailDO.getStorageLocationId() + ",错误信息:" + e.getMessage());
} }
shelfMaterialDetailDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
shelfMaterialDetailDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
shelfMaterialDetailDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
shelfMaterialDetailDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
shelfMaterialDetailDO.setStorageCode(storageLocationFeignPO.getStorageCode());
shelfMaterialDetailDO.setStorageName(storageLocationFeignPO.getStorageName());
shelfMaterialDetailDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
shelfMaterialDetailDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
shelfMaterialDetailDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
} }
/** /**
@@ -192,7 +192,7 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
} }
materialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(shelfMaterialDetailDO)); materialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(shelfMaterialDetailDO));
} }
BigDecimal totalActualQuantity = shelfMaterialDetailDO.getActualQuantity(); BigDecimal totalActualQuantity = shelfMaterialDetailDO.getActualQuantity() != null ? shelfMaterialDetailDO.getActualQuantity() : BigDecimal.ZERO;
//判断是否存在子项 //判断是否存在子项
List<ShelfMaterialDetailDO> inMaterialDetailDOChildList = shelfMaterialDetailDO.getChildren(); List<ShelfMaterialDetailDO> inMaterialDetailDOChildList = shelfMaterialDetailDO.getChildren();
List<ShelfMaterialDetail> shelfMaterialDetailChildList = new ArrayList<>(); List<ShelfMaterialDetail> shelfMaterialDetailChildList = new ArrayList<>();
@@ -212,7 +212,8 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
} }
materialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(shelfMaterialDetailDOChild)); materialDetailSerialNumberList.addAll(genMaterialDetailSerialNumber(shelfMaterialDetailDOChild));
} }
totalActualQuantity = totalActualQuantity.add(shelfMaterialDetailDOChild.getActualQuantity()); BigDecimal childActualQuantity = shelfMaterialDetailDOChild.getActualQuantity() != null ? shelfMaterialDetailDOChild.getActualQuantity() : BigDecimal.ZERO;
totalActualQuantity = totalActualQuantity.add(childActualQuantity);
} }
} }
ShelfMaterialDetail shelfMaterialDetail = new ShelfMaterialDetail(); ShelfMaterialDetail shelfMaterialDetail = new ShelfMaterialDetail();