Browse Source

添加定时任务

feature/dangjian
yujintao 6 years ago
parent
commit
7d21a51119
  1. 2
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/StrConstant.java
  2. 18
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/KpiFeignClient.java
  3. 5
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/feign/fallback/KpiFeignClientFallBack.java
  4. 9
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/ScheduleJobKpiService.java
  5. 5
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobKpiServiceImpl.java
  6. 31
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/task/KpiManualScoreTask.java
  7. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/constant/KpiFieldConstant.java
  8. 5
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/enums/KpiMetaDataEnum.java
  9. 13
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java
  10. 9
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java
  11. 86
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java
  12. 3
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java

2
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";

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

5
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", "");
}
}

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

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

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

2
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";

5
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", "履行抓基层党建工作得分"),
/***
* 网格呼叫上级部门总数
*/

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

9
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<KpiManualScoreEntity>
* @date 2019/12/16 14:12
*/
Result checkExportTemplate(Map<String, Object> params);
/**
* 将手动打分初始化为元数据项
*
* @return void
* @author work@yujt.net.cn
* @date 2019/12/25 14:11
*/
void initManualScoreToMetaData();
}

86
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<KpiManualScoreDao
private KpiRuleDao kpiRuleDao;
@Autowired
private AdminFeignClient adminFeignClient;
private KpiResultGridDao kpiResultGridDao;
@Autowired
private KpiResultGridDao kpiResultGridDao;
private KpiMetaDataDao kpiMetaDataDao;
@Autowired
private DeptUtils deptUtils;
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public PageData<KpiManualScoreDTO> page(Map<String, Object> params) {
String ruleId = params.containsKey("ruleId") ? params.get("ruleId").toString() : null;
@ -509,4 +514,73 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao
return wrapper;
}
@Override
public void initManualScoreToMetaData() {
initManualScoreToMetaDataByCycle(KpiCycleEnum.KPI_CYCLE_MONTH.getValue());
initManualScoreToMetaDataByCycle(KpiCycleEnum.KPI_CYCLE_QUARTER.getValue());
initManualScoreToMetaDataByCycle(KpiCycleEnum.KPI_CYCLE_YEAR.getValue());
}
/**
* 根据考核周期将手动打分初始化为元数据
*
* @param kpiCycle
* @return void
* @author work@yujt.net.cn
* @date 2019/12/25 14:28
*/
private void initManualScoreToMetaDataByCycle(String kpiCycle) {
Date startDate = KpiLocalDateUtils.getKpiCycoleStartDate(kpiCycle);
if (null == startDate) {
return;
}
Date endDate = LocalDateUtils.localDateToDate(YearMonth.now().minusMonths(NumConstant.ONE).atEndOfMonth());
int pageIndex = NumConstant.ONE;
List<Long> 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<KpiManualScoreEntity> 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);
}
}

3
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<KpiRuleDao, KpiRuleEntit
* @date 2019/12/24 17:22
*/
private Invocable initInvocable(String formula, String ruleCode) {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
ScriptEngine engine = new ScriptEngineManager().getEngineByName(StrConstant.JAVASCRIPT);
//执行js代码:参数为:公式运行方法
try {
engine.eval(formula);

Loading…
Cancel
Save