|
|
@ -137,49 +137,64 @@ public class KpiMetaDataServiceImpl extends BaseServiceImpl<KpiMetaDataDao, KpiM |
|
|
|
* @date 2019/12/19 19:51 |
|
|
|
*/ |
|
|
|
private void statMetaDataOfEventAmount(String kpiCycle) { |
|
|
|
|
|
|
|
EventReportAmountFormDTO eventReportAmountFormDto = new EventReportAmountFormDTO(); |
|
|
|
|
|
|
|
YearMonth now = YearMonth.now(); |
|
|
|
int monthValue = now.getMonthValue(); |
|
|
|
if (KpiCycleEnum.KPI_CYCLE_MONTH.getValue().equals(kpiCycle)) { |
|
|
|
eventReportAmountFormDto.setStartDate(LocalDateUtils.localDateToDate(now.minusMonths(NumConstant.ONE).atDay(NumConstant.ONE))); |
|
|
|
eventReportAmountFormDto.setEndDate(LocalDateUtils.localDateToDate(now.minusMonths(NumConstant.ONE).atEndOfMonth())); |
|
|
|
} else if (KpiCycleEnum.KPI_CYCLE_QUARTER.getValue().equals(kpiCycle)) { |
|
|
|
if (monthValue != NumConstant.ONE && monthValue != NumConstant.FOUR && monthValue != NumConstant.SEVEN && monthValue != NumConstant.TEN) { |
|
|
|
return; |
|
|
|
} |
|
|
|
eventReportAmountFormDto.setStartDate(LocalDateUtils.localDateToDate(now.minusMonths(NumConstant.THREE).atDay(NumConstant.ONE))); |
|
|
|
eventReportAmountFormDto.setEndDate(LocalDateUtils.localDateToDate(now.minusMonths(NumConstant.ONE).atEndOfMonth())); |
|
|
|
} else if (KpiCycleEnum.KPI_CYCLE_YEAR.getValue().equals(kpiCycle)) { |
|
|
|
if (monthValue != NumConstant.ONE) { |
|
|
|
return; |
|
|
|
} |
|
|
|
eventReportAmountFormDto.setStartDate(LocalDateUtils.localDateToDate(now.minusMonths(NumConstant.TWELVE).atDay(NumConstant.ONE))); |
|
|
|
eventReportAmountFormDto.setEndDate(LocalDateUtils.localDateToDate(now.minusMonths(NumConstant.ONE).atEndOfMonth())); |
|
|
|
// 获取考核周期开始日
|
|
|
|
Date startDate = getKpiStartDateByCycle(kpiCycle); |
|
|
|
if (null == startDate) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 容量
|
|
|
|
// 初始化接口入参对象,用于传入events模块
|
|
|
|
EventReportAmountFormDTO eventReportAmountFormDto = new EventReportAmountFormDTO(); |
|
|
|
eventReportAmountFormDto.setStartDate(startDate); |
|
|
|
eventReportAmountFormDto.setEndDate(LocalDateUtils.localDateToDate(YearMonth.now().minusMonths(NumConstant.ONE).atEndOfMonth())); |
|
|
|
// 声明页容量和页码
|
|
|
|
int pageSize = NumConstant.TEN; |
|
|
|
// 页码
|
|
|
|
int pageIndex = NumConstant.ONE; |
|
|
|
|
|
|
|
|
|
|
|
List<Long> gridList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, pageSize, pageIndex); |
|
|
|
|
|
|
|
do { |
|
|
|
eventReportAmountFormDto.setGridIdList(gridList); |
|
|
|
// 从events模块获取统计数据
|
|
|
|
List<KpiEventReportAmountResultDTO> reportAmountList = this.getMetaDateFromEventsModule(eventReportAmountFormDto); |
|
|
|
// 组装元数据对象并插入数据库
|
|
|
|
this.insertBatch(this.packageMetaDataList(reportAmountList, eventReportAmountFormDto, kpiCycle)); |
|
|
|
|
|
|
|
pageIndex++; |
|
|
|
gridList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, pageSize, pageIndex); |
|
|
|
} while (CollUtil.isNotEmpty(gridList)); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据月、季、年 以及当前月份,获取考核周期开始日 |
|
|
|
* |
|
|
|
* @param kpiCycle 月、季、年 |
|
|
|
* @return java.util.Date 若返回空值:当前月份无法针对传入的考核周期进行考核 |
|
|
|
* @author work@yujt.net.cn |
|
|
|
* @date 2019/12/20 09:13 |
|
|
|
*/ |
|
|
|
private Date getKpiStartDateByCycle(String kpiCycle) { |
|
|
|
LocalDate startDate = null; |
|
|
|
YearMonth now = YearMonth.now(); |
|
|
|
if (KpiCycleEnum.KPI_CYCLE_MONTH.getValue().equals(kpiCycle)) { |
|
|
|
startDate = now.minusMonths(NumConstant.ONE).atDay(NumConstant.ONE); |
|
|
|
} else if (KpiCycleEnum.KPI_CYCLE_QUARTER.getValue().equals(kpiCycle)) { |
|
|
|
int monthValue = now.getMonthValue(); |
|
|
|
if (monthValue != NumConstant.ONE && monthValue != NumConstant.FOUR && monthValue != NumConstant.SEVEN && monthValue != NumConstant.TEN) { |
|
|
|
log.error("当前日期:{},无法按照{}进行绩效考核", LocalDate.now().toString(), kpiCycle); |
|
|
|
} else { |
|
|
|
startDate = now.minusMonths(NumConstant.THREE).atDay(NumConstant.ONE); |
|
|
|
} |
|
|
|
} else if (KpiCycleEnum.KPI_CYCLE_YEAR.getValue().equals(kpiCycle)) { |
|
|
|
if (now.getMonthValue() != NumConstant.ONE) { |
|
|
|
log.error("当前日期:{},无法按照{}进行绩效考核", LocalDate.now().toString(), kpiCycle); |
|
|
|
} else { |
|
|
|
startDate = now.minusMonths(NumConstant.TWELVE).atDay(NumConstant.ONE); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null == startDate) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
return LocalDateUtils.localDateToDate(startDate); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 从events模块获取统计数据 |
|
|
|
* |
|
|
|