Commit 4afea25a by yinyong

沃尔玛平台销售额统计总数,MARKETING平台、耗材仓产品成本和头程费置为0。

parent 018b88c4
...@@ -13,6 +13,7 @@ public interface Constant { ...@@ -13,6 +13,7 @@ public interface Constant {
String OVERSEAS_WAREHOUSE = "海外仓"; String OVERSEAS_WAREHOUSE = "海外仓";
String FBA_WAREHOUSE = "FBA仓"; String FBA_WAREHOUSE = "FBA仓";
String DOMESTIC_WAREHOUSE = "国内仓"; String DOMESTIC_WAREHOUSE = "国内仓";
String CONSUMABLES_WAREHOUSE = "耗材仓";
String MANUAL_ORDER = "手工单"; String MANUAL_ORDER = "手工单";
BigDecimal NO_DOMESTIC_HANDLE_FEE = BigDecimal.valueOf(1.2);//海外仓,FBA仓每单处理费1.2元 BigDecimal NO_DOMESTIC_HANDLE_FEE = BigDecimal.valueOf(1.2);//海外仓,FBA仓每单处理费1.2元
BigDecimal GENERAL_DOMESTIC_HANDLE_FEE = BigDecimal.valueOf(2);//国内仓普货类每单处理费2元 BigDecimal GENERAL_DOMESTIC_HANDLE_FEE = BigDecimal.valueOf(2);//国内仓普货类每单处理费2元
......
...@@ -256,7 +256,7 @@ public class OrderSyncJob extends PointJob { ...@@ -256,7 +256,7 @@ 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(商品总收入)
//销售额统一改为 销售额=产品金额+运费-促销 //销售额统一改为 销售额=产品金额+运费-促销
if(omsResult.getPlatformType().toUpperCase().equals(PlatformType.Aliexpress.value())) { if(omsResult.getPlatformType().toUpperCase().equals(PlatformType.Aliexpress.value()) || omsResult.getPlatformType().toUpperCase().equals(PlatformType.Walmart.value())) {
dcBaseOmsOrder.setAmountSales(omsResult.getOrderCharge().getAmountTotal().getAmount().subtract(dcBaseOmsOrder.getCostPromotion())); dcBaseOmsOrder.setAmountSales(omsResult.getOrderCharge().getAmountTotal().getAmount().subtract(dcBaseOmsOrder.getCostPromotion()));
} else{ } else{
dcBaseOmsOrder.setAmountSales(productAmount.add(dcBaseOmsOrder.getAmountShipping()).subtract(dcBaseOmsOrder.getCostPromotion())); dcBaseOmsOrder.setAmountSales(productAmount.add(dcBaseOmsOrder.getAmountShipping()).subtract(dcBaseOmsOrder.getCostPromotion()));
...@@ -283,6 +283,7 @@ public class OrderSyncJob extends PointJob { ...@@ -283,6 +283,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal totalAmountPrepaid = BigDecimal.ZERO; BigDecimal totalAmountPrepaid = BigDecimal.ZERO;
BigDecimal totalProfit = BigDecimal.ZERO; BigDecimal totalProfit = BigDecimal.ZERO;
BigDecimal totalSkuCostLogistics = BigDecimal.ZERO; BigDecimal totalSkuCostLogistics = BigDecimal.ZERO;
BigDecimal totalSkuCostProduct = BigDecimal.ZERO;
BigDecimal totalAmountGeneralCargo = BigDecimal.ZERO;//货值= 售价-物流-平台费, 只有普货才算货值, 不发货也算货值 BigDecimal totalAmountGeneralCargo = BigDecimal.ZERO;//货值= 售价-物流-平台费, 只有普货才算货值, 不发货也算货值
try { try {
DcBaseOmsSkuMapper omsSkuMapper = SessionUtil.getSession().getMapper(DcBaseOmsSkuMapper.class); DcBaseOmsSkuMapper omsSkuMapper = SessionUtil.getSession().getMapper(DcBaseOmsSkuMapper.class);
...@@ -356,6 +357,8 @@ public class OrderSyncJob extends PointJob { ...@@ -356,6 +357,8 @@ public class OrderSyncJob extends PointJob {
*/ */
BigDecimal quantityOrderdDecimal = BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd()); BigDecimal quantityOrderdDecimal = BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd());
BigDecimal bailunSkuQuantityShippedDecimal = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped()); BigDecimal bailunSkuQuantityShippedDecimal = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped());
//MARKETING平台 如果是耗材仓的,产品成本不参与利润统计
totalSkuCostProduct = caculateCostProduct(dcBaseWarehouse, dcBaseOmsSku,bailunSkuStructure, bailunSkuQuantityShippedDecimal, totalSkuCostProduct, dcBaseOmsOrder);
BigDecimal rmbCost = BigDecimal.ZERO; BigDecimal rmbCost = BigDecimal.ZERO;
BigDecimal skuAmountGeneralCargo = BigDecimal.ZERO; BigDecimal skuAmountGeneralCargo = BigDecimal.ZERO;
BigDecimal costLogistics = BigDecimal.ZERO; BigDecimal costLogistics = BigDecimal.ZERO;
...@@ -394,7 +397,7 @@ public class OrderSyncJob extends PointJob { ...@@ -394,7 +397,7 @@ public class OrderSyncJob extends PointJob {
unitSkuAmountSalesRMB = skuAmountSalesRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN); unitSkuAmountSalesRMB = skuAmountSalesRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN);
//MARKETING平台 如果是耗材仓的,产品成本和头程费不参与利润统计 //MARKETING平台 如果是耗材仓的,产品成本和头程费不参与利润统计
if(dcBaseOmsOrder.getPlatformType().toUpperCase().equals(PlatformType.Marketing.value()) && ("GZHCCK".equals(dcBaseWarehouse.getWarehouseCode()) || "QYHCCK".equals(dcBaseWarehouse.getWarehouseCode()))) { if(dcBaseOmsOrder.getPlatformType().toUpperCase().equals(PlatformType.Marketing.value()) && dcBaseWarehouse != null && Constant.CONSUMABLES_WAREHOUSE.equals(dcBaseWarehouse.getHqType())) {
//单个SKU的支出 //单个SKU的支出
rmbCost = dcBaseOmsSku.getCostHandleBailun()//处理费 rmbCost = dcBaseOmsSku.getCostHandleBailun()//处理费
.add(skuCostPlatformFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//平台费 .add(skuCostPlatformFeeRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN))//平台费
...@@ -449,6 +452,7 @@ public class OrderSyncJob extends PointJob { ...@@ -449,6 +452,7 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsOrder.setCostFirst(totalCostFirst); dcBaseOmsOrder.setCostFirst(totalCostFirst);
dcBaseOmsOrder.setCostLogistics(totalSkuCostLogistics); dcBaseOmsOrder.setCostLogistics(totalSkuCostLogistics);
dcBaseOmsOrder.setAmountGeneralCargo(totalAmountGeneralCargo); dcBaseOmsOrder.setAmountGeneralCargo(totalAmountGeneralCargo);
dcBaseOmsOrder.setCostProduct(totalSkuCostProduct);
/* /*
* OMS过来的详细费用不用动 * OMS过来的详细费用不用动
* 这边处理新增了 * 这边处理新增了
...@@ -529,7 +533,11 @@ public class OrderSyncJob extends PointJob { ...@@ -529,7 +533,11 @@ public class OrderSyncJob extends PointJob {
* @return * @return
*/ */
private BigDecimal caculateCostFirst(DcBaseWarehouse dcBaseWarehouse, DcBaseOmsSku dcBaseOmsSku, BailunSkuStructure bailunSkuStructure, BigDecimal totalCostFirst, DcBaseOmsOrder dcBaseOmsOrder) { private BigDecimal caculateCostFirst(DcBaseWarehouse dcBaseWarehouse, DcBaseOmsSku dcBaseOmsSku, BailunSkuStructure bailunSkuStructure, BigDecimal totalCostFirst, DcBaseOmsOrder dcBaseOmsOrder) {
if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE) && dcBaseOmsSku.getBailunSkuQuantityShipped() > 0) {
//MARKETING平台 如果是耗材仓的,产品成本和头程费不参与利润统计
if(dcBaseOmsOrder.getPlatformType().toUpperCase().equals(PlatformType.Marketing.value()) && dcBaseWarehouse != null && Constant.CONSUMABLES_WAREHOUSE.equals(dcBaseWarehouse.getHqType())) {
dcBaseOmsSku.setCostFirst(BigDecimal.ZERO);
}else if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE) && dcBaseOmsSku.getBailunSkuQuantityShipped() > 0) {
//如果存在不更新头程费 //如果存在不更新头程费
DcBaseOmsOrderMapper omsOrderMapper = SessionUtil.getSession().getMapper(DcBaseOmsOrderMapper.class); DcBaseOmsOrderMapper omsOrderMapper = SessionUtil.getSession().getMapper(DcBaseOmsOrderMapper.class);
DcBaseOmsOrder dcBaseOmsOrder1 = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andOriginOrderIdEqualTo(dcBaseOmsOrder.getOriginOrderId()).andBailunAccountIdEqualTo(dcBaseOmsOrder.getBailunAccountId()).example()); DcBaseOmsOrder dcBaseOmsOrder1 = omsOrderMapper.selectOneByExample(DcBaseOmsOrderExample.newAndCreateCriteria().andOriginOrderIdEqualTo(dcBaseOmsOrder.getOriginOrderId()).andBailunAccountIdEqualTo(dcBaseOmsOrder.getBailunAccountId()).example());
...@@ -562,6 +570,15 @@ public class OrderSyncJob extends PointJob { ...@@ -562,6 +570,15 @@ public class OrderSyncJob extends PointJob {
return totalCostFirst; return totalCostFirst;
} }
private BigDecimal caculateCostProduct(DcBaseWarehouse dcBaseWarehouse, DcBaseOmsSku dcBaseOmsSku, BailunSkuStructure bailunSkuStructure, BigDecimal bailunSkuQuantityShippedDecimal, BigDecimal totalSkuCostProduct, DcBaseOmsOrder dcBaseOmsOrder) {
if(dcBaseOmsOrder.getPlatformType().toUpperCase().equals(PlatformType.Marketing.value()) && dcBaseWarehouse != null && Constant.CONSUMABLES_WAREHOUSE.equals(dcBaseWarehouse.getHqType())) {
dcBaseOmsSku.setCostProduct(BigDecimal.ZERO);
}else {
totalSkuCostProduct = totalSkuCostProduct.add(bailunSkuStructure.getBailunSkuUnitPrice().multiply(bailunSkuQuantityShippedDecimal));
}
return totalSkuCostProduct;
}
private void hasS0(OmsResult omsResult, DcBaseOmsOrder dcBaseOmsOrder) { private void hasS0(OmsResult omsResult, DcBaseOmsOrder dcBaseOmsOrder) {
if (omsResult.getPlatformType().toUpperCase().equals(PlatformType.FBA.value()) && omsResult.getOriginOrderId().length() > 2) { if (omsResult.getPlatformType().toUpperCase().equals(PlatformType.FBA.value()) && omsResult.getOriginOrderId().length() > 2) {
String substring = omsResult.getOriginOrderId().substring(0, 2); String substring = omsResult.getOriginOrderId().substring(0, 2);
......
...@@ -9,7 +9,7 @@ EVENT_RDB_STORAGE_USERNAME=root ...@@ -9,7 +9,7 @@ EVENT_RDB_STORAGE_USERNAME=root
EVENT_RDB_STORAGE_PASSWORD=#7kfnymAM$Y9-Ntf EVENT_RDB_STORAGE_PASSWORD=#7kfnymAM$Y9-Ntf
ZOOKEEPER_SERVER=172.31.255.120:2181 ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center NAME_SPACE=data-center
JOB_NAME=base-sync-oms-order-coroutine #JOB_NAME=base-sync-oms-order-coroutine
#JOB_NAME=base-sync-oms-order JOB_NAME=base-sync-oms-order
JOB_CRON=0/1 * * * * ? * JOB_CRON=0/1 * * * * ? *
SHARDING_TOTAL_COUNT=1 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