diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrder.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrder.java index cf94712..bed70e1 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrder.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrder.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -69,7 +70,7 @@ public class BizLogisticsOrder extends TenantEntity { /** * 总货件数量(商品件数总和) */ - private Long shipmentQuantity; + private BigDecimal shipmentQuantity; /** * 亚马逊仓库实际上架日期 @@ -98,6 +99,8 @@ public class BizLogisticsOrder extends TenantEntity { private String status; + private String storeName; + @TableField(exist = false) private List details; diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java index 48ef864..d47b179 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java @@ -85,17 +85,17 @@ public class BizLogisticsOrderDetail extends TenantEntity { /** * 供应商称重(单位:KG,由供应商提供) */ - private Long supplierWeight; + private BigDecimal supplierWeight; /** * 物流商计重(单位:KG,物流商实际测量值) */ - private Long logisticsWeight; + private BigDecimal logisticsWeight; /** * 称重差异(应用层计算:物流商计重 - 供应商称重) */ - private Long weightDiff; + private BigDecimal weightDiff; /** * 物流单价(单位:元/KG,由合同或报价确定) @@ -193,4 +193,13 @@ public class BizLogisticsOrderDetail extends TenantEntity { private BigDecimal totalPrice; + private BigDecimal length; + + private BigDecimal width; + + private BigDecimal height; + + private BigDecimal totalVolume; + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderQuotation.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderQuotation.java index 1bd0549..1f278cd 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderQuotation.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderQuotation.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.math.BigDecimal; /** * 物流订单确认对象 biz_logistics_order_quotation @@ -64,7 +65,7 @@ public class BizLogisticsOrderQuotation extends TenantEntity { /** * 总货件数量(商品件数总和) */ - private Long shipmentQuantity; + private BigDecimal shipmentQuantity; /** * 删除标记(0=正常,1=删除) @@ -81,4 +82,8 @@ public class BizLogisticsOrderQuotation extends TenantEntity { private Long quoteOrderId; + private String storeName; + + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java index 28f5a72..fff92e6 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java @@ -66,7 +66,7 @@ public class BizLogisticsQuote extends TenantEntity { /** * 附加费 */ - private Long surcharge; + private BigDecimal surcharge; /** * 报价生效日期 @@ -125,5 +125,11 @@ public class BizLogisticsQuote extends TenantEntity { private BigDecimal totalPrice; + private BigDecimal customsDeclarationFee; + + private BigDecimal volumeRatio; + + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java index 0828d09..bc39e7a 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java @@ -85,7 +85,7 @@ public class BizSendOrder extends TenantEntity { /** * 单箱重量 */ - private Long weightPerBox; + private BigDecimal weightPerBox; private String sku; diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java index 148fb61..db1e2c9 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java @@ -1,5 +1,6 @@ package org.asinkj.amz.domain; +import jakarta.validation.constraints.NotNull; import org.asinkj.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -56,7 +57,11 @@ public class BizShipForward extends TenantEntity { /** * 实际发货数量 */ - private BigDecimal quantitySend; + private BigDecimal quantitySend = BigDecimal.ZERO; + + + // @NotNull(message = "计划发货数量") + private BigDecimal quantityPlan; /** * 发货供应商名称 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentItem.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentItem.java index 4439b04..454cceb 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentItem.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentItem.java @@ -4,6 +4,8 @@ import org.asinkj.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -46,7 +48,7 @@ public class BizShipmentItem extends TenantEntity { /** * 发货量 */ - private Long quantityShipped; + private BigDecimal quantityShipped; /** * 收货量 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java index 3a774ce..23a480b 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java @@ -156,7 +156,7 @@ public class BizShipmentPlan extends TenantEntity { /** * 套数(系统中的申报量) */ - private Long setTotal; + private BigDecimal setTotal; /** * 渠道ID diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderBo.java index 21a1601..61b6fc4 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderBo.java @@ -94,4 +94,7 @@ public class BizLogisticsOrderBo extends BaseEntity { private String status; + private String storeName; + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderDetailBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderDetailBo.java index 0fd4993..ff90a06 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderDetailBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderDetailBo.java @@ -11,6 +11,7 @@ import jakarta.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; /** @@ -27,196 +28,205 @@ public class BizLogisticsOrderDetailBo extends BaseEntity { /** * 主键(应用层生成的全局唯一ID) */ - @NotNull(message = "主键(应用层生成的全局唯一ID)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "主键(应用层生成的全局唯一ID)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long id; /** * 关联主表ID(biz_logistics_order.id) */ - @NotNull(message = "关联主表ID(biz_logistics_order.id)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "关联主表ID(biz_logistics_order.id)不能为空", groups = {AddGroup.class, EditGroup.class}) private String orderId; /** * FBA货件编号(冗余存储,避免联表查询) */ - @NotBlank(message = "FBA货件编号(冗余存储,避免联表查询)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "FBA货件编号(冗余存储,避免联表查询)不能为空", groups = {AddGroup.class, EditGroup.class}) private String fbaShipmentId; - /** * FBA箱号(亚马逊系统中箱子的唯一标识) */ - @NotBlank(message = "FBA箱号(亚马逊系统中箱子的唯一标识)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "FBA箱号(亚马逊系统中箱子的唯一标识)不能为空", groups = {AddGroup.class, EditGroup.class}) private String fbaBoxNumber; /** * 物流商ID(冗余存储) */ - @NotNull(message = "物流商ID(冗余存储)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "物流商ID(冗余存储)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long logisticsProviderId; /** * 物流商名称(冗余存储) */ - @NotBlank(message = "物流商名称(冗余存储)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "物流商名称(冗余存储)不能为空", groups = {AddGroup.class, EditGroup.class}) private String logisticsProviderName; /** * 物流渠道(与主表一致) */ - @NotBlank(message = "物流渠道(与主表一致)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "物流渠道(与主表一致)不能为空", groups = {AddGroup.class, EditGroup.class}) private String channelName; /** * 目的地仓库(冗余存储) */ - @NotBlank(message = "目的地仓库(冗余存储)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "目的地仓库(冗余存储)不能为空", groups = {AddGroup.class, EditGroup.class}) private String destination; /** * 计划数量(该箱子预计装载的商品数量) */ - @NotNull(message = "计划数量(该箱子预计装载的商品数量)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "计划数量(该箱子预计装载的商品数量)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long plannedQuantity; /** * 实际货件数量(该箱子实际装载的商品数量) */ - @NotNull(message = "实际货件数量(该箱子实际装载的商品数量)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "实际货件数量(该箱子实际装载的商品数量)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long shipmentQuantity; /** * 物流追踪号(物流商提供的唯一包裹标识) */ - @NotBlank(message = "物流追踪号(物流商提供的唯一包裹标识)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "物流追踪号(物流商提供的唯一包裹标识)不能为空", groups = {AddGroup.class, EditGroup.class}) private String trackingNumber; /** * 供应商称重(单位:KG,由供应商提供) */ - @NotNull(message = "供应商称重(单位:KG,由供应商提供)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "供应商称重(单位:KG,由供应商提供)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long supplierWeight; /** * 物流商计重(单位:KG,物流商实际测量值) */ - @NotNull(message = "物流商计重(单位:KG,物流商实际测量值)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long logisticsWeight; + @NotNull(message = "物流商计重(单位:KG,物流商实际测量值)不能为空", groups = {AddGroup.class, EditGroup.class}) + private BigDecimal logisticsWeight; /** * 称重差异(应用层计算:物流商计重 - 供应商称重) */ - @NotNull(message = "称重差异(应用层计算:物流商计重 - 供应商称重)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "称重差异(应用层计算:物流商计重 - 供应商称重)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long weightDiff; /** * 物流单价(单位:元/KG,由合同或报价确定) */ - @NotNull(message = "物流单价(单位:元/KG,由合同或报价确定)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "物流单价(单位:元/KG,由合同或报价确定)不能为空", groups = {AddGroup.class, EditGroup.class}) private BigDecimal pricePerKg; /** * 物流计价重量(应用层根据业务规则计算) */ - @NotNull(message = "物流计价重量(应用层根据业务规则计算)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "物流计价重量(应用层根据业务规则计算)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long logisticsCalculationPrice; /** * 其他物流费用(如报关费、保险费等) */ - @NotNull(message = "其他物流费用(如报关费、保险费等)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "其他物流费用(如报关费、保险费等)不能为空", groups = {AddGroup.class, EditGroup.class}) private BigDecimal otherFee; /** * 费用合计(应用层计算:物流计价 + 其他费用) */ - @NotNull(message = "费用合计(应用层计算:物流计价 + 其他费用)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "费用合计(应用层计算:物流计价 + 其他费用)不能为空", groups = {AddGroup.class, EditGroup.class}) private BigDecimal totalFee; /** * 物流状态(pending:待发运/in_transit:运输中/delivered:已签收) */ - @NotBlank(message = "物流状态(pending:待发运/in_transit:运输中/delivered:已签收)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "物流状态(pending:待发运/in_transit:运输中/delivered:已签收)不能为空", groups = {AddGroup.class, EditGroup.class}) private String logisticsStatus; /** * 预计签收日期(物流商提供的预估日期) */ - @NotNull(message = "预计签收日期(物流商提供的预估日期)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "预计签收日期(物流商提供的预估日期)不能为空", groups = {AddGroup.class, EditGroup.class}) @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date estimatedDeliveryDate; /** * 实际签收日期(物流商回传的实际日期) */ - @NotNull(message = "实际签收日期(物流商回传的实际日期)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "实际签收日期(物流商回传的实际日期)不能为空", groups = {AddGroup.class, EditGroup.class}) @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date actualDeliveryDate; /** * 运输时效(单位:天,实际签收日期 - 发货日期) */ - @NotNull(message = "运输时效(单位:天,实际签收日期 - 发货日期)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "运输时效(单位:天,实际签收日期 - 发货日期)不能为空", groups = {AddGroup.class, EditGroup.class}) private Long timeliness; /** * 物流商确认接收时间 */ - @NotNull(message = "物流商确认接收时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "物流商确认接收时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date carrierConfirmTime; /** * 已提货时间 */ - @NotNull(message = "已提货时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "已提货时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date goodsReceiptTime; /** * 转运开始时间 */ - @NotNull(message = "转运开始时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "转运开始时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date transferStartTime; /** * 最终签收时间 */ - @NotNull(message = "最终签收时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "最终签收时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date signedTime; /** * 排仓时间 */ - @NotNull(message = "排仓时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "排仓时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date scheduleTime; /** * 船舶离港时间 */ - @NotNull(message = "船舶离港时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "船舶离港时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date vesselDepartTime; /** * 目的港到达时间 */ - @NotNull(message = "目的港到达时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "目的港到达时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date portArrivalTime; /** * 查验开始时间 */ - @NotNull(message = "查验开始时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "查验开始时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date inspectionTime; /** * 末端提取时间 */ - @NotNull(message = "末端提取时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "末端提取时间不能为空", groups = {AddGroup.class, EditGroup.class}) private Date deliveryPickupTime; /** * 根据哪个报价单生成的订单 */ - @NotNull(message = "根据哪个报价单生成的订单不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "根据哪个报价单生成的订单不能为空", groups = {AddGroup.class, EditGroup.class}) private Long quoteOrderId; + + + private BigDecimal length; + + private BigDecimal width; + + private BigDecimal height; + + private BigDecimal totalVolume; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderQuotationBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderQuotationBo.java index dcf7c2b..71ef446 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderQuotationBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsOrderQuotationBo.java @@ -82,5 +82,8 @@ public class BizLogisticsOrderQuotationBo extends BaseEntity { private String confirm; + private String storeName; + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteBo.java index 5a29794..071b737 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteBo.java @@ -118,7 +118,11 @@ public class BizLogisticsQuoteBo extends BaseEntity { private String backLogisticsType; - private Long totalPrice; + private BigDecimal totalPrice; + + + private BigDecimal customsDeclarationFee; + diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java index 92b966b..0ed1eb3 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java @@ -71,7 +71,7 @@ public class BizLogisticsQuoteMostBo extends BaseEntity { * 附加费 */ @NotNull(message = "附加费不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long surcharge; + private BigDecimal surcharge; @@ -130,6 +130,10 @@ public class BizLogisticsQuoteMostBo extends BaseEntity { private String shipmentId; private BigDecimal totalPrice; + private BigDecimal customsDeclarationFee; + + private BigDecimal volumeRatio; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderBo.java index b755ae8..da28e93 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderBo.java @@ -324,6 +324,8 @@ public class BizPurchaseOrderBo extends BaseEntity { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date deliveryTime; + private String type; + /** * 订单交付变动天数 */ diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizSendOrderBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizSendOrderBo.java index 2f68d29..007ee2d 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizSendOrderBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizSendOrderBo.java @@ -72,8 +72,7 @@ public class BizSendOrderBo extends BaseEntity { * 单箱产品数量 */ // @NotNull(message = "单箱产品数量不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long quantityPerBox; - + private BigDecimal quantityPerBox; /** @@ -92,7 +91,7 @@ public class BizSendOrderBo extends BaseEntity { * 单箱重量 */ // @NotNull(message = "单箱重量不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long weightPerBox; + private BigDecimal weightPerBox; /** * 实际采购店铺 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipForwardBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipForwardBo.java index 9c439cd..7d3d50e 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipForwardBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipForwardBo.java @@ -61,7 +61,7 @@ public class BizShipForwardBo extends BaseEntity { /** * 实际发货数量 */ - @NotNull(message = "实际发货数量不能为空", groups = {AddGroup.class, EditGroup.class}) +// @NotNull(message = "实际发货数量不能为空", groups = {AddGroup.class, EditGroup.class}) private Long quantitySend; /** @@ -141,6 +141,9 @@ public class BizShipForwardBo extends BaseEntity { @NotNull(message = "请求类型") private String type; + @NotNull(message = "计划发货数量") + private Long quantityPlan; + /** * 预计到达时间 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java index c4c4134..a5c2464 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java @@ -1,5 +1,6 @@ package org.asinkj.amz.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.alibaba.excel.annotation.write.style.ContentStyle; @@ -127,14 +128,14 @@ public class BizLogisticsOrderDetailVo implements Serializable { */ @ExcelProperty(value = "物流商计重") // @ExcelDictFormat(readConverterExp = "单=位:KG,物流商实际测量值") - private Long logisticsWeight; + private BigDecimal logisticsWeight; /** * 称重差异(应用层计算:物流商计重 - 供应商称重) */ // @ExcelProperty(value = "称重差异") // @ExcelDictFormat(readConverterExp = "应=用层计算:物流商计重,-=,供=应商称重") - private Long weightDiff; + private BigDecimal weightDiff; /** * 物流单价(单位:元/KG,由合同或报价确定) @@ -143,6 +144,15 @@ public class BizLogisticsOrderDetailVo implements Serializable { // @ExcelDictFormat(readConverterExp = "单=位:元/KG,由合同或报价确定") private Long pricePerKg; + + private BigDecimal length; + + private BigDecimal width; + + private BigDecimal height; + + private BigDecimal totalVolume; + /** * 物流计价重量(应用层根据业务规则计算) */ diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderQuotationVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderQuotationVo.java index 3d6513b..1ac6df7 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderQuotationVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderQuotationVo.java @@ -11,7 +11,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -99,6 +99,11 @@ public class BizLogisticsOrderQuotationVo implements Serializable { private String confirm; + private BizLogisticsQuoteVo quote; + + private String storeName; + + private List shipmentItems; } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java index 04341e5..d20c328 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java @@ -1,10 +1,13 @@ package org.asinkj.amz.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.asinkj.amz.domain.BizLogisticsOrder; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import org.asinkj.amz.domain.BizShipmentItem; +import org.asinkj.amz.domain.BizShipmentPlan; import org.asinkj.common.excel.annotation.ExcelDictFormat; import org.asinkj.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; @@ -14,7 +17,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -112,6 +115,32 @@ public class BizLogisticsOrderVo implements Serializable { private String status; + private BizLogisticsQuoteVo quote; + + + private BizShipmentPlanVo shipmentPlan; + + private List shipmentItems; + + private Long quoteOrderId; + + + private String storeName; + + private BigDecimal logisticsWeight; + + private BigDecimal settlementPrice; + + + private BigDecimal totalVolume; + + + private BigDecimal volumeWeight; + + + + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java index 08c89d1..23b5959 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java @@ -139,5 +139,11 @@ public class BizLogisticsQuoteVo implements Serializable { private BigDecimal totalPrice; + private BigDecimal customsDeclarationFee; + private BigDecimal volumeRatio; + + + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java index 0e8fa46..bc5ed13 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java @@ -112,6 +112,9 @@ public class BizOrderOutItemVo implements Serializable { @ExcelProperty(value = "转发数量") private BigDecimal quantityForward = BigDecimal.ZERO; + @ExcelProperty(value = "转发中数量") + private BigDecimal quantityForwardOn = BigDecimal.ZERO; + @ExcelProperty(value = "可转发数量") private BigDecimal quantityCanForward = BigDecimal.ZERO; diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java index 36790ae..0e25eb6 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java @@ -56,6 +56,8 @@ public class BizPurchaseOutOrderVo implements Serializable { @ExcelProperty(value = "供应商名称") private String supplierName; + private Long supplierId; + /** * 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss) */ diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java index 0f73a10..4616610 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java @@ -97,7 +97,7 @@ public class BizSendOrderVo implements Serializable { * 单箱重量 */ @ExcelProperty(value = "单箱重量") - private Long weightPerBox; + private BigDecimal weightPerBox; /** * 实际采购店铺 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipForwardVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipForwardVo.java index dbf563a..e24a5fe 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipForwardVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipForwardVo.java @@ -3,6 +3,7 @@ package org.asinkj.amz.domain.vo; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotNull; import org.asinkj.amz.domain.BizShipForward; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -70,6 +71,10 @@ public class BizShipForwardVo implements Serializable { @ExcelProperty(value = "实际发货数量") private Long quantitySend; + + @NotNull(message = "计划发货数量") + private Long quantityPlan; + /** * 发货供应商名称 */ diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java index 39c8263..593f9c3 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java @@ -60,21 +60,21 @@ public class BizShipmentPlanOrderExportVo implements Serializable { private String asin; @ExcelProperty(value = "申报量") - private Long quantityShipped; + private BigDecimal quantityShipped; @ExcelProperty(value = "物流中心编码") private String destination; @ExcelProperty(value = "供应商称重") - private Long vendorWeight; + private BigDecimal vendorWeight; @ExcelProperty(value = "物流商称重") - private Long logisticWeight; + private BigDecimal logisticWeight; @ExcelProperty(value = "称重差异") - private Long weightDiff; + private BigDecimal weightDiff; @ExcelProperty(value = "物流商名称") diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java index b996878..26c966c 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java @@ -180,17 +180,23 @@ public class BizShipmentPlanOrderVo implements Serializable { * 供应商称重(单位:KG,物流商实际测量值) */ @ExcelProperty(value = "供应商称重") - private Long vendorWeight; + private BigDecimal vendorWeight; @ExcelProperty(value = "物流商称重") - private Long logisticWeight; + private BigDecimal logisticWeight; + + + private BigDecimal totalVolume; + + + /** * 称重差异(应用层计算:物流商计重 - 供应商称重) */ - private Long weightDiff; + private BigDecimal weightDiff; /** * 套数(系统中的申报量) @@ -237,7 +243,14 @@ public class BizShipmentPlanOrderVo implements Serializable { @ExcelProperty(value = "发货数量") - private Long quantityShipped; + private BigDecimal quantityShipped; + + + @ExcelProperty(value = "关联的数量") + private BigDecimal quantityRelated; + + @ExcelProperty(value = "剩余的数量") + private BigDecimal quantityRemain; /** * 供应商发货单id diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java index 16f1544..6a576da 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java @@ -182,7 +182,7 @@ public class BizShipmentPlanVo implements Serializable { * 发货数量 */ @ExcelProperty(value = "发货数量") - private Long quantityShipped; + private BigDecimal quantityShipped; /** * 箱子尺寸 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizPurchaseOutOrderMapper.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizPurchaseOutOrderMapper.java index 6d172af..d151cec 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizPurchaseOutOrderMapper.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizPurchaseOutOrderMapper.java @@ -1,6 +1,12 @@ package org.asinkj.amz.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.asinkj.amz.domain.BizInquiryRequest; import org.asinkj.amz.domain.BizPurchaseOutOrder; +import org.asinkj.amz.domain.vo.BizInquiryRequestVo; import org.asinkj.amz.domain.vo.BizPurchaseOutOrderVo; import org.asinkj.common.mybatis.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Mapper; @@ -13,4 +19,10 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BizPurchaseOutOrderMapper extends BaseMapperPlus { + + Page selectCustomPage( + @Param("page") Page page, + @Param(Constants.WRAPPER) Wrapper wrapper + ); + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentItemService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentItemService.java index 02392cc..f742ce7 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentItemService.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentItemService.java @@ -8,6 +8,7 @@ import org.asinkj.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; +import java.util.Set; /** * 货品明细Service接口 @@ -69,4 +70,6 @@ public interface IBizShipmentItemService { List queryByPlanId(String shipmentId); + + List queryByfbaShipmentIds(Set shipmentIds); } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java index 587a827..9df2013 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java @@ -15,6 +15,7 @@ import java.io.InputStream; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Set; /** * 货件计划Service接口 @@ -101,4 +102,6 @@ public interface IBizShipmentPlanService { void updateQuoteIdData(String shipmentId, String logicQuoteId); void queryPageListOrderExport(BizShipmentPlanBo bo, HttpServletResponse response); + + List queryByfbaShipmentIds(Set shipmentIds); } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java index a58f011..fb2be23 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java @@ -134,9 +134,9 @@ public class BizInquiryRequestServiceImpl implements IBizInquiryRequestService { // 4. 组装发货单数据到结果对象 for (BizInquiryRequestVo record : result.getRecords()) { - if ("weight".equals(record.getType())) { +// if ("weight".equals(record.getType())) { record.setSendOrders(ordersMap.getOrDefault(record.getShipmentId(), Collections.emptyList())); - } +// } } } return TableDataInfo.build(result); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java index 5b0dea0..8e11612 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java @@ -1,9 +1,12 @@ package org.asinkj.amz.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; import org.asinkj.amz.domain.*; +import org.asinkj.amz.domain.bo.BizLogisticsQuoteBo; import org.asinkj.amz.domain.vo.BizLogisticsQuoteVo; +import org.asinkj.amz.domain.vo.BizShipmentItemVo; import org.asinkj.amz.domain.vo.BizShipmentPlanVo; import org.asinkj.amz.mapper.BizLogisticsOrderDetailMapper; import org.asinkj.amz.mapper.BizLogisticsOrderMapper; @@ -29,6 +32,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 物流订单确认Service业务层处理 @@ -89,6 +94,26 @@ public class BizLogisticsOrderQuotationServiceImpl implements IBizLogisticsOrder public TableDataInfo queryPageList(BizLogisticsOrderQuotationBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Set quoteOrderIds = result.getRecords().stream().map(BizLogisticsOrderQuotationVo::getQuoteOrderId).collect(Collectors.toSet()); + Set shipmentIds = result.getRecords().stream().map(BizLogisticsOrderQuotationVo::getFbaShipmentId).collect(Collectors.toSet()); + + + List shipmentPlanItems= bizShipmentItemService.queryByfbaShipmentIds(shipmentIds); + Map> shipmentPlanItemMap = shipmentPlanItems.stream().collect(Collectors.groupingBy(BizShipmentItem::getShipmentId)); + Map quoteMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(quoteOrderIds)){ + List bizLogisticsQuotes = bizLogisticsQuoteService.queryQuoteWithQuoteId(quoteOrderIds); + List convert = MapstructUtils.convert(bizLogisticsQuotes, BizLogisticsQuoteVo.class); + quoteMap = convert.stream().collect(Collectors.toMap(BizLogisticsQuoteVo::getId, Function.identity())); + + } + + for (BizLogisticsOrderQuotationVo record : result.getRecords()) { + record.setQuote(quoteMap.get(record.getQuoteOrderId())); + + List bizShipmentItems = shipmentPlanItemMap.get(record.getFbaShipmentId()); + record.setShipmentItems(MapstructUtils.convert(bizShipmentItems, BizShipmentItemVo.class)); + } return TableDataInfo.build(result); } @@ -206,7 +231,7 @@ public class BizLogisticsOrderQuotationServiceImpl implements IBizLogisticsOrder List trackingList = bizShipmentTrackingService.queryByPlanId(planVo.getShipmentId()); List itemList = bizShipmentItemService.queryByPlanId(planVo.getShipmentId()); - long sum = itemList.stream().filter(item -> item.getQuantityShipped() != null).mapToLong(BizShipmentItem::getQuantityShipped).sum(); + BigDecimal sum = itemList.stream().filter(item -> item.getQuantityShipped() != null).map(BizShipmentItem::getQuantityShipped).reduce(BigDecimal.ZERO,BigDecimal::add); BizLogisticsOrder bizLogisticsOrder = new BizLogisticsOrder(); @@ -225,6 +250,9 @@ public class BizLogisticsOrderQuotationServiceImpl implements IBizLogisticsOrder // 目的地 bizLogisticsOrder.setDestination(quoteVo.getDestination()); + bizLogisticsOrder.setStoreName(bo.getStoreName()); + + //总箱子数量 bizLogisticsOrder.setBoxQuantity((long) trackingList.size()); //总货件数量 @@ -244,9 +272,9 @@ public class BizLogisticsOrderQuotationServiceImpl implements IBizLogisticsOrder detail.setDestination(quoteVo.getDestination()); detail.setTimeliness(quoteVo.getLeadTime()); detail.setEstimatedDeliveryDate(DateUtil.offsetDay(new Date(), Math.toIntExact(quoteVo.getLeadTime()))); - detail.setPricePerKg(quoteVo.getPrice()); +// detail.setPricePerKg(quoteVo.getPrice()); detail.setPlannedQuantity(bizShipmentTracking.getTotal()); - detail.setTotalPrice(quoteVo.getTotalPrice()); +// detail.setTotalPrice(quoteVo.getTotalPrice()); detail.setCarrierConfirmTime(DateUtil.date()); BigDecimal lb = new BigDecimal(bizShipmentTracking.getWeight()); @@ -258,7 +286,7 @@ public class BizLogisticsOrderQuotationServiceImpl implements IBizLogisticsOrder kgValue = kgValue.setScale(2, RoundingMode.HALF_UP); - detail.setSupplierWeight(kgValue.longValue()); + detail.setSupplierWeight(kgValue); // detail.setLogisticsStatus("IN_WAREHOUSE"); detail.setLogisticsStatus("BOOKED"); detail.setQuoteOrderId(bo.getQuoteOrderId()); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java index c9d0723..9a48741 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java @@ -1,13 +1,14 @@ package org.asinkj.amz.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.asinkj.amz.domain.*; import org.asinkj.amz.domain.bo.BizLogisticsCreateOrderBo; -import org.asinkj.amz.domain.vo.BizLogisticsQuoteVo; -import org.asinkj.amz.domain.vo.BizShipmentPlanVo; +import org.asinkj.amz.domain.vo.*; import org.asinkj.amz.mapper.BizLogisticsOrderDetailMapper; import org.asinkj.amz.mapper.BizLogisticsOrderQuotationMapper; +import org.asinkj.amz.mapper.SysAmazonStoreMapper; import org.asinkj.amz.service.*; import org.asinkj.common.core.exception.ServiceException; import org.asinkj.common.core.utils.MapstructUtils; @@ -23,12 +24,13 @@ import org.asinkj.system.api.RemoteUserService; import org.asinkj.utils.SerialNoGenerator; import org.springframework.stereotype.Service; import org.asinkj.amz.domain.bo.BizLogisticsOrderBo; -import org.asinkj.amz.domain.vo.BizLogisticsOrderVo; import org.asinkj.amz.mapper.BizLogisticsOrderMapper; import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -49,6 +51,10 @@ public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService { @Resource private IBizLogisticsQuoteService bizLogisticsQuoteService; + @Resource + private BizLogisticsOrderDetailMapper detailMapper; + ; + @Resource private IBizShipmentPlanService bizShipmentPlanService; @@ -64,6 +70,10 @@ public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService { @Resource private BizLogisticsOrderMapper bizOrderMapper; + @Resource + private SysAmazonStoreMapper sysAmazonStoreMapper; + ; + @Resource private BizLogisticsOrderQuotationMapper bizLogisticsOrderQuotationMapper; @@ -93,6 +103,60 @@ public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService { public TableDataInfo queryPageList(BizLogisticsOrderBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List records = result.getRecords(); + Set shipmentIds = records.stream().map(BizLogisticsOrderVo::getFbaShipmentId).collect(Collectors.toSet()); + if (CollectionUtil.isEmpty(shipmentIds)) { + return TableDataInfo.build(result); + } + Set orderIds = records.stream().map(BizLogisticsOrderVo::getOrderId).collect(Collectors.toSet()); + + LambdaQueryWrapper orderDetailLambdaQueryWrapper = new LambdaQueryWrapper<>(); + orderDetailLambdaQueryWrapper.in(CollectionUtil.isNotEmpty(orderIds), BizLogisticsOrderDetail::getOrderId, orderIds); + List bizLogisticsOrderDetails = detailMapper.selectList(orderDetailLambdaQueryWrapper); + Map> detailMap = bizLogisticsOrderDetails.stream().collect(Collectors.groupingBy(BizLogisticsOrderDetail::getOrderId)); + + List shipmentPlans = bizShipmentPlanService.queryByfbaShipmentIds(shipmentIds); + Map shipmentPlanMap = shipmentPlans.stream().collect(Collectors.toMap(BizShipmentPlan::getShipmentId, Function.identity())); + List shipmentPlanItems = bizShipmentItemService.queryByfbaShipmentIds(shipmentIds); + Map> shipmentPlanItemMap = shipmentPlanItems.stream().collect(Collectors.groupingBy(BizShipmentItem::getShipmentId)); + Set quoteOrderIds = records.stream().map(BizLogisticsOrderVo::getQuoteOrderId).collect(Collectors.toSet()); + Map quoteMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(quoteOrderIds)) { + List bizLogisticsQuotes = bizLogisticsQuoteService.queryQuoteWithQuoteId(quoteOrderIds); + List convert = MapstructUtils.convert(bizLogisticsQuotes, BizLogisticsQuoteVo.class); + quoteMap = convert.stream().collect(Collectors.toMap(BizLogisticsQuoteVo::getId, Function.identity())); + + } + for (BizLogisticsOrderVo record : records) { + BizShipmentPlan bizShipmentPlan = shipmentPlanMap.get(record.getFbaShipmentId()); + if (bizShipmentPlan != null) { + record.setShipmentPlan(MapstructUtils.convert(bizShipmentPlan, BizShipmentPlanVo.class)); + } + List bizShipmentItems = shipmentPlanItemMap.get(record.getFbaShipmentId()); + record.setShipmentItems(MapstructUtils.convert(bizShipmentItems, BizShipmentItemVo.class)); + BizLogisticsQuoteVo bizLogisticsQuoteVo = quoteMap.get(record.getQuoteOrderId()); + if (bizLogisticsQuoteVo != null) { + record.setQuote(bizLogisticsQuoteVo); + } + List bizLogisticsOrderDetails1 = detailMap.get(record.getOrderId()); + BigDecimal collect = bizLogisticsOrderDetails1.stream().filter(item -> item.getLogisticsWeight() != null).map(BizLogisticsOrderDetail::getLogisticsWeight).reduce(BigDecimal.ZERO, BigDecimal::add); + + record.setLogisticsWeight(collect); + + BigDecimal totalVolume = bizLogisticsOrderDetails1.stream().filter(item -> item.getTotalVolume() != null).map(BizLogisticsOrderDetail::getTotalVolume).reduce(BigDecimal.ZERO, BigDecimal::add); + + record.setTotalVolume(totalVolume); + BigDecimal divide = record.getTotalVolume().divide(record.getQuote().getVolumeRatio(),3, RoundingMode.HALF_UP); + record.setVolumeWeight(divide); + if ("weight".equals(record.getQuote().getType())) { + record.setSettlementPrice(record.getQuote().getPrice().multiply(divide.max(record.getLogisticsWeight())).add(record.getQuote().getSurcharge()).add(record.getQuote().getCustomsDeclarationFee())); + } else if ("total".equals(record.getQuote().getType())) { + record.setSettlementPrice(record.getQuote().getPrice().add(record.getQuote().getSurcharge()).add(record.getQuote().getCustomsDeclarationFee())); + + } else if ("volume".equals(record.getQuote().getType())) { + record.setSettlementPrice(record.getQuote().getPrice().multiply(record.getTotalVolume()).multiply(new BigDecimal("0.000001")).add(record.getQuote().getSurcharge()).add(record.getQuote().getCustomsDeclarationFee())); + } + } return TableDataInfo.build(result); } @@ -227,14 +291,17 @@ public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService { throw new ServiceException("订单已存在"); } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysAmazonStore::getSid, planVo.getSid()); + SysAmazonStore sysAmazonStore = sysAmazonStoreMapper.selectOne(queryWrapper); List trackingList = bizShipmentTrackingService.queryByPlanId(planVo.getShipmentId()); List itemList = bizShipmentItemService.queryByPlanId(planVo.getShipmentId()); - long sum = itemList.stream().filter(item -> item.getQuantityShipped() != null).mapToLong(BizShipmentItem::getQuantityShipped).sum(); + BigDecimal sum = itemList.stream().filter(item -> item.getQuantityShipped() != null).map(BizShipmentItem::getQuantityShipped).reduce(BigDecimal.ZERO, BigDecimal::add); - BizLogisticsOrderQuotation bizLogisticsOrderQuotation = new BizLogisticsOrderQuotation(); + BizLogisticsOrderQuotation bizLogisticsOrderQuotation = new BizLogisticsOrderQuotation(); bizLogisticsOrderQuotation.setFbaShipmentId(fbaShipmentId); //订单编号 @@ -249,6 +316,9 @@ public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService { bizLogisticsOrderQuotation.setChannelName(quoteVo.getChannelName()); // 目的地 bizLogisticsOrderQuotation.setDestination(quoteVo.getDestination()); + if (sysAmazonStore != null) { + bizLogisticsOrderQuotation.setStoreName(sysAmazonStore.getStoreName()); + } //总箱子数量 bizLogisticsOrderQuotation.setBoxQuantity((long) trackingList.size()); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java index 2ff08e2..aba41bc 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java @@ -259,11 +259,21 @@ public class BizLogisticsQuoteServiceImpl implements IBizLogisticsQuoteService { bizLogisticsQuote.setIsSubmitted(bo.getIsSubmitted()); bizLogisticsQuote.setChannelType(bo.getChannelType()); bizLogisticsQuote.setChannelId(bo.getChannelId()); + bizLogisticsQuote.setVolumeRatio(bo.getVolumeRatio()); + bizLogisticsQuote.setCustomsDeclarationFee(bo.getCustomsDeclarationFee()); + bizLogisticsQuote.setIsDdp(bo.getIsDdp()); bizLogisticsQuote.setRemark(bo.getRemark()); - bizLogisticsQuote.setUnit(bo.getUnit()); bizLogisticsQuote.setInquiryId(bo.getId()); + bizLogisticsQuote.setType(bo.getType()); + if ("weight".equals(bo.getType())) { + bizLogisticsQuote.setUnit("元/KG"); + } else if ("volume".equals(bo.getType())) { + bizLogisticsQuote.setUnit("元/方"); + } else if ("total".equals(bo.getType())) { + bizLogisticsQuote.setUnit("元"); + } bizLogisticsQuote.setShipmentId(bo.getShipmentId()); bizLogisticsQuote.setTotalPrice(bo.getTotalPrice()); bizLogisticsQuotes.add(bizLogisticsQuote); @@ -380,7 +390,7 @@ public class BizLogisticsQuoteServiceImpl implements IBizLogisticsQuoteService { if (StringUtils.isNotBlank(destination)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BizLogisticsQuote::getDestination, destination); - queryWrapper.and(wp -> wp.eq(BizLogisticsQuote::getType, "general").or().eq(BizLogisticsQuote::getType, "weight").eq(BizLogisticsQuote::getShipmentId, shipmentId)); +// queryWrapper.and(wp -> wp.eq(BizLogisticsQuote::getType, "general").or().eq(BizLogisticsQuote::getType, "weight").eq(BizLogisticsQuote::getShipmentId, shipmentId)); queryWrapper.eq(BizLogisticsQuote::getQuoteDate, date); return TableDataInfo.build(baseMapper.selectVoList(queryWrapper)); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java index 25d5548..822544d 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java @@ -227,6 +227,8 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService { lqw.eq(StringUtils.isNotBlank(bo.getPayment()), BizPurchaseOrder::getPayment, bo.getPayment()); lqw.eq(bo.getAuditorUid() != null, BizPurchaseOrder::getAuditorUid, bo.getAuditorUid()); lqw.eq(bo.getAuditorTime() != null, BizPurchaseOrder::getAuditorTime, bo.getAuditorTime()); + lqw.eq(StringUtils.isNotBlank(bo.getType()), BizPurchaseOrder::getType, bo.getType()); + lqw.eq(bo.getLastUid() != null, BizPurchaseOrder::getLastUid, bo.getLastUid()); lqw.eq(bo.getLastTime() != null, BizPurchaseOrder::getLastTime, bo.getLastTime()); lqw.eq(StringUtils.isNotBlank(bo.getReason()), BizPurchaseOrder::getReason, bo.getReason()); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java index a181d97..a30a27c 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java @@ -88,7 +88,7 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi @Override public TableDataInfo queryPageList(BizPurchaseOutOrderBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectCustomPage(pageQuery.build(), lqw); List records = result.getRecords(); if (result.getTotal() == 0) { @@ -161,10 +161,13 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi if (CollectionUtil.isNotEmpty(bizShipForwards2)) { BigDecimal reduce = bizShipForwards2.stream().filter(c -> "completed".equals(c.getFwdStatus())).map(BizShipForward::getQuantitySend).reduce(BigDecimal.ZERO, BigDecimal::add); item.setQuantityForward(reduce); + + BigDecimal reduceOn = bizShipForwards2.stream().filter(c -> !"completed".equals(c.getFwdStatus())).map(BizShipForward::getQuantityPlan).reduce(BigDecimal.ZERO, BigDecimal::add); + item.setQuantityForwardOn(reduceOn); item.setForwards(bizShipForwards2); } - item.setQuantityCanForward(item.getQuantityReal().subtract(item.getQuantityForward())); + item.setQuantityCanForward(item.getQuantityReal().subtract(item.getQuantityForwardOn().add(item.getQuantityForward()))); if (item.getSupplierName().equals(record.getSupplierName())) { item.setForwardType("self"); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java index 319511a..6989eec 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java @@ -183,7 +183,9 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService { for (BizShipmentPlan bizShipmentPlan : bizShipmentPlans) { List bizShipmentItems1 = shipmentItemsMap.get(bizShipmentPlan.getShipmentId()); if (CollectionUtil.isNotEmpty(bizShipmentItems1)) { - long sum = bizShipmentItems1.stream().mapToLong(BizShipmentItem::getQuantityShipped).sum(); +// long sum = bizShipmentItems1.stream().mapToLong(BizShipmentItem::getQuantityShipped).sum(); + BigDecimal sum = bizShipmentItems1.stream().map(BizShipmentItem::getQuantityShipped).reduce(BigDecimal.ZERO, BigDecimal::add); + bizShipmentPlan.setSetTotal(sum); } } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java index 4fe65f9..34eaa17 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java @@ -163,12 +163,12 @@ public class BizShipForwardServiceImpl implements IBizShipForwardService { */ private void validEntityBeforeSave(BizShipForward entity) { //TODO 做一些数据校验,如唯一约束 - if (StringUtils.isNotEmpty(entity.getInOrderSn())&&StringUtils.isNotEmpty(entity.getInSupplierName())){ + if (StringUtils.isNotEmpty(entity.getInOrderSn()) && StringUtils.isNotEmpty(entity.getInSupplierName())) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(BizPurchaseOrder::getOrderSn,entity.getInOrderSn()) - .eq(BizPurchaseOrder::getSupplierName,entity.getInSupplierName()); + lambdaQueryWrapper.eq(BizPurchaseOrder::getOrderSn, entity.getInOrderSn()) + .eq(BizPurchaseOrder::getSupplierName, entity.getInSupplierName()); List purchaseOrders = bizPurchaseOrderMapper.selectList(lambdaQueryWrapper); - if (CollectionUtil.isEmpty(purchaseOrders)){ + if (CollectionUtil.isEmpty(purchaseOrders)) { throw new ServiceException("采购单不存在或不属于该收货供应商"); } } @@ -197,6 +197,9 @@ public class BizShipForwardServiceImpl implements IBizShipForwardService { updateWrapper.set(ObjectUtil.isNotEmpty(bo.getExpDeliveryDate()), BizShipForward::getExpDeliveryDate, bo.getExpDeliveryDate()); updateWrapper.set(ObjectUtil.isNotEmpty(bo.getBoxNum()), BizShipForward::getBoxNum, bo.getBoxNum()); updateWrapper.set(ObjectUtil.isNotEmpty(bo.getSendTime()), BizShipForward::getSendTime, bo.getSendTime()); + updateWrapper.set(ObjectUtil.isNotEmpty(bo.getTotalPrice()), BizShipForward::getTotalPrice, bo.getTotalPrice()); + + updateWrapper.set(ObjectUtil.isNotEmpty(bo.getQuantitySend()), BizShipForward::getQuantitySend, bo.getQuantitySend()); baseMapper.update(updateWrapper); } } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentItemServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentItemServiceImpl.java index 4bb6b8a..d5eafde 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentItemServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentItemServiceImpl.java @@ -1,5 +1,6 @@ package org.asinkj.amz.service.impl; +import cn.hutool.core.collection.CollectionUtil; import org.asinkj.common.core.utils.MapstructUtils; import org.asinkj.common.core.utils.StringUtils; import org.asinkj.common.mybatis.core.page.TableDataInfo; @@ -18,6 +19,7 @@ import org.asinkj.amz.service.IBizShipmentItemService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.Set; /** * 货品明细Service业务层处理 @@ -38,7 +40,7 @@ public class BizShipmentItemServiceImpl implements IBizShipmentItemService { * @return 货品明细 */ @Override - public BizShipmentItemVo queryById(Long id){ + public BizShipmentItemVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -116,7 +118,7 @@ public class BizShipmentItemServiceImpl implements IBizShipmentItemService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(BizShipmentItem entity){ + private void validEntityBeforeSave(BizShipmentItem entity) { //TODO 做一些数据校验,如唯一约束 } @@ -129,7 +131,7 @@ public class BizShipmentItemServiceImpl implements IBizShipmentItemService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; @@ -139,7 +141,16 @@ public class BizShipmentItemServiceImpl implements IBizShipmentItemService { public List queryByPlanId(String shipmentId) { if (StringUtils.isNotBlank(shipmentId)) { return baseMapper.selectList(Wrappers.lambdaQuery(BizShipmentItem.class) - .eq(BizShipmentItem::getShipmentId, shipmentId)); + .eq(BizShipmentItem::getShipmentId, shipmentId)); + } + return List.of(); + } + + @Override + public List queryByfbaShipmentIds(Set shipmentIds) { + if (CollectionUtil.isNotEmpty(shipmentIds)) { + return baseMapper.selectList(Wrappers.lambdaQuery(BizShipmentItem.class) + .in(BizShipmentItem::getShipmentId, shipmentIds)); } return List.of(); } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java index d88b462..a45b329 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java @@ -177,7 +177,7 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { Long count = collect.get(bizShipmentPlanVo.getShipmentId()); // bizShipmentPlanVo.setBoxQuantity(count); List bizShipmentItems1 = collect1.get(bizShipmentPlanVo.getShipmentId()); - long sum = bizShipmentItems1.stream().mapToLong(BizShipmentItem::getQuantityShipped).sum(); + BigDecimal sum = bizShipmentItems1.stream().map(BizShipmentItem::getQuantityShipped).reduce(BigDecimal.ZERO,BigDecimal::add); bizShipmentPlanVo.setQuantityShipped(sum); bizShipmentPlanVo.setItemVoList(bizShipmentItems1); @@ -457,7 +457,7 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { List bizShipmentItems1 = collect1.get(bizShipmentPlanVo.getShipmentId()); bizShipmentPlanVo.setItemVoList(bizShipmentItems1); - long sum = bizShipmentItems1.stream().mapToLong(BizShipmentItem::getQuantityShipped).sum(); + BigDecimal sum = bizShipmentItems1.stream().map(BizShipmentItem::getQuantityShipped).reduce(BigDecimal.ZERO,BigDecimal::add); bizShipmentPlanVo.setQuantityShipped(sum); @@ -468,15 +468,27 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { List bizSendOrders = resultOrderMap.get(bizShipmentPlanVo.getId()); bizShipmentPlanVo.setSendOrders(bizSendOrders); + BigDecimal reduce = bizSendOrders.stream().filter(bizSendOrder -> ObjectUtil.isNotEmpty(bizSendOrder.getWeightPerBox())).map(BizSendOrder::getWeightPerBox).reduce(BigDecimal.ZERO, BigDecimal::add); + bizShipmentPlanVo.setVendorWeight(reduce); + + BigDecimal quantityRelated = bizSendOrders.stream().filter(bizSendOrder -> ObjectUtil.isNotEmpty(bizSendOrder.getQuantitySend())).map(BizSendOrder::getQuantitySend).reduce(BigDecimal.ZERO, BigDecimal::add); + bizShipmentPlanVo.setQuantityRelated(quantityRelated); + bizShipmentPlanVo.setQuantityRemain(bizShipmentPlanVo.getQuantityShipped().subtract(quantityRelated)); bizShipmentPlanVo.setDetailList(bizLogisticsOrderDetails1); if (CollectionUtil.isNotEmpty(bizLogisticsOrderDetails1)) { BizLogisticsOrderDetail bizLogisticsOrderDetail = bizLogisticsOrderDetails1.get(0); bizShipmentPlanVo.setTrackingNumber(bizLogisticsOrderDetail.getTrackingNumber()); - long sum2 = bizLogisticsOrderDetails1.stream().filter(item -> item.getLogisticsWeight() != null).mapToLong(BizLogisticsOrderDetail::getLogisticsWeight).sum(); - bizShipmentPlanVo.setLogisticWeight(sum2); + BigDecimal collect2 = bizLogisticsOrderDetails1.stream().filter(item -> item.getLogisticsWeight() != null).map(BizLogisticsOrderDetail::getLogisticsWeight).reduce(BigDecimal.ZERO, BigDecimal::add); - long l = Optional.ofNullable(bizShipmentPlanVo.getLogisticWeight()).orElse(0L) - Optional.ofNullable(bizShipmentPlanVo.getVendorWeight()).orElse(0L); + + bizShipmentPlanVo.setLogisticWeight(collect2); + + BigDecimal totalVolume = bizLogisticsOrderDetails1.stream().filter(item -> item.getTotalVolume() != null).map(BizLogisticsOrderDetail::getTotalVolume).reduce(BigDecimal.ZERO, BigDecimal::add); + bizShipmentPlanVo.setTotalVolume(totalVolume); + + + BigDecimal l = Optional.ofNullable(bizShipmentPlanVo.getLogisticWeight()).orElse(BigDecimal.ZERO).subtract(Optional.ofNullable(bizShipmentPlanVo.getVendorWeight()).orElse(BigDecimal.ZERO)); bizShipmentPlanVo.setWeightDiff(l); } bizShipmentPlanVo.setBoxQuantity(count); @@ -484,7 +496,16 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { if (bizLogisticsOrder != null) { BizLogisticsQuote bizLogisticsQuote = quoteMap.get(bizLogisticsOrder.getQuoteOrderId()); bizShipmentPlanVo.setQuote(bizLogisticsQuote); - bizShipmentPlanVo.setAmountPrice(bizLogisticsQuote.getPrice().multiply(new BigDecimal(Optional.ofNullable(bizShipmentPlanVo.getLogisticWeight()).orElse(0L))).add(BigDecimal.valueOf(bizLogisticsQuote.getSurcharge()))); + + if ("weight".equals(bizShipmentPlanVo.getQuote().getType())) { + bizShipmentPlanVo.setAmountPrice(bizLogisticsQuote.getPrice().multiply(bizShipmentPlanVo.getLogisticWeight()).add(bizLogisticsQuote.getSurcharge()).add(bizLogisticsQuote.getCustomsDeclarationFee())); + } else if ("total".equals(bizLogisticsQuote.getType())) { + bizShipmentPlanVo.setAmountPrice(bizLogisticsQuote.getPrice().add(bizLogisticsQuote.getSurcharge()).add(bizLogisticsQuote.getCustomsDeclarationFee())); + + } else if ("volume".equals(bizLogisticsQuote.getType())) { + bizShipmentPlanVo.setAmountPrice(bizShipmentPlanVo.getQuote().getPrice().multiply(bizShipmentPlanVo.getTotalVolume()).multiply(new BigDecimal("0.000001")).add(bizLogisticsQuote.getSurcharge()).add(bizLogisticsQuote.getCustomsDeclarationFee())); + } +// bizShipmentPlanVo.setAmountPrice(bizLogisticsQuote.getPrice().multiply(bizShipmentPlanVo.getLogisticWeight()).add(bizLogisticsQuote.getSurcharge())); } if (CollectionUtil.isNotEmpty(sids)) { @@ -664,7 +685,7 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { exportVo.setPrice(row.getQuote().getPrice()); exportVo.setLeadTime(BigDecimal.valueOf(row.getQuote().getLeadTime())); exportVo.setTotalPrice(row.getQuote().getTotalPrice()); - exportVo.setSurcharge(BigDecimal.valueOf(row.getQuote().getSurcharge())); + exportVo.setSurcharge(row.getQuote().getSurcharge()); } exportVo.setProductName(sendOrder.getProductName()); exportVo.setSku(sendOrder.getSku()); @@ -687,6 +708,14 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { ExcelUtil.exportExcel(exportVos, "导出", BizShipmentPlanOrderExportVo.class, response); } + @Override + public List queryByfbaShipmentIds(Set shipmentIds) { + LambdaQueryWrapper eq = new LambdaQueryWrapper() + .in(BizShipmentPlan::getShipmentId, shipmentIds); + + return baseMapper.selectList(eq); + } + private void checkData(List bizShipmentPlanFileDataList) { boolean isAllSame = bizShipmentPlanFileDataList.stream() .map(BizShipmentPlanFileData::getShipmentId) diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java index 26138eb..a63754b 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java @@ -46,6 +46,7 @@ import org.springframework.web.context.request.RequestContextHolder; import javax.annotation.Resource; import java.io.IOException; +import java.math.BigDecimal; import java.time.Duration; import java.util.*; import java.util.function.Function; @@ -1073,7 +1074,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService { bizShipmentPlan.setDestination(shipment.getWarehouseId()); bizShipmentPlan.setItemCount(Long.valueOf(shipment.getItemCount())); bizShipmentPlan.setStaShipmentDate(shipment.getShipingTime()); - bizShipmentPlan.setSetTotal(Long.valueOf(shipment.getItemCount())); + bizShipmentPlan.setSetTotal(new BigDecimal(shipment.getItemCount())); FbaShipmentApiResponse.Address shipFromAddress = new FbaShipmentApiResponse.Address(); shipFromAddress.setAddressLine1(shipment.getSendAddress().getAddressLine1()); shipFromAddress.setAddressLine2(shipment.getSendAddress().getAddressLine2()); @@ -1109,7 +1110,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService { bizShipmentItem.setSku(item.getSku()); bizShipmentItem.setProductName(item.getProductName()); bizShipmentItem.setAsin(item.getAsin()); - bizShipmentItem.setQuantityShipped(Long.valueOf(item.getQuantity())); + bizShipmentItem.setQuantityShipped(new BigDecimal(item.getQuantity())); bizShipmentItems.add(bizShipmentItem); } diff --git a/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/BizPurchaseOutOrderMapper.xml b/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/BizPurchaseOutOrderMapper.xml index 1d28f0d..190bfa2 100644 --- a/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/BizPurchaseOutOrderMapper.xml +++ b/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/BizPurchaseOutOrderMapper.xml @@ -4,4 +4,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +