Merge remote-tracking branch 'origin/dev_1.0.0' into dev_1.0.0

topo_dev
xueqingkun 9 months ago
commit 24d4e8217a

@ -5,25 +5,22 @@ import lombok.Getter;
@Getter
public enum JudgeResultEnum {
TRUE("1","真实","1"),
TRUE("1","真实"),
FALSE("2","虚构","0"),
FALSE("2","虚构"),
EXIST("3","存在","1"),
EXIST("3","存在"),
NOT_EXIST("4","不存在","0"),
NOT_EXIST("4","不存在"),
UNKNOWN("5","未知","-1");
UNKNOWN("5","未知");
private String code;
private String desc;
// 原子指标结果 -1:未知, 0:不存在, 1存在
private String translateResult;
private final String code;
private final String desc;
JudgeResultEnum(String code, String desc,String translateResult) {
JudgeResultEnum(String code, String desc) {
this.code = code;
this.desc = desc;
this.translateResult = translateResult;
}
@ -42,14 +39,6 @@ public enum JudgeResultEnum {
return JudgeResultEnum.UNKNOWN;
}
public static JudgeResultEnum getInstanceByTranslateResult(String translateResult) {
for (JudgeResultEnum judgeResultEnum : JudgeResultEnum.values()) {
if (judgeResultEnum.getTranslateResult().equals(translateResult)) {
return judgeResultEnum;
}
}
return JudgeResultEnum.UNKNOWN;
}
/**

@ -45,7 +45,7 @@ public class ModelAtomicResult implements Serializable {
private String atomicId;
/**
* -1:, 0:, 1
*
*/
private String atomicResult;

@ -43,34 +43,15 @@ public class AtomicIndexDTO {
private String indexSource;
public void atomicResultToIndexResult() {
JudgeResultEnum instance = JudgeResultEnum.getInstance(this.atomicResult);
if (Objects.isNull(instance)){
this.indexResult = "false";
return;
}
this.indexResult = instance.flagIsTrue() ? "true" : "false";
}
public void judgeWithIndexResult(String judgeLogic){
JudgeResultEnum instance = JudgeResultEnum.getInstanceByTranslateResult(this.atomicResult);
if (Objects.isNull(instance)){
this.indexResult = "false";
return;
}
if (StrUtil.isBlank(judgeLogic)){
this.indexResult = instance.flagIsTrue() ? "true" : "false";
// 1.指标判断符合,规则要求不符合,返回false
// 2.指标判断不符合,规则要求符合,返回false
// 3.指标判断符合,规则要求符合,返回true
// 4.指标判断不符合,规则要求不符合,返回true
if (judgeLogic.equals(this.atomicResult)){
this.indexResult = "true";
}else {
String translateResult = instance.getTranslateResult();
// 1.指标判断符合,规则要求不符合,返回false
// 2.指标判断不符合,规则要求符合,返回false
// 3.指标判断符合,规则要求符合,返回true
// 4.指标判断不符合,规则要求不符合,返回true
if (judgeLogic.equals(translateResult)){
this.indexResult = "true";
}else {
this.indexResult = "false";
}
this.indexResult = "false";
}
}

@ -326,7 +326,9 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
}
// 是否是新的结果
record.setNewFlag(!StrUtil.equals(record.getIndexResult(), record.getPreResult()));
// 获取原子指标的判断规则
String judgeLogic = record.getJudgeLogic();
// 配置的指标的逻辑
Map<String, String> indexJundgeLogicMap = parseLogicMap(judgeLogic);
String[] array = record.getAtomicIds().split(",");
List<String> atomicIds = Arrays.asList(array);
@ -355,14 +357,7 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
Map<String, String> resultMap = new HashMap<>();
for (JudgeLogic logic : judgeLogics) {
for (AtomicData atomicDatum : logic.getAtomicData()) {
// 原子指标结果 -1:未知, 0:不存在, 1存在
if (atomicDatum.getRelationalSymbol().equals("1") || atomicDatum.getRelationalSymbol().equals("3")) {
resultMap.put(atomicDatum.getAtomicIndex(), "1");
} else if (atomicDatum.getRelationalSymbol().equals("2") || atomicDatum.getRelationalSymbol().equals("4")) {
resultMap.put(atomicDatum.getAtomicIndex(), "0");
} else {
resultMap.put(atomicDatum.getAtomicIndex(), "-1");
}
resultMap.put(atomicDatum.getAtomicIndex(), atomicDatum.getRelationalSymbol());
}
}
return resultMap;

@ -90,7 +90,7 @@ public class ModelServiceImpl implements ModelService {
.eq(CasePerson::getCaseId, analyseCaseDTO.getCaseId())
.eq(CasePerson::getCaseActorFlag, 1)
.eq(CasePerson::getRoleCode, "1")
.eq(StrUtil.isNotEmpty(analyseCaseDTO.getLawActorName()),CasePerson::getName, analyseCaseDTO.getLawActorName()));
.eq(StrUtil.isNotEmpty(analyseCaseDTO.getLawActorName()), CasePerson::getName, analyseCaseDTO.getLawActorName()));
if (ObjectUtil.isEmpty(casePerson)) {
throw new RuntimeException("未找到的行为人" + analyseCaseDTO.getLawActorName());
}
@ -131,21 +131,13 @@ public class ModelServiceImpl implements ModelService {
log.error(e.getMessage(), e);
}
// 非人工填写的,需要进行更新结果,人工填写的不更新(人工填写的编码,需要进行特殊处理)
if (!"1".equals(atomicIndex.getIndexSource())) {
//保存原子指标结果表
ModelAtomicResult exist = modelAtomicResultMapper.selectByCaseIdAndAtomicId(analyseCaseDTO.getCaseId(), casePerson.getId(), atomicIndex.getId());
if (exist == null) {
modelAtomicResultMapper.insert(result);
} else {
result.setId(exist.getId());
modelAtomicResultMapper.updateById(result);
}
}
// 所有原子指标id,判断结果
Set<String> checkAtomicResult = Set.of("-1", "0", "1");
if (StrUtil.isNotBlank(result.getAtomicResult()) && !checkAtomicResult.contains(result.getAtomicResult())) {
log.error("TEST:不被支持的校核结果,需排查BUG,atomicId:" + result.getAtomicId() + " result:" + result.getAtomicResult());
//保存原子指标结果表
ModelAtomicResult exist = modelAtomicResultMapper.selectByCaseIdAndAtomicId(analyseCaseDTO.getCaseId(), casePerson.getId(), atomicIndex.getId());
if (exist == null) {
modelAtomicResultMapper.insert(result);
} else {
result.setId(exist.getId());
modelAtomicResultMapper.updateById(result);
}
atomicResultMap.put(result.getAtomicId(), result.getAtomicResult());
}
@ -177,10 +169,9 @@ public class ModelServiceImpl implements ModelService {
log.warn("manuallyDefinedCase:根据caseId:{},auomicId:{}找到多个原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId());
}
ModelAtomicResult modelAtomicResult = CollUtil.getFirst(modelAtomicResults);
// 对结果进行映射操作,前端填的是1-5,我们这里应该是-1,0,1
JudgeResultEnum instance = JudgeResultEnum.getInstance(modelAtomicResult.getAtomicResult());
result.setAtomicResult(instance.getTranslateResult());
result.setAtomicResult(modelAtomicResult.getAtomicResult());
}
@Override
@ -243,6 +234,7 @@ public class ModelServiceImpl implements ModelService {
int score = 0;
// 根据案件类型获取所有的指标
List<ModelIndex> modelIndices = modelIndexMapper.selectByCaseType(modelCase.getCaseType());
Map<String, Integer> typeScoreMap = new HashMap<>();
for (ModelIndex modelIndex : modelIndices) {
ModelIndexResult result = new ModelIndexResult();
result.setCaseId(analyseCaseDTO.getCaseId());
@ -266,10 +258,10 @@ public class ModelServiceImpl implements ModelService {
AtomicData data = atomicData.get(j);
atomicIds.add(data.getAtomicIndex());
// 这里可能不存在,如果未找到,就默认为false
String atomicIndexResult = atomicResultMap.getOrDefault(data.getAtomicIndex(), "-1");
String atomicIndexResult = atomicResultMap.getOrDefault(data.getAtomicIndex(), JudgeResultEnum.UNKNOWN.getCode());
String relationalSymbol = data.getRelationalSymbol();
JudgeResultEnum instance = JudgeResultEnum.getInstance(relationalSymbol);
boolean ato = StrUtil.equals(atomicIndexResult, instance.getTranslateResult());
boolean ato = StrUtil.equals(atomicIndexResult, instance.getCode());
if (j == 0) {
innerGroupJudge = ato;
} else {
@ -308,10 +300,16 @@ public class ModelServiceImpl implements ModelService {
}
if ("true".equals(result.getIndexResult())) {
score = score + modelIndex.getIndexScore();
Integer orDefault = typeScoreMap.getOrDefault(modelIndex.getIndexType(), 0);
typeScoreMap.put(modelIndex.getIndexType(), orDefault + modelIndex.getIndexScore());
}
}
modelCase.setTotalScore(score);
// 计算分数 共性+入罪/共性+出罪 取最大值
Integer gx = typeScoreMap.getOrDefault("1",0);
Integer rz = typeScoreMap.getOrDefault("2",0);
Integer cz = typeScoreMap.getOrDefault("3",0);
int max = Integer.max(gx + rz, gx + cz);
modelCase.setTotalScore(max);
modelCaseMapper.updateById(modelCase);
}
@ -348,15 +346,15 @@ public class ModelServiceImpl implements ModelService {
List<ResultDTO> res = Neo4jUtils.getResultDTOList(run);
if (res.isEmpty()) {
result.setAtomicResult("-1");
result.setAtomicResult(JudgeResultEnum.UNKNOWN.getCode());
} else {
// 设置为0,不存在
result.setAtomicResult("0");
result.setAtomicResult(JudgeResultEnum.NOT_EXIST.getCode());
// 进行遍历,如果有存在的,就设置为有
for (ResultDTO resultDTO : res) {
if (StringUtils.isNotEmpty(resultDTO.getRelId())) {
//存在关系
result.setAtomicResult("1");
result.setAtomicResult(JudgeResultEnum.EXIST.getCode());
result.setRecordSplitId(resultDTO.getRecordSplitId());
result.setRecordId(resultDTO.getRecordId());
// 如果只要存在,就不进行校验了,直接跳出循环
@ -375,7 +373,7 @@ public class ModelServiceImpl implements ModelService {
* @param result
* @param sql
*/
private void analyseDataBaseCase(AnalyseCaseDTO analyseCaseDTO, ModelAtomicResult result, String sql,String caseActorName) {
private void analyseDataBaseCase(AnalyseCaseDTO analyseCaseDTO, ModelAtomicResult result, String sql, String caseActorName) {
Map<String, Object> params = new HashMap<>();
params.put("caseId", result.getCaseId());
@ -387,7 +385,7 @@ public class ModelServiceImpl implements ModelService {
if (modelIndexService.checkSql(sql)) {
success = parseResult(rowSqlMapper.selectList(sql, params, Map.class));
}
result.setAtomicResult(success ? "1" : "0");
result.setAtomicResult(success ? JudgeResultEnum.EXIST.getCode() : JudgeResultEnum.NOT_EXIST.getCode());
}

Loading…
Cancel
Save