Commit 87d6516b by yong

跑下周系数

parent b0e092b1
...@@ -2673,7 +2673,7 @@ ...@@ -2673,7 +2673,7 @@
sum(case when week(t2.PayTimeUtc) = 51 then t1.QuantityOrdered else 0 end) as 'fiftyOneWeekSales', sum(case when week(t2.PayTimeUtc) = 51 then t1.QuantityOrdered else 0 end) as 'fiftyOneWeekSales',
sum(case when week(t2.PayTimeUtc) = 52 then t1.QuantityOrdered else 0 end) as 'fiftyTwoWeekSales' sum(case when week(t2.PayTimeUtc) = 52 then t1.QuantityOrdered else 0 end) as 'fiftyTwoWeekSales'
FROM order_proskuitem t1 FROM order_proskuitem t1
left join bailun_order t2 on t1.BailunOrderId = t2.BailunOrderNo left join bailun_order t2 on t1.BailunOrderId = t2.id
where t2.PayTimeUtc >= '2018-01-01 00:00:00' where t2.PayTimeUtc >= '2018-01-01 00:00:00'
and t2.PayTimeUtc <= '2018-12-31 23:59:59' and t2.PayTimeUtc <= '2018-12-31 23:59:59'
and t1.SkuNo = #{bailunSku} and t1.SkuNo = #{bailunSku}
......
...@@ -2,6 +2,7 @@ package com.bailuntec; ...@@ -2,6 +2,7 @@ package com.bailuntec;
import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSource;
import com.bailuntec.job.CalculateSalesJob; import com.bailuntec.job.CalculateSalesJob;
import com.bailuntec.job.CalculateWeekJob;
import com.bailuntec.listener.CalculateSalesListener; import com.bailuntec.listener.CalculateSalesListener;
import com.bailuntec.utils.PropertiesUtil; import com.bailuntec.utils.PropertiesUtil;
import com.dangdang.ddframe.job.config.JobCoreConfiguration; import com.dangdang.ddframe.job.config.JobCoreConfiguration;
...@@ -26,6 +27,7 @@ public class Application { ...@@ -26,6 +27,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 CalculateSalesListener()).init(); new JobScheduler(createRegistryCenter(), createJobConfiguration(),createJobEventConfiguration(), new CalculateSalesListener()).init();
new JobScheduler(createRegistryCenter(), createJobConfiguration1(),createJobEventConfiguration(), new CalculateSalesListener()).init();
} }
private static CoordinatorRegistryCenter createRegistryCenter() { private static CoordinatorRegistryCenter createRegistryCenter() {
...@@ -41,6 +43,13 @@ public class Application { ...@@ -41,6 +43,13 @@ public class Application {
return simpleJobRootConfig; return simpleJobRootConfig;
} }
private static LiteJobConfiguration createJobConfiguration1() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(propertiesUtil.getPropertyAsString("JOB_WEEK_NAME"), propertiesUtil.getPropertyAsString("JOB_WEEK_CRON"), propertiesUtil.getPropertyAsInt("SHARDING_TOTAL_COUNT")).build();
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, CalculateWeekJob.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());
return jobEventRdbConfig; return jobEventRdbConfig;
......
package com.bailuntec.job; package com.bailuntec.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.bailuntec.domain.dto.SalesVolumeWeekDTO; import com.bailuntec.domain.dto.SalesVolumeWeekDTO;
import com.bailuntec.domain.entity.DcAutoWeekSales; import com.bailuntec.domain.entity.DcAutoWeekSales;
import com.bailuntec.domain.entity.DcBaseStock; import com.bailuntec.domain.entity.DcBaseStock;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.domain.example.DcBaseStockExample; import com.bailuntec.domain.example.DcBaseStockExample;
import com.bailuntec.mapper.DcAutoSalesMapper; import com.bailuntec.mapper.DcAutoSalesMapper;
import com.bailuntec.mapper.DcAutoWeekSalesMapper; import com.bailuntec.mapper.DcAutoWeekSalesMapper;
import com.bailuntec.mapper.DcBaseStockMapper; import com.bailuntec.mapper.DcBaseStockMapper;
import com.bailuntec.mapper.JobPointLogMapper;
import com.bailuntec.support.PointJob;
import com.bailuntec.utils.ExceptionUtil;
import com.bailuntec.utils.SessionUtil; import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.Calendar; import java.util.Calendar;
import java.util.List; import java.util.List;
public class CalculateWeekService { public class CalculateWeekJob extends PointJob {
public void autoTurnoverFromStock() { /*public void autoTurnoverFromStock() {
try{ try{
int pageSize = 1000; int pageSize = 1000;
DcBaseStockMapper baseStockMapper = SessionUtil.getSession().getMapper(DcBaseStockMapper.class); DcBaseStockMapper baseStockMapper = SessionUtil.getSession().getMapper(DcBaseStockMapper.class);
...@@ -53,7 +57,7 @@ public class CalculateWeekService { ...@@ -53,7 +57,7 @@ public class CalculateWeekService {
}finally { }finally {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
} }*/
public void calculateWeekRate(SalesVolumeWeekDTO salesVolumeWeekDTO) { public void calculateWeekRate(SalesVolumeWeekDTO salesVolumeWeekDTO) {
try{ try{
...@@ -93,4 +97,57 @@ public class CalculateWeekService { ...@@ -93,4 +97,57 @@ public class CalculateWeekService {
cal.get(Calendar.DAY_OF_MONTH); cal.get(Calendar.DAY_OF_MONTH);
} }
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
try{
int pageSize = 1000;
DcBaseStockMapper baseStockMapper = SessionUtil.getSession().getMapper(DcBaseStockMapper.class);
long count = baseStockMapper.countByExample(DcBaseStockExample.newAndCreateCriteria().andWarehouseCodeEqualTo("GZBLWH").example());
int totalPage = (int)(count % jobPointLog.getPageSize() == 0 ? count/jobPointLog.getPageSize() : count/jobPointLog.getPageSize() + 1);
int page = 0;
do{
List<DcBaseStock> dcBaseStockList = null;//分页查SKU_仓库
if (jobPointLog.getPageIndex().equals(0)) {
jobPointLog.setPageIndex(totalPage);
}
try {
DcBaseStockMapper baseStockMapperFor = SessionUtil.getSession().getMapper(DcBaseStockMapper.class);
dcBaseStockList = baseStockMapperFor.listStockById(page*pageSize, pageSize);
DcAutoSalesMapper autoSalesMapper = null;
if (dcBaseStockList != null && dcBaseStockList.size() > 0) {
for (DcBaseStock dcBaseStock : dcBaseStockList) {
autoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class);
SalesVolumeWeekDTO salesVolumeWeekDTO = autoSalesMapper.getSalesVolumeWeekDTO(dcBaseStock.getBailunSku(), dcBaseStock.getWarehouseCode());
if(StringUtils.isNotEmpty(salesVolumeWeekDTO.getSalesDetail().trim())) {
calculateWeekRate(salesVolumeWeekDTO);
}
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
SessionUtil.closeSession();
}
if (jobPointLog.getPageIndex() % 10 == 0) {
try {
JobPointLogMapper mapper = SessionUtil.getSession().getMapper(JobPointLogMapper.class);
mapper.upsertSelective(jobPointLog);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(ExceptionUtil.transform(e), e);
} finally {
SessionUtil.closeSession();
}
}
jobPointLog.setPageIndex(jobPointLog.getPageIndex() - 1);
}while(0 < jobPointLog.getPageIndex());
jobPointLog.setPageIndex(0);
}catch (Exception e){
e.printStackTrace();
}finally {
SessionUtil.closeSession();
}
}
} }
...@@ -11,4 +11,6 @@ ZOOKEEPER_SERVER=172.31.255.120:2181 ...@@ -11,4 +11,6 @@ ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center NAME_SPACE=data-center
JOB_NAME=mid-calculate-sales JOB_NAME=mid-calculate-sales
JOB_CRON=0 0 1 * * ? * JOB_CRON=0 0 1 * * ? *
JOB_WEEK_NAME=mid-calculate-weeksales
JOB_WEEK_CRON=0 0 09 20 11 ? 2019
SHARDING_TOTAL_COUNT=1 SHARDING_TOTAL_COUNT=1
\ 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