进出口单证查询
This commit is contained in:
+3
@@ -797,4 +797,7 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{
|
|||||||
@ApiModelProperty("物料编码")
|
@ApiModelProperty("物料编码")
|
||||||
private String materialCode;
|
private String materialCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("商品类型")
|
||||||
|
private Long productType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class OrderWithMaterialDTO {
|
public class OrderWithMaterialDTO {
|
||||||
@@ -804,4 +805,15 @@ public class OrderWithMaterialDTO {
|
|||||||
@ApiModelProperty("推送人姓名")
|
@ApiModelProperty("推送人姓名")
|
||||||
private String pushByName;
|
private String pushByName;
|
||||||
|
|
||||||
|
@ApiModelProperty("物料id")
|
||||||
|
private Long materialBaseInfoId;
|
||||||
|
|
||||||
|
@ApiModelProperty("商品类型/货物类型(0料件,1半成品,2成品)")
|
||||||
|
private Integer productType;
|
||||||
|
|
||||||
|
@ApiModelProperty("物料ID列表")
|
||||||
|
private List<Long> materialBaseInfoIdList;
|
||||||
|
|
||||||
|
@ApiModelProperty("商品类型列表")
|
||||||
|
private List<Integer> productTypeList;
|
||||||
}
|
}
|
||||||
|
|||||||
+104
-16
@@ -1,6 +1,7 @@
|
|||||||
package com.mhd.oms.interfaces.facade.originalImportExportDocument;
|
package com.mhd.oms.interfaces.facade.originalImportExportDocument;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.mhd.common.core.utils.StringUtils;
|
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.domain.AjaxResult;
|
||||||
import com.mhd.common.core.web.page.TableDataInfo;
|
import com.mhd.common.core.web.page.TableDataInfo;
|
||||||
import com.mhd.oms.application.service.businessDocumentOrder.BusinessDocumentOrderApplicationService;
|
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.po.BusinessDocumentOrderPO;
|
||||||
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
|
import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO;
|
||||||
import com.mhd.oms.interfaces.assembler.businessDocumentOrder.BusinessDocumentOrderAssembler;
|
import com.mhd.oms.interfaces.assembler.businessDocumentOrder.BusinessDocumentOrderAssembler;
|
||||||
@@ -23,10 +26,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Api(tags = "进出口原始单证")
|
@Api(tags = "进出口原始单证")
|
||||||
@@ -34,6 +34,9 @@ import java.util.stream.Collectors;
|
|||||||
@RequestMapping("/OriginalImportExportDocumentApi")
|
@RequestMapping("/OriginalImportExportDocumentApi")
|
||||||
public class OriginalImportExportDocumentApi extends BaseController {
|
public class OriginalImportExportDocumentApi extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
BusinessDocumentCargoMultiMapper businessDocumentCargoMultiMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessDocumentOrderApplicationService businessDocumentOrderApplicationService;
|
private BusinessDocumentOrderApplicationService businessDocumentOrderApplicationService;
|
||||||
|
|
||||||
@@ -85,18 +88,18 @@ public class OriginalImportExportDocumentApi extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<OrderWithMaterialDTO> convertToOrderWithMaterialList(List<BusinessDocumentOrderPO> orderList) {
|
// private List<OrderWithMaterialDTO> convertToOrderWithMaterialList(List<BusinessDocumentOrderPO> orderList) {
|
||||||
List<OrderWithMaterialDTO> resultList = new ArrayList<>();
|
// List<OrderWithMaterialDTO> resultList = new ArrayList<>();
|
||||||
for (BusinessDocumentOrderPO order : orderList) {
|
// for (BusinessDocumentOrderPO order : orderList) {
|
||||||
OrderWithMaterialDTO orderWithMaterialDTO = new OrderWithMaterialDTO();
|
// OrderWithMaterialDTO orderWithMaterialDTO = new OrderWithMaterialDTO();
|
||||||
orderWithMaterialDTO.setMaterialCode(order.getMaterialCode());
|
// orderWithMaterialDTO.setMaterialCode(order.getMaterialCode());
|
||||||
orderWithMaterialDTO.setIeType(order.getIeType());
|
// orderWithMaterialDTO.setIeType(order.getIeType());
|
||||||
BeanUtils.copyProperties(order, orderWithMaterialDTO);
|
// BeanUtils.copyProperties(order, orderWithMaterialDTO);
|
||||||
resultList.add(orderWithMaterialDTO);
|
// resultList.add(orderWithMaterialDTO);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
return resultList;
|
// return resultList;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 调用WMS接口获取物料详细信息
|
* 调用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<BusinessDocumentOrderPO> orderList = businessDocumentOrderApplicationService.queryListAndMaterial(businessDocumentOrderDO);
|
||||||
|
|
||||||
|
// ✅ 批量查询货物列表并设置到订单
|
||||||
|
fillCargoInfo(orderList);
|
||||||
|
|
||||||
|
// ✅ 获取分页信息
|
||||||
|
Page<BusinessDocumentOrderPO> page = (Page<BusinessDocumentOrderPO>) orderList;
|
||||||
|
|
||||||
|
List<OrderWithMaterialDTO> resultList = convertToOrderWithMaterialList(orderList);
|
||||||
|
|
||||||
|
TableDataInfo tableDataInfo = new TableDataInfo();
|
||||||
|
tableDataInfo.setData(resultList);
|
||||||
|
tableDataInfo.setTotal(page.getTotal());
|
||||||
|
tableDataInfo.setCode(200);
|
||||||
|
return tableDataInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void fillCargoInfo(List<BusinessDocumentOrderPO> orderList) {
|
||||||
|
if (orderList == null || orderList.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. 收集所有订单ID
|
||||||
|
List<Long> orderIds = orderList.stream()
|
||||||
|
.map(BusinessDocumentOrderPO::getId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 2. 批量查询货物列表
|
||||||
|
List<BusinessDocumentCargoMulti> allCargoList = businessDocumentCargoMultiMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<BusinessDocumentCargoMulti>()
|
||||||
|
.in(BusinessDocumentCargoMulti::getOrderId, orderIds)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 3. 按订单ID分组
|
||||||
|
Map<Long, List<BusinessDocumentCargoMulti>> cargoMap = allCargoList.stream()
|
||||||
|
.collect(Collectors.groupingBy(c -> Long.valueOf(c.getOrderId())));
|
||||||
|
|
||||||
|
// 4. 设置到每个订单
|
||||||
|
for (BusinessDocumentOrderPO order : orderList) {
|
||||||
|
order.setBusinessDocumentCargoMultiList(cargoMap.get(order.getId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<OrderWithMaterialDTO> convertToOrderWithMaterialList(List<BusinessDocumentOrderPO> orderList) {
|
||||||
|
List<OrderWithMaterialDTO> resultList = new ArrayList<>();
|
||||||
|
for (BusinessDocumentOrderPO order : orderList) {
|
||||||
|
OrderWithMaterialDTO dto = new OrderWithMaterialDTO();
|
||||||
|
BeanUtils.copyProperties(order, dto);
|
||||||
|
|
||||||
|
// 设置货物列表信息(多个物料ID)
|
||||||
|
List<BusinessDocumentCargoMulti> cargoList = order.getBusinessDocumentCargoMultiList();
|
||||||
|
if (cargoList != null && !cargoList.isEmpty()) {
|
||||||
|
// 物料ID列表
|
||||||
|
List<Long> materialIdList = cargoList.stream()
|
||||||
|
.map(BusinessDocumentCargoMulti::getMaterialBaseInfoId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
dto.setMaterialBaseInfoIdList(materialIdList);
|
||||||
|
|
||||||
|
// 商品类型列表
|
||||||
|
List<Integer> 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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -174,6 +174,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="pushByName" column="PUSH_BY_NAME" />
|
<result property="pushByName" column="PUSH_BY_NAME" />
|
||||||
<result property="pushStatus" column="PUSH_STATUS" />
|
<result property="pushStatus" column="PUSH_STATUS" />
|
||||||
<result property="pushTime" column="PUSH_TIME" />
|
<result property="pushTime" column="PUSH_TIME" />
|
||||||
|
<result property="productType" column="PRODUCT_TYPE" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
@@ -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}</select>
|
select SALESPERSON_NC_CODE from NGWL_TEST_USER."USER" where USER_ID = #{salesmanCodeNc}</select>
|
||||||
|
|
||||||
<select id="queryListAndMaterial" parameterType="com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO" resultMap="BusinessDocumentOrderResult">
|
<select id="queryListAndMaterial" parameterType="com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO" resultMap="BusinessDocumentOrderResult">
|
||||||
select o.*,a.material_code , a.material_base_info_id
|
select o.*,a.material_code , a.material_base_info_id ,a.product_type
|
||||||
from business_document_order as o
|
from business_document_order as o
|
||||||
left join business_document_cargo_multi as a ON o.id = a.order_id
|
left join business_document_cargo_multi as a ON o.id = a.order_id
|
||||||
<include refid="selectBusinessDocumentOrderPo1"/>
|
<include refid="selectBusinessDocumentOrderPo1"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user