Commit 535f8937 by wutong

订单打印错误日志

parent d5cc54eb
...@@ -117,7 +117,7 @@ public class OrderSyncJob extends PointJob { ...@@ -117,7 +117,7 @@ public class OrderSyncJob extends PointJob {
* @param bailunOrderList * @param bailunOrderList
*/ */
public void analyseOmsOrder(List<OmsResult> bailunOrderList) { public void analyseOmsOrder(List<OmsResult> bailunOrderList) {
for (OmsResult omsResult : bailunOrderList) for (OmsResult omsResult : bailunOrderList) {
log.warn(omsResult.getOriginOrderId()); log.warn(omsResult.getOriginOrderId());
if (omsResult != null && omsResult.getBailunPaymentStatus() != null && omsResult.getBailunPaymentStatus().equals(Constant.PAYMENT_STATUS)) { if (omsResult != null && omsResult.getBailunPaymentStatus() != null && omsResult.getBailunPaymentStatus().equals(Constant.PAYMENT_STATUS)) {
DcBaseOmsOrder dcBaseOmsOrder = new DcBaseOmsOrder(); DcBaseOmsOrder dcBaseOmsOrder = new DcBaseOmsOrder();
...@@ -132,7 +132,7 @@ public class OrderSyncJob extends PointJob { ...@@ -132,7 +132,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal totalAmountSale = BigDecimal.ZERO; BigDecimal totalAmountSale = BigDecimal.ZERO;
if (omsResult.getPlatformSku() != null && omsResult.getPlatformSku().size() > 0) { if (omsResult.getPlatformSku() != null && omsResult.getPlatformSku().size() > 0) {
for (PlatformSku platformSku : omsResult.getPlatformSku()) { for (PlatformSku platformSku : omsResult.getPlatformSku()) {
if(platformSku.getPlatformSkuUnitPrice() != null && platformSku.getPlatformSkuUnitPrice().getAmount() != null && platformSku.getPlatformSkuQuantityOrdered() != null) { if (platformSku.getPlatformSkuUnitPrice() != null && platformSku.getPlatformSkuUnitPrice().getAmount() != null && platformSku.getPlatformSkuQuantityOrdered() != null) {
BigDecimal platformSkuUnitPrice = platformSku.getPlatformSkuUnitPrice().getAmount().compareTo(BigDecimal.ZERO) == 1 ? platformSku.getPlatformSkuUnitPrice().getAmount() : BigDecimal.ZERO; BigDecimal platformSkuUnitPrice = platformSku.getPlatformSkuUnitPrice().getAmount().compareTo(BigDecimal.ZERO) == 1 ? platformSku.getPlatformSkuUnitPrice().getAmount() : BigDecimal.ZERO;
totalAmountSale = platformSkuUnitPrice.multiply(BigDecimal.valueOf(platformSku.getPlatformSkuQuantityOrdered())).add(totalAmountSale).setScale(2, RoundingMode.HALF_EVEN); totalAmountSale = platformSkuUnitPrice.multiply(BigDecimal.valueOf(platformSku.getPlatformSkuQuantityOrdered())).add(totalAmountSale).setScale(2, RoundingMode.HALF_EVEN);
} }
...@@ -150,23 +150,23 @@ public class OrderSyncJob extends PointJob { ...@@ -150,23 +150,23 @@ public class OrderSyncJob extends PointJob {
//SKU总个数 //SKU总个数
dcBaseOmsOrder.setQuantityBailunSku(bailunSkuCumulative.getTotalQuantity()); dcBaseOmsOrder.setQuantityBailunSku(bailunSkuCumulative.getTotalQuantity());
//计算每个SKU采购价占总采购价比重(用于摊分SKU售价之类) 以及 每个SKU重量价占总重量的比重 //计算每个SKU采购价占总采购价比重(用于摊分SKU售价之类) 以及 每个SKU重量价占总重量的比重
for (BailunSku bailunSku : omsResult.getBailunSku()) { for (BailunSku bailunSku : omsResult.getBailunSku()) {
//拿每个SKU的发货仓库信息 //拿每个SKU的发货仓库信息
DcBaseWarehouse dcBaseWarehouse = getDcBaseWarehouse(bailunSku, omsResult); DcBaseWarehouse dcBaseWarehouse = getDcBaseWarehouse(bailunSku, omsResult);
BailunSkuStructure bailunSkuStructure = new BailunSkuStructure(); BailunSkuStructure bailunSkuStructure = new BailunSkuStructure();
bailunSkuStructure.setBailunSku(bailunSku.getBailunSku()); bailunSkuStructure.setBailunSku(bailunSku.getBailunSku());
bailunSkuStructure.setBailunSkuUnitPrice((bailunSku.getBailunSkuUnitPrice() != null&&bailunSku.getBailunSkuUnitPrice().getAmount() != null)?bailunSku.getBailunSkuUnitPrice().getAmount() : BigDecimal.ZERO); bailunSkuStructure.setBailunSkuUnitPrice((bailunSku.getBailunSkuUnitPrice() != null && bailunSku.getBailunSkuUnitPrice().getAmount() != null) ? bailunSku.getBailunSkuUnitPrice().getAmount() : BigDecimal.ZERO);
bailunSkuStructure.setBailunSkuWeight(bailunSku.getBailunSkuWeight() != null?bailunSku.getBailunSkuWeight() : BigDecimal.ZERO); bailunSkuStructure.setBailunSkuWeight(bailunSku.getBailunSkuWeight() != null ? bailunSku.getBailunSkuWeight() : BigDecimal.ZERO);
bailunSkuStructure.setSkuCostRatio(dcBaseOmsOrder.getCostProduct().compareTo(BigDecimal.ZERO) ==1 ?bailunSkuStructure.getBailunSkuUnitPrice().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())).divide(dcBaseOmsOrder.getCostProduct(), 3 ,RoundingMode.HALF_EVEN) : BigDecimal.ONE); bailunSkuStructure.setSkuCostRatio(dcBaseOmsOrder.getCostProduct().compareTo(BigDecimal.ZERO) == 1 ? bailunSkuStructure.getBailunSkuUnitPrice().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())).divide(dcBaseOmsOrder.getCostProduct(), 3, RoundingMode.HALF_EVEN) : BigDecimal.ONE);
bailunSkuStructure.setSkuWeightRatio(bailunSkuCumulative.getTotalWeight().compareTo(BigDecimal.ZERO) ==1 ? bailunSkuStructure.getBailunSkuWeight().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())).divide(bailunSkuCumulative.getTotalWeight(), 3 ,RoundingMode.HALF_EVEN) : BigDecimal.ONE); bailunSkuStructure.setSkuWeightRatio(bailunSkuCumulative.getTotalWeight().compareTo(BigDecimal.ZERO) == 1 ? bailunSkuStructure.getBailunSkuWeight().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())).divide(bailunSkuCumulative.getTotalWeight(), 3, RoundingMode.HALF_EVEN) : BigDecimal.ONE);
bailunSkuStructure.setSkuQuantityOrderd(bailunSku.getBailunSkuQuantityOrdered() != null? bailunSku.getBailunSkuQuantityOrdered(): 0); bailunSkuStructure.setSkuQuantityOrderd(bailunSku.getBailunSkuQuantityOrdered() != null ? bailunSku.getBailunSkuQuantityOrdered() : 0);
bailunSkuStructure.setDcBaseWarehouse(dcBaseWarehouse); bailunSkuStructure.setDcBaseWarehouse(dcBaseWarehouse);
DcBaseOmsSku dcBaseOmsSku = new DcBaseOmsSku(); DcBaseOmsSku dcBaseOmsSku = new DcBaseOmsSku();
/* /*
* 赋值, 初始值避免null * 赋值, 初始值避免null
*/ */
assignmentSkuInfo(omsResult, dcBaseOmsOrder, dcBaseOmsSku, bailunSku, dcBaseWarehouse,saleItemHashMap, isFbaFeeException); assignmentSkuInfo(omsResult, dcBaseOmsOrder, dcBaseOmsSku, bailunSku, dcBaseWarehouse, saleItemHashMap, isFbaFeeException);
if (PlatformType.FBA.value().equals(omsResult.getPlatformType().toUpperCase())) { if (PlatformType.FBA.value().equals(omsResult.getPlatformType().toUpperCase())) {
//FBA费用 //FBA费用
BigDecimal skuCostFbaFee = bailunSkuStructure.getSkuWeightRatio().multiply(dcBaseOmsOrder.getCostFbaFee()).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuCostFbaFee = bailunSkuStructure.getSkuWeightRatio().multiply(dcBaseOmsOrder.getCostFbaFee()).setScale(3, RoundingMode.HALF_EVEN);
...@@ -237,8 +237,8 @@ public class OrderSyncJob extends PointJob { ...@@ -237,8 +237,8 @@ public class OrderSyncJob extends PointJob {
* 跟重量有关的费用按重量分摊 * 跟重量有关的费用按重量分摊
*/ */
for (BailunSkuStructure bailunSkuStructure : bailunSkuInfoMap.values()) { for (BailunSkuStructure bailunSkuStructure : bailunSkuInfoMap.values()) {
DcBaseOmsSku dcBaseOmsSku =bailunSkuStructure.getDcBaseOmsSku(); DcBaseOmsSku dcBaseOmsSku = bailunSkuStructure.getDcBaseOmsSku();
DcBaseWarehouse dcBaseWarehouse =bailunSkuStructure.getDcBaseWarehouse(); DcBaseWarehouse dcBaseWarehouse = bailunSkuStructure.getDcBaseWarehouse();
dcBaseOmsSku.setRatioPrice(bailunSkuStructure.getSkuCostRatio()); dcBaseOmsSku.setRatioPrice(bailunSkuStructure.getSkuCostRatio());
dcBaseOmsSku.setRatioWeight(bailunSkuStructure.getSkuWeightRatio()); dcBaseOmsSku.setRatioWeight(bailunSkuStructure.getSkuWeightRatio());
//总收入 //总收入
...@@ -256,7 +256,7 @@ public class OrderSyncJob extends PointJob { ...@@ -256,7 +256,7 @@ public class OrderSyncJob extends PointJob {
//将总销售额按比例摊分到SKU-原币种, SKU可能有多个 //将总销售额按比例摊分到SKU-原币种, SKU可能有多个
BigDecimal skuAmountSales = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getAmountSales()).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuAmountSales = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getAmountSales()).setScale(3, RoundingMode.HALF_EVEN);
//单个SKU售价-原币种 //单个SKU售价-原币种
BigDecimal skuSalesPrice = bailunSkuStructure.getSkuQuantityOrderd() > 0? skuAmountSales.divide(BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd()), 3, RoundingMode.HALF_EVEN ): BigDecimal.ZERO; BigDecimal skuSalesPrice = bailunSkuStructure.getSkuQuantityOrderd() > 0 ? skuAmountSales.divide(BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd()), 3, RoundingMode.HALF_EVEN) : BigDecimal.ZERO;
//平台费-原币种 //平台费-原币种
BigDecimal skuCostPlatformFee = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getCostPlatformFee()).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuCostPlatformFee = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getCostPlatformFee()).setScale(3, RoundingMode.HALF_EVEN);
BigDecimal skuCostPlatformFeeRMB = bailunSkuStructure.getSkuCostRatio().multiply(costPlatformFeeRMB).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuCostPlatformFeeRMB = bailunSkuStructure.getSkuCostRatio().multiply(costPlatformFeeRMB).setScale(3, RoundingMode.HALF_EVEN);
...@@ -272,12 +272,12 @@ public class OrderSyncJob extends PointJob { ...@@ -272,12 +272,12 @@ public class OrderSyncJob extends PointJob {
totalCostFirst = totalCostFirst.add(dcMidCostFirst.getCostFirst().multiply(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped()))); totalCostFirst = totalCostFirst.add(dcMidCostFirst.getCostFirst().multiply(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped())));
} }
} }
//下单数大于发货数, 判定为预收费-人民币 //下单数大于发货数, 判定为预收费-人民币
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()), 3, RoundingMode.HALF_EVEN); BigDecimal skuCostPlatformFeePreparedRMB = skuCostPlatformFeeRMB.multiply(quantityPrepared).divide(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityOrdered()), 3, RoundingMode.HALF_EVEN);
BigDecimal amountPrepaid = (skuSalesPrice.multiply(quantityPrepared).multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).subtract(skuCostPlatformFeePreparedRMB)).divide( quantityPrepared,3, RoundingMode.HALF_EVEN); BigDecimal amountPrepaid = (skuSalesPrice.multiply(quantityPrepared).multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).subtract(skuCostPlatformFeePreparedRMB)).divide(quantityPrepared, 3, RoundingMode.HALF_EVEN);
dcBaseOmsSku.setAmountPrepaid(amountPrepaid.compareTo(BigDecimal.ZERO) == 1 ? amountPrepaid : BigDecimal.ZERO); dcBaseOmsSku.setAmountPrepaid(amountPrepaid.compareTo(BigDecimal.ZERO) == 1 ? amountPrepaid : BigDecimal.ZERO);
totalAmountPrepaid = totalAmountPrepaid.add(dcBaseOmsSku.getAmountPrepaid()); totalAmountPrepaid = totalAmountPrepaid.add(dcBaseOmsSku.getAmountPrepaid());
} }
...@@ -290,14 +290,15 @@ public class OrderSyncJob extends PointJob { ...@@ -290,14 +290,15 @@ public class OrderSyncJob extends PointJob {
BigDecimal skuCostFbaFeeRMB = dcBaseOmsSku.getCostFbaFee().multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuCostFbaFeeRMB = dcBaseOmsSku.getCostFbaFee().multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).setScale(3, RoundingMode.HALF_EVEN);
//百伦处理费 //百伦处理费
BigDecimal skuCostHandleBailun = bailunSkuStructure.getSkuWeightRatio().multiply(dcBaseOmsOrder.getCostHandleBailun()).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuCostHandleBailun = bailunSkuStructure.getSkuWeightRatio().multiply(dcBaseOmsOrder.getCostHandleBailun()).setScale(3, RoundingMode.HALF_EVEN);
//百伦LMS物流费-在CostTail(尾程费-真实费用)拿不到之前就用它 //百伦LMS物流费-在CostTail(尾程费-真实费用)拿不到之前就用它
BigDecimal skuCostLogistics = bailunSkuStructure.getSkuWeightRatio().multiply(totalCostLogistics).setScale(3, RoundingMode.HALF_EVEN); BigDecimal skuCostLogistics = bailunSkuStructure.getSkuWeightRatio().multiply(totalCostLogistics).setScale(3, RoundingMode.HALF_EVEN);
/* /*
* 将按比例摊分的费用算到单个SKU * 将按比例摊分的费用算到单个SKU
* 摊分方法: 除以下单数 * 摊分方法: 除以下单数
*/ */
BigDecimal quantityOrderdDecimal = BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd()); BigDecimal quantityOrderdDecimal = BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd());
BigDecimal rmbCost = BigDecimal.ZERO;; BigDecimal rmbCost = BigDecimal.ZERO;
;
if (quantityOrderdDecimal.compareTo(BigDecimal.ZERO) == 1) { if (quantityOrderdDecimal.compareTo(BigDecimal.ZERO) == 1) {
dcBaseOmsSku.setCostLogistics(skuCostLogistics.divide(quantityOrderdDecimal, 3, RoundingMode.HALF_EVEN)); dcBaseOmsSku.setCostLogistics(skuCostLogistics.divide(quantityOrderdDecimal, 3, RoundingMode.HALF_EVEN));
dcBaseOmsSku.setAmountTotal(skuAmountTotal.divide(quantityOrderdDecimal, 3, RoundingMode.HALF_EVEN)); dcBaseOmsSku.setAmountTotal(skuAmountTotal.divide(quantityOrderdDecimal, 3, RoundingMode.HALF_EVEN));
...@@ -392,6 +393,7 @@ public class OrderSyncJob extends PointJob { ...@@ -392,6 +393,7 @@ public class OrderSyncJob extends PointJob {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
} }
}
} }
private BigDecimal getTotalCostLogistics(List<LogisticsItem> logisticsItems) { private BigDecimal getTotalCostLogistics(List<LogisticsItem> logisticsItems) {
...@@ -414,7 +416,7 @@ public class OrderSyncJob extends PointJob { ...@@ -414,7 +416,7 @@ public class OrderSyncJob extends PointJob {
crmRefundMapper.updateLinked(dcBaseOmsOrder.getOriginOrderId(), dcBaseOmsOrder.getBailunAccountId()); crmRefundMapper.updateLinked(dcBaseOmsOrder.getOriginOrderId(), dcBaseOmsOrder.getBailunAccountId());
dcBaseOmsOrder.setAmountRefund(BigDecimal.ZERO); dcBaseOmsOrder.setAmountRefund(BigDecimal.ZERO);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("Mybatis操作DB失败",e); throw new RuntimeException("Mybatis操作DB失败", e);
} finally { } finally {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
...@@ -423,6 +425,7 @@ public class OrderSyncJob extends PointJob { ...@@ -423,6 +425,7 @@ public class OrderSyncJob extends PointJob {
/** /**
* 计算百伦的处理费用 * 计算百伦的处理费用
* 阶梯计费 * 阶梯计费
*
* @param dcBaseOmsOrder * @param dcBaseOmsOrder
* @param bailunSkuCumulative * @param bailunSkuCumulative
* @param dcBaseWarehouse * @param dcBaseWarehouse
...@@ -478,11 +481,13 @@ public class OrderSyncJob extends PointJob { ...@@ -478,11 +481,13 @@ public class OrderSyncJob extends PointJob {
BailunSkuCumulative bailunSkuCumulative = new BailunSkuCumulative(); BailunSkuCumulative bailunSkuCumulative = new BailunSkuCumulative();
bailunSkuCumulative.setMaxSkuLong(BigDecimal.ZERO); bailunSkuCumulative.setMaxSkuLong(BigDecimal.ZERO);
bailunSkuCumulative.setMaxSkuWidth(BigDecimal.ZERO); bailunSkuCumulative.setMaxSkuWidth(BigDecimal.ZERO);
bailunSkuCumulative.setMaxSkuHight( BigDecimal.ZERO); bailunSkuCumulative.setMaxSkuHight(BigDecimal.ZERO);
bailunSkuCumulative.setTotalWeight(BigDecimal.ZERO); bailunSkuCumulative.setTotalWeight(BigDecimal.ZERO);
bailunSkuCumulative.setTotalQuantity(0); bailunSkuCumulative.setTotalQuantity(0);
for (BailunSku bailunSku : omsResult.getBailunSku()) { for (BailunSku bailunSku : omsResult.getBailunSku()) {
if (bailunSku.getBailunSkuWeight() == null) {bailunSku.setBailunSkuWeight(BigDecimal.ZERO);} if (bailunSku.getBailunSkuWeight() == null) {
bailunSku.setBailunSkuWeight(BigDecimal.ZERO);
}
bailunSkuCumulative.setTotalWeight(bailunSkuCumulative.getTotalWeight() != null ? bailunSkuCumulative.setTotalWeight(bailunSkuCumulative.getTotalWeight() != null ?
bailunSku.getBailunSkuWeight().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())).add(bailunSkuCumulative.getTotalWeight()) bailunSku.getBailunSkuWeight().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())).add(bailunSkuCumulative.getTotalWeight())
: bailunSku.getBailunSkuWeight().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered()))); : bailunSku.getBailunSkuWeight().multiply(BigDecimal.valueOf(bailunSku.getBailunSkuQuantityOrdered())));
...@@ -505,9 +510,12 @@ public class OrderSyncJob extends PointJob { ...@@ -505,9 +510,12 @@ public class OrderSyncJob extends PointJob {
skuHeight = new BigDecimal(split[2]); skuHeight = new BigDecimal(split[2]);
} }
} }
if (skuLong.compareTo(bailunSkuCumulative.getMaxSkuLong()) >= 0) bailunSkuCumulative.setMaxSkuLong(skuLong); if (skuLong.compareTo(bailunSkuCumulative.getMaxSkuLong()) >= 0)
if (skuWidth.compareTo(bailunSkuCumulative.getMaxSkuWidth()) >= 0)bailunSkuCumulative.setMaxSkuWidth(skuWidth); bailunSkuCumulative.setMaxSkuLong(skuLong);
if (skuHeight.compareTo(bailunSkuCumulative.getMaxSkuHight()) >= 0) bailunSkuCumulative.setMaxSkuLong(skuHeight); if (skuWidth.compareTo(bailunSkuCumulative.getMaxSkuWidth()) >= 0)
bailunSkuCumulative.setMaxSkuWidth(skuWidth);
if (skuHeight.compareTo(bailunSkuCumulative.getMaxSkuHight()) >= 0)
bailunSkuCumulative.setMaxSkuLong(skuHeight);
} }
} }
} }
...@@ -533,10 +541,10 @@ public class OrderSyncJob extends PointJob { ...@@ -533,10 +541,10 @@ public class OrderSyncJob extends PointJob {
DcBaseWarehouseMapper baseWarehouseMapper = SessionUtil.getSession().getMapper(DcBaseWarehouseMapper.class); DcBaseWarehouseMapper baseWarehouseMapper = SessionUtil.getSession().getMapper(DcBaseWarehouseMapper.class);
if (PlatformType.FBA.value().equals(omsResult.getPlatformType())) { if (PlatformType.FBA.value().equals(omsResult.getPlatformType())) {
dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andBailunAccountIdEqualTo(omsResult.getSeller().getBailunAccountId()).example()); dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andBailunAccountIdEqualTo(omsResult.getSeller().getBailunAccountId()).example());
} else { } else {
if (StringUtils.isNotBlank(bailunSku.getWarehouseCode())) { if (StringUtils.isNotBlank(bailunSku.getWarehouseCode())) {
dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andWarehouseCodeEqualTo(bailunSku.getWarehouseCode()).example()); dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andWarehouseCodeEqualTo(bailunSku.getWarehouseCode()).example());
} else if (omsResult.getLogisticsItems() != null && omsResult.getLogisticsItems().size() > 0 && omsResult.getLogisticsItems().get(0).getWarehouse() != null && omsResult.getLogisticsItems().get(0).getWarehouse().getWarehouseCode() != null){ } else 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()); dcBaseWarehouse = baseWarehouseMapper.selectOneByExample(DcBaseWarehouseExample.newAndCreateCriteria().andWarehouseCodeEqualTo(omsResult.getLogisticsItems().get(0).getWarehouse().getWarehouseCode()).example());
} }
} }
...@@ -550,7 +558,6 @@ public class OrderSyncJob extends PointJob { ...@@ -550,7 +558,6 @@ public class OrderSyncJob extends PointJob {
} }
private HashMap<String, String> putSellerNameInMap(List<SaleItem> saleItemList) { private HashMap<String, String> putSellerNameInMap(List<SaleItem> saleItemList) {
HashMap<String, String> map = new HashMap<>(saleItemList.size()); HashMap<String, String> map = new HashMap<>(saleItemList.size());
if (saleItemList != null && saleItemList.size() > 0) { if (saleItemList != null && saleItemList.size() > 0) {
...@@ -573,68 +580,68 @@ public class OrderSyncJob extends PointJob { ...@@ -573,68 +580,68 @@ public class OrderSyncJob extends PointJob {
BigDecimal totalCostShipping = BigDecimal.ZERO; BigDecimal totalCostShipping = BigDecimal.ZERO;
if (pickingOrderList != null && pickingOrderList.size() > 0) { if (pickingOrderList != null && pickingOrderList.size() > 0) {
for (PickingOrder pickingOrder : pickingOrderList) { for (PickingOrder pickingOrder : pickingOrderList) {
BigDecimal skuCostShipping = pickingOrder.getCostShipping() != null ? pickingOrder.getCostShipping() : BigDecimal.ZERO; BigDecimal skuCostShipping = pickingOrder.getCostShipping() != null ? pickingOrder.getCostShipping() : BigDecimal.ZERO;
BigDecimal skuCostPackaging = pickingOrder.getCostPackaging() != null ? pickingOrder.getCostPackaging() : BigDecimal.ZERO; BigDecimal skuCostPackaging = pickingOrder.getCostPackaging() != null ? pickingOrder.getCostPackaging() : BigDecimal.ZERO;
BigDecimal outboundWeight = pickingOrder.getOutboundWeight() != null ? pickingOrder.getOutboundWeight() : BigDecimal.ZERO; BigDecimal outboundWeight = pickingOrder.getOutboundWeight() != null ? pickingOrder.getOutboundWeight() : BigDecimal.ZERO;
totalCostPackaging = totalCostPackaging.add(skuCostPackaging);//总的第三方操作费 totalCostPackaging = totalCostPackaging.add(skuCostPackaging);//总的第三方操作费
totalCostShipping = totalCostShipping.add(skuCostShipping);//总的第三方发货费用 totalCostShipping = totalCostShipping.add(skuCostShipping);//总的第三方发货费用
List<PickingItem> pickingItems = pickingOrder.getPickingItems(); List<PickingItem> pickingItems = pickingOrder.getPickingItems();
if (pickingItems != null && pickingItems.size() > 0) { if (pickingItems != null && pickingItems.size() > 0) {
for (PickingItem pickingItem : pickingItems) { for (PickingItem pickingItem : pickingItems) {
DcBaseOmsPick dcBaseOmsPick = new DcBaseOmsPick(); DcBaseOmsPick dcBaseOmsPick = new DcBaseOmsPick();
totalShippedSkuPrice = totalShippedSkuPrice.add(skuStructureMap.get(pickingItem.getBailunSku()).getBailunSkuUnitPrice().multiply(pickingItem.getQuantityShipped() != null ? BigDecimal.valueOf(pickingItem.getQuantityShipped()) : BigDecimal.ZERO)); totalShippedSkuPrice = totalShippedSkuPrice.add(skuStructureMap.get(pickingItem.getBailunSku()).getBailunSkuUnitPrice().multiply(pickingItem.getQuantityShipped() != null ? BigDecimal.valueOf(pickingItem.getQuantityShipped()) : BigDecimal.ZERO));
DcBaseOmsSku dcBaseOmsSku = skuStructureMap.get(pickingItem.getBailunSku()).getDcBaseOmsSku(); DcBaseOmsSku dcBaseOmsSku = skuStructureMap.get(pickingItem.getBailunSku()).getDcBaseOmsSku();
BigDecimal weightRatio = skuStructureMap.get(pickingItem.getBailunSku()) != null ? skuStructureMap.get(pickingItem.getBailunSku()).getSkuWeightRatio() : BigDecimal.ONE; BigDecimal weightRatio = skuStructureMap.get(pickingItem.getBailunSku()) != null ? skuStructureMap.get(pickingItem.getBailunSku()).getSkuWeightRatio() : BigDecimal.ONE;
dcBaseOmsPick.setCostPackaging(skuCostPackaging); dcBaseOmsPick.setCostPackaging(skuCostPackaging);
dcBaseOmsPick.setCostShipping(skuCostShipping); dcBaseOmsPick.setCostShipping(skuCostShipping);
dcBaseOmsPick.setOutboundWeight(outboundWeight); dcBaseOmsPick.setOutboundWeight(outboundWeight);
dcBaseOmsPick.setBailunSkuCostPackaging(skuCostPackaging.multiply(weightRatio).setScale(3, RoundingMode.HALF_EVEN)); dcBaseOmsPick.setBailunSkuCostPackaging(skuCostPackaging.multiply(weightRatio).setScale(3, RoundingMode.HALF_EVEN));
dcBaseOmsPick.setBailunSkuCostShipping(skuCostShipping.multiply(weightRatio).setScale(3, RoundingMode.HALF_EVEN)); dcBaseOmsPick.setBailunSkuCostShipping(skuCostShipping.multiply(weightRatio).setScale(3, RoundingMode.HALF_EVEN));
dcBaseOmsPick.setBailunSkuOutboundWeight(outboundWeight.multiply(weightRatio).setScale(3, RoundingMode.HALF_EVEN)); dcBaseOmsPick.setBailunSkuOutboundWeight(outboundWeight.multiply(weightRatio).setScale(3, RoundingMode.HALF_EVEN));
dcBaseOmsPick.setBailunSku(pickingItem.getBailunSku()); dcBaseOmsPick.setBailunSku(pickingItem.getBailunSku());
dcBaseOmsPick.setQuantityPicked(pickingItem.getQuantityPicked()); dcBaseOmsPick.setQuantityPicked(pickingItem.getQuantityPicked());
dcBaseOmsPick.setQuantityShipped(pickingItem.getQuantityShipped()); dcBaseOmsPick.setQuantityShipped(pickingItem.getQuantityShipped());
dcBaseOmsPick.setDeclarePrice(pickingItem.getDeclarePrice()); dcBaseOmsPick.setDeclarePrice(pickingItem.getDeclarePrice());
dcBaseOmsPick.setOriginOrderId(omsResult.getOriginOrderId()); dcBaseOmsPick.setOriginOrderId(omsResult.getOriginOrderId());
dcBaseOmsPick.setBailunAccountId(omsResult.getSeller().getBailunAccountId()); dcBaseOmsPick.setBailunAccountId(omsResult.getSeller().getBailunAccountId());
dcBaseOmsPick.setBailunOrderId(omsResult.getBailunOrderId()); dcBaseOmsPick.setBailunOrderId(omsResult.getBailunOrderId());
if (pickingOrder.getLogistics() != null) { if (pickingOrder.getLogistics() != null) {
dcBaseOmsPick.setLogisticsOrderId(pickingOrder.getLogistics().getLogisticsCode()); dcBaseOmsPick.setLogisticsOrderId(pickingOrder.getLogistics().getLogisticsCode());
dcBaseOmsPick.setLogisticsOrderName(pickingOrder.getLogistics().getLogisticsName()); dcBaseOmsPick.setLogisticsOrderName(pickingOrder.getLogistics().getLogisticsName());
} }
dcBaseOmsPick.setCreateTime(pickingOrder.getCreateTime()); dcBaseOmsPick.setCreateTime(pickingOrder.getCreateTime());
dcBaseOmsPick.setShippingTime(pickingOrder.getShippingTime()); dcBaseOmsPick.setShippingTime(pickingOrder.getShippingTime());
if (pickingOrder.getWarehouse() != null) { if (pickingOrder.getWarehouse() != null) {
dcBaseOmsPick.setWarehouseCode(pickingOrder.getWarehouse().getWarehouseCode()); dcBaseOmsPick.setWarehouseCode(pickingOrder.getWarehouse().getWarehouseCode());
dcBaseOmsPick.setWarehouseName(pickingOrder.getWarehouse().getWarehouseName()); dcBaseOmsPick.setWarehouseName(pickingOrder.getWarehouse().getWarehouseName());
} }
dcBaseOmsPick.setPickOrderId(pickingOrder.getPickOrderId()); dcBaseOmsPick.setPickOrderId(pickingOrder.getPickOrderId());
dcBaseOmsPick.setShippingStatus(pickingOrder.getShippingStatus()); dcBaseOmsPick.setShippingStatus(pickingOrder.getShippingStatus());
dcBaseOmsPick.setTrackingOrderId(pickingOrder.getTrackingOrderId()); dcBaseOmsPick.setTrackingOrderId(pickingOrder.getTrackingOrderId());
dcBaseOmsPick.setTrackingProvider(pickingOrder.getTrackingProvider()); dcBaseOmsPick.setTrackingProvider(pickingOrder.getTrackingProvider());
dcBaseOmsSku.setBailunSkuQuantityShipped(dcBaseOmsSku.getBailunSkuQuantityShipped() != null ? dcBaseOmsSku.getBailunSkuQuantityShipped() + dcBaseOmsPick.getQuantityShipped() : dcBaseOmsPick.getQuantityShipped()); dcBaseOmsSku.setBailunSkuQuantityShipped(dcBaseOmsSku.getBailunSkuQuantityShipped() != null ? dcBaseOmsSku.getBailunSkuQuantityShipped() + dcBaseOmsPick.getQuantityShipped() : dcBaseOmsPick.getQuantityShipped());
dcBaseOmsSku.setBailunSkuQuantityPicked(dcBaseOmsSku.getBailunSkuQuantityPicked() != null ? dcBaseOmsSku.getBailunSkuQuantityPicked() + dcBaseOmsPick.getQuantityPicked() : dcBaseOmsPick.getQuantityPicked()); dcBaseOmsSku.setBailunSkuQuantityPicked(dcBaseOmsSku.getBailunSkuQuantityPicked() != null ? dcBaseOmsSku.getBailunSkuQuantityPicked() + 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()); dcBaseOmsSku.setCostTail(dcBaseOmsSku.getCostTail() != null ? dcBaseOmsSku.getCostTail().add(dcBaseOmsPick.getBailunSkuCostShipping()) : dcBaseOmsPick.getBailunSkuCostShipping());
try { try {
DcBaseOmsPickMapper mapper = SessionUtil.getSession().getMapper(DcBaseOmsPickMapper.class); DcBaseOmsPickMapper mapper = SessionUtil.getSession().getMapper(DcBaseOmsPickMapper.class);
int i = mapper.updateByExampleSelective(dcBaseOmsPick, DcBaseOmsPickExample.newAndCreateCriteria().andOriginOrderIdEqualTo(dcBaseOmsPick.getOriginOrderId()) int i = mapper.updateByExampleSelective(dcBaseOmsPick, DcBaseOmsPickExample.newAndCreateCriteria().andOriginOrderIdEqualTo(dcBaseOmsPick.getOriginOrderId())
.andBailunAccountIdEqualTo(dcBaseOmsPick.getBailunAccountId()).andPickOrderIdEqualTo(dcBaseOmsPick.getPickOrderId()).andBailunSkuEqualTo(dcBaseOmsPick.getBailunSku()).example()); .andBailunAccountIdEqualTo(dcBaseOmsPick.getBailunAccountId()).andPickOrderIdEqualTo(dcBaseOmsPick.getPickOrderId()).andBailunSkuEqualTo(dcBaseOmsPick.getBailunSku()).example());
if (i == 0) { if (i == 0) {
mapper.insertSelective(dcBaseOmsPick); mapper.insertSelective(dcBaseOmsPick);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败"); throw new RuntimeException("MYBATIS操作DB失败");
} finally { } finally {
SessionUtil.closeSession(); SessionUtil.closeSession();
}
} }
} }
} }
}
} }
dcBaseOmsOrder.setCostHandlePlatform(totalCostPackaging); dcBaseOmsOrder.setCostHandlePlatform(totalCostPackaging);
...@@ -701,8 +708,6 @@ public class OrderSyncJob extends PointJob { ...@@ -701,8 +708,6 @@ public class OrderSyncJob extends PointJob {
} }
/** /**
* 把OMS订单中的一部分值赋值到百伦订单对象上 * 把OMS订单中的一部分值赋值到百伦订单对象上
* *
...@@ -764,7 +769,7 @@ public class OrderSyncJob extends PointJob { ...@@ -764,7 +769,7 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsOrder.setWebsite(omsResult.getWebsite()); dcBaseOmsOrder.setWebsite(omsResult.getWebsite());
dcBaseOmsOrder.setPlatformOrderType(omsResult.getPlatformOrderType()); dcBaseOmsOrder.setPlatformOrderType(omsResult.getPlatformOrderType());
dcBaseOmsOrder.setCreateTime(omsResult.getCreateTime()); dcBaseOmsOrder.setCreateTime(omsResult.getCreateTime());
dcBaseOmsOrder.setPaidTime(omsResult.getPaidTime() != null?omsResult.getPaidTime() : omsResult.getCreateTime()); dcBaseOmsOrder.setPaidTime(omsResult.getPaidTime() != null ? omsResult.getPaidTime() : omsResult.getCreateTime());
dcBaseOmsOrder.setPlatformOrderStatus(omsResult.getPlatformOrderStatus()); dcBaseOmsOrder.setPlatformOrderStatus(omsResult.getPlatformOrderStatus());
dcBaseOmsOrder.setBailunOrderStatus(omsResult.getBailunOrderStatus()); dcBaseOmsOrder.setBailunOrderStatus(omsResult.getBailunOrderStatus());
dcBaseOmsOrder.setBailunInterceptionStatus(omsResult.getBailunInterceptionStatus()); dcBaseOmsOrder.setBailunInterceptionStatus(omsResult.getBailunInterceptionStatus());
...@@ -857,7 +862,7 @@ public class OrderSyncJob extends PointJob { ...@@ -857,7 +862,7 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsSku.setWebsite(omsResult.getWebsite()); dcBaseOmsSku.setWebsite(omsResult.getWebsite());
dcBaseOmsSku.setPlatformOrderType(omsResult.getPlatformOrderType()); dcBaseOmsSku.setPlatformOrderType(omsResult.getPlatformOrderType());
dcBaseOmsSku.setCreateTime(omsResult.getCreateTime()); dcBaseOmsSku.setCreateTime(omsResult.getCreateTime());
dcBaseOmsSku.setPaidTime(omsResult.getPaidTime() != null? omsResult.getPaidTime() : omsResult.getCreateTime()); dcBaseOmsSku.setPaidTime(omsResult.getPaidTime() != null ? omsResult.getPaidTime() : omsResult.getCreateTime());
dcBaseOmsSku.setPlatformOrderStatus(omsResult.getPlatformOrderStatus()); dcBaseOmsSku.setPlatformOrderStatus(omsResult.getPlatformOrderStatus());
dcBaseOmsSku.setBailunOrderStatus(omsResult.getBailunOrderStatus()); dcBaseOmsSku.setBailunOrderStatus(omsResult.getBailunOrderStatus());
dcBaseOmsSku.setShippingStatus(omsResult.getBailunShippingStatus()); dcBaseOmsSku.setShippingStatus(omsResult.getBailunShippingStatus());
......
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