Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
+15
@@ -445,6 +445,17 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
||||
continue;
|
||||
}
|
||||
|
||||
// 仅使用 level=1 的主明细更新入库单明细的批次属性,避免子明细(level=2)覆盖主明细的值
|
||||
Integer level = receiptMaterialDetailDO.getLevel();
|
||||
if (level != null && level != 1) {
|
||||
// 子明细不更新 in_material_detail,继续递归处理子项
|
||||
List<ReceiptMaterialDetailDO> children = receiptMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(children)) {
|
||||
updateInMaterialDetailFromAttributeOption(children, batchFieldNameCache);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
List<MaterialMoreDetailDO> materialMoreDetailList = receiptMaterialDetailDO.getMaterialMoreDetailList();
|
||||
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
||||
// 处理子项
|
||||
@@ -801,15 +812,19 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
||||
attributeValue = attributeValue.trim();
|
||||
switch (batchLabels) {
|
||||
case "扩展字段4":
|
||||
case "扩展属性4":
|
||||
receiptMaterialDetailDO.setExtAttr4(attributeValue);
|
||||
break;
|
||||
case "扩展字段3":
|
||||
case "扩展属性3":
|
||||
receiptMaterialDetailDO.setExtAttr3(attributeValue);
|
||||
break;
|
||||
case "扩展字段2":
|
||||
case "扩展属性2":
|
||||
receiptMaterialDetailDO.setExtAttr2(attributeValue);
|
||||
break;
|
||||
case "扩展字段1":
|
||||
case "扩展属性1":
|
||||
receiptMaterialDetailDO.setExtAttr1(attributeValue);
|
||||
break;
|
||||
case "箱号/卡板号":
|
||||
|
||||
+7
-2
@@ -69,9 +69,12 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
|
||||
List<ShelfMaterialDetailPO> shelfMaterialDetailPOList = shelfMaterialDetailMapper.queryList(shelfMaterialDetailDO);
|
||||
|
||||
//回显带上更多属性值(批次标签):根据物料绑定的批次属性动态显示,与收货一致
|
||||
// material_more_detail 存储时使用收货明细的 unique_id,上架明细需用 receipt_unique_id 查询
|
||||
shelfMaterialDetailPOList.forEach(shelfMaterialDetailPO -> {
|
||||
MaterialMoreDetailDO materialMoreDetailDO = new MaterialMoreDetailDO();
|
||||
materialMoreDetailDO.setMaterialDetailUniqueId(shelfMaterialDetailPO.getUniqueId());
|
||||
Long materialDetailUniqueIdForQuery = shelfMaterialDetailPO.getReceiptUniqueId() != null
|
||||
? shelfMaterialDetailPO.getReceiptUniqueId() : shelfMaterialDetailPO.getUniqueId();
|
||||
materialMoreDetailDO.setMaterialDetailUniqueId(materialDetailUniqueIdForQuery);
|
||||
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
|
||||
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(shelfMaterialDetailPO.getMaterialBaseInfoId());
|
||||
@@ -92,7 +95,9 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
|
||||
List<ShelfMaterialDetailPO> children = getChildren(materialDetailPO.getUniqueId(), shelfMaterialDetailPOList, 2);
|
||||
children.forEach(childrenDetailPO -> {
|
||||
MaterialMoreDetailDO materialMoreDetailDO = new MaterialMoreDetailDO();
|
||||
materialMoreDetailDO.setMaterialDetailUniqueId(childrenDetailPO.getUniqueId());
|
||||
Long materialDetailUniqueIdForQuery = childrenDetailPO.getReceiptUniqueId() != null
|
||||
? childrenDetailPO.getReceiptUniqueId() : childrenDetailPO.getUniqueId();
|
||||
materialMoreDetailDO.setMaterialDetailUniqueId(materialDetailUniqueIdForQuery);
|
||||
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
|
||||
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(childrenDetailPO.getMaterialBaseInfoId());
|
||||
|
||||
+10
-2
@@ -306,8 +306,16 @@ public class StockOutTaskOrderDomainService {
|
||||
if (ObjectUtil.isNull(materialInventoryOldDb)){
|
||||
throw new ServiceException("物料原库位下的物料库存不存在,不能进行出库");
|
||||
}
|
||||
if (materialInventoryOldDb.getInventoryQuantity().compareTo(actualQuantity) < 0){
|
||||
throw new ServiceException("物料原库位下的物料库存不足,不能进行出库");
|
||||
BigDecimal invQty = materialInventoryOldDb.getInventoryQuantity() != null ? materialInventoryOldDb.getInventoryQuantity() : BigDecimal.ZERO;
|
||||
if (invQty.compareTo(actualQuantity) < 0){
|
||||
String hint = "";
|
||||
if (invQty.compareTo(BigDecimal.ZERO) == 0 && materialInventoryOldDb.getFreezeQuantity() != null
|
||||
&& materialInventoryOldDb.getFreezeQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
||||
hint = String.format("(该库位库存为0,冻结数量=%s,可能需先解冻)", materialInventoryOldDb.getFreezeQuantity());
|
||||
} else {
|
||||
hint = String.format("库位库存=%s,拣货数量=%s", invQty, actualQuantity);
|
||||
}
|
||||
throw new ServiceException("物料原库位下的物料库存不足,不能进行出库。" + hint + ",物料=" + taskPickingMaterialDetailDO.getMaterialName() + ",库位=" + taskPickingMaterialDetailDO.getStorageLocationCode());
|
||||
}
|
||||
//原库位
|
||||
MaterialInventoryDO materialInventoryDOOld = new MaterialInventoryDO();
|
||||
|
||||
+6
-3
@@ -916,7 +916,8 @@ public class StockReceiptOrderDomainService {
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailDO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDO.getUniqueId());
|
||||
// 子项使用自身的 uniqueId 作为 receiptUniqueId,以便正确关联 material_more_detail 中的扩展属性
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDOChildren.getUniqueId());
|
||||
shelfMaterialDetailDOChildren.setTotalArea(receiptMaterialDetailDOChildren.getTotalArea());
|
||||
shelfMaterialDetailDOChildren.setTotalVolume(receiptMaterialDetailDOChildren.getTotalVolume());
|
||||
shelfMaterialDetailDOChildren.setTotalNetWeight(receiptMaterialDetailDOChildren.getTotalNetWeight());
|
||||
@@ -1052,7 +1053,8 @@ public class StockReceiptOrderDomainService {
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailPOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
// 子项使用自身的 uniqueId 作为 receiptUniqueId,以便正确关联 material_more_detail 中的扩展属性
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPOChildren.getUniqueId());
|
||||
shelfMaterialDetailDOChildren.setTotalArea(receiptMaterialDetailPOChildren.getTotalArea());
|
||||
shelfMaterialDetailDOChildren.setTotalVolume(receiptMaterialDetailPOChildren.getTotalVolume());
|
||||
shelfMaterialDetailDOChildren.setTotalNetWeight(receiptMaterialDetailPOChildren.getTotalNetWeight());
|
||||
@@ -1168,7 +1170,8 @@ public class StockReceiptOrderDomainService {
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
// 子项使用自身的 uniqueId 作为 receiptUniqueId,以便正确关联 material_more_detail 中的扩展属性
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDOChildren.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
|
||||
Reference in New Issue
Block a user