Browse Source

绩效考核定时任务功能拓展

feature/dangjian
yujintao 6 years ago
parent
commit
439c204c79
  1. 38
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java
  2. 13
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java
  3. 64
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java
  4. 12
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiMetaDataController.java
  5. 38
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiMetaDataService.java
  6. 139
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiMetaDataServiceImpl.java
  7. 42
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/utils/KpiLocalDateUtils.java

38
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("字符串编码方法异常");
}
}
}

13
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();
}
}

64
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;
}
}

12
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();
}

38
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<KpiMetaDataEntity> {
*/
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<KpiMetaDataEntity> {
*/
void deleteAndInsertBatch(List<KpiMetaDataEntity> metaDateList);
void buildMetaData(String kpiScheduleCode);
}

139
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<KpiMetaDataDao, KpiM
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void statPeopleReportAmount() {
statMetaDataOfEventAmount(KpiCycleEnum.KPI_CYCLE_MONTH.getValue());
statMetaDataOfEventAmount(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue());
statMetaDataOfEventAmount(KpiCycleEnum.KPI_CYCLE_YEAR.getValue());
}
/**
* 按考核周期进行元数据统计
*
* @param kpiCycle
* @param dateStr
* @return void
* @author work@yujt.net.cn
* @date 2019/12/19 19:51
*/
private void statMetaDataOfEventAmount(String kpiCycle) {
KpiMetaDataOfEventsFormDTO eventReportAmountFormDto = this.initKpiParam(kpiCycle, "statPeopleReportAmount");
private void statMetaDataOfEventAmount(String kpiCycle, String dateStr) {
KpiMetaDataOfEventsFormDTO eventReportAmountFormDto = this.initKpiParam(kpiCycle, dateStr, KpiScheduleCodeConstant.META_DATA_PEOPLE_REPORT_AMOUNT);
if (null != eventReportAmountFormDto) {
int pageIndex = NumConstant.ONE;
@ -163,13 +156,14 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
* 根据月 以及当前月份初始化统计元数据值的参数用于模块间调用
*
* @param kpiCycle
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @param methodName 调用此方法的方法名用于日志打印
* @return java.util.Date 若返回空值当前月份无法针对传入的考核周期进行考核
* @author work@yujt.net.cn
* @date 2019/12/20 09:13
*/
private KpiMetaDataOfEventsFormDTO initKpiParam(String kpiCycle, String methodName) {
Date startDate = KpiLocalDateUtils.getKpiCycoleStartDate(kpiCycle);
private KpiMetaDataOfEventsFormDTO initKpiParam(String kpiCycle, String dateStr, String methodName) {
Date startDate = KpiLocalDateUtils.getKpiCycoleStartDate(kpiCycle, dateStr);
if (null == startDate) {
log.error("当前时间:{},无法按照{}执行绩效考核{}", LocalDateTime.now().toString(), kpiCycle, methodName);
return null;
@ -290,12 +284,6 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
return kpiMetaDataEntity;
}
@Override
public void statPeopleEvaluation() {
statMetaDataOfPeopleEvaluation(KpiCycleEnum.KPI_CYCLE_MONTH.getValue());
statMetaDataOfPeopleEvaluation(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue());
statMetaDataOfPeopleEvaluation(KpiCycleEnum.KPI_CYCLE_YEAR.getValue());
}
/**
* 根据考核周期统计周期内群众对网格处理项目的满意率
@ -305,8 +293,8 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
* @author work@yujt.net.cn
* @date 2019/12/20 15:53
*/
private void statMetaDataOfPeopleEvaluation(String kpiCycle) {
KpiMetaDataOfEventsFormDTO metaDataFormDto = this.initKpiParam(kpiCycle, "statPeopleEvaluation");
private void statMetaDataOfPeopleEvaluation(String kpiCycle, String dateStr) {
KpiMetaDataOfEventsFormDTO metaDataFormDto = this.initKpiParam(kpiCycle, dateStr, KpiScheduleCodeConstant.META_DATA_PEOPLE_EVALUATION);
if (null != metaDataFormDto) {
int pageIndex = NumConstant.ONE;
List<Long> gridList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TEN, pageIndex);
@ -342,18 +330,6 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
return eventResult.getData();
}
@Override
public void statItemHandleAmount() {
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
}
/**
* 根据考核周期与部门类型统计项目的网格呼叫数呼叫被响应数呼叫被办结数
*
@ -363,8 +339,8 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
* @author work@yujt.net.cn
* @date 2019/12/23 14:06
*/
private void statMetaDataOfItemHandleAmount(String kpiCycle, String deptTypeKey) {
KpiMetaDataOfEventsFormDTO metaDataFormDto = this.initKpiParam(kpiCycle, "statItemHandleAmount");
private void statMetaDataOfItemHandleAmount(String kpiCycle, String dateStr, String deptTypeKey) {
KpiMetaDataOfEventsFormDTO metaDataFormDto = this.initKpiParam(kpiCycle, dateStr, KpiScheduleCodeConstant.META_DATA_ITEM_HANDLE_AMOUNT);
if (null != metaDataFormDto) {
int pageIndex = NumConstant.ONE;
List<Long> deptIdList = deptUtils.getDeptIdList(deptTypeKey, NumConstant.TEN, pageIndex);
@ -445,29 +421,100 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM
}
@Override
public void statGridEvaluation() {
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
public void buildMetaData(String kpiScheduleCode) {
String jobParam = ModuleUtils.decodeFromBase64(kpiScheduleCode);
ScheduleJobParamDTO scheduleJobParam = new ScheduleJobParamDTO().getByJobParams(jobParam);
// 考核规则编码
String ruleCode = scheduleJobParam.getRuleCode();
String dateStr = scheduleJobParam.getDateStr();
if (ruleCode.equals(KpiScheduleCodeConstant.META_DATA_PEOPLE_REPORT_AMOUNT)) {
this.statPeopleReportAmount(dateStr);
} else if (ruleCode.equals(KpiScheduleCodeConstant.META_DATA_PEOPLE_EVALUATION)) {
this.statPeopleEvaluation(dateStr);
} else if (ruleCode.equals(KpiScheduleCodeConstant.META_DATA_ITEM_HANDLE_AMOUNT)) {
this.statItemHandleAmount(dateStr);
} else if (ruleCode.equals(KpiScheduleCodeConstant.META_DATA_GRID_EVALUATION)) {
this.statGridEvaluation(dateStr);
}
}
/**
* 群众事件上报总数 被响应总数
*
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @return void
* @author work@yujt.net.cn
* @date 2020/2/7 10:11
*/
private void statPeopleReportAmount(String dateStr) {
statMetaDataOfEventAmount(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), dateStr);
statMetaDataOfEventAmount(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), dateStr);
statMetaDataOfEventAmount(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), dateStr);
}
/**
* 统计网格内 群众对网格问题办理 满意度评价存入元数据表
*
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @return void
* @author work@yujt.net.cn
* @date 2020/2/7 10:05
*/
private void statPeopleEvaluation(String dateStr) {
statMetaDataOfPeopleEvaluation(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), dateStr);
statMetaDataOfPeopleEvaluation(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), dateStr);
statMetaDataOfPeopleEvaluation(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), dateStr);
}
/***
* 构建元数据 网格呼叫总数 网格响应呼叫数
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @return void
* @author qushutong
* @date 2019/12/18 18:21
*/
private void statItemHandleAmount(String dateStr) {
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfItemHandleAmount(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
}
/***
* 构建元数据 网格工作评议
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @return void
* @author qushutong
* @date 2019/12/20 14:48
*/
private void statGridEvaluation(String dateStr) {
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_MONTH.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT);
statMetaDataOfGridEvaluation(KpiCycleEnum.KPI_CYCLE_YEAR.getValue(), dateStr, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
}
/**
* 根据考核周期和部门类型 统计 网格对项目处理的满意度情况
*
* @param kpiCycle 考核周期
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @param deptTypeKey 部门类型
* @return void
* @author work@yujt.net.cn
* @date 2019/12/23 17:24
*/
private void statMetaDataOfGridEvaluation(String kpiCycle, String deptTypeKey) {
private void statMetaDataOfGridEvaluation(String kpiCycle, String dateStr, String deptTypeKey) {
// 获取考核周期开始日
KpiMetaDataOfEventsFormDTO metaDataFormDto = this.initKpiParam(kpiCycle, "statGridEvaluation");
KpiMetaDataOfEventsFormDTO metaDataFormDto = this.initKpiParam(kpiCycle, dateStr, KpiScheduleCodeConstant.META_DATA_GRID_EVALUATION);
if (null != metaDataFormDto) {
// 声明页容量和页码
int pageIndex = NumConstant.ONE;

42
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/utils/KpiLocalDateUtils.java

@ -3,6 +3,7 @@ package com.elink.esua.epdc.utils;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils;
import com.elink.esua.epdc.enums.KpiCycleEnum;
import org.apache.commons.lang3.StringUtils;
import java.time.LocalDate;
import java.time.YearMonth;
@ -25,18 +26,47 @@ public class KpiLocalDateUtils {
* @date 2019/12/24 17:28
*/
public static Date getKpiCycoleStartDate(String kpiCycle) {
return getKpiCycoleStartDate(kpiCycle, YearMonth.now());
}
/**
* 根据考核周期和考核月份获取考核周期开始时间
*
* @param kpiCycle 考核周期
* @param dateStr 考核月某一天字符串 yyyy-MM-dd e.g. 2020-01-01
* @return java.util.Date
* @author work@yujt.net.cn
* @date 2020/2/6 14:22
*/
public static Date getKpiCycoleStartDate(String kpiCycle, String dateStr) {
if (StringUtils.isBlank(dateStr)) {
return getKpiCycoleStartDate(kpiCycle);
}
LocalDate kpiDate = LocalDate.parse(dateStr);
return getKpiCycoleStartDate(kpiCycle, YearMonth.of(kpiDate.getYear(), kpiDate.getMonthValue()));
}
/**
* 根据考核周期和考核月份获取考核周期开始时间
*
* @param kpiCycle 考核周期
* @param kpiYearMonth 考核月份
* @return java.util.Date
* @author work@yujt.net.cn
* @date 2020/2/6 14:22
*/
private static Date getKpiCycoleStartDate(String kpiCycle, YearMonth kpiYearMonth) {
LocalDate startDate = null;
YearMonth now = YearMonth.now();
if (KpiCycleEnum.KPI_CYCLE_MONTH.getValue().equals(kpiCycle)) {
startDate = now.minusMonths(NumConstant.ONE).atDay(NumConstant.ONE);
startDate = kpiYearMonth.minusMonths(NumConstant.ONE).atDay(NumConstant.ONE);
} else if (KpiCycleEnum.KPI_CYCLE_QUARTER.getValue().equals(kpiCycle)) {
int monthValue = now.getMonthValue();
int monthValue = kpiYearMonth.getMonthValue();
if (monthValue == NumConstant.ONE || monthValue == NumConstant.FOUR || monthValue == NumConstant.SEVEN || monthValue == NumConstant.TEN) {
startDate = now.minusMonths(NumConstant.THREE).atDay(NumConstant.ONE);
startDate = kpiYearMonth.minusMonths(NumConstant.THREE).atDay(NumConstant.ONE);
}
} else if (KpiCycleEnum.KPI_CYCLE_YEAR.getValue().equals(kpiCycle)) {
if (now.getMonthValue() == NumConstant.ONE) {
startDate = now.minusMonths(NumConstant.TWELVE).atDay(NumConstant.ONE);
if (kpiYearMonth.getMonthValue() == NumConstant.ONE) {
startDate = kpiYearMonth.minusMonths(NumConstant.TWELVE).atDay(NumConstant.ONE);
}
}
if (null == startDate) {

Loading…
Cancel
Save