diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java index 85ffebc..70f84c5 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderGatewayImpl.java @@ -116,10 +116,41 @@ public class OrderGatewayImpl implements OrderGateway { queryWrapper.eq(Objects.nonNull(orderListQry.getAuditState()), OrderDO::getAuditState, orderListQry.getAuditState()); queryWrapper.eq(Objects.nonNull(orderListQry.getCreatedBy()), OrderDO::getCreatedBy, orderListQry.getCreatedBy()); queryWrapper.eq(Objects.nonNull(orderListQry.getType()), OrderDO::getType, orderListQry.getType()); - queryWrapper.select(OrderDO::getOrderId, OrderDO::getOrderSn, OrderDO::getState, OrderDO::getAuditState, OrderDO::getType); queryWrapper.orderByDesc(OrderDO::getCreatedAt); - List orderDOList = orderMapper.selectList(queryWrapper); + List orderDOList = orderMapper.selectByQueryList(queryWrapper, orderListQry); + + List orderIdList = orderDOList.stream().map(OrderDO::getOrderId).toList(); + if (CollUtil.isNotEmpty(orderIdList)) { + List orderVehicleDOList = orderVehicleMapper.selectList(Wrappers.lambdaQuery(OrderVehicleDO.class).in(OrderVehicleDO::getOrderId, orderIdList)); + Map orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity())); + + List orderSupplierDOList = orderSupplierMapper.selectList(Wrappers.lambdaQuery(OrderSupplierDO.class).in(OrderSupplierDO::getOrderId, orderIdList)); + + LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(OrderPackageDO.class); + queryWrapper1.in(OrderPackageDO::getOrderId, orderIdList); + List orderPackageDOList = orderPackageMapper.selectList(queryWrapper1); + + orderSupplierDOList.forEach(orderSupplierDO -> { + orderSupplierDO.setOrderPackageDOList(orderPackageDOList.stream().filter(orderPackageDO -> orderPackageDO.getOrderSupplierId().equals(orderSupplierDO.getOrderSupplierId())).toList()); + }); + + LambdaQueryWrapper queryWrapper4 = Wrappers.lambdaQuery(OrderCostDO.class); + queryWrapper4.in(OrderCostDO::getOrderId, orderIdList); + List orderCostDOList = orderCostMapper.selectList(queryWrapper4); + + LambdaQueryWrapper queryWrapper5 = Wrappers.lambdaQuery(OrderCostItemDO.class); + queryWrapper5.in(OrderCostItemDO::getOrderId, orderIdList); + List orderCostItemDOList = orderCostItemMapper.selectList(queryWrapper5); + + orderDOList.forEach(orderDO -> { + orderDO.setOrderPackageDOList(orderPackageDOList.stream().filter(orderPackageDO -> Objects.isNull(orderPackageDO.getOrderSupplierId()) && orderPackageDO.getOrderId().equals(orderDO.getOrderId())).toList()); + orderDO.setOrderCostDOList(orderCostDOList.stream().filter(orderCostDO -> orderCostDO.getOrderId().equals(orderDO.getOrderId())).toList()); + orderDO.setOrderCostItemDOList(orderCostItemDOList.stream().filter(orderCostItemDO -> orderCostItemDO.getOrderId().equals(orderDO.getOrderId())).toList()); + orderDO.setOrderVehicleDO(orderVehicleDOMap.get(orderDO.getOrderId())); + orderDO.setOrderSupplierDOList(orderSupplierDOList.stream().filter(orderSupplierDO -> orderSupplierDO.getOrderId().equals(orderDO.getOrderId())).toList()); + }); + } return orderDOList.stream().map(orderConvert::toOrder).toList(); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderMapper.java index 364088f..98b3016 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderMapper.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/OrderMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.xunhong.erp.turbo.api.biz.dto.qry.OrderListQry; import com.xunhong.erp.turbo.api.biz.dto.qry.OrderPageQry; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderDO; import org.apache.ibatis.annotations.Mapper; @@ -22,5 +23,7 @@ public interface OrderMapper extends BaseMapper { OrderDO selectByOrderId(@Param("orderId") Long orderId); IPage selectPage(IPage page, @Param(Constants.WRAPPER) LambdaQueryWrapper queryWrapper, @Param("query") OrderPageQry orderPageQry); + + List selectByQueryList(@Param(Constants.WRAPPER)LambdaQueryWrapper queryWrapper, @Param("query") OrderListQry orderListQry); } diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderMapper.xml index 4afb17e..d62c4c8 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderMapper.xml @@ -31,6 +31,7 @@ + @@ -129,5 +130,32 @@ AND po.order_id = #{orderId} limit 1 + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderListQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderListQry.java index 220291b..6428a2f 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderListQry.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/OrderListQry.java @@ -19,6 +19,9 @@ public class OrderListQry extends Query { @Schema(title = "采购订单ID", type = "string") private Long orderId; + @Schema(title = "经销商ID", type = "string") + private Long dealerId; + @Schema(title = "采购订单编号", type = "string") private String orderSn; @@ -39,5 +42,11 @@ public class OrderListQry extends Query { */ @Schema(title = "采购类型:1_产地采购;2_市场采购;") private OrderTypeEnum type; + + /** + * 月份 + */ + @Schema(title = "月份") + private String month; }