Commit ab22ba49 by hzc

获取填報任务清单中关联指标

parent 3315423e
......@@ -184,7 +184,7 @@ public class TaskCtrl {
}
/**
* 确认的数据重新确认一遍)修改后数据变化方便数据的统一
* 获取任务清单中关联指标
* @Param []
* @Date 2021/1/5 11:03
* @Author hzc
......@@ -192,9 +192,8 @@ public class TaskCtrl {
@ApiOperation(" 获取任务清单中关联指标")
@GetMapping("findIndRef")
public List<JSONObject> findIndRef(@RequestParam("taskId") String taskId ,
@RequestParam("ruleId") Integer ruleId,
@RequestParam("dept") String dept){
return taskService.findIndRef(taskId,ruleId,dept);
@RequestParam("code") String code){
return taskService.findIndRef(taskId,code);
}
/**
......
......@@ -68,6 +68,12 @@ public class TaskIndicator extends BaseModel {
*/
private String indFormula;
/**
* 所属指标id
*/
private String driveId;
/**
* 指标归属部门
*/
......
......@@ -21,4 +21,5 @@ public class IndicatorsRel {
private String indType;//类型 0:基础指标 1:考核指标
private String indFormat;//指标公式
private String indFormatDesc;//指标公式描述
private String code;//机构编码
}
......@@ -2,6 +2,7 @@ package com.keymobile.indicators.model.mapper.indicators;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -27,5 +28,10 @@ public interface DriveIndDefMapper extends BaseMapper<DriveIndDef>{
public void deleteByIdIn(@Param("ids")List<String> ids);
/**
* 根据指标ids获取指标
* @param indIds
* @return
*/
List<DriveIndDef> selectByIds(@Param("indIds") List<String> indIds);
}
package com.keymobile.indicators.model.mapper.indmapper;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -21,4 +22,13 @@ public interface IndicatorsRelMapper extends BaseMapper<IndicatorsRel>{
* @Author hzc
**/
List<IndicatorsRel> selectByRelIndId(@Param("relIndId") String relIndId);
/**
* 根据数据项id和机构编码去获取指标id集合 --- 去重
* @param indSet
* @param code
* @return
*/
List<String> selectByRelIndIdsAndCode(@Param("inds") Set<String> indSet, @Param("code") String code);
}
......@@ -239,5 +239,5 @@ public interface TaskService {
**/
Result checkTask( TaskRule rule);
List<JSONObject> findIndRef(String taskId,Integer ruleId, String dept);
List<JSONObject> findIndRef(String taskId,String code);
}
......@@ -3,6 +3,7 @@ package com.keymobile.indicators.service.dataenter.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimaps;
import com.googlecode.aviator.AviatorEvaluator;
import com.keymobile.indicators.api.hytobacco.IndicatorsDefAuditCtrl;
......@@ -17,6 +18,7 @@ import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.model.entity.indicators.IndicatorsData;
import com.keymobile.indicators.model.mapper.indicators.*;
import com.keymobile.indicators.model.mapper.indmapper.IndicatorsDataMapper;
import com.keymobile.indicators.model.mapper.indmapper.IndicatorsRelMapper;
import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.service.ConfigInfoService;
import com.keymobile.indicators.service.NoticeInfoService;
......@@ -42,6 +44,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
......@@ -92,6 +95,14 @@ public class TaskServiceImpl implements TaskService {
@Autowired
private TaskIndValueTmpMapper taskIndValueTmpMapper;
@Autowired
private IndicatorsRelMapper indicatorsRelMapper;
@Autowired
private DriveIndDefMapper driveIndDefMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Task createTask(Task task) {
......@@ -785,7 +796,7 @@ public class TaskServiceImpl implements TaskService {
for (TaskRuleIndicator indicator : indicators) {
List<BaseIndDef> baseIndDefs =
this.indRelService.getRelByIndId(indicator.getIndId(), "1");
getBaseIndDef(ruleId, null, baseIndDefs, taskIndicators);
getBaseIndDef(ruleId, null, indicator.getIndId(),baseIndDefs, taskIndicators);
}
if (CollectionUtils.isNotEmpty(taskIndicators)) {
//数据项按归属部门分组
......@@ -920,7 +931,7 @@ public class TaskServiceImpl implements TaskService {
List<TaskIndicator> taskIndicators = new ArrayList<>();
for (TaskRuleIndicator indicator : indicators) {
List<BaseIndDef> baseIndDefs =this.indRelService.getRelByIndId(indicator.getIndId(), "1");
getBaseIndDef(ruleId, null, baseIndDefs, taskIndicators);
getBaseIndDef(ruleId, null,indicator.getIndId(), baseIndDefs, taskIndicators);
}
if (CollectionUtils.isNotEmpty(taskIndicators)) {
//数据项按归属部门分组
......@@ -957,14 +968,26 @@ public class TaskServiceImpl implements TaskService {
}
@Override
public List<JSONObject> findIndRef(String taskId,Integer ruleId , String dept) {
public List<JSONObject> findIndRef(String taskId,String code ) {
List<JSONObject> values = new ArrayList<>();
List<DriveIndDef> defs = taskRuleIndicatorMapper.findIndRefByRuleIdIdAndDept(ruleId,dept);
// List<DriveIndDef> defs = taskRuleIndicatorMapper.findIndRefByRuleIdIdAndDept(ruleId,dept);
//获取数据项
List<TaskIndicator> inds = taskIndicatorMapper.getByTaskId(taskId);
Set<String> driveIdSet = new HashSet<>(); //indicatorsRelMapper.selectByRelIndIdsAndCode(indSet,code);
Set<String> indSet = new HashSet<>();
Map<String,String> indIdOfNameMap = new HashMap<>();
for (TaskIndicator ind : inds) {
indSet.add(ind.getIndId());
indIdOfNameMap.put(ind.getIndId(),ind.getIndName());
driveIdSet.add(ind.getDriveId());
}
//转list
List<String> driveList = driveIdSet.stream().collect(Collectors.toList());
//获取指标
List<DriveIndDef> defs = driveIndDefMapper.selectByIds(driveList);
List<String> indIdList = new ArrayList<>();//定义存储从考核指标公式解析出来的基础指标id
for (DriveIndDef def : defs) {
JSONObject jo = new JSONObject();
......@@ -995,6 +1018,7 @@ public class TaskServiceImpl implements TaskService {
return values;
}
public String changeRedColor(String value){
StringBuilder tmp = new StringBuilder();
......@@ -1090,7 +1114,7 @@ public class TaskServiceImpl implements TaskService {
* @param baseIndDefs
* @param taskIndicators
*/
private void getBaseIndDef(Integer ruleId, String parentIndId, List<BaseIndDef> baseIndDefs, List<TaskIndicator> taskIndicators) {
private void getBaseIndDef(Integer ruleId, String parentIndId,String driverId, List<BaseIndDef> baseIndDefs, List<TaskIndicator> taskIndicators) {
if (CollectionUtils.isNotEmpty(baseIndDefs)) {
for (BaseIndDef baseIndDef : baseIndDefs) {
if (baseIndDef == null) {
......@@ -1105,6 +1129,7 @@ public class TaskServiceImpl implements TaskService {
taskIndicator.setIndId(baseIndDef.getIndId());
taskIndicator.setIndName(baseIndDef.getIndName());
taskIndicator.setIndDept(baseIndDef.getIndDept());
taskIndicator.setDriveId(driverId);
if (!taskIndicators.contains(taskIndicator)) {
taskIndicators.add(taskIndicator);
} else {
......@@ -1116,7 +1141,7 @@ public class TaskServiceImpl implements TaskService {
} else {
taskIndicator.setHasChildren(false);
}
getBaseIndDef(ruleId, taskIndicator.getIndId(), children, taskIndicators);
getBaseIndDef(ruleId, taskIndicator.getIndId(),driverId, children, taskIndicators);
}
}
}
......
......@@ -37,7 +37,6 @@ public class DriveIndDefService {
private ShortboardRuleMapper shortboardRuleMapper;
@Autowired
private IndicatorsRelService indRelService;
public String saveOrUpdate(DriveIndDef driveIndDef,String code,Integer catalogId,String catalogIdPath,
String user,String isUpdate,String shortboardIds)throws Exception{
//判断公式合法性
......
......@@ -298,7 +298,7 @@ public class IndScorecardService {
}
}
//判断是否有设置综合评分分数下限,有的话判断下限分和实际分
if(scoreCard.getCompLimitFloorScore()!=null&&scoreCard.getCompLimitFloorScore()!=0){
if(scoreCard.getCompLimitFloorScore()!=null){
if(baseScoreValue<scoreCard.getCompLimitFloorScore()){
baseScoreValue=scoreCard.getCompLimitFloorScore();
}
......
......@@ -151,6 +151,7 @@ public class IndicatorsRelService {
public void saveOrUpdate(String indId,String type) {
String formula = null;
String formulaDesc = null;
String code=null;
//判断该指标有没有保存了关联指标,有的则全部删除,全部新建
List<IndicatorsRel> indRels = indicatorsRelMapper.findByIndId(indId);
if(!indRels.isEmpty()) {
......@@ -169,6 +170,7 @@ public class IndicatorsRelService {
if(driveIndDef!=null) {
formula = driveIndDef.getIndFormat();
formulaDesc = driveIndDef.getIndFormatDesc();
code = driveIndDef.getCode();
}
}
//解析公式关系
......@@ -185,6 +187,7 @@ public class IndicatorsRelService {
indRel.setIndFormat(formula);
indRel.setIndFormatDesc(formulaDesc);
indRel.setIndType(type);
indRel.setCode(code);
indicatorsRelMapper.insert(indRel);
}
}
......
......@@ -17,4 +17,13 @@
from ind_relation
where rel_ind_id = #{relIndId}
</select>
<select id="selectByRelIndIdsAndCode" resultType="java.lang.String">
select distinct ind_id from ind_relation
where code=#{code} and rel_ind_id in
<foreach collection="inds" open="(" item="val" separator="," close=")">
#{val}
</foreach>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment