refactor(order): 移除订单车辆信息字段并优化关联查询

- 删除 OrderSupplier、OrderCost、OrderRebate 等类中的 orderVehicle 字段
- 更新 Mapper XML 文件,调整关联查询逻辑
- 优化 PurchaseOrderMapper 查询方法 selectByOrderIdList
- 调整 Convert 类中字段映射关系,移除冗余忽略项
- 清理 Gateway 中不再使用的 OrderVehicleMapper 引用
- 完善 PurchaseOrderDO 的 resultMap 配置以支持新查询需求
This commit is contained in:
shenyifei 2025-12-18 14:00:41 +08:00
parent 9b9542385f
commit b7c04008ce
20 changed files with 121 additions and 132 deletions

View File

@ -3,7 +3,6 @@ package com.xunhong.erp.turbo.biz.domain.entity;
import com.alibaba.cola.dto.DTO; import com.alibaba.cola.dto.DTO;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum;
@ -82,11 +81,6 @@ public class OrderCost extends DTO {
*/ */
private Boolean isPaid; private Boolean isPaid;
/**
* 采购订单车辆信息
*/
private OrderVehicle orderVehicle;
/** /**
* 采购订单公司信息 * 采购订单公司信息
*/ */

View File

@ -2,7 +2,6 @@ package com.xunhong.erp.turbo.biz.domain.entity;
import com.alibaba.cola.dto.DTO; import com.alibaba.cola.dto.DTO;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum;
import lombok.Data; import lombok.Data;
@ -65,11 +64,6 @@ public class OrderRebate extends DTO {
*/ */
private Boolean isPaid; private Boolean isPaid;
/**
* 采购订单车辆信息
*/
private OrderVehicle orderVehicle;
/** /**
* 采购订单公司信息 * 采购订单公司信息
*/ */

View File

@ -1,7 +1,10 @@
package com.xunhong.erp.turbo.biz.domain.entity; package com.xunhong.erp.turbo.biz.domain.entity;
import com.alibaba.cola.dto.DTO; import com.alibaba.cola.dto.DTO;
import com.xunhong.erp.turbo.api.biz.dto.common.*; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderPackage;
import com.xunhong.erp.turbo.api.biz.dto.common.SupplierPackageUsage;
import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem;
import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum;
@ -191,11 +194,6 @@ public class OrderSupplier extends DTO {
*/ */
private List<OrderPackage> orderPackageList; private List<OrderPackage> orderPackageList;
/**
* 采购订单车辆信息
*/
private OrderVehicle orderVehicle;
/** /**
* 采购订单公司信息 * 采购订单公司信息
*/ */

View File

@ -2,7 +2,9 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert;
import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderCostCreateCmd;
import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; import com.xunhong.erp.turbo.biz.domain.entity.OrderCost;
import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.NullValueCheckStrategy; import org.mapstruct.NullValueCheckStrategy;
@ -15,7 +17,6 @@ import java.util.List;
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface OrderCostConvert { public interface OrderCostConvert {
@Mapping(target = "purchaseOrderDO", ignore = true) @Mapping(target = "purchaseOrderDO", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "orderCostId", ignore = true) @Mapping(target = "orderCostId", ignore = true)
@Mapping(target = "version", ignore = true) @Mapping(target = "version", ignore = true)
@ -24,12 +25,22 @@ public interface OrderCostConvert {
@Mapping(target = "createdAt", ignore = true) @Mapping(target = "createdAt", ignore = true)
OrderCostDO toOrderCostDO(OrderCost orderCost); OrderCostDO toOrderCostDO(OrderCost orderCost);
@Mapping(target = "orderSupplierList", ignore = true)
@Mapping(target = "orderShipList", ignore = true)
@Mapping(target = "orderRebate", ignore = true)
@Mapping(target = "orderPackageList", ignore = true)
@Mapping(target = "orderDealer", ignore = true)
@Mapping(target = "orderCostList", ignore = true)
@Mapping(target = "orderCostItemList", ignore = true)
@Mapping(target = "orderCompany", ignore = true)
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
PurchaseOrder toPurchaseOrder(PurchaseOrderDO purchaseOrderDO);
List<OrderCostDO> toOrderCostDOList(List<OrderCost> orderCostList); List<OrderCostDO> toOrderCostDOList(List<OrderCost> orderCostList);
List<OrderCost> toOrderCostList(List<OrderCostDO> orderCostDOList); List<OrderCost> toOrderCostList(List<OrderCostDO> orderCostDOList);
@Mapping(target = "orderCompany", source = "orderCompanyDO") @Mapping(target = "orderCompany", source = "orderCompanyDO")
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
@Mapping(target = "purchaseOrder", source = "purchaseOrderDO") @Mapping(target = "purchaseOrder", source = "purchaseOrderDO")
OrderCost toOrderCost(OrderCostDO orderCostDO); OrderCost toOrderCost(OrderCostDO orderCostDO);
@ -37,7 +48,6 @@ public interface OrderCostConvert {
@Mapping(target = "updatedAt", ignore = true) @Mapping(target = "updatedAt", ignore = true)
@Mapping(target = "purchaseOrderDO", ignore = true) @Mapping(target = "purchaseOrderDO", ignore = true)
@Mapping(target = "poState", ignore = true) @Mapping(target = "poState", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "orderCostId", ignore = true) @Mapping(target = "orderCostId", ignore = true)
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "isDelete", ignore = true) @Mapping(target = "isDelete", ignore = true)

View File

@ -1,7 +1,9 @@
package com.xunhong.erp.turbo.biz.infrastructure.convert; package com.xunhong.erp.turbo.biz.infrastructure.convert;
import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate; import com.xunhong.erp.turbo.biz.domain.entity.OrderRebate;
import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.NullValueCheckStrategy; import org.mapstruct.NullValueCheckStrategy;
@ -13,7 +15,17 @@ import org.mapstruct.NullValueCheckStrategy;
public interface OrderRebateConvert { public interface OrderRebateConvert {
@Mapping(target = "orderCompany", source = "orderCompanyDO") @Mapping(target = "orderCompany", source = "orderCompanyDO")
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
@Mapping(target = "purchaseOrder", source = "purchaseOrderDO") @Mapping(target = "purchaseOrder", source = "purchaseOrderDO")
OrderRebate toOrderRebate(OrderRebateDO orderRebateDO); OrderRebate toOrderRebate(OrderRebateDO orderRebateDO);
@Mapping(target = "orderSupplierList", ignore = true)
@Mapping(target = "orderShipList", ignore = true)
@Mapping(target = "orderRebate", ignore = true)
@Mapping(target = "orderPackageList", ignore = true)
@Mapping(target = "orderDealer", ignore = true)
@Mapping(target = "orderCostList", ignore = true)
@Mapping(target = "orderCostItemList", ignore = true)
@Mapping(target = "orderCompany", ignore = true)
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
PurchaseOrder toPurchaseOrder(PurchaseOrderDO purchaseOrderDO);
} }

View File

@ -2,7 +2,9 @@ package com.xunhong.erp.turbo.biz.infrastructure.convert;
import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderSupplierUpdateCmd;
import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier; import com.xunhong.erp.turbo.biz.domain.entity.OrderSupplier;
import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget; import org.mapstruct.MappingTarget;
@ -17,17 +19,27 @@ public interface OrderSupplierConvert {
@Mapping(target = "purchaseOrder", source = "purchaseOrderDO") @Mapping(target = "purchaseOrder", source = "purchaseOrderDO")
@Mapping(target = "orderCompany", source = "orderCompanyDO") @Mapping(target = "orderCompany", source = "orderCompanyDO")
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
@Mapping(target = "orderPackageList", source = "orderPackageDOList") @Mapping(target = "orderPackageList", source = "orderPackageDOList")
OrderSupplier toOrderSupplier(OrderSupplierDO orderSupplierDO); OrderSupplier toOrderSupplier(OrderSupplierDO orderSupplierDO);
@Mapping(target = "orderSupplierList", ignore = true)
@Mapping(target = "orderShipList", ignore = true)
@Mapping(target = "orderRebate", ignore = true)
@Mapping(target = "orderPackageList", ignore = true)
@Mapping(target = "orderDealer", ignore = true)
@Mapping(target = "orderCostList", ignore = true)
@Mapping(target = "orderCostItemList", ignore = true)
@Mapping(target = "orderCompany", ignore = true)
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
PurchaseOrder toPurchaseOrder(PurchaseOrderDO purchaseOrderDO);
@Mapping(target = "purchaseOrderDO", ignore = true)
@Mapping(target = "pricingMethod", ignore = true) @Mapping(target = "pricingMethod", ignore = true)
@Mapping(target = "poState", ignore = true) @Mapping(target = "poState", ignore = true)
@Mapping(target = "packageUsage", ignore = true) @Mapping(target = "packageUsage", ignore = true)
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "costTemplate", ignore = true) @Mapping(target = "costTemplate", ignore = true)
@Mapping(target = "costIds", ignore = true) @Mapping(target = "costIds", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "wechatQr", ignore = true) @Mapping(target = "wechatQr", ignore = true)
@Mapping(target = "totalWeightImg", ignore = true) @Mapping(target = "totalWeightImg", ignore = true)
@Mapping(target = "totalWeight", ignore = true) @Mapping(target = "totalWeight", ignore = true)

View File

@ -103,7 +103,6 @@ public interface PurchaseOrderConvert {
@Mapping(target = "purchaseOrderDO", ignore = true) @Mapping(target = "purchaseOrderDO", ignore = true)
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "orderPackageDOList", source = "orderPackageList") @Mapping(target = "orderPackageDOList", source = "orderPackageList")
@Mapping(target = "orderSupplierId", ignore = true) @Mapping(target = "orderSupplierId", ignore = true)
@Mapping(target = "version", ignore = true) @Mapping(target = "version", ignore = true)
@ -118,7 +117,6 @@ public interface PurchaseOrderConvert {
@Mapping(target = "selected", ignore = true) @Mapping(target = "selected", ignore = true)
@Mapping(target = "orderCompany", source = "orderCompanyDO") @Mapping(target = "orderCompany", source = "orderCompanyDO")
@Mapping(target = "orderVehicle", source = "orderVehicleDO")
@Mapping(target = "createdByName", ignore = true) @Mapping(target = "createdByName", ignore = true)
@Mapping(target = "createdBy", ignore = true) @Mapping(target = "createdBy", ignore = true)
@Mapping(target = "orderPackageList", source = "orderPackageDOList") @Mapping(target = "orderPackageList", source = "orderPackageDOList")
@ -131,7 +129,6 @@ public interface PurchaseOrderConvert {
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "costTemplate", ignore = true) @Mapping(target = "costTemplate", ignore = true)
@Mapping(target = "costIds", ignore = true) @Mapping(target = "costIds", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "wechatQr", ignore = true) @Mapping(target = "wechatQr", ignore = true)
@Mapping(target = "totalWeightImg", ignore = true) @Mapping(target = "totalWeightImg", ignore = true)
@Mapping(target = "totalWeight", ignore = true) @Mapping(target = "totalWeight", ignore = true)
@ -163,7 +160,6 @@ public interface PurchaseOrderConvert {
@Mapping(target = "purchaseOrderDO", ignore = true) @Mapping(target = "purchaseOrderDO", ignore = true)
@Mapping(target = "poState", ignore = true) @Mapping(target = "poState", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "orderCostId", ignore = true) @Mapping(target = "orderCostId", ignore = true)
@Mapping(target = "version", ignore = true) @Mapping(target = "version", ignore = true)
@ -183,7 +179,6 @@ public interface PurchaseOrderConvert {
@Mapping(target = "purchaseOrderDO", ignore = true) @Mapping(target = "purchaseOrderDO", ignore = true)
@Mapping(target = "poState", ignore = true) @Mapping(target = "poState", ignore = true)
@Mapping(target = "orderVehicleDO", ignore = true)
@Mapping(target = "orderCompanyDO", ignore = true) @Mapping(target = "orderCompanyDO", ignore = true)
@Mapping(target = "version", ignore = true) @Mapping(target = "version", ignore = true)
@Mapping(target = "updatedAt", ignore = true) @Mapping(target = "updatedAt", ignore = true)

View File

@ -98,15 +98,14 @@ public class OrderCostDO extends BaseDO<OrderCostDO> {
@TableField(exist = false) @TableField(exist = false)
private PurchaseOrderStateEnum poState; private PurchaseOrderStateEnum poState;
@TableField(exist = false)
private OrderVehicleDO orderVehicleDO;
@TableField(exist = false) @TableField(exist = false)
private OrderCompanyDO orderCompanyDO; private OrderCompanyDO orderCompanyDO;
@TableField(exist = false) @TableField(exist = false)
private PurchaseOrderDO purchaseOrderDO; private PurchaseOrderDO purchaseOrderDO;
@TableField(exist = false)
private OrderVehicleDO orderVehicleDO;
} }

View File

@ -83,10 +83,6 @@ public class OrderRebateDO extends BaseDO<OrderPackageDO> {
@TableField(exist = false) @TableField(exist = false)
private PurchaseOrderStateEnum poState; private PurchaseOrderStateEnum poState;
@TableField(exist = false)
private OrderVehicleDO orderVehicleDO;
@TableField(exist = false) @TableField(exist = false)
private OrderCompanyDO orderCompanyDO; private OrderCompanyDO orderCompanyDO;

View File

@ -226,9 +226,6 @@ public class OrderSupplierDO extends BaseDO<OrderSupplierDO> {
@TableField(exist = false) @TableField(exist = false)
private List<OrderPackageDO> orderPackageDOList; private List<OrderPackageDO> orderPackageDOList;
@TableField(exist = false)
private OrderVehicleDO orderVehicleDO;
@TableField(exist = false) @TableField(exist = false)
private OrderCompanyDO orderCompanyDO; private OrderCompanyDO orderCompanyDO;

View File

@ -10,8 +10,14 @@ import com.xunhong.erp.turbo.api.biz.dto.qry.OrderCostPageQry;
import com.xunhong.erp.turbo.biz.domain.entity.OrderCost; import com.xunhong.erp.turbo.biz.domain.entity.OrderCost;
import com.xunhong.erp.turbo.biz.domain.gateway.OrderCostGateway; import com.xunhong.erp.turbo.biz.domain.gateway.OrderCostGateway;
import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderCostConvert; import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderCostConvert;
import com.xunhong.erp.turbo.biz.infrastructure.entity.*; import com.xunhong.erp.turbo.biz.infrastructure.entity.CostDO;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.*; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.CostMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -32,7 +38,6 @@ public class OrderCostGatewayImpl implements OrderCostGateway {
private final OrderCostMapper orderCostMapper; private final OrderCostMapper orderCostMapper;
private final OrderCostConvert orderCostConvert; private final OrderCostConvert orderCostConvert;
private final OrderVehicleMapper orderVehicleMapper;
private final OrderCompanyMapper orderCompanyMapper; private final OrderCompanyMapper orderCompanyMapper;
private final PurchaseOrderMapper purchaseOrderMapper; private final PurchaseOrderMapper purchaseOrderMapper;
@ -53,18 +58,6 @@ public class OrderCostGatewayImpl implements OrderCostGateway {
List<Long> orderIdList = page.getRecords().stream().map(OrderCostDO::getOrderId).toList(); List<Long> orderIdList = page.getRecords().stream().map(OrderCostDO::getOrderId).toList();
if (CollUtil.isNotEmpty(orderIdList)) { if (CollUtil.isNotEmpty(orderIdList)) {
LambdaQueryWrapper<OrderVehicleDO> queryWrapper3 = Wrappers.lambdaQuery(OrderVehicleDO.class);
queryWrapper3.in(OrderVehicleDO::getOrderId, orderIdList);
queryWrapper3.select(OrderVehicleDO::getOrderId, OrderVehicleDO::getVehicleNo, OrderVehicleDO::getDeliveryTime, OrderVehicleDO::getOrigin, OrderVehicleDO::getDestination, OrderVehicleDO::getDealerId, OrderVehicleDO::getDealerName);
List<OrderVehicleDO> orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper3);
Map<Long, OrderVehicleDO> orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity()));
page.getRecords().forEach(orderCostDO -> {
OrderVehicleDO orderVehicleDO = orderVehicleDOMap.get(orderCostDO.getOrderId());
if (Objects.nonNull(orderVehicleDO)) {
orderCostDO.setOrderVehicleDO(orderVehicleDO);
}
});
LambdaQueryWrapper<OrderCompanyDO> queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); LambdaQueryWrapper<OrderCompanyDO> queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class);
queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList);
queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId); queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId);
@ -77,10 +70,7 @@ public class OrderCostGatewayImpl implements OrderCostGateway {
} }
}); });
LambdaQueryWrapper<PurchaseOrderDO> queryWrapper1 = Wrappers.lambdaQuery(PurchaseOrderDO.class); List<PurchaseOrderDO> purchaseOrderDOList = purchaseOrderMapper.selectByOrderIdList(orderIdList);
queryWrapper1.in(PurchaseOrderDO::getOrderId, orderIdList);
queryWrapper1.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getOrderSn, PurchaseOrderDO::getState, PurchaseOrderDO::getAuditState);
List<PurchaseOrderDO> purchaseOrderDOList = purchaseOrderMapper.selectList(queryWrapper1);
Map<Long, PurchaseOrderDO> purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); Map<Long, PurchaseOrderDO> purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity()));
page.getRecords().forEach(orderCostDO -> { page.getRecords().forEach(orderCostDO -> {
PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderCostDO.getOrderId()); PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderCostDO.getOrderId());

View File

@ -11,11 +11,9 @@ import com.xunhong.erp.turbo.biz.domain.gateway.OrderRebateGateway;
import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderRebateConvert; import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderRebateConvert;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderRebateDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderRebateMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderRebateMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderVehicleMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -37,7 +35,6 @@ public class OrderRebateGatewayImpl implements OrderRebateGateway {
private final OrderRebateMapper orderRebateMapper; private final OrderRebateMapper orderRebateMapper;
private final OrderRebateConvert orderRebateConvert; private final OrderRebateConvert orderRebateConvert;
private final OrderVehicleMapper orderVehicleMapper;
private final OrderCompanyMapper orderCompanyMapper; private final OrderCompanyMapper orderCompanyMapper;
private final PurchaseOrderMapper purchaseOrderMapper; private final PurchaseOrderMapper purchaseOrderMapper;
@ -54,18 +51,6 @@ public class OrderRebateGatewayImpl implements OrderRebateGateway {
List<Long> orderIdList = page.getRecords().stream().map(OrderRebateDO::getOrderId).toList(); List<Long> orderIdList = page.getRecords().stream().map(OrderRebateDO::getOrderId).toList();
if (CollUtil.isNotEmpty(orderIdList)) { if (CollUtil.isNotEmpty(orderIdList)) {
LambdaQueryWrapper<OrderVehicleDO> queryWrapper3 = Wrappers.lambdaQuery(OrderVehicleDO.class);
queryWrapper3.in(OrderVehicleDO::getOrderId, orderIdList);
queryWrapper3.select(OrderVehicleDO::getOrderId, OrderVehicleDO::getVehicleNo, OrderVehicleDO::getDeliveryTime, OrderVehicleDO::getOrigin, OrderVehicleDO::getDestination, OrderVehicleDO::getDealerId, OrderVehicleDO::getDealerName);
List<OrderVehicleDO> orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper3);
Map<Long, OrderVehicleDO> orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity()));
page.getRecords().forEach(orderCostDO -> {
OrderVehicleDO orderVehicleDO = orderVehicleDOMap.get(orderCostDO.getOrderId());
if (Objects.nonNull(orderVehicleDO)) {
orderCostDO.setOrderVehicleDO(orderVehicleDO);
}
});
LambdaQueryWrapper<OrderCompanyDO> queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); LambdaQueryWrapper<OrderCompanyDO> queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class);
queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList);
queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId); queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId);
@ -78,10 +63,7 @@ public class OrderRebateGatewayImpl implements OrderRebateGateway {
} }
}); });
LambdaQueryWrapper<PurchaseOrderDO> queryWrapper1 = Wrappers.lambdaQuery(PurchaseOrderDO.class); List<PurchaseOrderDO> purchaseOrderDOList = purchaseOrderMapper.selectByOrderIdList(orderIdList);
queryWrapper1.in(PurchaseOrderDO::getOrderId, orderIdList);
queryWrapper1.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getOrderSn, PurchaseOrderDO::getState, PurchaseOrderDO::getAuditState);
List<PurchaseOrderDO> purchaseOrderDOList = purchaseOrderMapper.selectList(queryWrapper1);
Map<Long, PurchaseOrderDO> purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); Map<Long, PurchaseOrderDO> purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity()));
page.getRecords().forEach(orderCostDO -> { page.getRecords().forEach(orderCostDO -> {
PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderCostDO.getOrderId()); PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderCostDO.getOrderId());

View File

@ -15,11 +15,9 @@ import com.xunhong.erp.turbo.biz.domain.gateway.OrderSupplierGateway;
import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderSupplierConvert; import com.xunhong.erp.turbo.biz.infrastructure.convert.OrderSupplierConvert;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCompanyDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderSupplierDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCompanyMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderSupplierMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderSupplierMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderVehicleMapper;
import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper; import com.xunhong.erp.turbo.biz.infrastructure.mapper.PurchaseOrderMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -41,7 +39,6 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway {
private final OrderSupplierMapper orderSupplierMapper; private final OrderSupplierMapper orderSupplierMapper;
private final OrderSupplierConvert orderSupplierConvert; private final OrderSupplierConvert orderSupplierConvert;
private final OrderVehicleMapper orderVehicleMapper;
private final OrderCompanyMapper orderCompanyMapper; private final OrderCompanyMapper orderCompanyMapper;
private final PurchaseOrderMapper purchaseOrderMapper; private final PurchaseOrderMapper purchaseOrderMapper;
@ -60,18 +57,6 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway {
List<Long> orderIdList = page.getRecords().stream().map(OrderSupplierDO::getOrderId).toList(); List<Long> orderIdList = page.getRecords().stream().map(OrderSupplierDO::getOrderId).toList();
if (CollUtil.isNotEmpty(orderIdList)) { if (CollUtil.isNotEmpty(orderIdList)) {
LambdaQueryWrapper<OrderVehicleDO> queryWrapper3 = Wrappers.lambdaQuery(OrderVehicleDO.class);
queryWrapper3.in(OrderVehicleDO::getOrderId, orderIdList);
queryWrapper3.select(OrderVehicleDO::getOrderId, OrderVehicleDO::getVehicleNo, OrderVehicleDO::getDeliveryTime, OrderVehicleDO::getOrigin, OrderVehicleDO::getDestination, OrderVehicleDO::getDealerId, OrderVehicleDO::getDealerName);
List<OrderVehicleDO> orderVehicleDOList = orderVehicleMapper.selectList(queryWrapper3);
Map<Long, OrderVehicleDO> orderVehicleDOMap = orderVehicleDOList.stream().collect(Collectors.toMap(OrderVehicleDO::getOrderId, Function.identity()));
page.getRecords().forEach(orderSupplierDO -> {
OrderVehicleDO orderVehicleDO = orderVehicleDOMap.get(orderSupplierDO.getOrderId());
if (Objects.nonNull(orderVehicleDO)) {
orderSupplierDO.setOrderVehicleDO(orderVehicleDO);
}
});
LambdaQueryWrapper<OrderCompanyDO> queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class); LambdaQueryWrapper<OrderCompanyDO> queryWrapper2 = Wrappers.lambdaQuery(OrderCompanyDO.class);
queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList); queryWrapper2.in(OrderCompanyDO::getOrderId, orderIdList);
queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId); queryWrapper2.select(OrderCompanyDO::getOrderId, OrderCompanyDO::getShortName, OrderCompanyDO::getFullName, OrderCompanyDO::getCompanyId);
@ -84,10 +69,7 @@ public class OrderSupplierGatewayImpl implements OrderSupplierGateway {
} }
}); });
LambdaQueryWrapper<PurchaseOrderDO> queryWrapper1 = Wrappers.lambdaQuery(PurchaseOrderDO.class); List<PurchaseOrderDO> purchaseOrderDOList = purchaseOrderMapper.selectByOrderIdList(orderIdList);
queryWrapper1.in(PurchaseOrderDO::getOrderId, orderIdList);
queryWrapper1.select(PurchaseOrderDO::getOrderId, PurchaseOrderDO::getOrderSn, PurchaseOrderDO::getState, PurchaseOrderDO::getAuditState);
List<PurchaseOrderDO> purchaseOrderDOList = purchaseOrderMapper.selectList(queryWrapper1);
Map<Long, PurchaseOrderDO> purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity())); Map<Long, PurchaseOrderDO> purchaseOrderDOMap = purchaseOrderDOList.stream().collect(Collectors.toMap(PurchaseOrderDO::getOrderId, Function.identity()));
page.getRecords().forEach(orderSupplierDO -> { page.getRecords().forEach(orderSupplierDO -> {
PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderSupplierDO.getOrderId()); PurchaseOrderDO purchaseOrderDO = purchaseOrderDOMap.get(orderSupplierDO.getOrderId());

View File

@ -3,11 +3,16 @@ package com.xunhong.erp.turbo.biz.infrastructure.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author shenyifei * @author shenyifei
*/ */
@Mapper @Mapper
public interface PurchaseOrderMapper extends BaseMapper<PurchaseOrderDO> { public interface PurchaseOrderMapper extends BaseMapper<PurchaseOrderDO> {
List<PurchaseOrderDO> selectByOrderIdList(@Param("orderIdList") List<Long> orderIdList);
} }

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<resultMap id="BaseResultMap" type="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO"> <mapper
namespace="com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper">
<resultMap id="BaseResultMap"
type="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO">
<result property="orderCostId" column="order_cost_id"/> <result property="orderCostId" column="order_cost_id"/>
<result property="orderId" column="order_id"/> <result property="orderId" column="order_id"/>
<result property="costId" column="cost_id"/> <result property="costId" column="cost_id"/>
@ -29,8 +32,10 @@
oc.*, oc.*,
po.state as po_state po.state as po_state
FROM order_cost oc FROM order_cost oc
LEFT JOIN order_vehicle ov ON oc.order_id = ov.order_id AND ov.is_delete = 0 LEFT JOIN order_vehicle ov ON oc.order_id = ov.order_id AND ov.is_delete
LEFT JOIN purchase_order po ON oc.order_id = po.order_id AND po.is_delete = 0 = 0
LEFT JOIN purchase_order po ON oc.order_id = po.order_id AND
po.is_delete = 0
<where> <where>
oc.is_delete = 0 oc.is_delete = 0
<if test="query.createdBy != null"> <if test="query.createdBy != null">
@ -41,7 +46,8 @@
</if> </if>
<if test="query.poStates != null and query.poStates.size() > 0"> <if test="query.poStates != null and query.poStates.size() > 0">
AND po.state IN AND po.state IN
<foreach collection="query.poStates" item="state" open="(" separator="," close=")"> <foreach collection="query.poStates" item="state" open="("
separator="," close=")">
#{state.type} #{state.type}
</foreach> </foreach>
</if> </if>

View File

@ -11,6 +11,7 @@
<result property="pricingMethod" column="pricing_method"/> <result property="pricingMethod" column="pricing_method"/>
<result property="orderSn" column="order_sn"/> <result property="orderSn" column="order_sn"/>
<result property="state" column="state"/> <result property="state" column="state"/>
<result property="auditState" column="audit_state"/>
<result property="foreman" column="foreman"/> <result property="foreman" column="foreman"/>
<result property="remark" column="remark"/> <result property="remark" column="remark"/>
<result property="createdBy" column="created_by"/> <result property="createdBy" column="created_by"/>
@ -20,6 +21,49 @@
<result property="updatedAt" column="updated_at"/> <result property="updatedAt" column="updated_at"/>
<result property="isDelete" column="is_delete"/> <result property="isDelete" column="is_delete"/>
<result property="version" column="version"/> <result property="version" column="version"/>
<association property="orderVehicleDO"
javaType="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO">
<result property="vehicleId" column="vehicle_id"/>
<result property="orderId" column="order_id"/>
<result property="vehicleNo" column="vehicle_no"/>
<result property="dealerId" column="dealer_id"/>
<result property="dealerName" column="dealer_name"/>
</association>
</resultMap> </resultMap>
<resultMap id="SelectByOrderIdListResultMap"
type="com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO">
<result property="orderId" column="order_id"/>
<result property="orderSn" column="order_sn"/>
<result property="state" column="state"/>
<result property="auditState" column="audit_state"/>
<association property="orderVehicleDO"
javaType="com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO">
<result property="vehicleId" column="vehicle_id"/>
<result property="vehicleNo" column="vehicle_no"/>
<result property="dealerId" column="dealer_id"/>
<result property="dealerName" column="dealer_name"/>
</association>
</resultMap>
<select id="selectByOrderIdList"
resultType="com.xunhong.erp.turbo.biz.infrastructure.entity.PurchaseOrderDO"
resultMap="SelectByOrderIdListResultMap">
SELECT
po.order_id, po.order_sn, po.state, ov.vehicle_id, ov.vehicle_no, ov.dealer_id, ov.dealer_name
FROM purchase_order po
LEFT JOIN order_vehicle ov ON po.order_id = ov.order_id AND ov.is_delete = 0
<where>
po.is_delete = 0
<if test="orderIdList != null and orderIdList.size() > 0">
AND po.order_id IN
<foreach item="item" collection="orderIdList" separator=","
open="(" close=")" index="">
#{item}
</foreach>
</if>
</where>
</select>
</mapper> </mapper>

View File

@ -224,12 +224,6 @@ public class OrderSupplier extends Command {
@Schema(title = "采购订单包装箱信息") @Schema(title = "采购订单包装箱信息")
private List<OrderPackage> orderPackageList; private List<OrderPackage> orderPackageList;
/**
* 采购订单车辆信息
*/
@Schema(title = "采购订单车辆信息")
private OrderVehicle orderVehicle;
/** /**
* 采购订单公司信息 * 采购订单公司信息
*/ */

View File

@ -2,7 +2,6 @@ package com.xunhong.erp.turbo.api.biz.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.CostBelongEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.CostTypeEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum;
@ -96,12 +95,6 @@ public class OrderCostVO extends Command {
@Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createdAt; private LocalDateTime createdAt;
/**
* 车辆信息
*/
@Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED)
private OrderVehicle orderVehicle;
/** /**
* 采购订单状态: 0_草稿1_审核中2_已完成3_已驳回4_已关闭 * 采购订单状态: 0_草稿1_审核中2_已完成3_已驳回4_已关闭
*/ */

View File

@ -1,7 +1,6 @@
package com.xunhong.erp.turbo.api.biz.dto.vo; package com.xunhong.erp.turbo.api.biz.dto.vo;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderRebateCalcMethodEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderStateEnum;
import com.xunhong.erp.turbo.base.dto.Command; import com.xunhong.erp.turbo.base.dto.Command;
@ -75,12 +74,6 @@ public class OrderRebateVO extends Command {
@Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createdAt; private LocalDateTime createdAt;
/**
* 车辆信息
*/
@Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED)
private OrderVehicle orderVehicle;
/** /**
* 采购订单状态: 0_草稿1_审核中2_已完成3_已驳回4_已关闭 * 采购订单状态: 0_草稿1_审核中2_已完成3_已驳回4_已关闭
*/ */

View File

@ -2,7 +2,6 @@ package com.xunhong.erp.turbo.api.biz.dto.vo;
import com.alibaba.cola.dto.DTO; import com.alibaba.cola.dto.DTO;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany; import com.xunhong.erp.turbo.api.biz.dto.common.OrderCompany;
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem; import com.xunhong.erp.turbo.api.biz.dto.common.UploadFileItem;
import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.LoadingModeEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum; import com.xunhong.erp.turbo.api.biz.dto.enums.PurchaseOrderPricingMethodEnum;
@ -209,12 +208,6 @@ public class OrderSupplierVO extends DTO {
@Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(title = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createdAt; private LocalDateTime createdAt;
/**
* 车辆信息
*/
@Schema(title = "车辆信息", requiredMode = Schema.RequiredMode.REQUIRED)
private OrderVehicle orderVehicle;
/** /**
* 采购订单状态: 0_草稿1_审核中2_已完成3_已驳回4_已关闭 * 采购订单状态: 0_草稿1_审核中2_已完成3_已驳回4_已关闭
*/ */