1. 添加案件状态管理服务代码

topo_dev
xueqingkun 9 months ago
parent 3a33b95fc0
commit 91b64b7c33

@ -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)

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

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

@ -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){

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

@ -49,7 +49,7 @@ public class CaseStatusManageServiceImpl implements CaseStatusManageService {
if (count > 0){
modelCaseMapper.update(new LambdaUpdateWrapper<ModelCase>()
.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<ModelCase>()
.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<ModelCase>()
.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<ModelCase>()
.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<ModelCase>()
.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<ModelCase>()
.eq(ModelCase::getId, caseId)
.set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZING));
.set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZING.getCode()));
}
}

@ -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<ModelCaseMapper, ModelCase
private final CasePersonMapper casePersonMapper;
private final CaseStatusManageService caseStatusManageService;
/**
*
* @param modelCase
@ -159,9 +163,11 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> addPersion(CasePerson person) {
int i = casePersonMapper.insert(person);
if (i > 0) {
caseStatusManageService.whenSaveCasePeople(person.getCaseId(), person.getRoleCode());
return R.okMsg("新增成功");
} else {
return R.fail("新增失败");

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

@ -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<NoteRecordSplitMappe
@Autowired
private RecordSplitTypeService recordSplitTypeService;
private final CaseStatusManageService caseStatusManageService;
@Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
@ -129,6 +123,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
}
}
}
caseStatusManageService.whenUploadRecord(records.getCaseId());
return "保存成功";
} else {
return "保存笔录失败";
@ -179,6 +174,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
minioService.delFile(fileId);
}
}
caseStatusManageService.whenDeleteRecord(noteRecord.getCaseId());
}
}

Loading…
Cancel
Save