diff --git a/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseOrderVo.java b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseOrderVo.java index 0695d0a4..644f705a 100644 --- a/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseOrderVo.java +++ b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseOrderVo.java @@ -39,6 +39,11 @@ public class ErpPurchaseOrderVo implements Serializable { @ExcelProperty(value = "供应商ID") private Long supplierId; + /** + * 供应商名称 + */ + private String supplierName; + /** * 下单日期 */ diff --git a/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseOrderServiceImpl.java b/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseOrderServiceImpl.java index ff89df34..d11f0b4d 100644 --- a/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseOrderServiceImpl.java +++ b/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseOrderServiceImpl.java @@ -13,10 +13,12 @@ import com.klp.erp.domain.ErpPurchaseOrderItem; import com.klp.erp.enums.PurchaseOrderStatus; import com.klp.erp.domain.bo.ErpPurchaseOrderBo; import com.klp.erp.domain.vo.ErpPurchaseOrderVo; +import com.klp.erp.domain.vo.ErpSupplierVo; import com.klp.erp.mapper.ErpPurchaseOrderItemMapper; import com.klp.erp.mapper.ErpPurchaseOrderMapper; import com.klp.erp.mapper.ErpPurchaseReceiptMapper; import com.klp.erp.mapper.ErpPurchaseReturnItemMapper; +import com.klp.erp.mapper.ErpSupplierMapper; import com.klp.erp.service.IErpPurchaseOrderService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -25,6 +27,8 @@ import java.math.BigDecimal; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 采购订单主Service业务层处理 @@ -40,6 +44,7 @@ public class ErpPurchaseOrderServiceImpl implements IErpPurchaseOrderService { private final ErpPurchaseOrderItemMapper orderItemMapper; private final ErpPurchaseReceiptMapper receiptMapper; private final ErpPurchaseReturnItemMapper returnItemMapper; + private final ErpSupplierMapper supplierMapper; /** * 查询采购订单主 @@ -56,6 +61,37 @@ public class ErpPurchaseOrderServiceImpl implements IErpPurchaseOrderService { public TableDataInfo queryPageList(ErpPurchaseOrderBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + // 批量查询供应商名称并映射 + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + // 收集所有供应商ID + List supplierIds = result.getRecords().stream() + .map(ErpPurchaseOrderVo::getSupplierId) + .filter(id -> id != null) + .distinct() + .collect(Collectors.toList()); + + if (!supplierIds.isEmpty()) { + // 批量查询供应商信息 + List suppliers = supplierMapper.selectVoBatchIds(supplierIds); + + // 构建供应商ID到名称的映射 + Map supplierNameMap = suppliers.stream() + .collect(Collectors.toMap( + ErpSupplierVo::getSupplierId, + ErpSupplierVo::getName, + (existing, replacement) -> existing // 处理重复key的情况 + )); + + // 将供应商名称设置到采购订单VO中 + result.getRecords().forEach(order -> { + if (order.getSupplierId() != null) { + order.setSupplierName(supplierNameMap.get(order.getSupplierId())); + } + }); + } + } + return TableDataInfo.build(result); }