diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java index 0996772dc..c10383fda 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java @@ -797,4 +797,7 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty("物料编码") private String materialCode; + @ApiModelProperty("商品类型") + private Long productType; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/originalImportExportDocument/OrderWithMaterialDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/originalImportExportDocument/OrderWithMaterialDTO.java index bb4801f09..4a094af1e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/originalImportExportDocument/OrderWithMaterialDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/originalImportExportDocument/OrderWithMaterialDTO.java @@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; +import java.util.List; @Data public class OrderWithMaterialDTO { @@ -804,4 +805,15 @@ public class OrderWithMaterialDTO { @ApiModelProperty("推送人姓名") private String pushByName; + @ApiModelProperty("物料id") + private Long materialBaseInfoId; + + @ApiModelProperty("商品类型/货物类型(0料件,1半成品,2成品)") + private Integer productType; + + @ApiModelProperty("物料ID列表") + private List materialBaseInfoIdList; + + @ApiModelProperty("商品类型列表") + private List productTypeList; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java index 9e35bbbcb..d87976e65 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java @@ -1,6 +1,7 @@ package com.mhd.oms.interfaces.facade.originalImportExportDocument; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.mhd.common.core.utils.StringUtils; @@ -8,6 +9,8 @@ import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.businessDocumentOrder.BusinessDocumentOrderApplicationService; +import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; +import com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper.BusinessDocumentCargoMultiMapper; import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO; import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO; import com.mhd.oms.interfaces.assembler.businessDocumentOrder.BusinessDocumentOrderAssembler; @@ -23,10 +26,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Api(tags = "进出口原始单证") @@ -34,6 +34,9 @@ import java.util.stream.Collectors; @RequestMapping("/OriginalImportExportDocumentApi") public class OriginalImportExportDocumentApi extends BaseController { + @Resource + BusinessDocumentCargoMultiMapper businessDocumentCargoMultiMapper; + @Resource private BusinessDocumentOrderApplicationService businessDocumentOrderApplicationService; @@ -85,18 +88,18 @@ public class OriginalImportExportDocumentApi extends BaseController { } - private List convertToOrderWithMaterialList(List orderList) { - List resultList = new ArrayList<>(); - for (BusinessDocumentOrderPO order : orderList) { - OrderWithMaterialDTO orderWithMaterialDTO = new OrderWithMaterialDTO(); - orderWithMaterialDTO.setMaterialCode(order.getMaterialCode()); - orderWithMaterialDTO.setIeType(order.getIeType()); - BeanUtils.copyProperties(order, orderWithMaterialDTO); - resultList.add(orderWithMaterialDTO); - } - - return resultList; - } +// private List convertToOrderWithMaterialList(List orderList) { +// List resultList = new ArrayList<>(); +// for (BusinessDocumentOrderPO order : orderList) { +// OrderWithMaterialDTO orderWithMaterialDTO = new OrderWithMaterialDTO(); +// orderWithMaterialDTO.setMaterialCode(order.getMaterialCode()); +// orderWithMaterialDTO.setIeType(order.getIeType()); +// BeanUtils.copyProperties(order, orderWithMaterialDTO); +// resultList.add(orderWithMaterialDTO); +// } +// +// return resultList; +// } /** * 调用WMS接口获取物料详细信息 @@ -193,4 +196,89 @@ public class OriginalImportExportDocumentApi extends BaseController { //} + + @ApiOperation("进出口原始单证查询列表") + @GetMapping("/list1") + public TableDataInfo list1(BusinessDocumentOrderDTO businessDocumentOrderDTO, + @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); + PageHelper.startPage(pageNo, pageSize); + List orderList = businessDocumentOrderApplicationService.queryListAndMaterial(businessDocumentOrderDO); + + // ✅ 批量查询货物列表并设置到订单 + fillCargoInfo(orderList); + + // ✅ 获取分页信息 + Page page = (Page) orderList; + + List resultList = convertToOrderWithMaterialList(orderList); + + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(resultList); + tableDataInfo.setTotal(page.getTotal()); + tableDataInfo.setCode(200); + return tableDataInfo; + } + + + private void fillCargoInfo(List orderList) { + if (orderList == null || orderList.isEmpty()) { + return; + } + + // 1. 收集所有订单ID + List orderIds = orderList.stream() + .map(BusinessDocumentOrderPO::getId) + .distinct() + .collect(Collectors.toList()); + + // 2. 批量查询货物列表 + List allCargoList = businessDocumentCargoMultiMapper.selectList( + new LambdaQueryWrapper() + .in(BusinessDocumentCargoMulti::getOrderId, orderIds) + ); + + // 3. 按订单ID分组 + Map> cargoMap = allCargoList.stream() + .collect(Collectors.groupingBy(c -> Long.valueOf(c.getOrderId()))); + + // 4. 设置到每个订单 + for (BusinessDocumentOrderPO order : orderList) { + order.setBusinessDocumentCargoMultiList(cargoMap.get(order.getId())); + } + } + + private List convertToOrderWithMaterialList(List orderList) { + List resultList = new ArrayList<>(); + for (BusinessDocumentOrderPO order : orderList) { + OrderWithMaterialDTO dto = new OrderWithMaterialDTO(); + BeanUtils.copyProperties(order, dto); + + // 设置货物列表信息(多个物料ID) + List cargoList = order.getBusinessDocumentCargoMultiList(); + if (cargoList != null && !cargoList.isEmpty()) { + // 物料ID列表 + List materialIdList = cargoList.stream() + .map(BusinessDocumentCargoMulti::getMaterialBaseInfoId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + dto.setMaterialBaseInfoIdList(materialIdList); + + // 商品类型列表 + List productTypeList = cargoList.stream() + .map(BusinessDocumentCargoMulti::getProductType) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + dto.setProductTypeList(productTypeList); + + // 取第一个货物的物料编码作为主显示 + dto.setMaterialCode(cargoList.get(0).getMaterialCode()); + } + + resultList.add(dto); + } + return resultList; + } + } diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index 6db63b3cb..77c4fec1e 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -174,6 +174,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -692,7 +693,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select SALESPERSON_NC_CODE from NGWL_TEST_USER."USER" where USER_ID = #{salesmanCodeNc}