Browse Source

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

feature/dangjian
yujintao 6 years ago
parent
commit
4df79fbef3
  1. 24
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java
  2. 19
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java
  3. 8
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java
  4. 10
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java

24
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java

@ -8,6 +8,8 @@ import org.apache.commons.codec.CharEncoding;
import org.springframework.util.Base64Utils; import org.springframework.util.Base64Utils;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.UUID; import java.util.UUID;
/** /**
@ -79,4 +81,26 @@ public class ModuleUtils {
throw new RenException("字符串编码方法异常"); throw new RenException("字符串编码方法异常");
} }
} }
/**
* 验证字符串是否是日期格式
*
* @param str 被验证的字符串
* @param dateFormat 指定日期格式
* @return boolean
* @author work@yujt.net.cn
* @date 2020/2/7 10:53
*/
public static boolean isValidDate(String str, String dateFormat) {
boolean convertSuccess = true;
// 指定日期格式
SimpleDateFormat format = new SimpleDateFormat(dateFormat);
try {
format.setLenient(false);
format.parse(str);
} catch (ParseException e) {
convertSuccess = false;
}
return convertSuccess;
}
} }

19
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/ScheduleJobParamDTO.java

@ -3,6 +3,7 @@ package com.elink.esua.epdc.dto;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.utils.DateUtils; import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -33,32 +34,20 @@ public class ScheduleJobParamDTO {
public ScheduleJobParamDTO getByJobParams(String params) { public ScheduleJobParamDTO getByJobParams(String params) {
ScheduleJobParamDTO scheduleJobParam = null; ScheduleJobParamDTO scheduleJobParam;
try { try {
scheduleJobParam = JSONObject.parseObject(params, ScheduleJobParamDTO.class); scheduleJobParam = JSONObject.parseObject(params, ScheduleJobParamDTO.class);
String dateStr = scheduleJobParam.getDateStr(); String dateStr = scheduleJobParam.getDateStr();
if (StringUtils.isBlank(dateStr)) { if (StringUtils.isBlank(dateStr)) {
scheduleJobParam.setDateStr(null); scheduleJobParam.setDateStr(null);
} else if (!isValidDate(dateStr)) { } else if (!ModuleUtils.isValidDate(dateStr, DateUtils.DATE_PATTERN)) {
scheduleJobParam.setDateStr(null); scheduleJobParam.setDateStr(null);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("定时任务参数格式错误,错参数:{}", params); log.error("定时任务参数格式错误,错参数:{}", params);
throw new RenException("定时任务参数格式错误"); throw new RenException("定时任务参数格式错误");
} }
return scheduleJobParam; 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;
}
} }

8
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java

@ -737,10 +737,10 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao
**/ **/
private QueryWrapper<KpiManualScoreEntity> getUniqueWrapper(KpiManualScoreEntity entity) { private QueryWrapper<KpiManualScoreEntity> getUniqueWrapper(KpiManualScoreEntity entity) {
QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>(); QueryWrapper<KpiManualScoreEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(entity.getRuleId()), "RULE_ID", entity.getRuleId()) wrapper.eq(StringUtils.isNotBlank(entity.getRuleId()), KpiFieldConstant.RULE_ID, entity.getRuleId())
.eq(null != entity.getDeptId(), "DEPT_ID", entity.getDeptId()) .eq(null != entity.getDeptId(), KpiFieldConstant.DEPT_ID, entity.getDeptId())
.eq("score_end_date", entity.getScoreEndDate()) .eq(KpiFieldConstant.SCORE_END_DATE, entity.getScoreEndDate())
.eq("score_start_date", entity.getScoreStartDate()); .eq(KpiFieldConstant.SCORE_START_DATE, entity.getScoreStartDate());
return wrapper; return wrapper;
} }

10
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java

@ -30,6 +30,7 @@ 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.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils; import com.elink.esua.epdc.commons.tools.utils.LocalDateUtils;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.KpiFieldConstant; import com.elink.esua.epdc.constant.KpiFieldConstant;
import com.elink.esua.epdc.constant.KpiScheduleCodeConstant; import com.elink.esua.epdc.constant.KpiScheduleCodeConstant;
@ -315,7 +316,12 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
} }
@Override @Override
public void calcByRuleCode(String ruleCode) { public void calcByRuleCode(String base64Param) {
String jobParam = ModuleUtils.decodeFromBase64(base64Param);
ScheduleJobParamDTO scheduleJobParam = new ScheduleJobParamDTO().getByJobParams(jobParam);
// 考核规则编码
String ruleCode = scheduleJobParam.getRuleCode();
// 查询考核规则表 // 查询考核规则表
KpiRuleDTO kpiRule = kpiRuleDao.queryKpiRuleMetaFormula(ruleCode); KpiRuleDTO kpiRule = kpiRuleDao.queryKpiRuleMetaFormula(ruleCode);
String ruleMode = kpiRule.getRuleMode(); String ruleMode = kpiRule.getRuleMode();
@ -324,7 +330,7 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
return; return;
} }
String kpiCycle = kpiRule.getKpiCycle(); String kpiCycle = kpiRule.getKpiCycle();
Date startDate = KpiLocalDateUtils.getKpiCycoleStartDate(kpiCycle); Date startDate = KpiLocalDateUtils.getKpiCycoleStartDate(kpiCycle, scheduleJobParam.getDateStr());
if (null == startDate) { if (null == startDate) {
logger.error("当前时间:{},无法按照规则编码{}计算绩效考核得分", LocalDateTime.now().toString(), ruleCode); logger.error("当前时间:{},无法按照规则编码{}计算绩效考核得分", LocalDateTime.now().toString(), ruleCode);
return; return;

Loading…
Cancel
Save