Commit 3315423e by hzc

新增获取任务清单中关联指标接口

parent fdcdcc0c
......@@ -182,6 +182,21 @@ public class TaskCtrl {
}
return result;
}
/**
* 确认的数据重新确认一遍)修改后数据变化方便数据的统一
* @Param []
* @Date 2021/1/5 11:03
* @Author hzc
**/
@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);
}
/**
* 确认的数据重新确认一遍)修改后数据变化方便数据的统一
* @Param []
......
package com.keymobile.indicators.model.mapper.indicators;
import com.keymobile.indicators.model.entity.dataenter.TaskRuleIndicator;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.BaseMapper;
import java.util.List;
......@@ -17,4 +19,13 @@ public interface TaskRuleIndicatorMapper extends BaseMapper<TaskRuleIndicator> {
List<TaskRuleIndicator> getByRuleId(Integer ruleId);
void deleteByRuleId(Integer ruleId);
/**
* 关联指标表查询出对应的指标信息
* @param ruleId
* @param dept
* @return
*/
List<DriveIndDef> findIndRefByRuleIdIdAndDept(@Param("ruleId") Integer ruleId,@Param("dept") String dept);
}
package com.keymobile.indicators.service.dataenter;
import com.alibaba.fastjson.JSONObject;
import com.keymobile.indicators.model.entity.dataenter.*;
import com.keymobile.indicators.result.Result;
import io.swagger.annotations.ApiParam;
......@@ -237,4 +238,6 @@ public interface TaskService {
* @Author hzc
**/
Result checkTask( TaskRule rule);
List<JSONObject> findIndRef(String taskId,Integer ruleId, String dept);
}
......@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Multimaps;
import com.googlecode.aviator.AviatorEvaluator;
import com.keymobile.indicators.api.hytobacco.IndicatorsDefAuditCtrl;
import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.AuthModel;
import com.keymobile.indicators.model.entity.ConfigInfo;
......@@ -12,6 +13,7 @@ import com.keymobile.indicators.model.entity.NoticeInfo;
import com.keymobile.indicators.model.entity.RoleRefUserModel;
import com.keymobile.indicators.model.entity.dataenter.*;
import com.keymobile.indicators.model.entity.indicators.BaseIndDef;
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;
......@@ -40,6 +42,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
@Service
@Slf4j
......@@ -954,6 +957,55 @@ public class TaskServiceImpl implements TaskService {
}
@Override
public List<JSONObject> findIndRef(String taskId,Integer ruleId , String dept) {
List<JSONObject> values = new ArrayList<>();
List<DriveIndDef> defs = taskRuleIndicatorMapper.findIndRefByRuleIdIdAndDept(ruleId,dept);
List<TaskIndicator> inds = taskIndicatorMapper.getByTaskId(taskId);
Map<String,String> indIdOfNameMap = new HashMap<>();
for (TaskIndicator ind : inds) {
indIdOfNameMap.put(ind.getIndId(),ind.getIndName());
}
List<String> indIdList = new ArrayList<>();//定义存储从考核指标公式解析出来的基础指标id
for (DriveIndDef def : defs) {
JSONObject jo = new JSONObject();
String indFormatDesc = def.getIndFormatDesc();
String formulaInfo = def.getIndFormat();
if(StringUtils.isNotBlank(formulaInfo)){
//解析公式
Pattern p = Pattern.compile("(\\[[^\\]]*\\])");
Matcher m = p.matcher(formulaInfo);
while (m.find()) {
indIdList.add(m.group().substring(1, m.group().length() - 1));
}
for (String s : indIdList) {
String tmp = indIdOfNameMap.get(s);
if(tmp!=null){
//变红
String redColor = changeRedColor(tmp);
indFormatDesc=indFormatDesc.replaceAll(tmp,redColor);
}
}
}
jo.put("indId",def.getIndId());
jo.put("indName",def.getIndName());
jo.put("indFormatDesc",indFormatDesc);
values.add(jo);
indIdList.clear();
}
return values;
}
public String changeRedColor(String value){
StringBuilder tmp = new StringBuilder();
tmp.append("<span style='color:red'>");
tmp.append(value);
tmp.append("</span>");
return tmp.toString();
}
@Override
public TaskAnalysisResult stateCounts(QueryTaskParam param) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(new Date());
......
......@@ -14,4 +14,12 @@
set state = 3
where rule_id = #{ruleId}
</update>
<select id="findIndRefByRuleIdIdAndDept" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndDef">
SELECT def.*
from data_enter_rule_ind ind LEFT JOIN drive_ind_def def on ind.ind_id=def.ind_id
where ind.rule_id = #{ruleId} and def.ind_dept=#{dept}
</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