指标结果查询根据indexRule拼装原子指标信息

topo_dev
DESKTOP-DDTUS3E\yaxin
parent 4486b1540e
commit e50033e64c

@ -53,6 +53,11 @@ public class IndexDetail {
*/ */
private String judgeLogic; private String judgeLogic;
/**
*
*/
private String indexRule;
public void setRecordValue() { public void setRecordValue() {
if (CollUtil.isEmpty(this.children)){ if (CollUtil.isEmpty(this.children)){
this.setRecord("无"); this.setRecord("无");

@ -28,7 +28,7 @@ import com.supervision.police.dto.*;
import com.supervision.police.mapper.ModelCaseMapper; import com.supervision.police.mapper.ModelCaseMapper;
import com.supervision.police.service.*; import com.supervision.police.service.*;
import com.supervision.police.vo.ModelCaseVO; import com.supervision.police.vo.ModelCaseVO;
import com.supervision.utils.JudgeLogicUtil; import com.supervision.utils.IndexRuleUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -418,21 +418,19 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
List<CaseEvidence> caseEvidenceList = CollUtil.isEmpty(list) ? new ArrayList<>() : caseEvidenceService.listByIds(list); List<CaseEvidence> caseEvidenceList = CollUtil.isEmpty(list) ? new ArrayList<>() : caseEvidenceService.listByIds(list);
for (IndexDetail record : indexDetails) { for (IndexDetail record : indexDetails) {
if (StringUtils.isEmpty(record.getJudgeLogic())) { if (StringUtils.isEmpty(record.getIndexResult())) {
continue; continue;
} }
// 是否是新的结果 // 是否是新的结果
record.setNewFlagValue(); record.setNewFlagValue();
List<String> atomicIndexIds = IndexRuleUtil.getAtomicIndexIds(record.getIndexRule());
List<String> atomicIds = JudgeLogicUtil.pickAtomicIndexIds(record.getJudgeLogic()); List<AtomicIndexDTO> atomics = modelCaseMapper.getAtomicDetail(caseId, record.getIndexId(), atomicIndexIds);
List<AtomicIndexDTO> atomics = modelCaseMapper.getAtomicDetail(caseId, record.getIndexId(), atomicIds);
for (AtomicIndexDTO atomic : atomics) { for (AtomicIndexDTO atomic : atomics) {
// 获取原子指标的判断规则 // 获取原子指标的判断规则
// 配置的指标的逻辑 // 配置的指标的逻辑
Map<String, String> indexJundgeLogicMap = parseLogicMap(record.getJudgeLogic()); Map<String, String> indexJundgeLogicMap = IndexRuleUtil.getIndexJundgeLogicMap(record.getIndexRule());
// 需要和原子指标的规则判断是否一致(解决出罪和入罪冲突的问题) // 需要和原子指标的规则判断是否一致(解决出罪和入罪冲突的问题)
String relationalSymbol = indexJundgeLogicMap.get(atomic.getAtomicIndexId()); String relationalSymbol = indexJundgeLogicMap.get(atomic.getAtomicIndexId());
atomic.judgeWithIndexResult(relationalSymbol); atomic.judgeWithIndexResult(relationalSymbol);
atomic.setSegmentation(nodeRecordSpliteMap); atomic.setSegmentation(nodeRecordSpliteMap);
atomic.setRecordIfSegmentationAbsent("无"); atomic.setRecordIfSegmentationAbsent("无");
@ -442,6 +440,31 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
atomic.setParentIndexName(record.getIndexName()); atomic.setParentIndexName(record.getIndexName());
} }
// ===================================↑新方法=====================================
// ===================================↓老方法=====================================
// if (StringUtils.isEmpty(record.getJudgeLogic())) {
// continue;
// }
// // 是否是新的结果
// record.setNewFlagValue();
//
// List<String> atomicIds = JudgeLogicUtil.pickAtomicIndexIds(record.getJudgeLogic());
// List<AtomicIndexDTO> atomics = modelCaseMapper.getAtomicDetail(caseId, record.getIndexId(), atomicIds);
// for (AtomicIndexDTO atomic : atomics) {
// // 获取原子指标的判断规则
// // 配置的指标的逻辑
// Map<String, String> indexJundgeLogicMap = parseLogicMap(record.getJudgeLogic());
// // 需要和原子指标的规则判断是否一致(解决出罪和入罪冲突的问题)
// String relationalSymbol = indexJundgeLogicMap.get(atomic.getAtomicIndexId());
//
// atomic.judgeWithIndexResult(relationalSymbol);
// atomic.setSegmentation(nodeRecordSpliteMap);
// atomic.setRecordIfSegmentationAbsent("无");
// List<ModelAtomicResult> filterAtomicResultList = atomicResultList.stream().filter(v -> StrUtil.equals(record.getIndexId(), v.getIndexId())).toList();
// List<EvidentIndexResultDTO> evidentResult = getEvidentResult(filterAtomicResultList, caseEvidenceList, rootDirectory);
// atomic.setEvidentResultList(evidentResult);
// }
record.setChildren(atomics); record.setChildren(atomics);
record.setRecordValue(); record.setRecordValue();

@ -0,0 +1,35 @@
package com.supervision.utils;
import com.google.gson.Gson;
import com.supervision.police.dto.indexRule.IndexRule;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class IndexRuleUtil {
public static List<String> getAtomicIndexIds(String indexRule) {
List<String> atomicIndexIds = new ArrayList<>();
Gson gson = new Gson();
IndexRule rule = gson.fromJson(indexRule, IndexRule.class);
rule.getRuleConditionGroupList().forEach(group -> {
group.getRuleConditionList().forEach(condition -> {
atomicIndexIds.add(condition.getAtomicIndexId());
});
});
return atomicIndexIds;
}
public static Map<String, String> getIndexJundgeLogicMap(String indexRule) {
Map<String, String> indexJundgeLogicMap = new HashMap<>();
Gson gson = new Gson();
IndexRule rule = gson.fromJson(indexRule, IndexRule.class);
rule.getRuleConditionGroupList().forEach(group -> {
group.getRuleConditionList().forEach(condition -> {
indexJundgeLogicMap.put(condition.getAtomicIndexId(), condition.getRelationalSymbol());
});
});
return indexJundgeLogicMap;
}
}

@ -106,7 +106,8 @@
mir.index_result, mir.index_result,
mir.pre_result as preResult, mir.pre_result as preResult,
mir.atomic_ids, mir.atomic_ids,
mi.judge_logic as judgeLogic mi.judge_logic as judgeLogic,
mi.index_rule as indexRule
from model_index mi from model_index mi
left join model_index_result mir on (mi.id = mir.index_id and mir.case_id = #{query.caseId}) left join model_index_result mir on (mi.id = mir.index_id and mir.case_id = #{query.caseId})
WHERE mi.data_status = '1' WHERE mi.data_status = '1'

Loading…
Cancel
Save