feat(order): 增加订单费用与箱子品牌类型支持
- 在采购订单第一步命令中增加费用信息字段 orderCostList - 为发货单明细项添加箱数(boxCount)属性 - 在包装信息中引入箱子品牌类型(boxBrandType) - 扩展发货单实体以支持关联订单成本列表 - 更新转换器忽略orderCostDOList字段防止自动映射 - 修改查询逻辑以支持按类型筛选箱产品 - 调整费用项排序规则并优化采购订单费用更新逻辑 - 完善发货单查询时的成本信息加载 - 修正箱重计算方式并补充总箱数统计逻辑 - 补充OrderCostDO相关数据库映射配置
This commit is contained in:
parent
371fb91991
commit
69da1bce4e
@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.biz.domain.entity;
|
|||||||
|
|
||||||
import com.alibaba.cola.domain.Entity;
|
import com.alibaba.cola.domain.Entity;
|
||||||
import com.alibaba.cola.dto.DTO;
|
import com.alibaba.cola.dto.DTO;
|
||||||
|
import com.xunhong.erp.turbo.api.biz.dto.enums.BoxBrandTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@ -32,6 +33,11 @@ public class BoxBrand extends DTO {
|
|||||||
*/
|
*/
|
||||||
private String image;
|
private String image;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 品牌类型:1_我方纸箱;2_瓜农纸箱;3_第三方纸箱
|
||||||
|
*/
|
||||||
|
private BoxBrandTypeEnum type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.biz.domain.entity;
|
|||||||
|
|
||||||
import com.alibaba.cola.domain.Entity;
|
import com.alibaba.cola.domain.Entity;
|
||||||
import com.alibaba.cola.dto.DTO;
|
import com.alibaba.cola.dto.DTO;
|
||||||
|
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderItem;
|
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderItem;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderPackage;
|
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderPackage;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.enums.ShipOrderStateEnum;
|
import com.xunhong.erp.turbo.api.biz.dto.enums.ShipOrderStateEnum;
|
||||||
@ -205,4 +206,9 @@ public class ShipOrder extends DTO {
|
|||||||
* 发货单子项表
|
* 发货单子项表
|
||||||
*/
|
*/
|
||||||
private List<ShipOrderPackage> shipOrderPackageList;
|
private List<ShipOrderPackage> shipOrderPackageList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单费用表
|
||||||
|
*/
|
||||||
|
private List<OrderCost> orderCostList;
|
||||||
}
|
}
|
||||||
@ -16,10 +16,12 @@ import org.mapstruct.NullValueCheckStrategy;
|
|||||||
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
|
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
|
||||||
public interface ShipOrderConvert {
|
public interface ShipOrderConvert {
|
||||||
|
|
||||||
|
@Mapping(target = "orderCostList", source = "orderCostDOList")
|
||||||
@Mapping(target = "shipOrderPackageList", source = "shipOrderPackageDOList")
|
@Mapping(target = "shipOrderPackageList", source = "shipOrderPackageDOList")
|
||||||
@Mapping(target = "shipOrderItemList", source = "shipOrderItemDOList")
|
@Mapping(target = "shipOrderItemList", source = "shipOrderItemDOList")
|
||||||
ShipOrder toShipOrder(ShipOrderDO shipOrderDO);
|
ShipOrder toShipOrder(ShipOrderDO shipOrderDO);
|
||||||
|
|
||||||
|
@Mapping(target = "orderCostDOList", ignore = true)
|
||||||
@Mapping(target = "warehouseName", ignore = true)
|
@Mapping(target = "warehouseName", ignore = true)
|
||||||
@Mapping(target = "warehouseId", ignore = true)
|
@Mapping(target = "warehouseId", ignore = true)
|
||||||
@Mapping(target = "vehicleNo", ignore = true)
|
@Mapping(target = "vehicleNo", ignore = true)
|
||||||
@ -37,6 +39,7 @@ public interface ShipOrderConvert {
|
|||||||
@Mapping(target = "createdAt", ignore = true)
|
@Mapping(target = "createdAt", ignore = true)
|
||||||
ShipOrderDO toShipOrderDO(ShipOrderCreateCmd shipOrderCreateCmd);
|
ShipOrderDO toShipOrderDO(ShipOrderCreateCmd shipOrderCreateCmd);
|
||||||
|
|
||||||
|
@Mapping(target = "orderCostDOList", ignore = true)
|
||||||
@Mapping(target = "warehouseName", ignore = true)
|
@Mapping(target = "warehouseName", ignore = true)
|
||||||
@Mapping(target = "warehouseId", ignore = true)
|
@Mapping(target = "warehouseId", ignore = true)
|
||||||
@Mapping(target = "vehicleNo", ignore = true)
|
@Mapping(target = "vehicleNo", ignore = true)
|
||||||
@ -67,6 +70,9 @@ public interface ShipOrderConvert {
|
|||||||
@Mapping(target = "createdAt", ignore = true)
|
@Mapping(target = "createdAt", ignore = true)
|
||||||
void toShipOrderDO(@MappingTarget ShipOrderDO shipOrderDO, ShipOrderUpdateCmd shipOrderUpdateCmd);
|
void toShipOrderDO(@MappingTarget ShipOrderDO shipOrderDO, ShipOrderUpdateCmd shipOrderUpdateCmd);
|
||||||
|
|
||||||
|
@Mapping(target = "orderCostDOList", ignore = true)
|
||||||
|
@Mapping(target = "companyName", ignore = true)
|
||||||
|
@Mapping(target = "companyId", ignore = true)
|
||||||
@Mapping(target = "warehouseName", ignore = true)
|
@Mapping(target = "warehouseName", ignore = true)
|
||||||
@Mapping(target = "warehouseId", ignore = true)
|
@Mapping(target = "warehouseId", ignore = true)
|
||||||
@Mapping(target = "version", ignore = true)
|
@Mapping(target = "version", ignore = true)
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.xunhong.erp.turbo.api.biz.dto.enums.BoxBrandTypeEnum;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderPackageBoxTypeEnum;
|
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderPackageBoxTypeEnum;
|
||||||
import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO;
|
import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -49,6 +50,12 @@ public class OrderPackageDO extends BaseDO<OrderPackageDO> {
|
|||||||
@TableField(value = "box_brand_image")
|
@TableField(value = "box_brand_image")
|
||||||
private String boxBrandImage;
|
private String boxBrandImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子品牌类型:1_我方纸箱;2_瓜农纸箱;3_第三方纸箱
|
||||||
|
*/
|
||||||
|
@TableField(value = "box_brand_type")
|
||||||
|
private BoxBrandTypeEnum boxBrandType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 箱子分类ID
|
* 箱子分类ID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -238,4 +238,10 @@ public class ShipOrderDO extends BaseDO<ShipOrderDO> {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<ShipOrderItemDO> shipOrderItemDOList;
|
private List<ShipOrderItemDO> shipOrderItemDOList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单成本
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<OrderCostDO> orderCostDOList;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -42,6 +42,12 @@ public class ShipOrderItemDO extends BaseDO<ShipOrderItemDO> {
|
|||||||
@TableField(value = "box_weight")
|
@TableField(value = "box_weight")
|
||||||
private BigDecimal boxWeight;
|
private BigDecimal boxWeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱数
|
||||||
|
*/
|
||||||
|
@TableField(value = "box_count")
|
||||||
|
private Integer boxCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 净重(斤)
|
* 净重(斤)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -50,6 +50,7 @@ public class BoxProductGatewayImpl implements BoxProductGateway {
|
|||||||
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getSpecType()), BoxProductDO::getSpecType, boxProductPageQry.getSpecType());
|
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getSpecType()), BoxProductDO::getSpecType, boxProductPageQry.getSpecType());
|
||||||
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getBrandId()), BoxProductDO::getBrandId, boxProductPageQry.getBrandId());
|
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getBrandId()), BoxProductDO::getBrandId, boxProductPageQry.getBrandId());
|
||||||
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getStatus()), BoxProductDO::getStatus, boxProductPageQry.getStatus());
|
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getStatus()), BoxProductDO::getStatus, boxProductPageQry.getStatus());
|
||||||
|
queryWrapper.eq(Objects.nonNull(boxProductPageQry.getType()), BoxProductDO::getType, boxProductPageQry.getType());
|
||||||
|
|
||||||
queryWrapper.orderByAsc(BoxProductDO::getSort);
|
queryWrapper.orderByAsc(BoxProductDO::getSort);
|
||||||
queryWrapper.orderByDesc(BoxProductDO::getCreatedAt);
|
queryWrapper.orderByDesc(BoxProductDO::getCreatedAt);
|
||||||
@ -67,6 +68,7 @@ public class BoxProductGatewayImpl implements BoxProductGateway {
|
|||||||
queryWrapper.eq(Objects.nonNull(boxProductListQry.getSpecType()), BoxProductDO::getSpecType, boxProductListQry.getSpecType());
|
queryWrapper.eq(Objects.nonNull(boxProductListQry.getSpecType()), BoxProductDO::getSpecType, boxProductListQry.getSpecType());
|
||||||
queryWrapper.eq(Objects.nonNull(boxProductListQry.getBrandId()), BoxProductDO::getBrandId, boxProductListQry.getBrandId());
|
queryWrapper.eq(Objects.nonNull(boxProductListQry.getBrandId()), BoxProductDO::getBrandId, boxProductListQry.getBrandId());
|
||||||
queryWrapper.eq(Objects.nonNull(boxProductListQry.getStatus()), BoxProductDO::getStatus, boxProductListQry.getStatus());
|
queryWrapper.eq(Objects.nonNull(boxProductListQry.getStatus()), BoxProductDO::getStatus, boxProductListQry.getStatus());
|
||||||
|
queryWrapper.eq(Objects.nonNull(boxProductListQry.getType()), BoxProductDO::getType, boxProductListQry.getType());
|
||||||
|
|
||||||
queryWrapper.orderByAsc(BoxProductDO::getSort);
|
queryWrapper.orderByAsc(BoxProductDO::getSort);
|
||||||
queryWrapper.orderByDesc(BoxProductDO::getCreatedAt);
|
queryWrapper.orderByDesc(BoxProductDO::getCreatedAt);
|
||||||
|
|||||||
@ -66,6 +66,8 @@ public class CostItemGatewayImpl implements CostItemGateway {
|
|||||||
queryWrapper.eq(Objects.nonNull(costItemListQry.getShowInEntry()), CostItemDO::getShowInEntry, costItemListQry.getShowInEntry());
|
queryWrapper.eq(Objects.nonNull(costItemListQry.getShowInEntry()), CostItemDO::getShowInEntry, costItemListQry.getShowInEntry());
|
||||||
queryWrapper.eq(Objects.nonNull(costItemListQry.getStatus()), CostItemDO::getStatus, costItemListQry.getStatus());
|
queryWrapper.eq(Objects.nonNull(costItemListQry.getStatus()), CostItemDO::getStatus, costItemListQry.getStatus());
|
||||||
queryWrapper.eq(Objects.nonNull(costItemListQry.getCostType()), CostItemDO::getCostType, costItemListQry.getCostType());
|
queryWrapper.eq(Objects.nonNull(costItemListQry.getCostType()), CostItemDO::getCostType, costItemListQry.getCostType());
|
||||||
|
|
||||||
|
queryWrapper.orderByAsc(CostItemDO::getCostType);
|
||||||
queryWrapper.orderByAsc(CostItemDO::getSort);
|
queryWrapper.orderByAsc(CostItemDO::getSort);
|
||||||
queryWrapper.orderByDesc(CostItemDO::getCreatedAt);
|
queryWrapper.orderByDesc(CostItemDO::getCreatedAt);
|
||||||
List<CostItemDO> costItemDOList = costItemMapper.selectList(queryWrapper);
|
List<CostItemDO> costItemDOList = costItemMapper.selectList(queryWrapper);
|
||||||
|
|||||||
@ -22,10 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -418,6 +415,7 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway {
|
|||||||
shipOrderDO.setDriverPhone(orderVehicleDO.getPhone());
|
shipOrderDO.setDriverPhone(orderVehicleDO.getPhone());
|
||||||
shipOrderDO.setShippingDate(orderVehicleDO.getDeliveryTime());
|
shipOrderDO.setShippingDate(orderVehicleDO.getDeliveryTime());
|
||||||
shipOrderDO.setShippingAddress(orderVehicleDO.getOrigin());
|
shipOrderDO.setShippingAddress(orderVehicleDO.getOrigin());
|
||||||
|
shipOrderDO.setReceivingAddress(orderVehicleDO.getDestination());
|
||||||
shipOrderDO.setFreightDebt(orderVehicleDO.getPrice());
|
shipOrderDO.setFreightDebt(orderVehicleDO.getPrice());
|
||||||
if (orderVehicleDO.getOpenStrawCurtain()) {
|
if (orderVehicleDO.getOpenStrawCurtain()) {
|
||||||
shipOrderDO.setStrawMatDebt(orderVehicleDO.getStrawCurtainPrice());
|
shipOrderDO.setStrawMatDebt(orderVehicleDO.getStrawCurtainPrice());
|
||||||
@ -592,10 +590,6 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway {
|
|||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
shipOrderItemDO.setGrossWeight(totalGrossWeight);
|
shipOrderItemDO.setGrossWeight(totalGrossWeight);
|
||||||
|
|
||||||
// 计算总箱重(这里假设箱重需要另外计算)
|
|
||||||
BigDecimal totalBoxWeight = BigDecimal.ZERO;
|
|
||||||
shipOrderItemDO.setBoxWeight(totalBoxWeight);
|
|
||||||
|
|
||||||
// 计算总净重
|
// 计算总净重
|
||||||
BigDecimal totalNetWeight = suppliers.stream()
|
BigDecimal totalNetWeight = suppliers.stream()
|
||||||
.map(OrderSupplierDO::getNetWeight)
|
.map(OrderSupplierDO::getNetWeight)
|
||||||
@ -603,6 +597,17 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway {
|
|||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
shipOrderItemDO.setNetWeight(totalNetWeight);
|
shipOrderItemDO.setNetWeight(totalNetWeight);
|
||||||
|
|
||||||
|
shipOrderItemDO.setBoxWeight(totalGrossWeight.subtract(totalNetWeight));
|
||||||
|
|
||||||
|
// 计算总箱数
|
||||||
|
Integer totalBoxCount = suppliers.stream()
|
||||||
|
.map(OrderSupplierDO::getOrderPackageDOList)
|
||||||
|
.flatMap(Collection::stream)
|
||||||
|
.map(OrderPackageDO::getBoxCount)
|
||||||
|
.reduce(0, Integer::sum);
|
||||||
|
|
||||||
|
shipOrderItemDO.setBoxCount(totalBoxCount);
|
||||||
|
|
||||||
// 设置单价
|
// 设置单价
|
||||||
BigDecimal salePrice = entry.getKey();
|
BigDecimal salePrice = entry.getKey();
|
||||||
shipOrderItemDO.setUnitPrice(salePrice);
|
shipOrderItemDO.setUnitPrice(salePrice);
|
||||||
@ -613,11 +618,6 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway {
|
|||||||
shipOrderItemDO.setTotalAmount(totalAmount);
|
shipOrderItemDO.setTotalAmount(totalAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置西瓜品级(这里使用第一个供应商的品级)
|
|
||||||
if (!suppliers.isEmpty()) {
|
|
||||||
shipOrderItemDO.setWatermelonGrade(suppliers.get(0).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
shipOrderItemMapper.insert(shipOrderItemDO);
|
shipOrderItemMapper.insert(shipOrderItemDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -719,6 +719,48 @@ public class PurchaseOrderGatewayImpl implements PurchaseOrderGateway {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新费用信息(精细化处理)
|
||||||
|
// 获取现有的费用列表
|
||||||
|
LambdaQueryWrapper<OrderCostDO> costQueryWrapper = Wrappers.lambdaQuery(OrderCostDO.class);
|
||||||
|
costQueryWrapper.eq(OrderCostDO::getOrderId, purchaseOrderDO.getOrderId());
|
||||||
|
List<OrderCostDO> existingCosts = orderCostMapper.selectList(costQueryWrapper);
|
||||||
|
|
||||||
|
// 获取更新的费用列表
|
||||||
|
List<OrderCost> updatedCosts = purchaseOrderStep1Cmd.getOrderCostList().stream().toList();
|
||||||
|
|
||||||
|
// 将现有费用映射到ID字典中便于查找
|
||||||
|
Map<Long, OrderCostDO> existingCostMap = existingCosts.stream()
|
||||||
|
.collect(Collectors.toMap(OrderCostDO::getOrderCostId, Function.identity()));
|
||||||
|
|
||||||
|
// 收集需要更新和新增的费用
|
||||||
|
List<OrderCostDO> costsToInsert = new ArrayList<>();
|
||||||
|
List<OrderCostDO> costsToUpdate = new ArrayList<>();
|
||||||
|
|
||||||
|
for (OrderCost updatedCost : updatedCosts) {
|
||||||
|
updatedCost.setOrderId(purchaseOrderDO.getOrderId());
|
||||||
|
OrderCostDO costDO = orderCostConvert.toOrderCostDO(updatedCost);
|
||||||
|
|
||||||
|
if (updatedCost.getOrderCostId() != null && existingCostMap.containsKey(updatedCost.getOrderCostId())) {
|
||||||
|
// 更新已存在的费用
|
||||||
|
costDO.setOrderCostId(updatedCost.getOrderCostId());
|
||||||
|
costsToUpdate.add(costDO);
|
||||||
|
// 从现有映射中移除,剩下的就是需要删除的
|
||||||
|
existingCostMap.remove(updatedCost.getOrderCostId());
|
||||||
|
} else {
|
||||||
|
// 新增费用
|
||||||
|
costsToInsert.add(costDO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除不再需要的费用
|
||||||
|
existingCostMap.values().forEach(cost -> cost.deleteById());
|
||||||
|
|
||||||
|
// 执行更新操作
|
||||||
|
costsToUpdate.forEach(orderCostMapper::updateById);
|
||||||
|
|
||||||
|
// 执行插入操作
|
||||||
|
costsToInsert.forEach(orderCostMapper::insert);
|
||||||
|
|
||||||
return purchaseOrderConvert.toPurchaseOrder(purchaseOrderDO);
|
return purchaseOrderConvert.toPurchaseOrder(purchaseOrderDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,9 +17,11 @@ import com.xunhong.erp.turbo.api.biz.dto.qry.ShipOrderShowQry;
|
|||||||
import com.xunhong.erp.turbo.biz.domain.entity.ShipOrder;
|
import com.xunhong.erp.turbo.biz.domain.entity.ShipOrder;
|
||||||
import com.xunhong.erp.turbo.biz.domain.gateway.ShipOrderGateway;
|
import com.xunhong.erp.turbo.biz.domain.gateway.ShipOrderGateway;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.convert.ShipOrderConvert;
|
import com.xunhong.erp.turbo.biz.infrastructure.convert.ShipOrderConvert;
|
||||||
|
import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderDO;
|
import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderDO;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderItemDO;
|
import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderItemDO;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderPackageDO;
|
import com.xunhong.erp.turbo.biz.infrastructure.entity.ShipOrderPackageDO;
|
||||||
|
import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderItemMapper;
|
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderItemMapper;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderMapper;
|
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderMapper;
|
||||||
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderPackageMapper;
|
import com.xunhong.erp.turbo.biz.infrastructure.mapper.ShipOrderPackageMapper;
|
||||||
@ -41,6 +43,8 @@ public class ShipOrderGatewayImpl implements ShipOrderGateway {
|
|||||||
private final ShipOrderItemMapper shipOrderItemMapper;
|
private final ShipOrderItemMapper shipOrderItemMapper;
|
||||||
private final ShipOrderPackageMapper shipOrderPackageMapper;
|
private final ShipOrderPackageMapper shipOrderPackageMapper;
|
||||||
|
|
||||||
|
private final OrderCostMapper orderCostMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ShipOrder save(ShipOrderCreateCmd shipOrderCreateCmd) {
|
public ShipOrder save(ShipOrderCreateCmd shipOrderCreateCmd) {
|
||||||
ShipOrderDO shipOrderDO = shipOrderConvert.toShipOrderDO(shipOrderCreateCmd);
|
ShipOrderDO shipOrderDO = shipOrderConvert.toShipOrderDO(shipOrderCreateCmd);
|
||||||
@ -100,6 +104,7 @@ public class ShipOrderGatewayImpl implements ShipOrderGateway {
|
|||||||
if (Objects.nonNull(shipOrderDO)) {
|
if (Objects.nonNull(shipOrderDO)) {
|
||||||
shipOrderDO.setShipOrderItemDOList(shipOrderItemMapper.selectList(Wrappers.lambdaQuery(ShipOrderItemDO.class).eq(ShipOrderItemDO::getShipOrderId, shipOrderDO.getShipOrderId())));
|
shipOrderDO.setShipOrderItemDOList(shipOrderItemMapper.selectList(Wrappers.lambdaQuery(ShipOrderItemDO.class).eq(ShipOrderItemDO::getShipOrderId, shipOrderDO.getShipOrderId())));
|
||||||
shipOrderDO.setShipOrderPackageDOList(shipOrderPackageMapper.selectList(Wrappers.lambdaQuery(ShipOrderPackageDO.class).eq(ShipOrderPackageDO::getShipOrderId, shipOrderDO.getShipOrderId())));
|
shipOrderDO.setShipOrderPackageDOList(shipOrderPackageMapper.selectList(Wrappers.lambdaQuery(ShipOrderPackageDO.class).eq(ShipOrderPackageDO::getShipOrderId, shipOrderDO.getShipOrderId())));
|
||||||
|
shipOrderDO.setOrderCostDOList(orderCostMapper.selectList(Wrappers.lambdaQuery(OrderCostDO.class).eq(OrderCostDO::getOrderId, shipOrderDO.getPurchaseOrderId())));
|
||||||
}
|
}
|
||||||
|
|
||||||
return shipOrderConvert.toShipOrder(shipOrderDO);
|
return shipOrderConvert.toShipOrder(shipOrderDO);
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
<result property="shipOrderId" column="ship_order_id"/>
|
<result property="shipOrderId" column="ship_order_id"/>
|
||||||
<result property="grossWeight" column="gross_weight"/>
|
<result property="grossWeight" column="gross_weight"/>
|
||||||
<result property="boxWeight" column="box_weight"/>
|
<result property="boxWeight" column="box_weight"/>
|
||||||
|
<result property="boxCount" column="box_count"/>
|
||||||
<result property="netWeight" column="net_weight"/>
|
<result property="netWeight" column="net_weight"/>
|
||||||
<result property="unitPrice" column="unit_price"/>
|
<result property="unitPrice" column="unit_price"/>
|
||||||
<result property="totalAmount" column="total_amount"/>
|
<result property="totalAmount" column="total_amount"/>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
package com.xunhong.erp.turbo.api.biz.dto.cmd;
|
||||||
|
|
||||||
|
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.common.OrderDealer;
|
import com.xunhong.erp.turbo.api.biz.dto.common.OrderDealer;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
|
import com.xunhong.erp.turbo.api.biz.dto.common.OrderVehicle;
|
||||||
import com.xunhong.erp.turbo.base.dto.Command;
|
import com.xunhong.erp.turbo.base.dto.Command;
|
||||||
@ -7,6 +8,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author shenyifei
|
* @author shenyifei
|
||||||
*/
|
*/
|
||||||
@ -38,4 +41,9 @@ public class PurchaseOrderStep1Cmd extends Command {
|
|||||||
*/
|
*/
|
||||||
@Schema(title = "经销商信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(title = "经销商信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private OrderDealer orderDealer;
|
private OrderDealer orderDealer;
|
||||||
|
/**
|
||||||
|
* 费用信息
|
||||||
|
*/
|
||||||
|
@Schema(title = "采购订单费用信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private List<OrderCost> orderCostList;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.xunhong.erp.turbo.api.biz.dto.common;
|
package com.xunhong.erp.turbo.api.biz.dto.common;
|
||||||
|
|
||||||
|
import com.xunhong.erp.turbo.api.biz.dto.enums.BoxBrandTypeEnum;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderPackageBoxTypeEnum;
|
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderPackageBoxTypeEnum;
|
||||||
import com.xunhong.erp.turbo.base.dto.Command;
|
import com.xunhong.erp.turbo.base.dto.Command;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
@ -46,6 +47,12 @@ public class OrderPackage extends Command {
|
|||||||
@Schema(title = "箱子品牌图片")
|
@Schema(title = "箱子品牌图片")
|
||||||
private String boxBrandImage;
|
private String boxBrandImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子品牌类型:1_我方纸箱;2_瓜农纸箱;3_第三方纸箱
|
||||||
|
*/
|
||||||
|
@Schema(title = "箱子品牌类型:1_我方纸箱;2_瓜农纸箱;3_第三方纸箱", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private BoxBrandTypeEnum boxBrandType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 箱子分类ID
|
* 箱子分类ID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -40,6 +40,12 @@ public class ShipOrderItem extends DTO {
|
|||||||
@Schema(title = "箱重(斤)")
|
@Schema(title = "箱重(斤)")
|
||||||
private BigDecimal boxWeight;
|
private BigDecimal boxWeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱数
|
||||||
|
*/
|
||||||
|
@Schema(title = "箱数")
|
||||||
|
private Integer boxCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 净重(斤)
|
* 净重(斤)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.xunhong.erp.turbo.api.biz.dto.vo;
|
|||||||
|
|
||||||
import com.alibaba.cola.dto.DTO;
|
import com.alibaba.cola.dto.DTO;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.xunhong.erp.turbo.api.biz.dto.common.OrderCost;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderItem;
|
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderItem;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderPackage;
|
import com.xunhong.erp.turbo.api.biz.dto.common.ShipOrderPackage;
|
||||||
import com.xunhong.erp.turbo.api.biz.dto.enums.ShipOrderStateEnum;
|
import com.xunhong.erp.turbo.api.biz.dto.enums.ShipOrderStateEnum;
|
||||||
@ -250,5 +251,10 @@ public class ShipOrderVO extends DTO {
|
|||||||
@Schema(title = "发货单子项表")
|
@Schema(title = "发货单子项表")
|
||||||
private List<ShipOrderPackage> shipOrderPackageList;
|
private List<ShipOrderPackage> shipOrderPackageList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货单成本项目信息
|
||||||
|
*/
|
||||||
|
@Schema(title = "发货单成本项目信息")
|
||||||
|
private List<OrderCost> orderCostList;
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user