From 7d21a5111947ffa185ee6ced4d7d0922f12ab643 Mon Sep 17 00:00:00 2001 From: yujintao Date: Wed, 25 Dec 2019 14:50:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/constant/StrConstant.java | 2 + .../elink/esua/epdc/feign/KpiFeignClient.java | 18 ++++ .../fallback/KpiFeignClientFallBack.java | 5 ++ .../epdc/service/ScheduleJobKpiService.java | 9 ++ .../impl/ScheduleJobKpiServiceImpl.java | 5 ++ .../esua/epdc/task/KpiManualScoreTask.java | 31 +++++++ .../esua/epdc/constant/KpiFieldConstant.java | 2 + .../esua/epdc/enums/KpiMetaDataEnum.java | 5 ++ .../controller/KpiManualScoreController.java | 13 +++ .../epdc/service/KpiManualScoreService.java | 9 ++ .../impl/KpiManualScoreServiceImpl.java | 86 +++++++++++++++++-- .../epdc/service/impl/KpiRuleServiceImpl.java | 3 +- 12 files changed, 181 insertions(+), 7 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java index f8dd9558c..583d683f6 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java @@ -16,6 +16,8 @@ public interface StrConstant { String ISO_8859_1 = CharEncoding.ISO_8859_1; + String JAVASCRIPT = "javascript"; + String APPLICATION_JSON_UTF8_VALUE = MediaType.APPLICATION_JSON_UTF8_VALUE; String EXCEL_SUFFIX_2003 = ".xls"; diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java index abfd52409..61b783185 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java @@ -25,6 +25,24 @@ public interface KpiFeignClient { @GetMapping("kpi/metaData/buildMetaData/{kpiScheduleCode}") Result runKpiMateData(@PathVariable("kpiScheduleCode") String kpiScheduleCode); + /** + * 根据规则编码启动公式计算 + * + * @param ruleCode + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/12/25 14:06 + */ @GetMapping("kpi/rule/calcByCode/{ruleCode}") Result startTaskByRuleCode(@PathVariable("ruleCode") String ruleCode); + + /** + * 将手动打分存入元数据表 + * + * @return void + * @author work@yujt.net.cn + * @date 2019/12/25 14:06 + */ + @GetMapping("kpi/manualScore/initMetaData") + Result manualScoreToMetaData(); } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java index 3e8e1b604..7dd9ef2ad 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java @@ -19,4 +19,9 @@ public class KpiFeignClientFallBack implements KpiFeignClient { public Result startTaskByRuleCode(String ruleCode) { return ModuleUtils.feignConError(ServiceConstant.EPDC_KPI_SERVER, "startTaskByRuleCode", ruleCode); } + + @Override + public Result manualScoreToMetaData() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_KPI_SERVER, "manualScoreToMetaData", ""); + } } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java index bc88e0e5f..dc6ba6803 100644 --- a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java @@ -25,4 +25,13 @@ public interface ScheduleJobKpiService { * @date 2019/12/17 14:43 */ void startTaskByRuleCode(String ruleCode); + + /** + * 将手动打分存入元数据表 + * + * @return void + * @author work@yujt.net.cn + * @date 2019/12/25 14:05 + */ + void manualScoreToMetaData(); } 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 7cc927077..54346653e 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 @@ -25,4 +25,9 @@ public class ScheduleJobKpiServiceImpl implements ScheduleJobKpiService { public void startTaskByRuleCode(String ruleCode) { kpiFeignClient.startTaskByRuleCode(ruleCode); } + + @Override + public void manualScoreToMetaData() { + kpiFeignClient.manualScoreToMetaData(); + } } diff --git a/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java new file mode 100644 index 000000000..acdc82955 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java @@ -0,0 +1,31 @@ +package com.elink.esua.epdc.task; + +import com.elink.esua.epdc.service.ScheduleJobKpiService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 绩效考核规则的相关任务 + * + * @author work@yujt.net.cn + * @date 2019/12/17 14:40 + */ +@Component("kpiManualScoreTask") +public class KpiManualScoreTask implements ITask { + + @Autowired + private ScheduleJobKpiService kpiService; + + /** + * 将手动打分存入元数据表 + * @param ruleCode + * @return void + * @author work@yujt.net.cn + * @date 2019/12/25 14:02 + */ + @Override + public void run(String ruleCode) { + kpiService.manualScoreToMetaData(); + } +} diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java index b41c98797..d8cb8cc3f 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java @@ -12,7 +12,9 @@ public interface KpiFieldConstant { String RULE_NAME = "RULE_NAME"; String RULE_MODE = "RULE_MODE"; + String SCORE_START_DATE = "SCORE_START_DATE"; String START_DATE = "START_DATE"; + String SCORE_END_DATE = "SCORE_END_DATE"; String END_DATE = "END_DATE"; String DEPT_ID = "DEPT_ID"; String KPI_CYCLE = "KPI_CYCLE"; diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java index e06b19050..b058b325c 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java @@ -34,6 +34,11 @@ public enum KpiMetaDataEnum { */ PEOPLE_LOW_EVALUATION_AMOUNT("people_low_evaluation_amount", "问题办理不满意数"), + /*** + * 履行抓基层党建工作得分(上级为网格打分) + */ + GRID_SCORE_BY_SUPERIOR_MANUAL("grid_score_by_superior_manual", "履行抓基层党建工作得分"), + /*** * 网格呼叫上级部门总数 */ diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java index 3d9f11163..b89448a82 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java @@ -135,4 +135,17 @@ public class KpiManualScoreController { public Result importManualScoreExcel(@RequestParam("file") MultipartFile file) { return kpiManualScoreService.importManualScoreExcel(file); } + + /** + * 将手动打分初始化为元数据项 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/12/25 14:10 + */ + @GetMapping("initMetaData") + public Result initManualScoreToMetaData() { + kpiManualScoreService.initManualScoreToMetaData(); + return new Result(); + } } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java index b5898080f..2b2fb45d2 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java @@ -133,4 +133,13 @@ public interface KpiManualScoreService extends BaseService * @date 2019/12/16 14:12 */ Result checkExportTemplate(Map params); + + /** + * 将手动打分初始化为元数据项 + * + * @return void + * @author work@yujt.net.cn + * @date 2019/12/25 14:11 + */ + void initManualScoreToMetaData(); } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java index fc9dda27d..735fbbd68 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; 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.constant.StrConstant; import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.exception.RenException; @@ -19,10 +20,8 @@ import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; 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.dao.KpiManualScoreDao; -import com.elink.esua.epdc.dao.KpiManualScoreRuleDao; -import com.elink.esua.epdc.dao.KpiResultGridDao; -import com.elink.esua.epdc.dao.KpiRuleDao; +import com.elink.esua.epdc.constant.KpiFieldConstant; +import com.elink.esua.epdc.dao.*; import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO; @@ -30,10 +29,12 @@ import com.elink.esua.epdc.dto.result.KpiManualScoreResultDTO; import com.elink.esua.epdc.dto.result.KpiManualScoreTemplateResultDTO; import com.elink.esua.epdc.entity.*; import com.elink.esua.epdc.enums.KpiCycleEnum; +import com.elink.esua.epdc.enums.KpiMetaDataEnum; import com.elink.esua.epdc.excel.KpiManualScoreTemplateExcel; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.service.KpiManualScoreService; import com.elink.esua.epdc.utils.DeptUtils; +import com.elink.esua.epdc.utils.KpiLocalDateUtils; import com.elink.esua.epdc.utils.StreamUtils; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; @@ -45,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.YearMonth; import java.util.*; @@ -67,14 +69,17 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl page(Map params) { String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null; @@ -509,4 +514,73 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl deptIdList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TWENTY, pageIndex); + + KpiMetaDataEntity metaDataEntity = new KpiMetaDataEntity(); + metaDataEntity.setDeptTypeKey(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY); + metaDataEntity.setEndDate(endDate); + metaDataEntity.setStartDate(startDate); + metaDataEntity.setKpiCycle(kpiCycle); + metaDataEntity.setDataCode(KpiMetaDataEnum.GRID_SCORE_BY_SUPERIOR_MANUAL.getValue()); + metaDataEntity.setDataName(KpiMetaDataEnum.GRID_SCORE_BY_SUPERIOR_MANUAL.getName()); + + do { + for (Long deptId : deptIdList) { + metaDataEntity.setDeptId(deptId); + metaDataEntity.setDataValue(BigDecimal.ZERO); + + KpiManualScoreEntity scoreEntity = this.getKpiManualScoreEntity(deptId, startDate, endDate); + if (null != scoreEntity) { + metaDataEntity.setDataValue(scoreEntity.getScore()); + } + kpiMetaDataDao.insert(metaDataEntity); + } + + pageIndex++; + deptIdList = deptUtils.getDeptIdList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, NumConstant.TWENTY, pageIndex); + } while (CollUtil.isNotEmpty(deptIdList)); + } + + + /** + * 查询手动打分对象 + * + * @param deptId 部门id + * @param startDate 开始日 + * @param endDate 结束日 + * @return com.elink.esua.epdc.entity.KpiManualScoreEntity + * @author work@yujt.net.cn + * @date 2019/12/25 14:28 + */ + private KpiManualScoreEntity getKpiManualScoreEntity(Long deptId, Date startDate, Date endDate) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(KpiFieldConstant.DEPT_ID, deptId) + .eq(KpiFieldConstant.SCORE_START_DATE, startDate) + .eq(KpiFieldConstant.SCORE_END_DATE, endDate); + return baseDao.selectOne(wrapper); + } } diff --git a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java index 060fb5d41..b7cdb3e66 100644 --- a/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java @@ -38,6 +38,7 @@ import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.form.KpiRuleSaveOrUpdateFormDTO; import com.elink.esua.epdc.dto.result.KpiRuleQueryResultDTO; import com.elink.esua.epdc.entity.*; +import com.elink.esua.epdc.enums.KpiCycleEnum; import com.elink.esua.epdc.enums.KpiRuleModeEnum; import com.elink.esua.epdc.service.KpiRuleService; import com.elink.esua.epdc.utils.DeptUtils; @@ -543,7 +544,7 @@ public class KpiRuleServiceImpl extends BaseServiceImpl