From 91b64b7c33fd2a7ba7b2732f092b0750549fe2a4 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Thu, 25 Jul 2024 17:24:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=E6=A1=88=E4=BB=B6?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86=E6=9C=8D=E5=8A=A1=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ExceptionHandlerConfig.java | 2 +- .../constant/CaseAnalysisStatusEnum.java | 23 +++++++++---- .../constant/CaseDataStatusEnum.java | 21 ++++++++---- .../com/supervision/constant/ScoreEnum.java | 15 ++++++--- .../supervision/police/dto/CaseStatus.java | 32 ++++++++++++++++--- .../impl/CaseStatusManageServiceImpl.java | 18 +++++------ .../service/impl/ModelCaseServiceImpl.java | 6 ++++ .../police/service/impl/ModelServiceImpl.java | 11 ++++++- .../impl/NoteRecordSplitServiceImpl.java | 14 +++----- 9 files changed, 100 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/supervision/config/ExceptionHandlerConfig.java b/src/main/java/com/supervision/config/ExceptionHandlerConfig.java index 42bbe76..af90eda 100644 --- a/src/main/java/com/supervision/config/ExceptionHandlerConfig.java +++ b/src/main/java/com/supervision/config/ExceptionHandlerConfig.java @@ -39,7 +39,7 @@ public class ExceptionHandlerConfig { log.error(exception.getMessage(), exception); log.error("<<<=========运行异常========="); - return R.fail(ResultStatusEnum.RUNTIME_EXCEPTION.getCode(),exception.getMessage()); + return R.fail(ResultStatusEnum.RUNTIME_EXCEPTION,exception.getMessage()); } @ExceptionHandler(MaxUploadSizeExceededException.class) diff --git a/src/main/java/com/supervision/constant/CaseAnalysisStatusEnum.java b/src/main/java/com/supervision/constant/CaseAnalysisStatusEnum.java index d950b11..ddc8be5 100644 --- a/src/main/java/com/supervision/constant/CaseAnalysisStatusEnum.java +++ b/src/main/java/com/supervision/constant/CaseAnalysisStatusEnum.java @@ -5,21 +5,30 @@ package com.supervision.constant; */ public enum CaseAnalysisStatusEnum { - UNANALYZED("0","未分析"), - ANALYZING("1","正在分析"), - ANALYZED("2","分析成功"), - ANALYZE_FAIL("3","分析失败"), + UNANALYZED(0,"未分析"), + ANALYZING(1,"正在分析"), + ANALYZED(2,"分析成功"), + ANALYZE_FAIL(3,"分析失败"), ; - private String code; + private int code; private String desc; - CaseAnalysisStatusEnum(String code, String desc) { + CaseAnalysisStatusEnum(int code, String desc) { this.code = code; this.desc = desc; } - public String getCode() { + public int getCode() { return code; } public String getDesc() { return desc; } + + public static CaseAnalysisStatusEnum getInstance(int code) { + for (CaseAnalysisStatusEnum caseAnalysisStatusEnum : CaseAnalysisStatusEnum.values()) { + if (caseAnalysisStatusEnum.getCode() == code) { + return caseAnalysisStatusEnum; + } + } + return null; + } } diff --git a/src/main/java/com/supervision/constant/CaseDataStatusEnum.java b/src/main/java/com/supervision/constant/CaseDataStatusEnum.java index 09831d8..f15640f 100644 --- a/src/main/java/com/supervision/constant/CaseDataStatusEnum.java +++ b/src/main/java/com/supervision/constant/CaseDataStatusEnum.java @@ -4,19 +4,28 @@ package com.supervision.constant; * 案件数据状态 0:没有基础数据 1:数据未更新 2:数据已更新 */ public enum CaseDataStatusEnum { - NO_DATA("0","没有基础数据"), - NOT_UPDATE("1","数据未更新"), - UPDATE("2","数据已更新"); - private String code; + NO_DATA(0,"没有基础数据"), + NOT_UPDATE(1,"数据未更新"), + UPDATE(2,"数据已更新"); + private int code; private String desc; - CaseDataStatusEnum(String code, String desc) { + CaseDataStatusEnum(int code, String desc) { this.code = code; this.desc = desc; } - public String getCode() { + public int getCode() { return code; } public String getDesc() { return desc; } + + public static CaseDataStatusEnum getInstance(int code) { + for (CaseDataStatusEnum caseDataStatusEnum : CaseDataStatusEnum.values()) { + if (caseDataStatusEnum.getCode() == code) { + return caseDataStatusEnum; + } + } + return null; + } } diff --git a/src/main/java/com/supervision/constant/ScoreEnum.java b/src/main/java/com/supervision/constant/ScoreEnum.java index faff30b..2bf8a3e 100644 --- a/src/main/java/com/supervision/constant/ScoreEnum.java +++ b/src/main/java/com/supervision/constant/ScoreEnum.java @@ -3,18 +3,23 @@ package com.supervision.constant; import java.util.Objects; public enum ScoreEnum { - EVIDENCE_FULL("证据充分", "司法机关对案件形成一致认定意见的概率比较大"), - EVIDENCE_LACK("证据不足", "司法籍贯认定意见不一致的概率比较大"), - EVIDENCE_NOT_FULL("证据不充分", "司法籍贯会作出绝对不起诉或存疑不起诉的决定"); + EVIDENCE_FULL("1","证据充分", "司法机关对案件形成一致认定意见的概率比较大"), + EVIDENCE_LACK("2","证据不足", "司法籍贯认定意见不一致的概率比较大"), + EVIDENCE_NOT_FULL("3","证据不充分", "司法籍贯会作出绝对不起诉或存疑不起诉的决定"); + private final String code; private final String name; private final String desc; - ScoreEnum(String name, String desc) { + ScoreEnum(String code,String name, String desc) { + this.code = code; this.name = name; this.desc = desc; } + public String getCode() { + return code; + } public String getName() { return name; } @@ -25,7 +30,7 @@ public enum ScoreEnum { public static ScoreEnum getScoreEnum(Integer score) { if (Objects.isNull(score)){ - return null; + return EVIDENCE_NOT_FULL; } if (score < 50){ diff --git a/src/main/java/com/supervision/police/dto/CaseStatus.java b/src/main/java/com/supervision/police/dto/CaseStatus.java index 2fb94ee..aadf216 100644 --- a/src/main/java/com/supervision/police/dto/CaseStatus.java +++ b/src/main/java/com/supervision/police/dto/CaseStatus.java @@ -1,8 +1,12 @@ package com.supervision.police.dto; +import com.supervision.constant.CaseAnalysisStatusEnum; +import com.supervision.constant.CaseDataStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.Objects; + /** * 案件状态 */ @@ -11,16 +15,36 @@ public class CaseStatus { @Schema(description = "数据状态 0:没有基础数据 1:数据未更新 2:数据已更新") - private int caseDataStatus; + private CaseDataStatusEnum caseDataStatus; @Schema(description = "分析状态 0:未分析 1:正在分析 2:分析成功 3:分析失败 ") - private int caseAnalysisStatus; + private CaseAnalysisStatusEnum caseAnalysisStatus; public CaseStatus() { } public CaseStatus(int caseDataStatus, int caseAnalysisStatus) { - this.caseDataStatus = caseDataStatus; - this.caseAnalysisStatus = caseAnalysisStatus; + this.caseDataStatus = CaseDataStatusEnum.getInstance(caseDataStatus); + this.caseAnalysisStatus = CaseAnalysisStatusEnum.getInstance(caseAnalysisStatus); + } + + public String check(){ + + if (Objects.nonNull(caseDataStatus)){ + if (caseDataStatus.getCode() == 0){ + return "模型没有基础数据"; + } + if (caseDataStatus.getCode() == 1){ + return "已经是最新的分析结果了"; + } + } + + if (Objects.nonNull(caseAnalysisStatus)){ + if (caseAnalysisStatus.getCode()==1){ + return "模型正在分析中"; + } + } + + return null; } } diff --git a/src/main/java/com/supervision/police/service/impl/CaseStatusManageServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseStatusManageServiceImpl.java index ae4dee5..5310b6b 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseStatusManageServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseStatusManageServiceImpl.java @@ -49,7 +49,7 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService { if (count > 0){ modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) - .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.UPDATE)); + .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.UPDATE.getCode())); } } @@ -62,7 +62,7 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService { public void whenUploadRecord(String caseId) { modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) - .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.UPDATE)); + .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.UPDATE.getCode())); } @Override @@ -75,8 +75,8 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService { Assert.notEmpty(caseId, "案件id不能为空"); modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) - .set(ModelCase::getCaseDataStatus, CaseAnalysisStatusEnum.UNANALYZED) - .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.NOT_UPDATE) + .set(ModelCase::getCaseDataStatus, CaseAnalysisStatusEnum.UNANALYZED.getCode()) + .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.NOT_UPDATE.getCode()) ); } @@ -87,10 +87,10 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService { modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) - .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZED) - .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.NOT_UPDATE) + .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZED.getCode()) + .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.NOT_UPDATE.getCode()) .set(ModelCase::getTotalScore, score) - .set(ModelCase::getIdentifyResult, ScoreEnum.getScoreEnum(score))); + .set(ModelCase::getIdentifyResult, ScoreEnum.getScoreEnum(score).getCode())); } @Override @@ -100,7 +100,7 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService { modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) - .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZE_FAIL)); + .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZE_FAIL.getCode())); } @@ -111,7 +111,7 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService { modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) - .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZING)); + .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZING.getCode())); } } diff --git a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java index 67f8a08..560516f 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java @@ -23,11 +23,13 @@ import com.supervision.police.dto.ModelCaseDTO; import com.supervision.police.mapper.CasePersonMapper; import com.supervision.police.mapper.ModelCaseMapper; import com.supervision.police.domain.ModelCase; +import com.supervision.police.service.CaseStatusManageService; import com.supervision.police.service.ComDictionaryService; import com.supervision.police.service.ModelCaseService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -51,6 +53,8 @@ public class ModelCaseServiceImpl extends ServiceImpl addPersion(CasePerson person) { int i = casePersonMapper.insert(person); if (i > 0) { + caseStatusManageService.whenSaveCasePeople(person.getCaseId(), person.getRoleCode()); return R.okMsg("新增成功"); } else { return R.fail("新增失败"); 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 9e1d5a8..5bd5d61 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; @@ -20,6 +21,7 @@ import com.supervision.police.dto.JudgeLogic; import com.supervision.police.dto.caseScore.CaseScoreDetailBuilder; import com.supervision.police.mapper.*; import com.supervision.police.mybatis.RowSqlMapper; +import com.supervision.police.service.CaseStatusManageService; import com.supervision.police.service.ModelIndexService; import com.supervision.police.service.ModelService; import com.supervision.utils.SqlParserUtil; @@ -28,7 +30,6 @@ import lombok.extern.slf4j.Slf4j; import org.neo4j.driver.Driver; import org.neo4j.driver.Result; import org.neo4j.driver.Session; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.*; @@ -56,8 +57,15 @@ public class ModelServiceImpl implements ModelService { private final ModelIndexService modelIndexService; + private final CaseStatusManageService caseStatusManageService; + @Override public R analyseCase(AnalyseCaseDTO analyseCaseDTO) { + + CaseStatus caseDateStatus = this.getCaseDateStatus(analyseCaseDTO.getCaseId()); + String check = caseDateStatus.check(); + Assert.isTrue(StrUtil.isEmpty(check), check); + ModelCase modelCase = modelCaseMapper.selectById(analyseCaseDTO.getCaseId()); // 获取行为人ID CasePerson casePerson = casePersonMapper.selectOne(new LambdaQueryWrapper().eq(CasePerson::getCaseId, analyseCaseDTO.getCaseId()) @@ -112,6 +120,7 @@ public class ModelServiceImpl implements ModelService { } // 最终计算得分 calculateFinalScore(analyseCaseDTO, modelCase, atomicResultMap); + caseStatusManageService.whenAnalyseCaseSuccess(analyseCaseDTO.getCaseId(), modelCase.getTotalScore()); return R.ok(); } diff --git a/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java b/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java index 287e63e..3672de2 100644 --- a/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java @@ -16,28 +16,20 @@ import com.supervision.police.domain.ModelRecordType; import com.supervision.police.domain.NoteRecordSplit; import com.supervision.police.domain.NoteRecord; import com.supervision.police.mapper.ModelCaseMapper; -import com.supervision.police.mapper.ModelRecordTypeMapper; import com.supervision.police.mapper.NoteRecordSplitMapper; import com.supervision.police.mapper.NoteRecordMapper; +import com.supervision.police.service.CaseStatusManageService; import com.supervision.police.service.ModelRecordTypeService; import com.supervision.police.service.NoteRecordSplitService; import com.supervision.police.service.RecordSplitTypeService; import com.supervision.springaidemo.dto.QARecordNodeDTO; import com.supervision.springaidemo.util.RecordRegexUtil; import com.supervision.springaidemo.util.WordReadUtil; -import com.supervision.thread.RecordSplitTypeThread; -import com.supervision.thread.RecordSplitTypeThreadPool; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.json.JSONObject; -import org.springframework.ai.chat.ChatResponse; -import org.springframework.ai.chat.messages.UserMessage; -import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.ollama.OllamaChatClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StopWatch; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -64,6 +56,8 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl