Merge remote-tracking branch 'origin/wms_dev' into wms_dev

This commit is contained in:
王奎兴
2026-02-06 13:18:05 +08:00
2 changed files with 32 additions and 17 deletions
@@ -398,7 +398,7 @@ public class StockShelfOrderApplicationService {
//设置容器信息
// setContainerInfo(returnShelfMaterialDetailDOChild);
//上架后 设置该记录不允许被修改
shelfMaterialDetailDO.setAllowModify(2);
returnShelfMaterialDetailDOChild.setAllowModify(2);
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList());
returnShelfMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
returnShelfMaterialDetailDOChild.setLevel(2);
@@ -410,6 +410,8 @@ public class StockShelfOrderApplicationService {
}
}
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
//设置子项的实际数量(等于上架数量)
returnShelfMaterialDetailDOChild.setActualQuantity(returnShelfMaterialDetailDOChild.getShelvesQuantity());
returnShelfMaterialDetailDOChildList.add(returnShelfMaterialDetailDOChild);
actualQuantity = actualQuantity.add(returnShelfMaterialDetailDOChild.getShelvesQuantity());
}
@@ -455,8 +457,8 @@ public class StockShelfOrderApplicationService {
* @param shelfMaterialDetailDO
*/
private void setStorageLocationInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
if (shelfMaterialDetailDO.getStorageLocationId() == null) {
throw new ServiceException("库位ID不能为空");
if (shelfMaterialDetailDO.getStorageLocationId() == null || shelfMaterialDetailDO.getStorageLocationId() == 0) {
throw new ServiceException("库位ID不能为空或0");
}
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shelfMaterialDetailDO.getStorageLocationId());
if (storageLocationResult == null) {
@@ -471,19 +473,31 @@ public class StockShelfOrderApplicationService {
if (dataObj == null) {
throw new ServiceException("获取上架库位信息失败:返回数据为空,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
}
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(dataObj), StorageLocationFeignPO.class);
if (storageLocationFeignPO == null) {
throw new ServiceException("获取上架库位信息失败:数据解析失败,库位ID:" + shelfMaterialDetailDO.getStorageLocationId());
try {
String jsonString = JSONObject.toJSONString(dataObj);
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));
}
BigDecimal totalActualQuantity = shelfMaterialDetailDO.getActualQuantity();
BigDecimal totalActualQuantity = shelfMaterialDetailDO.getActualQuantity() != null ? shelfMaterialDetailDO.getActualQuantity() : BigDecimal.ZERO;
//判断是否存在子项
List<ShelfMaterialDetailDO> inMaterialDetailDOChildList = shelfMaterialDetailDO.getChildren();
List<ShelfMaterialDetail> shelfMaterialDetailChildList = new ArrayList<>();
@@ -212,7 +212,8 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
}
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();