批次规则查询修改

This commit is contained in:
秦鸿展
2026-04-27 13:30:01 +08:00
parent 0a116730ef
commit 3a02c2a1f2
6 changed files with 106 additions and 19 deletions
@@ -17,6 +17,8 @@ import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.domain.BatchDetailFeignPO;
import com.mhd.system.api.model.LoginUser;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
import com.mhd.wms.util.ReceiptBatchDetailFilter;
import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail;
import com.mhd.wms.domain.inMaterialDetail.repository.facade.IInMaterialDetailService;
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
@@ -81,6 +83,8 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
@Resource
private SystemServiceFeign systemServiceFeign;
@Autowired
private IMaterialGoodsRuleService materialGoodsRuleService;
@Autowired
private IMaterialInventoryService materialInventoryService;
@Autowired
private com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService stockInOrderService;
@@ -250,6 +254,7 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl<ReceiptMaterialDetail
return result;
}
List<BatchDetailFeignPO> batchList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
batchList = ReceiptBatchDetailFilter.filterByMaterialGoodsRule(materialBaseInfoId, batchList, materialGoodsRuleService);
result = filterAndConvertToMaterialMoreDetail(batchList);
if (CollectionUtils.isEmpty(result)) {
return result;
@@ -19,6 +19,8 @@ import com.mhd.wms.domain.shelfMaterialDetail.repository.facade.IShelfMaterialDe
import com.mhd.wms.domain.shelfMaterialDetail.repository.mapper.ShelfMaterialDetailMapper;
import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO;
import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
import com.mhd.wms.util.ReceiptBatchDetailFilter;
import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService;
import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService;
import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO;
@@ -54,6 +56,8 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
@Resource
private SystemServiceFeign systemServiceFeign;
@Autowired
private IMaterialGoodsRuleService materialGoodsRuleService;
@Autowired
private IMaterialMoreDetailService IMaterialMoreDetailService;
/**
@@ -81,11 +85,7 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
materialMoreDetailDO.setMaterialDetailUniqueId(materialDetailUniqueIdForQuery);
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(shelfMaterialDetailPO.getMaterialBaseInfoId());
if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) {
List<BatchDetailFeignPO> batchList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
materialMoreDetailList = filterAndConvertToMaterialMoreDetail(batchList);
}
materialMoreDetailList = loadTemplateMoreFromSystem(shelfMaterialDetailPO.getMaterialBaseInfoId());
}
fillAttributeValueFromShelfMaterialDetail(shelfMaterialDetailPO, materialMoreDetailList);
shelfMaterialDetailPO.setMaterialMoreDetailList(materialMoreDetailList);
@@ -113,11 +113,7 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
materialMoreDetailDO.setMaterialDetailUniqueId(materialDetailUniqueIdForQuery);
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(childrenDetailPO.getMaterialBaseInfoId());
if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) {
List<BatchDetailFeignPO> batchList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
materialMoreDetailList = filterAndConvertToMaterialMoreDetail(batchList);
}
materialMoreDetailList = loadTemplateMoreFromSystem(childrenDetailPO.getMaterialBaseInfoId());
}
fillAttributeValueFromShelfMaterialDetail(childrenDetailPO, materialMoreDetailList);
childrenDetailPO.setMaterialMoreDetailList(materialMoreDetailList);
@@ -211,11 +207,7 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
materialMoreDetailDO.setMaterialDetailUniqueId(materialDetailUniqueIdForQuery);
List<MaterialMoreDetailPO> materialMoreDetailList = IMaterialMoreDetailService.queryList(materialMoreDetailDO);
if (CollectionUtils.isEmpty(materialMoreDetailList)) {
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(row.getMaterialBaseInfoId());
if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) {
List<BatchDetailFeignPO> batchList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
materialMoreDetailList = filterAndConvertToMaterialMoreDetail(batchList);
}
materialMoreDetailList = loadTemplateMoreFromSystem(row.getMaterialBaseInfoId());
}
if (materialMoreDetailList == null) {
materialMoreDetailList = new ArrayList<>();
@@ -224,6 +216,22 @@ public class ShelfMaterialDetailImpl extends ServiceImpl<ShelfMaterialDetailMapp
row.setMaterialMoreDetailList(materialMoreDetailList);
}
/**
* 无 material_more_detail 时按物料商品规则单一批次拉模板,同收货单 {@link com.mhd.wms.util.ReceiptBatchDetailFilter}
*/
private List<MaterialMoreDetailPO> loadTemplateMoreFromSystem(Long materialBaseInfoId) {
if (materialBaseInfoId == null) {
return new ArrayList<>();
}
AjaxResult ajaxResult = systemServiceFeign.getBatchDetailListByMaterialBaseInfoId(materialBaseInfoId);
if (ajaxResult == null || !"200".equals(String.valueOf(ajaxResult.get("code")))) {
return new ArrayList<>();
}
List<BatchDetailFeignPO> batchList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
batchList = ReceiptBatchDetailFilter.filterByMaterialGoodsRule(materialBaseInfoId, batchList, materialGoodsRuleService);
return filterAndConvertToMaterialMoreDetail(batchList);
}
/**
* 过滤 isDisplay=1 的批次属性并转换为 MaterialMoreDetailPO,与收货/PC 端一致
*/
@@ -44,6 +44,7 @@ import com.mhd.wms.domain.materialMoreDetail.repository.facade.IMaterialMoreDeta
import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO;
import com.mhd.wms.domain.materialMoreDetail.repository.todo.MaterialMoreDetailDO;
import com.mhd.wms.domain.qualityInspection.repository.facade.IQualityInspectionService;
import com.mhd.wms.util.ReceiptBatchDetailFilter;
import com.mhd.wms.domain.qualityInspection.repository.todo.QualityInspectionDO;
import com.mhd.wms.domain.receiptMaterialDetail.entity.ReceiptMaterialDetail;
import com.mhd.wms.domain.receiptMaterialDetail.repository.facade.IReceiptMaterialDetailService;
@@ -303,6 +304,8 @@ public class StockReceiptOrderDomainService {
return materialMoreDetailPOList;
}
List<BatchDetailFeignPO> batchDetailFeignPOList = JSON.parseArray(JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
batchDetailFeignPOList = ReceiptBatchDetailFilter.filterByMaterialGoodsRule(
materialBaseInfoId, batchDetailFeignPOList, materialGoodsRuleService);
if (CollectionUtils.isEmpty(batchDetailFeignPOList)) {
return materialMoreDetailPOList;
}