详情查询修改

This commit is contained in:
秦鸿展
2026-05-07 17:43:54 +08:00
parent afdea9dbf1
commit b754aaf949
3 changed files with 24 additions and 6 deletions
@@ -106,7 +106,8 @@ public class BatchDetailApplicationService {
throw new ServiceException("获取物料规则信息失败"); throw new ServiceException("获取物料规则信息失败");
} }
MaterialGoodsRuleFeign materialGoodsRuleFeign = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), MaterialGoodsRuleFeign.class); MaterialGoodsRuleFeign materialGoodsRuleFeign = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), MaterialGoodsRuleFeign.class);
if (ObjectUtil.isNull(materialGoodsRuleFeign)){ // 无商品规则或未绑定批次模板时,不返回任何批次属性(避免 batchId 空导致查全表)
if (ObjectUtil.isNull(materialGoodsRuleFeign) || materialGoodsRuleFeign.getBatchId() == null) {
return new ArrayList<>(); return new ArrayList<>();
} }
return getBatchDetailListByBatchId(materialGoodsRuleFeign.getBatchId()); return getBatchDetailListByBatchId(materialGoodsRuleFeign.getBatchId());
@@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 批次管理详情 * 批次管理详情
@@ -66,6 +67,10 @@ public class BatchDetailDomainService {
* 获取批次管理详情详细信息 * 获取批次管理详情详细信息
*/ */
public List<BatchDetailPO> getBatchDetailListByBatchId(Long batchId) { public List<BatchDetailPO> getBatchDetailListByBatchId(Long batchId) {
// batchId 为空时不能查列表:XML 中 batchId 为 null 不拼条件,会返回全部批次属性
if (batchId == null) {
return new ArrayList<>();
}
BatchDetailDO batchDetailDO = new BatchDetailDO(); BatchDetailDO batchDetailDO = new BatchDetailDO();
batchDetailDO.setBatchId(batchId); batchDetailDO.setBatchId(batchId);
return batchDetailService.queryList(batchDetailDO); return batchDetailService.queryList(batchDetailDO);
@@ -24,9 +24,11 @@ import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDom
import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO;
import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO;
import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService; import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService;
import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService; import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService;
import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO;
import com.mhd.wms.util.ReceiptBatchDetailFilter;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +60,8 @@ public class PickingOrderApplicationService {
@Autowired @Autowired
private SystemServiceFeign systemServiceFeign; private SystemServiceFeign systemServiceFeign;
@Autowired @Autowired
private IMaterialGoodsRuleService materialGoodsRuleService;
@Autowired
private IOutMaterialDetailService outMaterialDetailService; private IOutMaterialDetailService outMaterialDetailService;
@@ -212,11 +216,19 @@ public class PickingOrderApplicationService {
if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) { if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) {
List<BatchDetailFeignPO> batchDetailFeignPOList = JSON.parseArray( List<BatchDetailFeignPO> batchDetailFeignPOList = JSON.parseArray(
JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class); JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class);
if (!CollectionUtils.isEmpty(batchDetailFeignPOList)) { if (CollectionUtils.isEmpty(batchDetailFeignPOList)) {
// 过滤isDisplay=1的属性 continue;
List<BatchDetailFeignPO> filteredList = batchDetailFeignPOList.stream() }
.filter(batchDetail -> batchDetail.getIsDisplay() != null && batchDetail.getIsDisplay() == 1) // 物料未在商品规则中绑定批次模板时不返回批次属性(与收货单组装逻辑一致)
.collect(Collectors.toList()); List<BatchDetailFeignPO> alignedToRule = ReceiptBatchDetailFilter.filterByMaterialGoodsRule(
materialBaseInfoId, batchDetailFeignPOList, materialGoodsRuleService);
if (CollectionUtils.isEmpty(alignedToRule)) {
continue;
}
List<BatchDetailFeignPO> filteredList = alignedToRule.stream()
.filter(batchDetail -> batchDetail.getIsDisplay() != null && batchDetail.getIsDisplay() == 1)
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(filteredList)) {
batchDetailMap.put(materialBaseInfoId, filteredList); batchDetailMap.put(materialBaseInfoId, filteredList);
} }
} }