From 439c204c798bbc38cdff1e57d8f1c32be2c516f0 Mon Sep 17 00:00:00 2001 From: yujintao Date: Fri, 7 Feb 2020 10:15:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A9=E6=95=88=E8=80=83=E6=A0=B8=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=8A=9F=E8=83=BD=E6=8B=93=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/commons/tools/utils/ModuleUtils.java | 38 ++++- .../impl/ScheduleJobKpiServiceImpl.java | 13 +- .../esua/epdc/dto/ScheduleJobParamDTO.java | 64 ++++++++ .../controller/KpiMetaDataController.java | 12 +- .../esua/epdc/service/KpiMetaDataService.java | 38 +---- .../service/impl/KpiMetaDataServiceImpl.java | 139 ++++++++++++------ .../esua/epdc/utils/KpiLocalDateUtils.java | 42 +++++- 7 files changed, 242 insertions(+), 104 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java index 24bb7ac73..7abec7d07 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java @@ -1,8 +1,13 @@ package com.elink.esua.epdc.commons.tools.utils; import com.alibaba.fastjson.JSON; +import com.elink.esua.epdc.commons.tools.constant.StrConstant; +import com.elink.esua.epdc.commons.tools.exception.RenException; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.CharEncoding; +import org.springframework.util.Base64Utils; +import java.io.UnsupportedEncodingException; import java.util.UUID; /** @@ -40,7 +45,38 @@ public class ModuleUtils { * @date 2019/9/5 14:44 */ public static String generateUUID() { - return UUID.randomUUID().toString().replace("-", ""); + return UUID.randomUUID().toString().replace(StrConstant.HYPHEN, ""); } + /** + * 字符串转换为base64 + * + * @param params + * @return java.lang.String + * @author work@yujt.net.cn + * @date 2020/2/6 16:39 + */ + public static String encodeByBase64(String params) { + try { + return Base64Utils.encodeToUrlSafeString(params.getBytes(CharEncoding.UTF_8)); + } catch (UnsupportedEncodingException e) { + throw new RenException("字符串编码方法异常"); + } + } + + /** + * base64解码 + * + * @param base64Str + * @return java.lang.String + * @author work@yujt.net.cn + * @date 2020/2/6 16:48 + */ + public static String decodeFromBase64(String base64Str) { + try { + return new String(Base64Utils.decodeFromUrlSafeString(base64Str), CharEncoding.UTF_8); + } catch (UnsupportedEncodingException e) { + throw new RenException("字符串编码方法异常"); + } + } } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java index 54346653e..eb0d5231f 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java @@ -1,14 +1,15 @@ package com.elink.esua.epdc.service.impl; +import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.feign.KpiFeignClient; import com.elink.esua.epdc.service.ScheduleJobKpiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** - * @author: qushutong - * @Date: 2019/12/12 16:53 - * @Description: 查询gridId + * @author: qushutong + * @Date: 2019/12/12 16:53 + * @Description: 查询gridId */ @Component public class ScheduleJobKpiServiceImpl implements ScheduleJobKpiService { @@ -18,16 +19,18 @@ public class ScheduleJobKpiServiceImpl implements ScheduleJobKpiService { @Override public void startKpiMetaData(String params) { - kpiFeignClient.runKpiMateData(params); + kpiFeignClient.runKpiMateData(ModuleUtils.encodeByBase64(params)); } @Override public void startTaskByRuleCode(String ruleCode) { - kpiFeignClient.startTaskByRuleCode(ruleCode); + kpiFeignClient.startTaskByRuleCode(ModuleUtils.encodeByBase64(ruleCode)); } @Override public void manualScoreToMetaData() { kpiFeignClient.manualScoreToMetaData(); } + + } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java new file mode 100644 index 000000000..e3ef61c7d --- /dev/null +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java @@ -0,0 +1,64 @@ +package com.elink.esua.epdc.dto; + +import com.alibaba.fastjson.JSONObject; +import com.elink.esua.epdc.commons.tools.exception.RenException; +import com.elink.esua.epdc.commons.tools.utils.DateUtils; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +/** + * 定时任务参数 + * + * @author work@yujt.net.cn + * @date 2020/2/6 14:00 + */ +@Slf4j +@Data +public class ScheduleJobParamDTO { + + /** + * 规则编码,取值范围{@link com.elink.esua.epdc.constant.KpiScheduleCodeConstant} + */ + String ruleCode; + + + /** + * 日期 格式:yyyy-MM-dd + */ + String dateStr; + + + public ScheduleJobParamDTO getByJobParams(String params) { + ScheduleJobParamDTO scheduleJobParam = null; + try { + scheduleJobParam = JSONObject.parseObject(params, ScheduleJobParamDTO.class); + String dateStr = scheduleJobParam.getDateStr(); + if (StringUtils.isBlank(dateStr)) { + scheduleJobParam.setDateStr(null); + } else if (!isValidDate(dateStr)) { + scheduleJobParam.setDateStr(null); + } + } catch (Exception e) { + log.error("定时任务参数格式错误,报错参数:{}", params); + throw new RenException("定时任务参数格式错误"); + } + return scheduleJobParam; + } + + private static boolean isValidDate(String str) { + boolean convertSuccess = true; + // 指定日期格式 + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN); + try { + format.setLenient(false); + format.parse(str); + } catch (ParseException e) { + convertSuccess = false; + } + return convertSuccess; + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java index 7c3a29434..450ea65f7 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java @@ -101,15 +101,9 @@ public class KpiMetaDataController { */ @GetMapping("buildMetaData/{kpiScheduleCode}") public Result buildMetaData(@PathVariable("kpiScheduleCode") String kpiScheduleCode) { - if (kpiScheduleCode.equals(KpiScheduleCodeConstant.META_DATA_PEOPLE_REPORT_AMOUNT)) { - kpiMetaDataService.statPeopleReportAmount(); - } else if (kpiScheduleCode.equals(KpiScheduleCodeConstant.META_DATA_PEOPLE_EVALUATION)) { - kpiMetaDataService.statPeopleEvaluation(); - } else if (kpiScheduleCode.equals(KpiScheduleCodeConstant.META_DATA_ITEM_HANDLE_AMOUNT)) { - kpiMetaDataService.statItemHandleAmount(); - } else if (kpiScheduleCode.equals(KpiScheduleCodeConstant.META_DATA_GRID_EVALUATION)){ - kpiMetaDataService.statGridEvaluation(); - } + + kpiMetaDataService.buildMetaData(kpiScheduleCode); + return new Result(); } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java index edd30a2d5..448654563 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java @@ -93,43 +93,6 @@ public interface KpiMetaDataService extends BaseService { */ void delete(String[] ids); - /*** - * 统计网格内 群众事件上报总数 与 被响应总数,存入元数据表 - * @param - * @return void - * @author qushutong - * @date 2019/12/16 10:19 - */ - void statPeopleReportAmount(); - - /*** - * 统计网格内 群众对网格问题办理 满意度评价,存入元数据表 - * @param - * @return void - * @author qushutong - * @date 2019/12/18 9:34 - */ - void statPeopleEvaluation(); - - - /*** - * 构建元数据 网格呼叫总数 网格响应呼叫数 - * @param - * @return void - * @author qushutong - * @date 2019/12/18 18:21 - */ - void statItemHandleAmount(); - - /*** - * 构建元数据 网格工作评议 - * @param - * @return void - * @author qushutong - * @date 2019/12/20 14:48 - */ - void statGridEvaluation(); - /** * 先删除已有数据再批量插入元数据表 * @@ -140,4 +103,5 @@ public interface KpiMetaDataService extends BaseService { */ void deleteAndInsertBatch(List metaDateList); + void buildMetaData(String kpiScheduleCode); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java index 047e3017c..31c70ed7b 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java @@ -25,13 +25,12 @@ import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant; import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; -import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.commons.tools.utils.*; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; -import com.elink.esua.epdc.commons.tools.utils.DateUtils; -import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils; -import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.constant.KpiScheduleCodeConstant; import com.elink.esua.epdc.dao.KpiMetaDataDao; import com.elink.esua.epdc.dto.KpiMetaDataDTO; +import com.elink.esua.epdc.dto.ScheduleJobParamDTO; import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO; import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO; import com.elink.esua.epdc.dto.result.KpiEventReportAmountResultDTO; @@ -51,7 +50,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.time.LocalDate; import java.time.LocalDateTime; import java.time.YearMonth; import java.util.*; @@ -124,23 +122,18 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl gridList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TEN, pageIndex); @@ -342,18 +330,6 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl deptIdList = deptUtils.getDeptIdList(deptTypeKey, NumConstant.TEN, pageIndex); @@ -445,29 +421,100 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl