|
|
|
@ -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());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|