Commit 36766fe8 by wutong

只有已发货的SKU, 才算头程费用

parent aaa63197
......@@ -141,6 +141,8 @@ public class OrderSyncJob extends PointJob {
//如果订单中存在百伦SKU, 去拿一些放在SKU里的信息
Map<String, BailunSkuStructure> bailunSkuInfoMap = new HashMap<>();
//拿仓库信息
DcBaseWarehouse dcBaseWarehouse = getDcBaseWarehouse(omsResult);
BigDecimal totalCostFirst = BigDecimal.ZERO;
if (omsResult.getBailunSku() != null && omsResult.getBailunSku().size() > 0) {
/*
......@@ -150,8 +152,7 @@ public class OrderSyncJob extends PointJob {
BailunSkuCumulative bailunSkuCumulative = getBailunSkuCumulative(omsResult);
//SKU总个数
dcBaseOmsOrder.setQuantityBailunSku(bailunSkuCumulative.getTotalQuantity());
//拿仓库信息
DcBaseWarehouse dcBaseWarehouse = getDcBaseWarehouse(omsResult);
//计算每个SKU采购价占总采购价比重(用于摊分SKU售价之类) 以及 每个SKU重量价占总重量的比重
for (BailunSku bailunSku : omsResult.getBailunSku()) {
......@@ -175,21 +176,6 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsSku.setBailunSkuQuantityShipped(bailunSku.getBailunSkuQuantityOrdered());
checkFbaFee(dcBaseOmsSku, isFbaFeeException);
}
//如果不是国内仓, 就需要去拿头程费
if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE)) {
try {
DcMidCostFirstMapper mapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class);
DcMidCostFirst dcMidCostFirst = mapper.selectOneByExample(DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(bailunSku.getBailunSku()).andWarehouseCodeEqualTo(dcBaseWarehouse.getWarehouseCode()).example());
if (dcMidCostFirst != null) {
totalCostFirst = totalCostFirst.add(dcMidCostFirst.getCostFirst());
dcBaseOmsSku.setCostFirst(dcMidCostFirst.getCostFirst());
}
} catch (Exception e) {
throw new RuntimeException("MYBATIS查头程费失败");
} finally {
SessionUtil.closeSession();
}
}
bailunSkuStructure.setDcBaseOmsSku(dcBaseOmsSku);
bailunSkuInfoMap.put(bailunSku.getBailunSku(), bailunSkuStructure);
}
......@@ -215,7 +201,7 @@ public class OrderSyncJob extends PointJob {
//平台渠道费
dcBaseOmsOrder.setCostPlatformFee((omsResult.getOrderCharge().getCostPlatformFee() != null && omsResult.getOrderCharge().getCostPlatformFee().getAmount() != null) ? omsResult.getOrderCharge().getCostPlatformFee().getAmount() : BigDecimal.ZERO);
//平台渠道费人民币 - Ebay的平台费币种不一样
BigDecimal costPlatformFeeRMB = BigDecimal.ZERO;
BigDecimal costPlatformFeeRMB;
if (PlatformType.Ebay.value().equals(dcBaseOmsOrder.getPlatformType().toUpperCase())) {
costPlatformFeeRMB = dcBaseOmsOrder.getCostPlatformFee().multiply(dcBaseOmsOrder.getSellerOtherExchangeRate()).setScale(3, RoundingMode.HALF_EVEN);
} else {
......@@ -268,7 +254,21 @@ public class OrderSyncJob extends PointJob {
// Paypal费
BigDecimal skuPaypalFee = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getCostPaypalFee()).setScale(3, RoundingMode.HALF_EVEN);
BigDecimal skuPaypalFeeRmb = bailunSkuStructure.getSkuCostRatio().multiply(totalCostPaypalFeeRMB).setScale(3, RoundingMode.HALF_EVEN);
//如果不是国内仓并且发货了 就需要去拿头程费
if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE) && dcBaseOmsSku.getBailunSkuQuantityShipped() > 0) {
try {
DcMidCostFirstMapper mapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class);
DcMidCostFirst dcMidCostFirst = mapper.selectOneByExample(DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseOmsSku.getBailunSku()).andWarehouseCodeEqualTo(dcBaseWarehouse.getWarehouseCode()).example());
if (dcMidCostFirst != null) {
dcBaseOmsSku.setCostFirst(dcMidCostFirst.getCostFirst());
totalCostFirst = totalCostFirst.add(dcMidCostFirst.getCostFirst().multiply(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped())));
}
} catch (Exception e) {
throw new RuntimeException("MYBATIS查头程费失败");
} finally {
SessionUtil.closeSession();
}
}
//下单数大于发货数, 判定为预收费-人民币
if (dcBaseOmsSku.getBailunSkuQuantityOrdered() != null && dcBaseOmsSku.getBailunSkuQuantityOrdered() > dcBaseOmsSku.getBailunSkuQuantityShipped()) {
BigDecimal quantityPrepared = BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered() - dcBaseOmsSku.getBailunSkuQuantityShipped());
......@@ -528,7 +528,7 @@ public class OrderSyncJob extends PointJob {
} else if (omsResult.getBailunSku().size() > 0 && StringUtils.isNotBlank(omsResult.getBailunSku().get(0).getWarehouseCode())) {
if (omsResult.getLogisticsItems() != null && omsResult.getLogisticsItems().size() > 0 && omsResult.getLogisticsItems().get(0).getWarehouse() != null && omsResult.getLogisticsItems().get(0).getWarehouse().getWarehouseCode() != null) {
dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andWarehouseCodeEqualTo(omsResult.getLogisticsItems().get(0).getWarehouse().getWarehouseCode()).example());
} else {
} else if (omsResult.getBailunSku() != null && omsResult.getBailunSku().size() > 0){
dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andWarehouseCodeEqualTo(omsResult.getBailunSku().get(0).getWarehouseCode()).example());
}
}
......@@ -835,12 +835,8 @@ public class OrderSyncJob extends PointJob {
public void assignmentSkuInfo(OmsResult omsResult, DcBaseOmsOrder dcBaseOmsOrder, DcBaseOmsSku dcBaseOmsSku, BailunSku bailunSku, DcBaseWarehouse dcBaseWarehouse, HashMap<String, String> saleItemHashMap, Boolean isFbaFeeException) {
dcBaseOmsSku.setBailunInterceptionStatus(dcBaseOmsOrder.getBailunInterceptionStatus());
dcBaseOmsSku.setBailunSku(bailunSku.getBailunSku());
dcBaseOmsSku.setWarehouseCode(bailunSku.getWarehouseCode());
dcBaseOmsSku.setWarehouseName(bailunSku.getWarehouseName());
if (PlatformType.FBA.value().equals(omsResult.getPlatformType()) && dcBaseWarehouse != null) {
dcBaseOmsSku.setWarehouseCode(dcBaseWarehouse.getWarehouseCode());
dcBaseOmsSku.setWarehouseName(dcBaseWarehouse.getWarehouseName());
}
dcBaseOmsSku.setWarehouseCode(dcBaseWarehouse.getWarehouseCode());
dcBaseOmsSku.setWarehouseName(dcBaseWarehouse.getWarehouseName());
dcBaseOmsSku.setAreaId(omsResult.getAreaId());
dcBaseOmsSku.setHasCancle(omsResult.getHasCancle());
dcBaseOmsSku.setSellerName(saleItemHashMap.get(bailunSku.getBailunSku()));
......
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