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;
|
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();
|
List<MaterialMoreDetailDO> materialMoreDetailList = receiptMaterialDetailDO.getMaterialMoreDetailList();
|
||||||
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
||||||
// 处理子项
|
// 处理子项
|
||||||
@@ -801,15 +812,19 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
|
|||||||
attributeValue = attributeValue.trim();
|
attributeValue = attributeValue.trim();
|
||||||
switch (batchLabels) {
|
switch (batchLabels) {
|
||||||
case "扩展字段4":
|
case "扩展字段4":
|
||||||
|
case "扩展属性4":
|
||||||
receiptMaterialDetailDO.setExtAttr4(attributeValue);
|
receiptMaterialDetailDO.setExtAttr4(attributeValue);
|
||||||
break;
|
break;
|
||||||
case "扩展字段3":
|
case "扩展字段3":
|
||||||
|
case "扩展属性3":
|
||||||
receiptMaterialDetailDO.setExtAttr3(attributeValue);
|
receiptMaterialDetailDO.setExtAttr3(attributeValue);
|
||||||
break;
|
break;
|
||||||
case "扩展字段2":
|
case "扩展字段2":
|
||||||
|
case "扩展属性2":
|
||||||
receiptMaterialDetailDO.setExtAttr2(attributeValue);
|
receiptMaterialDetailDO.setExtAttr2(attributeValue);
|
||||||
break;
|
break;
|
||||||
case "扩展字段1":
|
case "扩展字段1":
|
||||||
|
case "扩展属性1":
|
||||||
receiptMaterialDetailDO.setExtAttr1(attributeValue);
|
receiptMaterialDetailDO.setExtAttr1(attributeValue);
|
||||||
break;
|
break;
|
||||||
case "箱号/卡板号":
|
case "箱号/卡板号":
|
||||||
|
|||||||
+7
-2
@@ -69,9 +69,12 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
|
|||||||
List<ShelfMaterialDetailPO> shelfMaterialDetailPOList = shelfMaterialDetailMapper.queryList(shelfMaterialDetailDO);
|
List<ShelfMaterialDetailPO> shelfMaterialDetailPOList = shelfMaterialDetailMapper.queryList(shelfMaterialDetailDO);
|
||||||
|
|
||||||
//回显带上更多属性值(批次标签):根据物料绑定的批次属性动态显示,与收货一致
|
//回显带上更多属性值(批次标签):根据物料绑定的批次属性动态显示,与收货一致
|
||||||
|
// material_more_detail 存储时使用收货明细的 unique_id,上架明细需用 receipt_unique_id 查询
|
||||||
shelfMaterialDetailPOList.forEach(shelfMaterialDetailPO -> {
|
shelfMaterialDetailPOList.forEach(shelfMaterialDetailPO -> {
|
||||||
MaterialMoreDetailDO materialMoreDetailDO = new MaterialMoreDetailDO();
|
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);
|
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
|
||||||
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
||||||
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(shelfMaterialDetailPO.getMaterialBaseInfoId());
|
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(shelfMaterialDetailPO.getMaterialBaseInfoId());
|
||||||
@@ -92,7 +95,9 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
|
|||||||
List<ShelfMaterialDetailPO> children = getChildren(materialDetailPO.getUniqueId(), shelfMaterialDetailPOList, 2);
|
List<ShelfMaterialDetailPO> children = getChildren(materialDetailPO.getUniqueId(), shelfMaterialDetailPOList, 2);
|
||||||
children.forEach(childrenDetailPO -> {
|
children.forEach(childrenDetailPO -> {
|
||||||
MaterialMoreDetailDO materialMoreDetailDO = new MaterialMoreDetailDO();
|
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);
|
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
|
||||||
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
|
||||||
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(childrenDetailPO.getMaterialBaseInfoId());
|
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(childrenDetailPO.getMaterialBaseInfoId());
|
||||||
|
|||||||
+10
-2
@@ -306,8 +306,16 @@ public class StockOutTaskOrderDomainService {
|
|||||||
if (ObjectUtil.isNull(materialInventoryOldDb)){
|
if (ObjectUtil.isNull(materialInventoryOldDb)){
|
||||||
throw new ServiceException("物料原库位下的物料库存不存在,不能进行出库");
|
throw new ServiceException("物料原库位下的物料库存不存在,不能进行出库");
|
||||||
}
|
}
|
||||||
if (materialInventoryOldDb.getInventoryQuantity().compareTo(actualQuantity) < 0){
|
BigDecimal invQty = materialInventoryOldDb.getInventoryQuantity() != null ? materialInventoryOldDb.getInventoryQuantity() : BigDecimal.ZERO;
|
||||||
throw new ServiceException("物料原库位下的物料库存不足,不能进行出库");
|
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();
|
MaterialInventoryDO materialInventoryDOOld = new MaterialInventoryDO();
|
||||||
|
|||||||
+6
-3
@@ -916,7 +916,8 @@ public class StockReceiptOrderDomainService {
|
|||||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailDO.getInUniqueId());
|
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailDO.getInUniqueId());
|
||||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDO.getUniqueId());
|
// 子项使用自身的 uniqueId 作为 receiptUniqueId,以便正确关联 material_more_detail 中的扩展属性
|
||||||
|
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDOChildren.getUniqueId());
|
||||||
shelfMaterialDetailDOChildren.setTotalArea(receiptMaterialDetailDOChildren.getTotalArea());
|
shelfMaterialDetailDOChildren.setTotalArea(receiptMaterialDetailDOChildren.getTotalArea());
|
||||||
shelfMaterialDetailDOChildren.setTotalVolume(receiptMaterialDetailDOChildren.getTotalVolume());
|
shelfMaterialDetailDOChildren.setTotalVolume(receiptMaterialDetailDOChildren.getTotalVolume());
|
||||||
shelfMaterialDetailDOChildren.setTotalNetWeight(receiptMaterialDetailDOChildren.getTotalNetWeight());
|
shelfMaterialDetailDOChildren.setTotalNetWeight(receiptMaterialDetailDOChildren.getTotalNetWeight());
|
||||||
@@ -1052,7 +1053,8 @@ public class StockReceiptOrderDomainService {
|
|||||||
BeanUtils.copyProperties(receiptMaterialDetailPOChildren, shelfMaterialDetailDOChildren);
|
BeanUtils.copyProperties(receiptMaterialDetailPOChildren, shelfMaterialDetailDOChildren);
|
||||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailPOChildren.getReceiptQuantity());
|
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailPOChildren.getReceiptQuantity());
|
||||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
|
// 子项使用自身的 uniqueId 作为 receiptUniqueId,以便正确关联 material_more_detail 中的扩展属性
|
||||||
|
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPOChildren.getUniqueId());
|
||||||
shelfMaterialDetailDOChildren.setTotalArea(receiptMaterialDetailPOChildren.getTotalArea());
|
shelfMaterialDetailDOChildren.setTotalArea(receiptMaterialDetailPOChildren.getTotalArea());
|
||||||
shelfMaterialDetailDOChildren.setTotalVolume(receiptMaterialDetailPOChildren.getTotalVolume());
|
shelfMaterialDetailDOChildren.setTotalVolume(receiptMaterialDetailPOChildren.getTotalVolume());
|
||||||
shelfMaterialDetailDOChildren.setTotalNetWeight(receiptMaterialDetailPOChildren.getTotalNetWeight());
|
shelfMaterialDetailDOChildren.setTotalNetWeight(receiptMaterialDetailPOChildren.getTotalNetWeight());
|
||||||
@@ -1168,7 +1170,8 @@ public class StockReceiptOrderDomainService {
|
|||||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
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
|
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||||
|
|||||||
Reference in New Issue
Block a user