Commit ef874868 by yong

周转优化

parent 66f77c71
...@@ -128,7 +128,7 @@ public interface DcAutoSalesMapper { ...@@ -128,7 +128,7 @@ public interface DcAutoSalesMapper {
*/ */
int upsertSelective(DcAutoSales record); int upsertSelective(DcAutoSales record);
Map<String, BigDecimal> getSalesAvg(@Param("queryTime") String queryTime, @Param("bailunSku") String bailunSku, @Param("warehouseCode") String warehouseCode); BigDecimal getSalesAvg(@Param("queryTime") String queryTime, @Param("bailunSku") String bailunSku, @Param("warehouseCode") String warehouseCode);
SalesVolumeDTO getSalesVolumeDTONoCompare(@Param("queryTime") String queryTime, @Param("bailunSku") String bailunSku, @Param("warehouseCode") String warehouseCode); SalesVolumeDTO getSalesVolumeDTONoCompare(@Param("queryTime") String queryTime, @Param("bailunSku") String bailunSku, @Param("warehouseCode") String warehouseCode);
......
...@@ -2388,10 +2388,10 @@ ...@@ -2388,10 +2388,10 @@
limit 1 limit 1
</select> </select>
<select id="getSalesAvg" resultType="java.util.Map"> <select id="getSalesAvg" resultType="java.math.BigDecimal">
SELECT SELECT
sum(case when pay_time &lt; #{queryTime} and pay_time &gt;= DATE_SUB(#{queryTime}, INTERVAL 7 DAY) then bailun_sku_quantity_ordered else 0 end)/7 as 'sevenSales' , (sum(case when pay_time &lt; #{queryTime} and pay_time &gt;= DATE_SUB(#{queryTime}, INTERVAL 7 DAY) then bailun_sku_quantity_ordered else 0 end)/7 +
sum(case when pay_time &lt; #{queryTime} and pay_time &gt;= DATE_SUB(#{queryTime}, INTERVAL 14 DAY) then bailun_sku_quantity_ordered else 0 end)/14 as 'fourteenSales' sum(case when pay_time &lt; #{queryTime} and pay_time &gt;= DATE_SUB(#{queryTime}, INTERVAL 14 DAY) then bailun_sku_quantity_ordered else 0 end)/14)/2
FROM dc_base_oms_sku_30 FROM dc_base_oms_sku_30
where pay_time &gt;= DATE_SUB(#{queryTime}, INTERVAL 14 DAY) where pay_time &gt;= DATE_SUB(#{queryTime}, INTERVAL 14 DAY)
and pay_time &lt; #{queryTime} and pay_time &lt; #{queryTime}
......
...@@ -56,6 +56,8 @@ public interface DcAutoUprushConfigMapper { ...@@ -56,6 +56,8 @@ public interface DcAutoUprushConfigMapper {
*/ */
DcAutoUprushConfig selectOneByExample(DcAutoUprushConfigExample example); DcAutoUprushConfig selectOneByExample(DcAutoUprushConfigExample example);
DcAutoUprushConfig selectOneByWarehouse(@Param("warehouseCode") String warehouseCode, @Param("hqType") String hqType);
/** /**
* This method was generated by MyBatis Generator. * This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_uprush_config * This method corresponds to the database table dc_auto_uprush_config
......
...@@ -347,4 +347,18 @@ ...@@ -347,4 +347,18 @@
</if> </if>
limit 1 limit 1
</select> </select>
<select id="selectOneByWarehouse" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from dc_auto_uprush_config
where 1 = 1
<if test="warehouseCode != null and warehouseCode != ''">
and warehouse_code = #{warehouseCode}
</if>
<if test="hqType != null and hqType != ''">
and hq_type = #{hqType}
</if>
order by warehouse_code desc limit 1
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -146,6 +146,7 @@ public class AutoTurnoverJob extends PointJob { ...@@ -146,6 +146,7 @@ public class AutoTurnoverJob extends PointJob {
* @throws Exception * @throws Exception
*/ */
public void autoTurnoverFromStock(String queryTime, DcBaseStock dcBaseStock) throws Exception { public void autoTurnoverFromStock(String queryTime, DcBaseStock dcBaseStock) throws Exception {
Long st = System.currentTimeMillis();
String bailunSku = dcBaseStock.getBailunSku(); String bailunSku = dcBaseStock.getBailunSku();
String warehouseCode = dcBaseStock.getWarehouseCode(); String warehouseCode = dcBaseStock.getWarehouseCode();
DcAutoSales dcAutoSales = null; DcAutoSales dcAutoSales = null;
...@@ -160,18 +161,16 @@ public class AutoTurnoverJob extends PointJob { ...@@ -160,18 +161,16 @@ public class AutoTurnoverJob extends PointJob {
SalesVolumeDTO salesVolumeDTO = null; SalesVolumeDTO salesVolumeDTO = null;
autoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class); autoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class);
// 获取7、14日均销量 // 获取7、14日均销量
Map<String, BigDecimal> map = autoSalesMapper.getSalesAvg(queryTime, bailunSku, warehouseCode); BigDecimal agvSales = autoSalesMapper.getSalesAvg(queryTime, bailunSku, warehouseCode);
DcAutoUprushConfigMapper dcAutoUprushConfigMapper = SessionUtil.getSession().getMapper(DcAutoUprushConfigMapper.class); DcAutoUprushConfigMapper dcAutoUprushConfigMapper = SessionUtil.getSession().getMapper(DcAutoUprushConfigMapper.class);
// 获取仓库突增配置 DcAutoUprushConfig dcAutoUprushConfig = null;
DcAutoUprushConfig dcAutoUprushConfig = dcAutoUprushConfigMapper.selectOneByExample(DcAutoUprushConfigExample.newAndCreateCriteria().andWarehouseCodeEqualTo(warehouseCode).example()); if(dcBaseWarehouse != null) {
if(dcAutoUprushConfig == null && dcBaseWarehouse != null) { dcAutoUprushConfig = dcAutoUprushConfigMapper.selectOneByWarehouse(warehouseCode, dcBaseWarehouse.getHqType());
// 获取仓库类型突增配置
dcAutoUprushConfig = dcAutoUprushConfigMapper.selectOneByExample(DcAutoUprushConfigExample.newAndCreateCriteria().andHqTypeEqualTo(dcBaseWarehouse.getHqType()).example());
} }
if(dcAutoUprushConfig != null && map != null) { if(dcAutoUprushConfig != null && agvSales != null) {
// 突增销量 = (7+14日均销量)/2 * 突增率 // 突增销量 = (7+14日均销量)/2 * 突增率
incrementalRatio = incrementalRatio.add(dcAutoUprushConfig.getPercentage()); incrementalRatio = incrementalRatio.add(dcAutoUprushConfig.getPercentage());
compareSales = (map.get("sevenSales").add(map.get("fourteenSales"))).divide(BigDecimal.valueOf(2), RoundingMode.HALF_EVEN).multiply(incrementalRatio).setScale(0, RoundingMode.UP).intValue(); compareSales = agvSales.multiply(incrementalRatio).setScale(0, RoundingMode.UP).intValue();
} }
autoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class); autoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class);
if(compareSales == 0) { if(compareSales == 0) {
...@@ -198,7 +197,12 @@ public class AutoTurnoverJob extends PointJob { ...@@ -198,7 +197,12 @@ public class AutoTurnoverJob extends PointJob {
} finally { } finally {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
Long st1 = System.currentTimeMillis();
autoTurnoverUseDcAutoSales(bailunSku, warehouseCode, dcAutoSales, dcBaseStock, dcBaseWarehouse, dcAutoWarehouseweekSales); autoTurnoverUseDcAutoSales(bailunSku, warehouseCode, dcAutoSales, dcBaseStock, dcBaseWarehouse, dcAutoWarehouseweekSales);
Long st2 = System.currentTimeMillis();
if(st2-st > 6000) {
System.out.println("sku:"+ bailunSku + "warehouse:"+ warehouseCode + String.valueOf(st1 - st) + String.valueOf(st2-st));
}
} }
/* /*
......
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