Merge remote-tracking branch 'origin/dev' into dev

topo_dev
xueqingkun 6 months ago
commit 719e5b9ee0

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

@ -28,7 +28,7 @@ import com.supervision.police.dto.*;
import com.supervision.police.mapper.ModelCaseMapper;
import com.supervision.police.service.*;
import com.supervision.police.vo.ModelCaseVO;
import com.supervision.utils.JudgeLogicUtil;
import com.supervision.utils.IndexRuleUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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);
for (IndexDetail record : indexDetails) {
if (StringUtils.isEmpty(record.getJudgeLogic())) {
if (StringUtils.isEmpty(record.getIndexResult())) {
continue;
}
// 是否是新的结果
record.setNewFlagValue();
List<String> atomicIds = JudgeLogicUtil.pickAtomicIndexIds(record.getJudgeLogic());
List<AtomicIndexDTO> atomics = modelCaseMapper.getAtomicDetail(caseId, record.getIndexId(), atomicIds);
List<String> atomicIndexIds = IndexRuleUtil.getAtomicIndexIds(record.getIndexRule());
List<AtomicIndexDTO> atomics = modelCaseMapper.getAtomicDetail(caseId, record.getIndexId(), atomicIndexIds);
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());
atomic.judgeWithIndexResult(relationalSymbol);
atomic.setSegmentation(nodeRecordSpliteMap);
atomic.setRecordIfSegmentationAbsent("无");
@ -442,6 +440,31 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
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.setRecordValue();
@ -449,19 +472,19 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
}
private List<EvidentIndexResultDTO> getEvidentResult(List<ModelAtomicResult> atomicResultList,List<CaseEvidence> caseEvidenceList,EvidenceDirectoryDTO rootDirectory) {
private List<EvidentIndexResultDTO> getEvidentResult(List<ModelAtomicResult> atomicResultList, List<CaseEvidence> caseEvidenceList, EvidenceDirectoryDTO rootDirectory) {
ArrayList<EvidentIndexResultDTO> evidentIndexResultDTOS = new ArrayList<>();
for (ModelAtomicResult modelAtomicResult : atomicResultList) {
String evidenceId = modelAtomicResult.getEvidenceId();
if (StrUtil.isEmpty(evidenceId)){
if (StrUtil.isEmpty(evidenceId)) {
continue;
}
List<String> evidenceIdList = Arrays.asList(evidenceId.split(","));
for (CaseEvidence caseEvidence : caseEvidenceList) {
if (evidenceIdList.contains(caseEvidence.getId())){
if (evidenceIdList.contains(caseEvidence.getId())) {
EvidentIndexResultDTO evidentIndexResultDTO = new EvidentIndexResultDTO();
evidentIndexResultDTO.setEvidenceId(caseEvidence.getId());
evidentIndexResultDTO.setEvidenceName(caseEvidence.getEvidenceName());
@ -470,7 +493,7 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
evidentIndexResultDTO.setIndexId(modelAtomicResult.getIndexId());
evidentIndexResultDTO.setProvider(caseEvidence.getProvider());
EvidenceDirectoryDTO directory = rootDirectory.findDirectory(caseEvidence.getDirectoryId());
if (directory != null){
if (directory != null) {
evidentIndexResultDTO.setDirectoryName(directory.getDirectoryName());
List<String> directoryPath = rootDirectory.getDirectoryPath(evidentIndexResultDTO.getDirectoryId());
evidentIndexResultDTO.setDirectoryPath(StrUtil.join(">", directoryPath));

@ -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.pre_result as preResult,
mir.atomic_ids,
mi.judge_logic as judgeLogic
mi.judge_logic as judgeLogic,
mi.index_rule as indexRule
from model_index mi
left join model_index_result mir on (mi.id = mir.index_id and mir.case_id = #{query.caseId})
WHERE mi.data_status = '1'

Loading…
Cancel
Save