Commit 4afea25a by yinyong

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

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