Commit 10027929 by yinyong

订单平台费、销售额、尾程费更改

parent 10f8b6e2
...@@ -217,7 +217,14 @@ public class OrderSyncJob extends PointJob { ...@@ -217,7 +217,14 @@ public class OrderSyncJob extends PointJob {
BigDecimal productAmount = dcBaseOmsOrder.getAmountProduct().compareTo(BigDecimal.ZERO) == 1 ? dcBaseOmsOrder.getAmountProduct() : dcBaseOmsOrder.getAmountTotal(); BigDecimal productAmount = dcBaseOmsOrder.getAmountProduct().compareTo(BigDecimal.ZERO) == 1 ? dcBaseOmsOrder.getAmountProduct() : dcBaseOmsOrder.getAmountTotal();
dcBaseOmsOrder.setAmountProduct(productAmount);//部分订单 AmountProduct(产品金额)字段没值或等于0, 就取AmountTotal(商品总收入) dcBaseOmsOrder.setAmountProduct(productAmount);//部分订单 AmountProduct(产品金额)字段没值或等于0, 就取AmountTotal(商品总收入)
//销售额统一改为 销售额=产品金额+运费-促销 //销售额统一改为 销售额=产品金额+运费-促销
dcBaseOmsOrder.setAmountSales(productAmount.add(dcBaseOmsOrder.getAmountShipping()).subtract(dcBaseOmsOrder.getCostPromotion())); if(omsResult.getPlatformType().toUpperCase().equals(PlatformType.Aliexpress.value())) {
dcBaseOmsOrder.setAmountSales(omsResult.getOrderCharge().getAmountTotal().getAmount());
} else{
dcBaseOmsOrder.setAmountSales(productAmount.add(dcBaseOmsOrder.getAmountShipping()).subtract(dcBaseOmsOrder.getCostPromotion()));
}
if(StringUtils.isNotBlank(omsResult.getPlatformOrderType()) && omsResult.getPlatformOrderType().equals(Constant.MANUAL_ORDER) && omsResult.getOrderCharge().getAmountTotal() != null) {
dcBaseOmsOrder.setAmountProduct(omsResult.getOrderCharge().getAmountTotal().getAmount());
}
//平台渠道费人民币 - Ebay的平台费币种不一样, 要取不同的汇率计算 //平台渠道费人民币 - Ebay的平台费币种不一样, 要取不同的汇率计算
BigDecimal costPlatformFeeRMB; BigDecimal costPlatformFeeRMB;
if (PlatformType.Ebay.value().equals(dcBaseOmsOrder.getPlatformType().toUpperCase())) { if (PlatformType.Ebay.value().equals(dcBaseOmsOrder.getPlatformType().toUpperCase())) {
...@@ -283,9 +290,10 @@ public class OrderSyncJob extends PointJob { ...@@ -283,9 +290,10 @@ public class OrderSyncJob extends PointJob {
if (dcBaseOmsSku.getBailunSkuQuantityOrdered() != null && dcBaseOmsSku.getBailunSkuQuantityOrdered() > dcBaseOmsSku.getBailunSkuQuantityShipped()) { if (dcBaseOmsSku.getBailunSkuQuantityOrdered() != null && dcBaseOmsSku.getBailunSkuQuantityOrdered() > dcBaseOmsSku.getBailunSkuQuantityShipped()) {
BigDecimal quantityPrepared = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered() - dcBaseOmsSku.getBailunSkuQuantityShipped()); BigDecimal quantityPrepared = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered() - dcBaseOmsSku.getBailunSkuQuantityShipped());
//这是未发货(预收)部分占的平台费 //这是未发货(预收)部分占的平台费
BigDecimal skuCostPlatformFeePreparedRMB = skuCostPlatformFeeRMB.multiply(quantityPrepared).divide(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered()), 5, RoundingMode.HALF_EVEN); // BigDecimal skuCostPlatformFeePreparedRMB = skuCostPlatformFeeRMB.multiply(quantityPrepared).divide(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered()), 5, RoundingMode.HALF_EVEN);
BigDecimal amountPrepaid = (skuSalesPrice.multiply(quantityPrepared).multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).subtract(skuCostPlatformFeePreparedRMB)).divide(quantityPrepared, 5, RoundingMode.HALF_EVEN); BigDecimal skuCostPlatformFeePreparedRMB = skuCostPlatformFeeRMB.multiply(quantityPrepared);
dcBaseOmsSku.setAmountPrepaid(amountPrepaid.compareTo(BigDecimal.ZERO) == 1 ? amountPrepaid : BigDecimal.ZERO); BigDecimal amountPrepaid = skuSalesPrice.multiply(quantityPrepared).multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).subtract(skuCostPlatformFeePreparedRMB);
dcBaseOmsSku.setAmountPrepaid(amountPrepaid.compareTo(BigDecimal.ZERO) == 1 ? amountPrepaid.divide(quantityPrepared, 5, RoundingMode.HALF_EVEN) : BigDecimal.ZERO);
totalAmountPrepaid = totalAmountPrepaid.add(dcBaseOmsSku.getAmountPrepaid()); totalAmountPrepaid = totalAmountPrepaid.add(dcBaseOmsSku.getAmountPrepaid());
} }
//促销费-原币种 //促销费-原币种
...@@ -307,6 +315,7 @@ public class OrderSyncJob extends PointJob { ...@@ -307,6 +315,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal bailunSkuQuantityShippedDecimal = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped()); BigDecimal bailunSkuQuantityShippedDecimal = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped());
BigDecimal rmbCost = BigDecimal.ZERO; BigDecimal rmbCost = BigDecimal.ZERO;
BigDecimal skuAmountGeneralCargo = BigDecimal.ZERO; BigDecimal skuAmountGeneralCargo = BigDecimal.ZERO;
BigDecimal costLogistics = BigDecimal.ZERO;
//货值= 售价-物流-平台费,只有普货才算货值, 不发货也算货值-- 这里放单个SKU的货值 //货值= 售价-物流-平台费,只有普货才算货值, 不发货也算货值-- 这里放单个SKU的货值
if (bailunSkuStructure.getGeneralCargo() != null && bailunSkuStructure.getGeneralCargo()) { if (bailunSkuStructure.getGeneralCargo() != null && bailunSkuStructure.getGeneralCargo()) {
skuAmountGeneralCargo = skuAmountProductRMB.subtract(skuCostLogistics).subtract(skuCostPlatformFeeRMB); skuAmountGeneralCargo = skuAmountProductRMB.subtract(skuCostLogistics).subtract(skuCostPlatformFeeRMB);
...@@ -330,7 +339,12 @@ public class OrderSyncJob extends PointJob { ...@@ -330,7 +339,12 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsSku.setCostPromotion(skuCostPromotion.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN)); dcBaseOmsSku.setCostPromotion(skuCostPromotion.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN));
dcBaseOmsSku.setAmountSales(skuAmountSales.subtract(skuCostPromotion).divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN)); dcBaseOmsSku.setAmountSales(skuAmountSales.subtract(skuCostPromotion).divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN));
dcBaseOmsSku.setAmountShipping(skuAmountShipping.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN)); dcBaseOmsSku.setAmountShipping(skuAmountShipping.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN));
if(dcBaseOmsSku.getCostTail().compareTo(BigDecimal.ZERO) == 1) {
costLogistics = dcBaseOmsSku.getCostTail();
dcBaseOmsSku.setCostLogistics(costLogistics);
}else {
costLogistics = dcBaseOmsSku.getCostLogistics();
}
//单个SKU的销售额 //单个SKU的销售额
unitSkuAmountSalesRMB = skuAmountSalesRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN); unitSkuAmountSalesRMB = skuAmountSalesRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN);
//单个SKU的支出 //单个SKU的支出
...@@ -339,7 +353,7 @@ public class OrderSyncJob extends PointJob { ...@@ -339,7 +353,7 @@ public class OrderSyncJob extends PointJob {
.add(dcBaseOmsSku.getCostHandlePlatform())//第三方仓操作费 .add(dcBaseOmsSku.getCostHandlePlatform())//第三方仓操作费
.add(skuCostFbaFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//FBA费 .add(skuCostFbaFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//FBA费
.add(dcBaseOmsSku.getCostFirst())//头程费 .add(dcBaseOmsSku.getCostFirst())//头程费
.add(dcBaseOmsSku.getCostLogistics())//百伦LMS物流费 .add(costLogistics)//百伦LMS物流费
.add(dcBaseOmsSku.getCostProduct())//采购成本 .add(dcBaseOmsSku.getCostProduct())//采购成本
.add(skuPaypalFeeRmb.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//Paypal费 .add(skuPaypalFeeRmb.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//Paypal费
.setScale(5, RoundingMode.HALF_EVEN); .setScale(5, RoundingMode.HALF_EVEN);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment