diff --git a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java index de509fd..3be8f69 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java @@ -1,7 +1,6 @@ package com.supervision.police.service.impl; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; @@ -14,7 +13,6 @@ import com.deepoove.poi.XWPFTemplate; import com.supervision.common.domain.R; import com.supervision.common.utils.StringUtils; import com.supervision.constant.JudgeResultEnum; -import com.supervision.constant.ScoreEnum; import com.supervision.neo4j.dto.ResultDTO; import com.supervision.neo4j.utils.Neo4jUtils; import com.supervision.police.domain.*; @@ -28,7 +26,6 @@ import com.supervision.police.mapper.*; import com.supervision.police.mybatis.RowSqlMapper; import com.supervision.police.service.*; import com.supervision.utils.SqlParserUtil; -import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -100,7 +97,7 @@ public class ModelServiceImpl implements ModelService { //原子指标 List atomicIndices = modelAtomicIndexMapper.selectByCaseType(modelCase.getCaseType()); // 存放原子指标的结果,key:原子指标ID,value:(key大指标ID,value:结果) - Map> atomicResultMap = new HashMap<>(); + Map> atomicResultMap = new HashMap<>(); for (ModelAtomicIndex atomicIndex : atomicIndices) { //原子指标结果 ModelAtomicResult result = new ModelAtomicResult(); @@ -132,9 +129,10 @@ public class ModelServiceImpl implements ModelService { List relationList = modelIndexAtomicRelationService.lambdaQuery().eq(ModelIndexAtomicRelation::getAtomicIndexId, atomicIndex.getId()).list(); for (ModelIndexAtomicRelation relation : relationList) { // 保存或更新原子指标结果表 - ModelAtomicResult exist = modelAtomicResultMapper.selectByCaseIdAndAtomicId(analyseCaseDTO.getCaseId(), casePerson.getId(),relation.getModelIndexId(), atomicIndex.getId()); + ModelAtomicResult exist = modelAtomicResultMapper.selectByCaseIdAndAtomicId(analyseCaseDTO.getCaseId(), casePerson.getId(), relation.getModelIndexId(), atomicIndex.getId()); result.setIndexId(relation.getModelIndexId()); if (exist == null) { + result.setId(null); modelAtomicResultMapper.insert(result); } else { result.setId(exist.getId()); @@ -169,11 +167,11 @@ public class ModelServiceImpl implements ModelService { .eq(ModelAtomicResult::getAtomicId, atomicIndex.getId())); if (CollUtil.isEmpty(modelAtomicResults)) { - log.info("manuallyDefinedCase:根据caseId:{},auomicId:{}未找到原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId()); + log.info("manuallyDefinedCase:根据caseId:{},atomicId:{}未找到原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId()); return; } if (CollUtil.size(modelAtomicResults) > 0) { - log.warn("manuallyDefinedCase:根据caseId:{},auomicId:{}找到多个原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId()); + log.warn("manuallyDefinedCase:根据caseId:{},atomicId:{}找到多个原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId()); } ModelAtomicResult modelAtomicResult = CollUtil.getFirst(modelAtomicResults); @@ -236,7 +234,7 @@ public class ModelServiceImpl implements ModelService { /** * 最终计算得分 */ - private void calculateFinalScore(AnalyseCaseDTO analyseCaseDTO, ModelCase modelCase, Map> atomicResultMap) { + private void calculateFinalScore(AnalyseCaseDTO analyseCaseDTO, ModelCase modelCase, Map> atomicResultMap) { // 计算指标结果 int score = 0; // 根据案件类型获取所有的指标 @@ -266,8 +264,13 @@ public class ModelServiceImpl implements ModelService { atomicIds.add(data.getAtomicIndex()); // 先找到原子指标对应的大指标的结果 Map atomicIndexMap = atomicResultMap.get(data.getAtomicIndex()); - // 这里可能不存在,如果未找到,就默认为false - String atomicIndexResult = atomicIndexMap.getOrDefault(modelIndex.getId(), JudgeResultEnum.UNKNOWN.getCode()); + String atomicIndexResult; + if (CollUtil.isEmpty(atomicIndexMap)) { + atomicIndexResult = JudgeResultEnum.UNKNOWN.getCode(); + } else { + // 这里可能不存在,如果未找到,就默认为false + atomicIndexResult = atomicIndexMap.getOrDefault(modelIndex.getId(), JudgeResultEnum.UNKNOWN.getCode()); + } String relationalSymbol = data.getRelationalSymbol(); JudgeResultEnum instance = JudgeResultEnum.getInstance(relationalSymbol); boolean ato = StrUtil.equals(atomicIndexResult, instance.getCode()); @@ -314,9 +317,9 @@ public class ModelServiceImpl implements ModelService { } } // 计算分数 共性+入罪/共性+出罪 取最大值 - Integer gx = typeScoreMap.getOrDefault("1",0); - Integer rz = typeScoreMap.getOrDefault("2",0); - Integer cz = typeScoreMap.getOrDefault("3",0); + 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);