Commit be9ee0c9 by wutong

计算头程费时,如果SKU-仓库找不到, 就取一个公共的均值

parent 2a35c70a
...@@ -267,10 +267,11 @@ public class OrderSyncJob extends PointJob { ...@@ -267,10 +267,11 @@ public class OrderSyncJob extends PointJob {
if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE) && dcBaseOmsSku.getBailunSkuQuantityShipped() > 0) { if (dcBaseWarehouse != null && !dcBaseWarehouse.getHqType().equals(Constant.DOMESTIC_WAREHOUSE) && dcBaseOmsSku.getBailunSkuQuantityShipped() > 0) {
DcMidCostFirstMapper mapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class); DcMidCostFirstMapper mapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class);
DcMidCostFirst dcMidCostFirst = mapper.selectOneByExample(DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseOmsSku.getBailunSku()).andWarehouseCodeEqualTo(dcBaseWarehouse.getWarehouseCode()).example()); DcMidCostFirst dcMidCostFirst = mapper.selectOneByExample(DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseOmsSku.getBailunSku()).andWarehouseCodeEqualTo(dcBaseWarehouse.getWarehouseCode()).example());
if (dcMidCostFirst != null) { if (dcMidCostFirst == null) {
dcBaseOmsSku.setCostFirst(dcMidCostFirst.getCostFirst()); dcMidCostFirst = mapper.selectOneByExample(DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(CommonConstant.COMMON_SKU_WAREHOUSE_COST_FIRST).andWarehouseCodeEqualTo(CommonConstant.COMMON_SKU_WAREHOUSE_COST_FIRST).example());
totalCostFirst = totalCostFirst.add(dcMidCostFirst.getCostFirst().multiply(BigDecimal.valueOf(dcBaseOmsSku.getBailunSkuQuantityShipped())));
} }
dcBaseOmsSku.setCostFirst(dcMidCostFirst.getCostFirst());
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()) {
......
...@@ -24,4 +24,5 @@ public interface CommonConstant { ...@@ -24,4 +24,5 @@ public interface CommonConstant {
// String SKU_URL = "http://api.sku.bailuntec.com/api/ApiCenter/SetData"; // String SKU_URL = "http://api.sku.bailuntec.com/api/ApiCenter/SetData";
String SKU_URL = "http://10.0.6.13:8001/api/ApiCenter/SetData"; String SKU_URL = "http://10.0.6.13:8001/api/ApiCenter/SetData";
BigDecimal BIGDECIMAL_TWO = BigDecimal.valueOf(2); BigDecimal BIGDECIMAL_TWO = BigDecimal.valueOf(2);
String COMMON_SKU_WAREHOUSE_COST_FIRST = "";
} }
...@@ -47,6 +47,15 @@ public class CalculateCostFirstListener implements ElasticJobListener { ...@@ -47,6 +47,15 @@ public class CalculateCostFirstListener implements ElasticJobListener {
} }
index++; index++;
} while (index < skuWarehouseTotalPage); } while (index < skuWarehouseTotalPage);
MidCostFirst midCostFirst = dcMidCostFirstOrderMapper.sumQuantityAndCost();
DcMidCostFirst dcMidCostFirst = new DcMidCostFirst();
dcMidCostFirst.setBailunSku(CommonConstant.COMMON_SKU_WAREHOUSE_COST_FIRST);
dcMidCostFirst.setWarehouseCode(CommonConstant.COMMON_SKU_WAREHOUSE_COST_FIRST);
dcMidCostFirst.setCostFirst(midCostFirst.getTotalCostFirst().divide(BigDecimal.valueOf(midCostFirst.getTotalCount()), 3, RoundingMode.HALF_EVEN));
int i = dcMidCostFirsMapper.updateByExampleSelective(dcMidCostFirst,DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(midCostFirst.getBailunSku()).andWarehouseCodeEqualTo(midCostFirst.getWarehouseCode()).example());
if (i == 0) {
dcMidCostFirsMapper.insertSelective(dcMidCostFirst);
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("在计算头程费到DcMidCostFirst时失败"); throw new RuntimeException("在计算头程费到DcMidCostFirst时失败");
} finally { } finally {
......
...@@ -126,4 +126,6 @@ public interface DcMidCostFirstOrderMapper { ...@@ -126,4 +126,6 @@ public interface DcMidCostFirstOrderMapper {
int countSkuWarehouse(); int countSkuWarehouse();
List<MidCostFirst> listSkuWarehouse(@Param("v1") int v1, @Param("v2") int v2); List<MidCostFirst> listSkuWarehouse(@Param("v1") int v1, @Param("v2") int v2);
MidCostFirst sumQuantityAndCost();
} }
\ No newline at end of file
...@@ -460,4 +460,7 @@ ...@@ -460,4 +460,7 @@
<select id="listSkuWarehouse" resultType="com.bailuntec.domain.pojo.MidCostFirst"> <select id="listSkuWarehouse" resultType="com.bailuntec.domain.pojo.MidCostFirst">
SELECT bailun_sku,warehouse_code,sum(cost_first) as total_cost_first,sum(quantity) as total_count FROM dc_mid_cost_first_order GROUP BY bailun_sku,warehouse_code order by id asc limit #{v1}, #{v2} SELECT bailun_sku,warehouse_code,sum(cost_first) as total_cost_first,sum(quantity) as total_count FROM dc_mid_cost_first_order GROUP BY bailun_sku,warehouse_code order by id asc limit #{v1}, #{v2}
</select> </select>
<select id="sumQuantityAndCost" resultType="com.bailuntec.domain.pojo.MidCostFirst">
SELECT sum(cost_first) as total_cost_first,sum(quantity) as total_count FROM dc_mid_cost_first_order
</select>
</mapper> </mapper>
\ 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