From c671aa0fceeba98e4ab449c7009e59f5a6a10c04 Mon Sep 17 00:00:00 2001 From: songyunpeng Date: Thu, 6 May 2021 16:29:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScreenProjectDataPushDayTaskImpl.java | 97 ++---------- .../task/screen/ScreenProjectPushTask.java | 19 +++ .../screen/ScreenProjectPushTaskImpl.java | 140 ++++++++++++++++++ 3 files changed, 170 insertions(+), 86 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTask.java create mode 100644 esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTaskImpl.java diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectDataPushDayTaskImpl.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectDataPushDayTaskImpl.java index 73cf2609..929e4105 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectDataPushDayTaskImpl.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectDataPushDayTaskImpl.java @@ -41,7 +41,7 @@ public class ScreenProjectDataPushDayTaskImpl implements ScreenProjectDataMonthP @Override public void run(String param) { - for (int i = 0; i < 14; i++) { + for (int i = 0; i < 12; i++) { createThread(i); } } @@ -55,38 +55,34 @@ public class ScreenProjectDataPushDayTaskImpl implements ScreenProjectDataMonthP projectGridDaily(); } else if (methodIndex == 1) { projectOrgDaily(); - } else if (methodIndex == 2) { - uploadProjectInfo(); - } else if (methodIndex == 3) { - uploadProjectProcess(); - } else if (methodIndex == 4) { + } else if (methodIndex == 2) { //001、基层党建-党员基本情况 customerCpcbasedata(); - } else if (methodIndex == 5) { + } else if (methodIndex == 3) { //002、党建引领-先锋模范数据 customerPioneerdata(); - } else if (methodIndex == 6) { + } else if (methodIndex == 4) { //003、党建引领-党员联系群众数据 customerPartylinkmassesdata(); - } else if (methodIndex == 7) { + } else if (methodIndex == 5) { //005、党建引领|基层治理-居民(党员)积分排行榜 customerPartyuserrankdata(); - } else if (methodIndex == 8) { + } else if (methodIndex == 6) { //006、基层治理-难点赌点项目上报 customerDifficultydata(); - } else if (methodIndex == 9) { + } else if (methodIndex == 7) { // 008、公众参与各类总数 customerPublicpartitotaldata(); - } else if (methodIndex == 10) { + } else if (methodIndex == 8) { // 010、中央区各类总数 customerUsertotaldata(); - }else if (methodIndex == 11) { + }else if (methodIndex == 9) { // 011、项目分类字典上报 uploadcategorydict(); - }else if (methodIndex == 12) { + }else if (methodIndex == 10) { // 012、【事件/项目分析】按类别统计-网格 categoryGridDaily(); - }else if (methodIndex == 13) { + }else if (methodIndex == 11) { // 013、【事件/项目分析】按类别统计-组织 categoryOrgDaily(); } @@ -101,77 +97,6 @@ public class ScreenProjectDataPushDayTaskImpl implements ScreenProjectDataMonthP } return isSuccess; } - - /** - * @return void - * @Description 项目信息上报 - * @Author songyunpeng - * @Date 2021/2/24 - * @Param [] - **/ - private void uploadProjectInfo() { - // 方法名 - String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); - logger.info("<" + methodName + "|项目信息上报>定时任务开始执行"); - //获取上次统计时间 - Map param = new HashMap<>(); - param.put("JOB_NAME", "uploadProjectInfo"); - List screenRecordEntities = screenRecordDao.selectByMap(param); - ScreenRecordEntity screenRecordEntity = new ScreenRecordEntity(); - ScreenProjectFormDTO screenProjectFormDTO = new ScreenProjectFormDTO(); - if (screenRecordEntities == null || screenRecordEntities.size() == 0) { - screenProjectFormDTO.setYearMonthDay("2020-01-01"); - } else { - screenRecordEntity = screenRecordEntities.get(0); - screenProjectFormDTO.setYearMonthDay(DateUtils.format(screenRecordEntity.getStatisticsTime(), DateUtils.DATE_PATTERN)); - } - //记录此次统计时间 并更新时间或者新增 - screenRecordEntity.setStatisticsTime(DateUtils.addDateDays(new Date(), -1)); - if (StringUtils.isNotBlank(screenRecordEntity.getId())) { - screenRecordDao.updateById(screenRecordEntity); - } else { - screenRecordEntity.setJobName("uploadProjectInfo"); - screenRecordDao.insert(screenRecordEntity); - } - analysisFeignClient.uploadProjectInfo(screenProjectFormDTO); - logger.info("<" + methodName + "|项目信息上报>定时任务执行结束"); - } - - /** - * @return void - * @Description 项目处理流程信息上报 - * @Author songyunpeng - * @Date 2021/2/24 - * @Param [] - **/ - private void uploadProjectProcess() { - // 方法名 - String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); - logger.info("<" + methodName + "|项目处理流程信息上报>定时任务开始执行"); - //获取上次统计时间 - Map param = new HashMap<>(); - param.put("JOB_NAME", "uploadProjectProcess"); - List screenRecordEntities = screenRecordDao.selectByMap(param); - ScreenRecordEntity screenRecordEntity = new ScreenRecordEntity(); - ScreenProjectFormDTO screenProjectFormDTO = new ScreenProjectFormDTO(); - if (screenRecordEntities == null || screenRecordEntities.size() == 0) { - screenProjectFormDTO.setYearMonthDay("2020-01-01"); - } else { - screenRecordEntity = screenRecordEntities.get(0); - screenProjectFormDTO.setYearMonthDay(DateUtils.format(screenRecordEntity.getStatisticsTime(), DateUtils.DATE_PATTERN)); - } - //记录此次统计时间 并更新时间或者新增 - screenRecordEntity.setStatisticsTime(DateUtils.addDateDays(new Date(), -1)); - if (StringUtils.isNotBlank(screenRecordEntity.getId())) { - screenRecordDao.updateById(screenRecordEntity); - } else { - screenRecordEntity.setJobName("uploadProjectProcess"); - screenRecordDao.insert(screenRecordEntity); - } - analysisFeignClient.uploadProjectProcess(screenProjectFormDTO); - logger.info("<" + methodName + "|项目处理流程信息上报>定时任务执行结束"); - } - /** * @return void * @describe: 【事件/项目分析】网格内事件 diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTask.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTask.java new file mode 100644 index 00000000..5718f234 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTask.java @@ -0,0 +1,19 @@ +package com.elink.esua.epdc.task.screen; + +/** + * 大屏项目信息统计上报 + * + * @Author: wangtong + * @Date: 2021/2/24 14:16 + */ +public interface ScreenProjectPushTask { + /** + * 大屏数据推送 + * + * @param param 入参 + * @return void + * @author wangtong + * @since 2021/2/24 14:16 + */ + void run(String param); +} diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTaskImpl.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTaskImpl.java new file mode 100644 index 00000000..0831409b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/screen/ScreenProjectPushTaskImpl.java @@ -0,0 +1,140 @@ +package com.elink.esua.epdc.task.screen; + +import com.elink.esua.epdc.commons.tools.utils.DateUtils; +import com.elink.esua.epdc.dao.ScreenRecordDao; +import com.elink.esua.epdc.dto.screen.form.ScreenProjectFormDTO; +import com.elink.esua.epdc.entity.ScreenRecordEntity; +import com.elink.esua.epdc.feign.AnalysisFeignClient; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +/** + * @program: esua-epdc + * @description: 大屏【事件/项目分析】信息统计上报 + * @author: wangtong + * @create: 2021-02-24 13:48 + **/ +@Component("screenProjectPushTask") +public class ScreenProjectPushTaskImpl implements ScreenProjectPushTask { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + private static final ExecutorService service = Executors.newFixedThreadPool(100); + + @Autowired + private AnalysisFeignClient analysisFeignClient; + + @Autowired + private ScreenRecordDao screenRecordDao; + + @Override + public void run(String param) { + for (int i = 0; i < 2; i++) { + createThread(i); + } + } + + public Integer createThread(Integer methodIndex) { + Future future = service.submit(new Callable() { + @Override + public Integer call() throws Exception { + Thread.sleep(200); + if (methodIndex == 0) { + uploadProjectInfo(); + } else if (methodIndex == 1) { + uploadProjectProcess(); + } + return 0; + } + }); + Integer isSuccess = 0; + try { + isSuccess = future.get(); + } catch (Exception e) { + e.printStackTrace(); + } + return isSuccess; + } + + /** + * @return void + * @Description 项目信息上报 + * @Author songyunpeng + * @Date 2021/2/24 + * @Param [] + **/ + private void uploadProjectInfo() { + // 方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|项目信息上报>定时任务开始执行"); + //获取上次统计时间 + Map param = new HashMap<>(); + param.put("JOB_NAME", "uploadProjectInfo"); + List screenRecordEntities = screenRecordDao.selectByMap(param); + ScreenRecordEntity screenRecordEntity = new ScreenRecordEntity(); + ScreenProjectFormDTO screenProjectFormDTO = new ScreenProjectFormDTO(); + if (screenRecordEntities == null || screenRecordEntities.size() == 0) { + screenProjectFormDTO.setYearMonthDay("2020-01-01"); + } else { + screenRecordEntity = screenRecordEntities.get(0); + screenProjectFormDTO.setYearMonthDay(DateUtils.format(screenRecordEntity.getStatisticsTime(), DateUtils.DATE_PATTERN)); + } + //记录此次统计时间 并更新时间或者新增 + screenRecordEntity.setStatisticsTime(DateUtils.addDateDays(new Date(), -1)); + if (StringUtils.isNotBlank(screenRecordEntity.getId())) { + screenRecordDao.updateById(screenRecordEntity); + } else { + screenRecordEntity.setJobName("uploadProjectInfo"); + screenRecordDao.insert(screenRecordEntity); + } + analysisFeignClient.uploadProjectInfo(screenProjectFormDTO); + logger.info("<" + methodName + "|项目信息上报>定时任务执行结束"); + } + + /** + * @return void + * @Description 项目处理流程信息上报 + * @Author songyunpeng + * @Date 2021/2/24 + * @Param [] + **/ + private void uploadProjectProcess() { + // 方法名 + String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); + logger.info("<" + methodName + "|项目处理流程信息上报>定时任务开始执行"); + //获取上次统计时间 + Map param = new HashMap<>(); + param.put("JOB_NAME", "uploadProjectProcess"); + List screenRecordEntities = screenRecordDao.selectByMap(param); + ScreenRecordEntity screenRecordEntity = new ScreenRecordEntity(); + ScreenProjectFormDTO screenProjectFormDTO = new ScreenProjectFormDTO(); + if (screenRecordEntities == null || screenRecordEntities.size() == 0) { + screenProjectFormDTO.setYearMonthDay("2020-01-01"); + } else { + screenRecordEntity = screenRecordEntities.get(0); + screenProjectFormDTO.setYearMonthDay(DateUtils.format(screenRecordEntity.getStatisticsTime(), DateUtils.DATE_PATTERN)); + } + //记录此次统计时间 并更新时间或者新增 + screenRecordEntity.setStatisticsTime(DateUtils.addDateDays(new Date(), -1)); + if (StringUtils.isNotBlank(screenRecordEntity.getId())) { + screenRecordDao.updateById(screenRecordEntity); + } else { + screenRecordEntity.setJobName("uploadProjectProcess"); + screenRecordDao.insert(screenRecordEntity); + } + analysisFeignClient.uploadProjectProcess(screenProjectFormDTO); + logger.info("<" + methodName + "|项目处理流程信息上报>定时任务执行结束"); + } +} \ No newline at end of file