|
|
@ -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; |
|
|
|