Commit 68baac4a by yinyong

oms订单-处理费、真实物流费处理逻辑更改,sku纬度运输费、燃油附加费、关税、挂号、其他费用、仓租计算

parent a121352a
......@@ -366,7 +366,14 @@ public class OrderSyncJob extends PointJob {
//百伦处理费
BigDecimal skuCostHandleBailun = bailunSkuStructure.getSkuWeightRatio().multiply(dcBaseOmsOrder.getCostHandleBailun()).setScale(5, RoundingMode.HALF_EVEN);
//百伦LMS物流费-在CostTail(尾程费-真实费用)拿不到之前就用它, 这是SKU总重量占比的费用
BigDecimal skuCostLogistics = bailunSkuStructure.getSkuWeightRatio().multiply(totalCostLogistics).setScale(5, RoundingMode.HALF_EVEN);
BigDecimal skuCostLogistics = BigDecimal.ZERO;
if(dcBaseOmsSku.getShipping().compareTo(BigDecimal.ZERO) == 1) {
skuCostLogistics = dcBaseOmsSku.getShipping();
}else if(dcBaseOmsSku.getCostTail().compareTo(BigDecimal.ZERO) == 1) {
skuCostLogistics = dcBaseOmsSku.getCostTail();
}else {
skuCostLogistics = bailunSkuStructure.getSkuWeightRatio().multiply(totalCostLogistics).setScale(5, RoundingMode.HALF_EVEN);
}
/*
* 将按比例摊分的费用算到单个SKU
* 摊分方法: 除以下单数
......@@ -377,7 +384,6 @@ public class OrderSyncJob extends PointJob {
totalSkuCostProduct = caculateCostProduct(dcBaseWarehouse, dcBaseOmsSku,bailunSkuStructure, totalSkuCostProduct, dcBaseOmsOrder);
BigDecimal rmbCost = BigDecimal.ZERO;
BigDecimal skuAmountGeneralCargo = BigDecimal.ZERO;
BigDecimal costLogistics = BigDecimal.ZERO;
//货值= 售价-物流-平台费,只有普货才算货值, 不发货也算货值-- 这里放单个SKU的货值
if (bailunSkuStructure.getGeneralCargo() != null && bailunSkuStructure.getGeneralCargo()) {
skuAmountGeneralCargo = skuAmountProductRMB.subtract(skuCostLogistics).subtract(skuCostPlatformFeeRMB);
......@@ -405,12 +411,7 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsSku.setCostPromotion(skuCostPromotion.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN));
dcBaseOmsSku.setAmountSales(skuAmountSales.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的税费
unitSkuAmountTaxRMB = skuAmountTaxRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN);
//单个SKU的销售额
......@@ -423,7 +424,7 @@ public class OrderSyncJob extends PointJob {
.add(skuCostPlatformFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//平台费
.add(dcBaseOmsSku.getCostHandlePlatform())//第三方仓操作费
.add(skuCostFbaFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//FBA费
.add(costLogistics)//百伦LMS物流费
.add(dcBaseOmsSku.getCostLogistics())//百伦LMS物流费
.add(skuPaypalFeeRmb.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//Paypal费
.setScale(5, RoundingMode.HALF_EVEN);
}else{
......@@ -433,7 +434,7 @@ public class OrderSyncJob extends PointJob {
.add(dcBaseOmsSku.getCostHandlePlatform())//第三方仓操作费
.add(skuCostFbaFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//FBA费
.add(dcBaseOmsSku.getCostFirst())//头程费
.add(costLogistics)//百伦LMS物流费
.add(dcBaseOmsSku.getCostLogistics())//百伦LMS物流费
.add(dcBaseOmsSku.getCostProduct())//采购成本
.add(skuPaypalFeeRmb.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//Paypal费
.setScale(5, RoundingMode.HALF_EVEN);
......@@ -907,6 +908,7 @@ public class OrderSyncJob extends PointJob {
List<PickingOrder> pickingOrderList = omsResult.getPickingOrder();
List<WmsFeeDetailDtos> wmsFeeDetailDtosList = omsResult.getWmsFeeDetailsDtos();
BigDecimal totalCostPackaging = BigDecimal.ZERO;
BigDecimal totalOpf = BigDecimal.ZERO;
BigDecimal totalCostShipping = BigDecimal.ZERO;
if (pickingOrderList != null && pickingOrderList.size() > 0) {
/*
......@@ -975,7 +977,7 @@ public class OrderSyncJob extends PointJob {
if(dcBaseOmsPick.getHasPushed()) {
dcBaseOmsSku.setBailunSkuQuantityPushed(dcBaseOmsSku.getBailunSkuQuantityPushed() != null ? dcBaseOmsSku.getBailunSkuQuantityPushed() + dcBaseOmsPick.getQuantityPicked() : dcBaseOmsPick.getQuantityPicked());
}
dcBaseOmsSku.setCostHandlePlatform(dcBaseOmsSku.getCostHandlePlatform() != null ? dcBaseOmsSku.getCostHandlePlatform().add(dcBaseOmsPick.getBailunSkuCostPackaging()) : dcBaseOmsPick.getBailunSkuCostPackaging());
// dcBaseOmsSku.setCostHandlePlatform(dcBaseOmsSku.getCostHandlePlatform() != null ? dcBaseOmsSku.getCostHandlePlatform().add(dcBaseOmsPick.getBailunSkuCostPackaging()) : dcBaseOmsPick.getBailunSkuCostPackaging());
dcBaseOmsSku.setCostTail(dcBaseOmsSku.getCostTail() != null ? dcBaseOmsSku.getCostTail().add(dcBaseOmsPick.getBailunSkuCostShipping()) : dcBaseOmsPick.getBailunSkuCostShipping());
for(WmsFeeDetailDtos wmsFeeDetailDtos : wmsFeeDetailDtosList) {
......@@ -990,12 +992,13 @@ public class OrderSyncJob extends PointJob {
BigDecimal whf = wmsFeeDetailDtos.getWhf() == null ? BigDecimal.ZERO : wmsFeeDetailDtos.getWhf().multiply(weightRatio).setScale(5, RoundingMode.HALF_EVEN);
BigDecimal wmsToCnyExchangeRate = BigDecimal.ZERO;
BigDecimal wmsToUsdExchangeRate = BigDecimal.ZERO;
BigDecimal wmsToRMBExchangeRate = BigDecimal.ZERO;
if(StringUtils.isBlank(wmsFeeDetailDtos.getCurrencyCode())) {
wmsFeeDetailDtos.setCurrencyCode("CNY");
}
wmsToCnyExchangeRate = CallBailunSystem.getExchangeRate(wmsFeeDetailDtos.getCurrencyCode(), Constant.RMB_CURRENCY, exchangeDate);
wmsToUsdExchangeRate = CallBailunSystem.getExchangeRate(wmsFeeDetailDtos.getCurrencyCode(), Constant.USD_CURRENCY, exchangeDate);
wmsToRMBExchangeRate = CallBailunSystem.getExchangeRate(wmsFeeDetailDtos.getCurrencyCode(), Constant.RMB_CURRENCY, exchangeDate);
dcBaseOmsPick.setTotalFee(totalFee);
dcBaseOmsPick.setShipping(shipping);
dcBaseOmsPick.setOpf(opf);
......@@ -1008,17 +1011,19 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsPick.setWmsToCnyExchangeRate(wmsToCnyExchangeRate);
dcBaseOmsPick.setWmsToUsdExchangeRate(wmsToUsdExchangeRate);
dcBaseOmsSku.setTotalFee(dcBaseOmsSku.getTotalFee() != null ? dcBaseOmsSku.getTotalFee().add(totalFee) : totalFee);
dcBaseOmsSku.setShipping(dcBaseOmsSku.getShipping() != null ? dcBaseOmsSku.getShipping().add(shipping) : shipping);
dcBaseOmsSku.setOpf(dcBaseOmsSku.getOpf() != null ? dcBaseOmsSku.getOpf().add(opf) : opf);
dcBaseOmsSku.setFsc(dcBaseOmsSku.getFsc() != null ? dcBaseOmsSku.getFsc().add(fsc) : fsc);
dcBaseOmsSku.setDt(dcBaseOmsSku.getDt() != null ? dcBaseOmsSku.getDt().add(dt) : dt);
dcBaseOmsSku.setRsf(dcBaseOmsSku.getRsf() != null ? dcBaseOmsSku.getRsf().add(rsf) : rsf);
dcBaseOmsSku.setOtf(dcBaseOmsSku.getOtf() != null ? dcBaseOmsSku.getOtf().add(otf) : otf);
dcBaseOmsSku.setWhf(dcBaseOmsSku.getWhf() != null ? dcBaseOmsSku.getWhf().add(whf) : whf);
dcBaseOmsSku.setCurrencyCode(wmsFeeDetailDtos.getCurrencyCode());
dcBaseOmsSku.setTotalFee(dcBaseOmsSku.getTotalFee() != null ? dcBaseOmsSku.getTotalFee().add(totalFee.multiply(wmsToRMBExchangeRate)) : totalFee.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setShipping(dcBaseOmsSku.getShipping() != null ? dcBaseOmsSku.getShipping().add(shipping.multiply(wmsToRMBExchangeRate)) : shipping.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setOpf(dcBaseOmsSku.getOpf() != null ? dcBaseOmsSku.getOpf().add(opf.multiply(wmsToRMBExchangeRate)) : opf.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setFsc(dcBaseOmsSku.getFsc() != null ? dcBaseOmsSku.getFsc().add(fsc.multiply(wmsToRMBExchangeRate)) : fsc.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setDt(dcBaseOmsSku.getDt() != null ? dcBaseOmsSku.getDt().add(dt.multiply(wmsToRMBExchangeRate)) : dt.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setRsf(dcBaseOmsSku.getRsf() != null ? dcBaseOmsSku.getRsf().add(rsf.multiply(wmsToRMBExchangeRate)) : rsf.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setOtf(dcBaseOmsSku.getOtf() != null ? dcBaseOmsSku.getOtf().add(otf.multiply(wmsToRMBExchangeRate)) : otf.multiply(wmsToRMBExchangeRate));
dcBaseOmsSku.setWhf(dcBaseOmsSku.getWhf() != null ? dcBaseOmsSku.getWhf().add(whf.multiply(wmsToRMBExchangeRate)) : whf.multiply(wmsToRMBExchangeRate));
/*dcBaseOmsSku.setCurrencyCode(wmsFeeDetailDtos.getCurrencyCode());
dcBaseOmsSku.setWmsToCnyExchangeRate(wmsToCnyExchangeRate);
dcBaseOmsSku.setWmsToUsdExchangeRate(wmsToUsdExchangeRate);
dcBaseOmsSku.setWmsToUsdExchangeRate(wmsToUsdExchangeRate);*/
dcBaseOmsSku.setCostHandlePlatform(dcBaseOmsSku.getCostHandlePlatform() != null ? dcBaseOmsSku.getCostHandlePlatform().add(opf.multiply(wmsToRMBExchangeRate)) : opf.multiply(wmsToRMBExchangeRate));
totalOpf = totalOpf.add(opf.multiply(wmsToRMBExchangeRate));
}
}
......@@ -1041,7 +1046,11 @@ public class OrderSyncJob extends PointJob {
}
}
dcBaseOmsOrder.setCostHandlePlatform(totalCostPackaging);
/*if(totalOpf.compareTo(BigDecimal.ZERO) == 1) {*/
dcBaseOmsOrder.setCostHandlePlatform(totalOpf);
/*}else {
dcBaseOmsOrder.setCostHandlePlatform(totalCostPackaging);
}*/
dcBaseOmsOrder.setCostTail(totalCostShipping);
}
......
......@@ -14,6 +14,6 @@ SEMI_JOB_NAME=semi-purchase-details-info
SEMI_JOB_CRON=0/3 * * * * ? *
AIMS_JOB_NAME=base-purchase-details-aims
AIMS_JOB_CRON=0 0 12 * * ? *
SEMI_OLD_JOB_NAME=semi-purchase-details-info
SEMI_OLD_JOB_NAME=semi-purchase-details-info-old
SEMI_OLD_JOB_CRON=0 0 12 * * ? *
SHARDING_TOTAL_COUNT=1
\ No newline at end of file
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