Browse Source

新增手动打分规则

dev
尹作梅 6 years ago
parent
commit
6b7e80626d
  1. 34
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreDictResultDTO.java
  2. 18
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java
  3. 11
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java
  4. 15
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java
  5. 9
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java
  6. 8
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiFormulaServiceImpl.java
  7. 34
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiManualScoreServiceImpl.java
  8. 45
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/impl/KpiRuleServiceImpl.java
  9. 14
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml
  10. 2
      esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml

34
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-client/src/main/java/com/elink/esua/epdc/dto/result/KpiManualScoreDictResultDTO.java

@ -0,0 +1,34 @@
package com.elink.esua.epdc.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 新增手动打分规则界面:手动打分下拉框
* @Author yinzuomei
* @Date 2019/12/2 14:04
*/
@Data
public class KpiManualScoreDictResultDTO implements Serializable {
private static final long serialVersionUID = 1488372593404493885L;
/**
* 主键
*/
private String id;
/**
* 打分项名称
*/
private String scoreName;
/**
* 适用手动打分项的机构类型
*/
private String deptTypeKey;
/**
* 打分周期(字典值)
*/
private String scoreCycle;
}

18
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/controller/KpiManualScoreController.java

@ -26,6 +26,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.KpiManualScoreDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO;
import com.elink.esua.epdc.excel.KpiManualScoreExcel;
import com.elink.esua.epdc.service.KpiManualScoreService;
import org.springframework.beans.factory.annotation.Autowired;
@ -73,16 +74,14 @@ public class KpiManualScoreController {
public Result update(@RequestBody KpiManualScoreDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
kpiManualScoreService.update(dto);
return new Result();
return kpiManualScoreService.update(dto);
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
kpiManualScoreService.delete(ids);
return new Result();
return kpiManualScoreService.delete(ids);
}
@GetMapping("export")
@ -91,4 +90,15 @@ public class KpiManualScoreController {
ExcelUtils.exportExcelToTarget(response, null, list, KpiManualScoreExcel.class);
}
/**
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO>>
* @Author yinzuomei
* @Description 新增手动打分规则界面:手动打分下拉框
* @Date 2019/12/2 14:06
**/
@GetMapping("getKpiManualScoreList")
public Result<List<KpiManualScoreDictResultDTO>> getKpiManualScoreList() {
return kpiManualScoreService.listKpiManualScoreDictListDTO();
}
}

11
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/dao/KpiManualScoreDao.java

@ -18,9 +18,12 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO;
import com.elink.esua.epdc.entity.KpiManualScoreEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 手动打分项
*
@ -30,4 +33,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface KpiManualScoreDao extends BaseDao<KpiManualScoreEntity> {
/**
* @param
* @return java.util.List<com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO>
* @Author yinzuomei
* @Description 新增手动打分规则界面:手动打分下拉框
* @Date 2019/12/2 14:08
**/
List<KpiManualScoreDictResultDTO> selectListKpiManualScoreDictResultDTO();
}

15
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiManualScoreService.java

@ -19,7 +19,9 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.KpiManualScoreDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO;
import com.elink.esua.epdc.entity.KpiManualScoreEntity;
import java.util.List;
@ -81,7 +83,7 @@ public interface KpiManualScoreService extends BaseService<KpiManualScoreEntity>
* @author generator
* @date 2019-12-02
*/
void update(KpiManualScoreDTO dto);
Result update(KpiManualScoreDTO dto);
/**
* 批量删除
@ -91,5 +93,14 @@ public interface KpiManualScoreService extends BaseService<KpiManualScoreEntity>
* @author generator
* @date 2019-12-02
*/
void delete(String[] ids);
Result delete(String[] ids);
/**
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO>>
* @Author yinzuomei
* @Description 新增手动打分规则界面:手动打分下拉框
* @Date 2019/12/2 14:06
**/
Result<List<KpiManualScoreDictResultDTO>> listKpiManualScoreDictListDTO();
}

9
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/java/com/elink/esua/epdc/service/KpiRuleService.java

@ -131,4 +131,13 @@ public interface KpiRuleService extends BaseService<KpiRuleEntity> {
* @Date 2019/11/27 16:27
**/
Result edit(KpiRuleSaveOrUpdateFormDTO dto);
/**
* @param referenceIds
* @return java.util.List<com.elink.esua.epdc.entity.KpiRuleEntity>
* @Author yinzuomei
* @Description 根据引用id查询考核规则表记录
* @Date 2019/12/2 14:59
**/
List<KpiRuleEntity> listKpiRuleEntityByRereferenceId(String[] referenceIds);
}

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

@ -133,10 +133,10 @@ public class KpiFormulaServiceImpl extends BaseServiceImpl<KpiFormulaDao, KpiFor
public Result delete(String[] ids) {
//如果已经被考核规则使用则不能删除
QueryWrapper<KpiRuleEntity> kpiRuleEntityQueryWrapper = new QueryWrapper<>();
kpiRuleEntityQueryWrapper.in(ids.length>0,"reference_id",ids);
List<KpiRuleEntity> kpiRuleEntityList= kpiRuleDao.selectList(kpiRuleEntityQueryWrapper);
if(null!=kpiRuleEntityList&&kpiRuleEntityList.size()>0){
return new Result().error("存在公式被引用,不允许删除");
kpiRuleEntityQueryWrapper.in(ids.length > 0, "reference_id", ids);
List<KpiRuleEntity> kpiRuleEntityList = kpiRuleDao.selectList(kpiRuleEntityQueryWrapper);
if (null != kpiRuleEntityList && kpiRuleEntityList.size() > 0) {
return new Result().error("已经制定考核规则,不允许删除");
}
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));

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

@ -23,11 +23,15 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
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.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.KpiManualScoreDao;
import com.elink.esua.epdc.dto.KpiManualScoreDTO;
import com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO;
import com.elink.esua.epdc.entity.KpiManualScoreEntity;
import com.elink.esua.epdc.entity.KpiRuleEntity;
import com.elink.esua.epdc.redis.KpiManualScoreRedis;
import com.elink.esua.epdc.service.KpiManualScoreService;
import com.elink.esua.epdc.service.KpiRuleService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -48,7 +52,8 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao
@Autowired
private KpiManualScoreRedis kpiManualScoreRedis;
@Autowired
private KpiRuleService kpiRuleService;
@Override
public PageData<KpiManualScoreDTO> page(Map<String, Object> params) {
String scoreName=params.containsKey("scoreName")?params.get("scoreName").toString():null;
@ -92,16 +97,39 @@ public class KpiManualScoreServiceImpl extends BaseServiceImpl<KpiManualScoreDao
@Override
@Transactional(rollbackFor = Exception.class)
public void update(KpiManualScoreDTO dto) {
public Result update(KpiManualScoreDTO dto) {
KpiManualScoreEntity entity = ConvertUtils.sourceToTarget(dto, KpiManualScoreEntity.class);
//根据id去查询epdc_kpi_rule表,如果存在记录,需要同步更新考核周期、考核部门
String referenceIds[] = new String[1];
referenceIds[0] = dto.getId();
List<KpiRuleEntity> kpiRuleEntityList = kpiRuleService.listKpiRuleEntityByRereferenceId(referenceIds);
if (null != kpiRuleEntityList && kpiRuleEntityList.size() > 0) {
for (KpiRuleEntity kpiRuleEntity : kpiRuleEntityList) {
kpiRuleEntity.setDeptTypeKey(dto.getDeptTypeKey());
kpiRuleEntity.setKpiCycle(dto.getScoreCycle());
kpiRuleService.updateById(kpiRuleEntity);
}
}
updateById(entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
public Result delete(String[] ids) {
List<KpiRuleEntity> kpiRuleEntityList = kpiRuleService.listKpiRuleEntityByRereferenceId(ids);
if (null != kpiRuleEntityList && kpiRuleEntityList.size() > 0) {
return new Result().error("已经制定考核规则,不允许删除");
}
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
return new Result();
}
@Override
public Result<List<KpiManualScoreDictResultDTO>> listKpiManualScoreDictListDTO() {
List<KpiManualScoreDictResultDTO> list=baseDao.selectListKpiManualScoreDictResultDTO();
return new Result<List<KpiManualScoreDictResultDTO>>().ok(list);
}
}

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

@ -168,11 +168,14 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
}
KpiRuleEntity entity = ConvertUtils.sourceToTarget(dto, KpiRuleEntity.class);
insert(entity);
List<KpiRuleParamDTO> ruleParamList = dto.getRuleParamList();
for (KpiRuleParamDTO kpiRuleParamDTO : ruleParamList) {
kpiRuleParamDTO.setRuleId(entity.getId());
KpiRuleParamEntity kpiRuleParamEntity = ConvertUtils.sourceToTarget(kpiRuleParamDTO, KpiRuleParamEntity.class);
kpiRuleParamDao.insert(kpiRuleParamEntity);
//logger.info("规则表主键="+entity.getId());
// 元公式需要设置参数
if ("0".equals(dto.getRuleMode())) {
for (KpiRuleParamDTO kpiRuleParamDTO : dto.getRuleParamList()) {
kpiRuleParamDTO.setRuleId(entity.getId());
KpiRuleParamEntity kpiRuleParamEntity = ConvertUtils.sourceToTarget(kpiRuleParamDTO, KpiRuleParamEntity.class);
kpiRuleParamDao.insert(kpiRuleParamEntity);
}
}
return new Result();
}
@ -193,20 +196,27 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
}
KpiRuleEntity entity = ConvertUtils.sourceToTarget(dto, KpiRuleEntity.class);
updateById(entity);
//logger.info("规则表主键="+entity.getId());
//全部删除参数记录表
int deleteResultNum = kpiRuleParamDao.deleteByRuleId(entity.getId());
List<KpiRuleParamDTO> ruleParamList = dto.getRuleParamList();
for (KpiRuleParamDTO kpiRuleParamDTO : ruleParamList) {
kpiRuleParamDTO.setId(null);
kpiRuleParamDTO.setRuleId(entity.getId());
kpiRuleParamService.save(kpiRuleParamDTO);
if ("0".equals(dto.getRuleMode())) {
for (KpiRuleParamDTO kpiRuleParamDTO : dto.getRuleParamList()) {
kpiRuleParamDTO.setId(null);
kpiRuleParamDTO.setRuleId(entity.getId());
kpiRuleParamService.save(kpiRuleParamDTO);
}
}
return new Result();
}
public Result checkKpiRuleSaveOrUpdateFormDTO(KpiRuleSaveOrUpdateFormDTO dto) {
if (("0").equals(dto.getRuleMode())) {
//是否缺少参数
KpiFormulaEntity kpiFormulaEntity = kpiFormulaDao.selectById(dto.getReferenceId());
if ((null == dto.getRuleParamList() || dto.getRuleParamList().size() == 0)
&& kpiFormulaEntity.getParamAmount() > 0) {
return new Result().error("请选择元公式入参");
}
if (kpiFormulaEntity.getParamAmount() != dto.getRuleParamList().size()) {
return new Result().error("公式缺少入参");
}
@ -221,4 +231,19 @@ public class KpiRuleServiceImpl extends BaseServiceImpl<KpiRuleDao, KpiRuleEntit
}
return new Result();
}
/**
* @param referenceIds
* @return java.util.List<com.elink.esua.epdc.entity.KpiRuleEntity>
* @Author yinzuomei
* @Description 根据引用id查询考核规则表记录
* @Date 2019/12/2 15:00
**/
@Override
public List<KpiRuleEntity> listKpiRuleEntityByRereferenceId(String[] referenceIds) {
QueryWrapper<KpiRuleEntity> kpiRuleEntityQueryWrapper = new QueryWrapper<>();
kpiRuleEntityQueryWrapper.in("reference_id", referenceIds);
List<KpiRuleEntity> kpiRuleEntityList = baseDao.selectList(kpiRuleEntityQueryWrapper);
return kpiRuleEntityList;
}
}

14
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiManualScoreDao.xml

@ -17,5 +17,17 @@
<result property="delFlag" column="DEL_FLAG"/>
</resultMap>
<select id="selectListKpiManualScoreDictResultDTO" resultType="com.elink.esua.epdc.dto.result.KpiManualScoreDictResultDTO">
SELECT
id,
score_name AS scoreName,
dept_type_key AS deptTypeKey,
score_cycle AS scoreCycle
FROM
epdc_kpi_manual_score
WHERE
DEL_FLAG = '0'
ORDER BY
CREATED_TIME DESC
</select>
</mapper>

2
esua-epdc/epdc-module/epdc-kpi/epdc-kpi-server/src/main/resources/mapper/KpiRuleDao.xml

@ -36,6 +36,7 @@
ekr.DEL_FLAG as delFlag,
(case rule_mode
when '0' then (select ekf.name from epdc_kpi_formula ekf where ekf.ID=ekr.reference_id)
when '1' then (select kmc.score_name from epdc_kpi_manual_score kmc where kmc.ID=ekr.reference_id)
else null
end)as referenceName
FROM
@ -118,6 +119,7 @@
ekr.DEL_FLAG,
(case rule_mode
when '0' then (select ekf.name from epdc_kpi_formula ekf where ekf.ID=ekr.reference_id)
when '1' then (select kmc.score_name from epdc_kpi_manual_score kmc where kmc.ID=ekr.reference_id)
else null
end)as reference_name
FROM

Loading…
Cancel
Save