diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.java index bcb4104ba..e8d218c3a 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.java @@ -51,5 +51,7 @@ public interface StGlassCakeOutMapper extends BaseMapper { YieldOrder getByYoCode(String cardNo); YieldOrder getByYieldOrder(String yoCode); + + List getYieldOrderList(Long id, String yieldType); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.xml index 151810ba3..d6026e633 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.xml @@ -216,4 +216,11 @@ WHERE YO_CODE = #{yoCode} + + diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java index e0267f678..89025cbd4 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java @@ -10,7 +10,6 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.BladeUser; import org.springblade.desk.dashboard.feign.IPartClient; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; -import org.springblade.desk.dashboard.pojo.entity.DsPartRelationEntity; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.wms.excel.StGlassCakeOutExcel; import org.springblade.wms.mapper.StGlassCakeOutMapper; @@ -26,7 +25,6 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.*; -import java.util.stream.Collectors; /** * @version 1.0 @@ -86,41 +84,47 @@ public class StGlassCakeOutServiceImpl extends BaseServiceImpl partRelationEntityList = partClient.getSubPart(partOne.getId()); + List yieldOrderList = baseMapper.getYieldOrderList(faYieldOrder.getId(),"12003"); List glassCakePartList = new ArrayList<>(); - if (!CollectionUtils.isEmpty(partRelationEntityList)) { - // 步骤1:提取所有非空的childPartId并去重(避免null和重复ID,减少查询压力) - List childPartIdList = partRelationEntityList.stream() - .map(DsPartRelationEntity::getChildPartId) // 提取子件ID - .filter(Objects::nonNull) // 过滤null的ID - .distinct() // 去重,避免重复查询 - .collect(Collectors.toList()); - - // 步骤2:批量查询DS_PART表(一次SQL,性能最优) - if (!CollectionUtils.isEmpty(childPartIdList)) { - // 调用dsPartService的批量查询方法(根据ID列表查DS_PART) - List allChildPartList = partClient.batchParts(childPartIdList); - - // 步骤3:筛选出IS_CLASS_CAKE为"玻璃饼"的记录(核心过滤) - if (!CollectionUtils.isEmpty(allChildPartList)) { - glassCakePartList = allChildPartList.stream() - .filter(part -> "1".equals(part.getIsGlassCake())) - .collect(Collectors.toList()); - } + for (YieldOrder order : yieldOrderList) { + DsPartEntity partOne = partClient.getPart(order.getPartCode(),order.getPartVersion()); + if (partOne == null) { + throw new RuntimeException("根据零件编号【" + order.getPartCode() + "】未查询到零件信息"); } + glassCakePartList.add(partOne); } +// List partRelationEntityList = partClient.getSubPart(partOne.getId()); +// +// List glassCakePartList = new ArrayList<>(); +// if (!CollectionUtils.isEmpty(partRelationEntityList)) { +// // 步骤1:提取所有非空的childPartId并去重(避免null和重复ID,减少查询压力) +// List childPartIdList = partRelationEntityList.stream() +// .map(DsPartRelationEntity::getChildPartId) // 提取子件ID +// .filter(Objects::nonNull) // 过滤null的ID +// .distinct() // 去重,避免重复查询 +// .collect(Collectors.toList()); +// +// // 步骤2:批量查询DS_PART表(一次SQL,性能最优) +// if (!CollectionUtils.isEmpty(childPartIdList)) { +// // 调用dsPartService的批量查询方法(根据ID列表查DS_PART) +// List allChildPartList = partClient.batchParts(childPartIdList); +// +// // 步骤3:筛选出IS_CLASS_CAKE为"玻璃饼"的记录(核心过滤) +// if (!CollectionUtils.isEmpty(allChildPartList)) { +// glassCakePartList = allChildPartList.stream() +// .filter(part -> "1".equals(part.getIsGlassCake())) +// .collect(Collectors.toList()); +// } +// } +// } + // WorkOrder workOrder = new WorkOrder(); // workOrder.setCardNo(dto.getCardNo()); // 卡号(与DTO的cardNo一致) // workOrder.setWoCode("WO-202602110001"); // 工单号 @@ -189,7 +193,7 @@ public class StGlassCakeOutServiceImpl extends BaseServiceImpl