From 40bc5d0320af0241dce7125b06fbb42e7bd4d26b Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 26 Oct 2020 15:47:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B6=85=E6=9C=9F=E6=BB=9E?= =?UTF-8?q?=E7=95=99=E6=8F=90=E9=86=92=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProjectSendMessageService.java | 21 +++++++++ .../impl/ProjectSendMessageServiceImpl.java | 35 +++++++++++++++ .../epmet/task/ProjectSendMessageTask.java | 43 +++++++++++++++++++ .../feign/GovProjectOpenFeignClient.java | 11 +++++ .../GovProjectOpenFeignClientFallback.java | 14 ++++++ .../gov-project/gov-project-server/pom.xml | 6 +++ .../epmet/controller/ProjectController.java | 21 +++++++++ .../dao/CustomerProjectParameterDao.java | 20 ++++++++- .../CustomerProjectParameterService.java | 27 ++++++++++++ .../com/epmet/service/ProjectService.java | 9 ++++ .../CustomerProjectParameterServiceImpl.java | 37 ++++++++++++++++ .../service/impl/ProjectServiceImpl.java | 42 +++++++++++++++++- .../mapper/CustomerProjectParameterDao.xml | 34 +++++++++++++++ 13 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/ProjectSendMessageService.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ProjectSendMessageServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ProjectSendMessageTask.java diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/ProjectSendMessageService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/ProjectSendMessageService.java new file mode 100644 index 0000000000..e005ed2543 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/ProjectSendMessageService.java @@ -0,0 +1,21 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.ProjectDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/26 15:19 + */ +public interface ProjectSendMessageService { + /** + * 滞留提醒 + * @author zhaoqifeng + * @date 2020/10/26 15:21 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + Result projectSendMessage(ExtractOriginFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ProjectSendMessageServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ProjectSendMessageServiceImpl.java new file mode 100644 index 0000000000..78418a8173 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ProjectSendMessageServiceImpl.java @@ -0,0 +1,35 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.ProjectDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; +import com.epmet.feign.GovProjectOpenFeignClient; +import com.epmet.service.ProjectSendMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/26 15:22 + */ +@Service +public class ProjectSendMessageServiceImpl implements ProjectSendMessageService { + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; + + /** + * 滞留提醒 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/10/26 15:21 + */ + @Override + public Result projectSendMessage(ExtractOriginFormDTO formDTO) { + ProjectDTO projectDTO = new ProjectDTO(); + projectDTO.setCustomerId(formDTO.getCustomerId()); + return govProjectOpenFeignClient.sendMessageJob(projectDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ProjectSendMessageTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ProjectSendMessageTask.java new file mode 100644 index 0000000000..cc886fb908 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ProjectSendMessageTask.java @@ -0,0 +1,43 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; +import com.epmet.service.ProjectSendMessageService; +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; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/10/26 15:26 + */ +@Component("projectSendMessageTask") +public class ProjectSendMessageTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private ProjectSendMessageService projectSendMessageService; + /** + * 执行定时任务接口 + * + * @param params 参数,多参数使用JSON数据 + */ + @Override + public void run(String params) { + logger.info("FactOriginExtractTask定时任务正在执行,参数为:{}", params); + ExtractOriginFormDTO formDTO = new ExtractOriginFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, ExtractOriginFormDTO.class); + } + Result result = projectSendMessageService.projectSendMessage(formDTO); + if (result.success()) { + logger.info("FactOriginExtractTask定时任务执行成功"); + } else { + logger.error("FactOriginExtractTask定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 0f89d630d4..17bd06d5df 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -2,6 +2,7 @@ package com.epmet.feign; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.ProcessListFormDTO; +import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO; @@ -33,6 +34,16 @@ public interface GovProjectOpenFeignClient { @PostMapping("gov/project/project/pendprojectlist") Result> getPendProjectList(@RequestBody ProjectListFromDTO fromDTO); + /** + * 滞留消息提醒定时任务 + * @author zhaoqifeng + * @date 2020/10/26 14:05 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("gov/project/project/sendmessagejob") + Result sendMessageJob(@RequestBody ProjectDTO formDTO); + @PostMapping("gov/project/trace/processlistnotrule") Result getProcessList(@RequestBody ProcessListFormDTO fromDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index a3eb7d7e01..b0bb14a9eb 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -3,6 +3,7 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.result.PendProjectListResultDTO; @@ -26,6 +27,19 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getPendProjectList", fromDTO); } + /** + * 滞留消息提醒定时任务 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/10/26 14:05 + */ + @Override + public Result sendMessageJob(ProjectDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "sendMessageJob", formDTO); + } + @Override public Result getProcessList(ProcessListFormDTO fromDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProcessList", fromDTO); diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index 25c9ca4e29..7ebe4ad908 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -96,6 +96,12 @@ 2.0.0 compile + + com.epmet + oper-crm-client + 2.0.0 + compile + diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 184a51f644..345fb495a3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -151,12 +151,33 @@ public class ProjectController { List result = projectService.getPendProjectList(fromDTO); return new Result>().ok(result); } + + /** + * 滞留消息提醒 + * @author zhaoqifeng + * @date 2020/10/26 14:02 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ @PostMapping("message") public Result sendMessage(@RequestBody ProjectDTO formDTO) { projectService.sendMessage(formDTO.getCustomerId()); return new Result(); } + /** + * 滞留消息提醒定时任务 + * @author zhaoqifeng + * @date 2020/10/26 14:03 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("sendmessagejob") + public Result sendMessageJob(@RequestBody ProjectDTO formDTO) { + projectService.sendMessageJob(formDTO); + return new Result(); + } + @PostMapping("compensation") public Result compensation(){ projectService.projectProcessCostTimeDataCompensation(); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java index e71bfac726..349b07308b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java @@ -51,5 +51,23 @@ public interface CustomerProjectParameterDao extends BaseDao */ List getParameterByCustomer(@Param("customerId") String customerId); - + + /** + * 获取推送时间范围内的客户ID + * @author zhaoqifeng + * @date 2020/10/26 13:44 + * @param + * @return java.util.List + */ + CustomerProjectParameterDTO getPushTime(@Param("customerId") String customerId); + /** + * 获取默认配置 + * @author zhaoqifeng + * @date 2020/10/26 14:59 + * @param + * @return com.epmet.dto.CustomerProjectParameterDTO + */ + CustomerProjectParameterDTO getDefaultPushTime(); + + CustomerProjectParameterDTO getPushTimeConfig(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java index 532b982df6..c9b487e7d0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java @@ -110,4 +110,31 @@ public interface CustomerProjectParameterService extends BaseService */ List getParameterByCustomer(String customerId); + + /** + * 获取推送时间范围内的客户ID + * @author zhaoqifeng + * @date 2020/10/26 13:43 + * @param customerId + * @return com.epmet.dto.CustomerProjectParameterDTO + */ + CustomerProjectParameterDTO getPushTime(String customerId); + + /** + * 获取默认配置 + * @author zhaoqifeng + * @date 2020/10/26 14:58 + * @param + * @return com.epmet.dto.CustomerProjectParameterDTO + */ + CustomerProjectParameterDTO getDefaultPushTime(); + + /** + * 获取推送时间范围内的客户ID + * @author zhaoqifeng + * @date 2020/10/26 13:43 + * @param customerId + * @return com.epmet.dto.CustomerProjectParameterDTO + */ + CustomerProjectParameterDTO getPushTimeConfig(String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 6e361c77b3..2050b5921e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -198,6 +198,15 @@ public interface ProjectService extends BaseService { */ void sendMessage(String customerId); + /** + * 项目滞留超期提醒定时任务 + * @author zhaoqifeng + * @date 2020/10/26 10:53 + * @param dto + * @return void + */ + void sendMessageJob(ProjectDTO dto); + /** * @Description 项目节点耗时数据补齐 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java index 42afef6c1f..a3b249ab4b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java @@ -120,4 +120,41 @@ public class CustomerProjectParameterServiceImpl extends BaseServiceImpl + * @author zhaoqifeng + * @date 2020/10/26 13:43 + */ + @Override + public CustomerProjectParameterDTO getPushTime(String customerId) { + return baseDao.getPushTime(customerId); + } + + /** + * 获取默认配置 + * + * @return com.epmet.dto.CustomerProjectParameterDTO + * @author zhaoqifeng + * @date 2020/10/26 14:58 + */ + @Override + public CustomerProjectParameterDTO getDefaultPushTime() { + return baseDao.getDefaultPushTime(); + } + + /** + * 获取推送时间范围内的客户ID + * + * @param customerId + * @return com.epmet.dto.CustomerProjectParameterDTO + * @author zhaoqifeng + * @date 2020/10/26 13:43 + */ + @Override + public CustomerProjectParameterDTO getPushTimeConfig(String customerId) { + return baseDao.getPushTimeConfig(customerId); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 569502ff7d..20977fc543 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -88,6 +88,8 @@ public class ProjectServiceImpl extends BaseServiceImpl> result = operCrmOpenFeignClient.getAllCustomerList(); + if (!result.success()) { + throw new RenException(result.getCode(), result.getMsg()); + } + if (CollectionUtils.isNotEmpty(result.getData())) { + if(null != dto && StringUtils.isNotBlank(dto.getCustomerId())) { + sendMessage(dto.getCustomerId()); + } else { + for (CustomerDTO customerDTO : result.getData()) { + //获取客户配置,如果存在,则判断客户配置是否在该时间段内,如果不存在,则使用默认配置 + CustomerProjectParameterDTO config = parameterService.getPushTimeConfig(customerDTO.getId()); + if (null != config) { + //客户配置是否在该时间段内 + CustomerProjectParameterDTO pushTime = parameterService.getPushTime(customerDTO.getId()); + if(null != pushTime) { + sendMessage(customerDTO.getId()); + } + } else { + //获取默认配置 + CustomerProjectParameterDTO defaultPushTime = parameterService.getDefaultPushTime(); + if(null != defaultPushTime) { + sendMessage(customerDTO.getId()); + } + } + } + } + } + } + private void setMessage(String customerId, List overdueList, List delayList, List list) { list = list.stream().distinct().collect(Collectors.toList()); Map> overdueMap = overdueList.stream().collect(Collectors.groupingBy(StaffUnHandledDTO::getStaffId)); @@ -1137,7 +1178,6 @@ public class ProjectServiceImpl extends BaseServiceImpl + + + \ No newline at end of file