Commit d594a1ff by wutong

自动周转新增按仓库类型和仓库编码跑周转数据.

parent d2a3b199
...@@ -26,6 +26,7 @@ public class Application { ...@@ -26,6 +26,7 @@ public class Application {
private static final String EVENT_RDB_STORAGE_PASSWORD = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_PASSWORD"); private static final String EVENT_RDB_STORAGE_PASSWORD = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_PASSWORD");
public static void main(String[] args) { public static void main(String[] args) {
new JobScheduler(createRegistryCenter(), createJobConfiguration(),createJobEventConfiguration(), new AutoTurnoverJobListener()).init(); new JobScheduler(createRegistryCenter(), createJobConfiguration(),createJobEventConfiguration(), new AutoTurnoverJobListener()).init();
new JobScheduler(createRegistryCenter(), createJobConfigurationParam(),createJobEventConfiguration(), new AutoTurnoverJobListener()).init();
} }
private static CoordinatorRegistryCenter createRegistryCenter() { private static CoordinatorRegistryCenter createRegistryCenter() {
...@@ -40,6 +41,12 @@ public class Application { ...@@ -40,6 +41,12 @@ public class Application {
LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build(); LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();
return simpleJobRootConfig; return simpleJobRootConfig;
} }
private static LiteJobConfiguration createJobConfigurationParam() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(propertiesUtil.getPropertyAsString("JOB_NAME_PARAM"), propertiesUtil.getPropertyAsString("JOB_CRON_PARAM"), propertiesUtil.getPropertyAsInt("SHARDING_TOTAL_COUNT_PARAM")).build();
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, AutoTurnoverJob.class.getCanonicalName());
LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();
return simpleJobRootConfig;
}
private static JobEventConfiguration createJobEventConfiguration() { private static JobEventConfiguration createJobEventConfiguration() {
JobEventConfiguration jobEventRdbConfig = new JobEventRdbConfiguration(setUpEventTraceDataSource()); JobEventConfiguration jobEventRdbConfig = new JobEventRdbConfiguration(setUpEventTraceDataSource());
......
...@@ -2,6 +2,7 @@ package com.bailuntec.job; ...@@ -2,6 +2,7 @@ package com.bailuntec.job;
import com.bailuntec.domain.dto.SalesVolumeDTO; import com.bailuntec.domain.dto.SalesVolumeDTO;
import com.bailuntec.domain.entity.DcAutoSales; import com.bailuntec.domain.entity.DcAutoSales;
import com.bailuntec.domain.example.DcAutoSalesExample;
import com.bailuntec.domain.pojo.DataNode; import com.bailuntec.domain.pojo.DataNode;
import com.bailuntec.domain.pojo.LinerRegression; import com.bailuntec.domain.pojo.LinerRegression;
import com.bailuntec.mapper.DcAutoSalesMapper; import com.bailuntec.mapper.DcAutoSalesMapper;
...@@ -82,11 +83,13 @@ public class AutoSalesServiceImpl implements AutoSalesService { ...@@ -82,11 +83,13 @@ public class AutoSalesServiceImpl implements AutoSalesService {
dcAutoSales.setFitRVariable(fittingResult[2]); dcAutoSales.setFitRVariable(fittingResult[2]);
try { try {
DcAutoSalesMapper dcAutoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class); DcAutoSalesMapper dcAutoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class);
dcAutoSalesMapper.upsertSelective(dcAutoSales); int i = dcAutoSalesMapper.updateByExampleSelective(dcAutoSales, DcAutoSalesExample.newAndCreateCriteria().andBailunSkuEqualTo(dcAutoSales.getBailunSku()).andWarehouseCodeEqualTo(dcAutoSales.getWarehouseCode()).example());
SessionUtil.getSession().commit(); if (i == 0) {
dcAutoSalesMapper.insertSelective(dcAutoSales);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("Mybatis操作DB失败", e); throw new RuntimeException("Mybatis操作dcAutoSalesDB失败", e);
} finally { } finally {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
......
...@@ -45,7 +45,7 @@ public class AutoTurnoverJob extends PointJob { ...@@ -45,7 +45,7 @@ public class AutoTurnoverJob extends PointJob {
@Override @Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) { public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
long count = getTotalCount(); long count = getTotalCount(shardingContext.getJobParameter());
int totalPage = getTotalPage(count, jobPointLog.getPageSize()); int totalPage = getTotalPage(count, jobPointLog.getPageSize());
/* /*
* 根据不同分片 * 根据不同分片
...@@ -66,7 +66,22 @@ public class AutoTurnoverJob extends PointJob { ...@@ -66,7 +66,22 @@ public class AutoTurnoverJob extends PointJob {
try { try {
DcBaseStockMapper baseStockMapperFor = SessionUtil.getSession().getMapper(DcBaseStockMapper.class); DcBaseStockMapper baseStockMapperFor = SessionUtil.getSession().getMapper(DcBaseStockMapper.class);
//这里是根据id排序,方法名没改了 //这里是根据id排序,方法名没改了
dcBaseStockList = baseStockMapperFor.listOrderByFba(page * jobPointLog.getPageSize(), jobPointLog.getPageSize()); if (StringUtils.isBlank(shardingContext.getJobParameter())) {
dcBaseStockList = baseStockMapperFor.listStockById(page * jobPointLog.getPageSize(), jobPointLog.getPageSize());
} else {
switch (shardingContext.getJobParameter()) {
case "国外仓":
case "FBA仓":
case "海外仓":
case "第三方仓库":
case "耗材仓":
dcBaseStockList = baseStockMapperFor.listParameterStockById(shardingContext.getJobParameter(),page * jobPointLog.getPageSize(), jobPointLog.getPageSize());
break;
default:
dcBaseStockList = baseStockMapperFor.listWarehouseStockById(shardingContext.getJobParameter(),page * jobPointLog.getPageSize(), jobPointLog.getPageSize());
}
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("Mybatis操作DB分页查询失败", e); throw new RuntimeException("Mybatis操作DB分页查询失败", e);
...@@ -97,10 +112,23 @@ public class AutoTurnoverJob extends PointJob { ...@@ -97,10 +112,23 @@ public class AutoTurnoverJob extends PointJob {
} }
private long getTotalCount() { private long getTotalCount(String jobParameter) {
try { try {
DcBaseStockMapper baseStockMapper = SessionUtil.getSession().getMapper(DcBaseStockMapper.class); DcBaseStockMapper baseStockMapper = SessionUtil.getSession().getMapper(DcBaseStockMapper.class);
return baseStockMapper.countByExample(DcBaseStockExample.newAndCreateCriteria().example()); if (StringUtils.isBlank(jobParameter)) {
return baseStockMapper.countByExample(DcBaseStockExample.newAndCreateCriteria().example());
} else {
switch (jobParameter) {
case "国外仓":
case "FBA仓":
case "海外仓":
case "第三方仓库":
case "耗材仓":
return baseStockMapper.countByParam(jobParameter);
default:
return baseStockMapper.countByWarehouseCode(jobParameter);
}
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("Mybatis操作DB查询总页数失败", e); throw new RuntimeException("Mybatis操作DB查询总页数失败", e);
} finally { } finally {
...@@ -125,7 +153,10 @@ public class AutoTurnoverJob extends PointJob { ...@@ -125,7 +153,10 @@ public class AutoTurnoverJob extends PointJob {
if (StringUtils.isEmpty(salesVolumeDTO.getHistorySales().trim())) { if (StringUtils.isEmpty(salesVolumeDTO.getHistorySales().trim())) {
DcAutoSalesMapper dcAutoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class); DcAutoSalesMapper dcAutoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class);
dcAutoSales = new DcAutoSales(bailunSku, warehouseCode); dcAutoSales = new DcAutoSales(bailunSku, warehouseCode);
dcAutoSalesMapper.upsertSelective(dcAutoSales); int i = dcAutoSalesMapper.updateByExampleSelective(dcAutoSales, DcAutoSalesExample.newAndCreateCriteria().andBailunSkuEqualTo(dcAutoSales.getBailunSku()).andWarehouseCodeEqualTo(dcAutoSales.getWarehouseCode()).example());
if (i == 0) {
dcAutoSalesMapper.insertSelective(dcAutoSales);
}
} else { } else {
dcAutoSales = autoSalesServiceImpl.forecastSalesBySalesVolumeDTO(salesVolumeDTO); dcAutoSales = autoSalesServiceImpl.forecastSalesBySalesVolumeDTO(salesVolumeDTO);
} }
...@@ -1326,44 +1357,6 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1326,44 +1357,6 @@ public class AutoTurnoverJob extends PointJob {
return inventoryAvailableDays; return inventoryAvailableDays;
} }
/**
* 判断 预测冗余, 断货情况,
* 然后放入集合
*
* @param forecastFluctuationList
* @param recordTime
* @param forecastFluctuationDays
* @param forecastFluctuationIndex
*/
private void judgeForecastFluctuation(List<DcAutoForecastFluctuation> forecastFluctuationList, LocalDate
recordTime, int forecastFluctuationDays, int forecastFluctuationIndex) {
DcAutoForecastFluctuation dcAutoForecastFluctuation = forecastFluctuationList.size() > 0 ? forecastFluctuationList.get(0) : null;
if (dcAutoForecastFluctuation != null && dcAutoForecastFluctuation.getType() == 1 && forecastFluctuationDays > 0) {
//已经提醒实际缺货的,预计缺货就不提醒了
handleForecastFluctuation(4, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
} else if (dcAutoForecastFluctuation != null && dcAutoForecastFluctuation.getType() == 3 && forecastFluctuationDays < 0) {
//已经提醒实际冗余的,预计冗余就不提醒了
handleForecastFluctuation(2, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
} else if (dcAutoForecastFluctuation == null && forecastFluctuationDays > 0) {
handleForecastFluctuation(4, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
} else if (dcAutoForecastFluctuation == null && forecastFluctuationDays < 0) {
handleForecastFluctuation(2, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
}
}
private void checkForecastFluctuation(Integer type, List<DcAutoForecastFluctuation> forecastFluctuationList, LocalDate recordTime,
int forecastFluctuationDays, int forecastFluctuationIndex) {
DcAutoForecastFluctuation dcAutoForecastFluctuation = forecastFluctuationList.size() > 0 ? forecastFluctuationList.get(0) : null;
if (dcAutoForecastFluctuation != null && dcAutoForecastFluctuation.getType() == 1 && type != 2) {
//已经提醒实际缺货的,预计缺货就不提醒了
handleForecastFluctuation(type, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
} else if (dcAutoForecastFluctuation != null && dcAutoForecastFluctuation.getType() == 3 && type != 4) {
//已经提醒实际冗余的,预计冗余就不提醒了
handleForecastFluctuation(type, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
} else if (dcAutoForecastFluctuation == null) {
handleForecastFluctuation(type, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
}
}
private void handleForecastFluctuation(Integer type, List<DcAutoForecastFluctuation> forecastFluctuationList, LocalDate recordTime, int forecastFluctuationDays, int forecastFluctuationIndex) { private void handleForecastFluctuation(Integer type, List<DcAutoForecastFluctuation> forecastFluctuationList, LocalDate recordTime, int forecastFluctuationDays, int forecastFluctuationIndex) {
DcAutoForecastFluctuation forecastFluctuation = new DcAutoForecastFluctuation(); DcAutoForecastFluctuation forecastFluctuation = new DcAutoForecastFluctuation();
...@@ -1460,46 +1453,6 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1460,46 +1453,6 @@ public class AutoTurnoverJob extends PointJob {
totalSales = totalSales.add(forecastSalesList.get(j)); totalSales = totalSales.add(forecastSalesList.get(j));
/*
* 如果库存数量 > 安全库存 + 预计销量, 就是预测冗余;
* 如果forecastShortSupplyList.get(j) > 0, 就是预测断货
*/
/*if (j <= turnoverDays && hasMonitorFluctuation) {
if (forecastInventory.compareTo(totalSafeInventory.add(forecastSalesList.get(j))) == -1) {
//预测断货, 需要检查前一天有没有预测冗余
if (forecastFluctuationDays > 0) {
checkForecastFluctuation(4, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
forecastFluctuationDays = 0;
forecastFluctuationIndex = -1;
}
forecastFluctuationDays--;
if (forecastFluctuationIndex == -1) {
forecastFluctuationIndex = j;
}
} else if (forecastInventory.compareTo(totalSafeInventory.add(forecastSalesList.get(j))) == 1) {
//预测冗余, 需要检查前一天有没有预测断货
if (forecastFluctuationDays < 0) {
checkForecastFluctuation(2, forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
forecastFluctuationDays = 0;
forecastFluctuationIndex = -1;
}
forecastFluctuationDays++;
if (forecastFluctuationIndex == -1) {
forecastFluctuationIndex = j;
}
} else {
//既不断货又不冗余的情况下, 判断forecastFluctuationDays,forecastFluctuationIndex
judgeForecastFluctuation(forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
forecastFluctuationDays = 0;
forecastFluctuationIndex = -1;
}
if (j == turnoverDays) {
judgeForecastFluctuation(forecastFluctuationList, recordTime, forecastFluctuationDays, forecastFluctuationIndex);
forecastFluctuationDays = 0;
forecastFluctuationIndex = -1;
}
}*/
//--------- 预测冗余, 预测断货 ---end
} }
return inventoryAvailableDays; return inventoryAvailableDays;
} }
...@@ -1510,7 +1463,6 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1510,7 +1463,6 @@ public class AutoTurnoverJob extends PointJob {
* *
* @param bailunSku * @param bailunSku
* @param warehouseCode * @param warehouseCode
* @param bailunFirstLevelCatagoryId
* @return * @return
*/ */
private DcAutoConfigDelivery getDcAutoConfigDelivery(String bailunSku, String warehouseCode, DcBaseWarehouse dcBaseWarehouse) { private DcAutoConfigDelivery getDcAutoConfigDelivery(String bailunSku, String warehouseCode, DcBaseWarehouse dcBaseWarehouse) {
...@@ -1641,7 +1593,10 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1641,7 +1593,10 @@ public class AutoTurnoverJob extends PointJob {
dcAutoShortSupply.setDetails(forecastShortSupplyList.toString()); dcAutoShortSupply.setDetails(forecastShortSupplyList.toString());
try { try {
DcAutoShortSupplyMapper autoShortSupplyMapper = SessionUtil.getSession().getMapper(DcAutoShortSupplyMapper.class); DcAutoShortSupplyMapper autoShortSupplyMapper = SessionUtil.getSession().getMapper(DcAutoShortSupplyMapper.class);
autoShortSupplyMapper.upsertSelective(dcAutoShortSupply); int i = autoShortSupplyMapper.updateByExampleSelective(dcAutoShortSupply, DcAutoShortSupplyExample.newAndCreateCriteria().andBailunSkuEqualTo(dcAutoShortSupply.getBailunSku()).andWarehouseCodeEqualTo(dcAutoShortSupply.getWarehouseCode()).example());
if (i == 0) {
autoShortSupplyMapper.insertSelective(dcAutoShortSupply);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("Mybatis操作DB失败", e); throw new RuntimeException("Mybatis操作DB失败", e);
...@@ -1693,7 +1648,10 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1693,7 +1648,10 @@ public class AutoTurnoverJob extends PointJob {
dcAutoInbound.setForecastThirtydayInbound(forecastInboundList.get(30)); dcAutoInbound.setForecastThirtydayInbound(forecastInboundList.get(30));
try { try {
DcAutoInboundMapper autoInboundMapper = SessionUtil.getSession().getMapper(DcAutoInboundMapper.class); DcAutoInboundMapper autoInboundMapper = SessionUtil.getSession().getMapper(DcAutoInboundMapper.class);
autoInboundMapper.upsertSelective(dcAutoInbound); int i = autoInboundMapper.updateByExampleSelective(dcAutoInbound, DcAutoInboundExample.newAndCreateCriteria().andBailunSkuEqualTo(dcAutoInbound.getBailunSku()).andWarehouseCodeEqualTo(dcAutoInbound.getWarehouseCode()).example());
if (i == 0) {
autoInboundMapper.insertSelective(dcAutoInbound);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("Mybatis操作DB失败", e); throw new RuntimeException("Mybatis操作DB失败", e);
...@@ -1744,7 +1702,10 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1744,7 +1702,10 @@ public class AutoTurnoverJob extends PointJob {
dcAutoInventory.setDetails(forecastInventoryList.toString()); dcAutoInventory.setDetails(forecastInventoryList.toString());
try { try {
DcAutoInventoryMapper dcAutoInventoryMapper = SessionUtil.getSession().getMapper(DcAutoInventoryMapper.class); DcAutoInventoryMapper dcAutoInventoryMapper = SessionUtil.getSession().getMapper(DcAutoInventoryMapper.class);
dcAutoInventoryMapper.upsertSelective(dcAutoInventory); int i = dcAutoInventoryMapper.updateByExampleSelective(dcAutoInventory, DcAutoInventoryExample.newAndCreateCriteria().andBailunSkuEqualTo(dcAutoInventory.getBailunSku()).andWarehouseCodeEqualTo(dcAutoInventory.getWarehouseCode()).example());
if (i == 0) {
dcAutoInventoryMapper.insertSelective(dcAutoInventory);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("Mybatis操作DB失败", e); throw new RuntimeException("Mybatis操作DB失败", e);
......
...@@ -25,12 +25,14 @@ public class AutoTurnoverJobListener implements ElasticJobListener { ...@@ -25,12 +25,14 @@ public class AutoTurnoverJobListener implements ElasticJobListener {
public void beforeJobExecuted(ShardingContexts shardingContexts) { public void beforeJobExecuted(ShardingContexts shardingContexts) {
try { try {
DcAutoTurnoverMapper autoTurnoverMapper = SessionUtil.getSession().getMapper(DcAutoTurnoverMapper.class); DcAutoTurnoverMapper autoTurnoverMapper = SessionUtil.getSession().getMapper(DcAutoTurnoverMapper.class);
autoTurnoverMapper.truncateAutoInboundTable(); if ( shardingContexts.getJobName().equals("show-auto-turnover")) {
autoTurnoverMapper.truncateAutoInventoryTable(); autoTurnoverMapper.truncateAutoInboundTable();
autoTurnoverMapper.truncateAutoShortSupplyTable(); autoTurnoverMapper.truncateAutoInventoryTable();
autoTurnoverMapper.truncateAutoTurnoverTable(); autoTurnoverMapper.truncateAutoShortSupplyTable();
autoTurnoverMapper.truncateAutoSalesTable(); autoTurnoverMapper.truncateAutoTurnoverTable();
autoTurnoverMapper.truncateAutoExceptionTable(); autoTurnoverMapper.truncateAutoSalesTable();
autoTurnoverMapper.truncateAutoExceptionTable();
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("Mybatis操作DB失败", e); throw new RuntimeException("Mybatis操作DB失败", e);
...@@ -46,7 +48,6 @@ public class AutoTurnoverJobListener implements ElasticJobListener { ...@@ -46,7 +48,6 @@ public class AutoTurnoverJobListener implements ElasticJobListener {
int pageSize = 1000; int pageSize = 1000;
AutoTurnoverJob autoTurnoverJob = new AutoTurnoverJob(); AutoTurnoverJob autoTurnoverJob = new AutoTurnoverJob();
List<DcAutoException> dcAutoExceptions = null; List<DcAutoException> dcAutoExceptions = null;
SqlSession sqlSession = SessionUtil.getFactory().openSession(true); SqlSession sqlSession = SessionUtil.getFactory().openSession(true);
try { try {
DcAutoExceptionMapper mapper = sqlSession.getMapper(DcAutoExceptionMapper.class); DcAutoExceptionMapper mapper = sqlSession.getMapper(DcAutoExceptionMapper.class);
......
...@@ -122,10 +122,15 @@ public interface DcBaseStockMapper { ...@@ -122,10 +122,15 @@ public interface DcBaseStockMapper {
*/ */
int upsertSelective(DcBaseStock record); int upsertSelective(DcBaseStock record);
List<DcBaseStock> listStockById(@Param("v1") int v1, @Param("v2") int v2);
List<DcBaseStock> listNoChinaWarehouse(@Param("v1") int v1, @Param("v2") int v2); List<DcBaseStock> listParameterStockById(@Param("jobParameter")String jobParameter,@Param("v1") int v1, @Param("v2") int v2);
List<DcBaseStock> listOrderByFba(@Param("v1") int v1, @Param("v2") int v2); List<DcBaseStock> listWarehouseStockById(@Param("warehouseCode")String warehouseCode,@Param("v1") int v1, @Param("v2") int v2);
List<DcBaseStock> listInStockNotInAutoTurnover(); List<DcBaseStock> listInStockNotInAutoTurnover();
long countByParam(@Param("jobParameter") String jobParameter);
long countByWarehouseCode(@Param("warehouseCode")String warehouseCode);
} }
\ No newline at end of file
...@@ -1198,11 +1198,34 @@ ...@@ -1198,11 +1198,34 @@
SELECT * FROM dc_base_stock tb1 inner join dc_base_warehouse tb2 on tb1.warehouse_code = tb2.warehouse_code and tb2.hq_type in ('FBA仓','海外仓','第三方仓库') order by type_id desc limit #{v1}, #{v2} SELECT * FROM dc_base_stock tb1 inner join dc_base_warehouse tb2 on tb1.warehouse_code = tb2.warehouse_code and tb2.hq_type in ('FBA仓','海外仓','第三方仓库') order by type_id desc limit #{v1}, #{v2}
</select> </select>
<select id="listOrderByFba" resultType="com.bailuntec.domain.entity.DcBaseStock"> <select id="listStockById" resultType="com.bailuntec.domain.entity.DcBaseStock">
SELECT * FROM dc_base_stock order by id asc limit #{v1}, #{v2} SELECT * FROM dc_base_stock order by id asc limit #{v1}, #{v2}
</select> </select>
<select id="listParameterStockById" resultType="com.bailuntec.domain.entity.DcBaseStock">
select * from dc_base_stock tb1
left join (select warehouse_code,hq_type from dc_base_warehouse where hq_type=#{jobParameter}) tb2
on tb1.warehouse_code=tb2.warehouse_code where tb2.warehouse_code is not null order by tb1.id asc limit #{v1}, #{v2}
</select>
<select id="listWarehouseStockById" resultType="com.bailuntec.domain.entity.DcBaseStock">
select * from dc_base_stock tb1 where warehouse_code=#{warehouseCode} order by id asc limit #{v1}, #{v2}
</select>
<select id="listInStockNotInAutoTurnover" resultType="com.bailuntec.domain.entity.DcBaseStock"> <select id="listInStockNotInAutoTurnover" resultType="com.bailuntec.domain.entity.DcBaseStock">
SELECT tb1.* FROM dc_base_stock tb1 LEFT JOIN dc_auto_turnover tb2 ON tb1.bailun_sku = tb2.bailun_sku and tb1.warehouse_code = tb2.warehouse_code WHERE tb2.bailun_sku is null; SELECT tb1.* FROM dc_base_stock tb1 LEFT JOIN dc_auto_turnover tb2 ON tb1.bailun_sku = tb2.bailun_sku and tb1.warehouse_code = tb2.warehouse_code WHERE tb2.bailun_sku is null;
</select> </select>
<select id="countByParam" resultType="long">
select count(*)
from dc_base_stock tb1
left join (select warehouse_code,hq_type from dc_base_warehouse where hq_type=#{jobParameter}) tb2
on tb1.warehouse_code=tb2.warehouse_code where tb2.warehouse_code is not null;
</select>
<select id="countByWarehouseCode" resultType="long">
select count(*)
from dc_base_stock tb1
where warehouse_code=#{warehouseCode}
</select>
</mapper> </mapper>
\ No newline at end of file
SKUMS_PARENT_CATEGORIES_URL=http://10.0.6.13:8001/api/BailunCateData/GetMyParentCategories SKUMS_PARENT_CATEGORIES_URL=http://10.0.6.13:8001/api/BailunCateData/GetMyParentCategories
#SKUMS_PARENT_CATEGORIES_URL=http://api.sku.bailuntec.com/api/BailunCateData/GetMyParentCategories #SKUMS_PARENT_CATEGORIES_URL=http://api.sku.bailuntec.com/api/BailunCateData/GetMyParentCategories
TJ_OUT_STOCK_URL=http://tj.bailuntec.com/ApiService/GetNoStockForDataCenter TJ_OUT_STOCK_URL=http://tj.bailuntec.com/ApiService/GetNoStockForDataCenter
\ No newline at end of file
...@@ -11,4 +11,7 @@ ZOOKEEPER_SERVER=172.31.255.120:2181 ...@@ -11,4 +11,7 @@ ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center NAME_SPACE=data-center
JOB_NAME=show-auto-turnover JOB_NAME=show-auto-turnover
JOB_CRON=0 30 0 * * ? * JOB_CRON=0 30 0 * * ? *
SHARDING_TOTAL_COUNT=4 SHARDING_TOTAL_COUNT=8
\ No newline at end of file JOB_NAME_PARAM=show-auto-turnover-param
JOB_CRON_PARAM=0 30 0 * * ? 2099
SHARDING_TOTAL_COUNT_PARAM=8
\ 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