1. 添加 保存案件原子指标评估结果(saveCaseAtomicResult) 接口

topo_dev
xueqingkun 9 months ago
parent f11ea5219c
commit 56f023ffcd

@ -4,7 +4,9 @@ import com.supervision.common.domain.R;
import com.supervision.police.domain.ModelAtomicIndex;
import com.supervision.police.domain.ModelIndex;
import com.supervision.police.dto.CaseAtomicIndexDTO;
import com.supervision.police.dto.CaseAtomicResultWrapper;
import com.supervision.police.service.ModelIndexService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -112,5 +114,19 @@ public class ModelIndexController {
List<CaseAtomicIndexDTO> list = modelIndexService.listCaseAtomicIndex(caseId, indexSource);
return R.ok(list);
}
/**
*
* @param caseAtomicResultWrapper
* @return
*/
@Operation(summary = "保存案件原子指标评估结果")
@PostMapping("/saveCaseAtomicResult")
public R<Boolean> saveCaseAtomicResult(@RequestBody CaseAtomicResultWrapper caseAtomicResultWrapper) {
Boolean result = modelIndexService.saveCaseAtomicResult(caseAtomicResultWrapper);
return R.ok(result);
}
}

@ -1,5 +1,6 @@
package com.supervision.police.dto;
import cn.hutool.core.util.StrUtil;
import com.supervision.police.domain.ModelAtomicIndex;
import com.supervision.police.domain.ModelAtomicResult;
import com.supervision.police.domain.ModelIndex;
@ -38,7 +39,8 @@ public class CaseAtomicIndexDTO {
@Schema(description = "指标来源 1:人工定义 2:数据库查询 3:图谱生成 4:大模型")
private String indexSource;
@Schema(description = "评估结果")
@Schema(description = "评估结果 1:真实 2:虚构 3存在 4:不存在 5:未知3")
private String atomicResult;
@Schema(description = "备注")
@ -65,4 +67,24 @@ public class CaseAtomicIndexDTO {
this.remark = modelAtomicResult.getRemark();
}
}
/**
*
* @param caseId id
* @param casePersonId id
* @return
*/
public ModelAtomicResult toModelAtomicResult(String caseId, String casePersonId){
ModelAtomicResult result = new ModelAtomicResult();
if (StrUtil.isNotEmpty(caseId)){
result.setCaseId(caseId);
}else {
result.setCaseId(this.caseId);
}
result.setCasePersonId(casePersonId);
result.setAtomicId(this.atomicIndexId);
result.setAtomicResult(this.atomicResult);
result.setRemark(this.remark);
return result;
}
}

@ -0,0 +1,24 @@
package com.supervision.police.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* @Description:
*/
@Data
public class CaseAtomicResultWrapper {
@Schema(description = "行为人id")
private String actorId;
@Schema(description = "案件id")
private String caseId;
@Schema(description = "案件原子指标评估结果")
private List<CaseAtomicIndexDTO> caseAtomicIndexDTOS;
}

@ -18,5 +18,12 @@ public interface ModelAtomicIndexService {
List<ModelAtomicIndex> selectBatchIds(List<String> ids);
/**
* id
* @param indexIdList id
* @param caseId id
* @param indexSource
* @return
*/
List<ModelAtomicIndex> listCaseAtomicIndex(List<String> indexIdList, String caseId, String indexSource);
}

@ -5,6 +5,7 @@ import com.supervision.common.domain.R;
import com.supervision.police.domain.ModelAtomicIndex;
import com.supervision.police.domain.ModelIndex;
import com.supervision.police.dto.CaseAtomicIndexDTO;
import com.supervision.police.dto.CaseAtomicResultWrapper;
import java.util.List;
@ -35,5 +36,13 @@ public interface ModelIndexService extends IService<ModelIndex> {
* @return
*/
List<CaseAtomicIndexDTO> listCaseAtomicIndex(String caseId, String indexSource);
/**
*
* @param caseAtomicResultWrapper
* @return true: false:
*/
Boolean saveCaseAtomicResult(CaseAtomicResultWrapper caseAtomicResultWrapper);
}

@ -15,6 +15,7 @@ import com.supervision.common.utils.StringUtils;
import com.supervision.police.domain.*;
import com.supervision.police.dto.AtomicData;
import com.supervision.police.dto.CaseAtomicIndexDTO;
import com.supervision.police.dto.CaseAtomicResultWrapper;
import com.supervision.police.dto.JudgeLogic;
import com.supervision.police.mapper.ModelAtomicResultMapper;
import com.supervision.police.mapper.ModelIndexMapper;
@ -25,6 +26,7 @@ import com.supervision.police.service.ModelIndexService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
@ -53,6 +55,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
private final ModelAtomicResultMapper modelAtomicResultMapper;
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> selectAll(ModelIndex modelIndex, Integer page, Integer size) {
IPage<ModelIndex> iPage = new Page<>(page, size);
LambdaQueryWrapper<ModelIndex> wrapper = Wrappers.lambdaQuery();
@ -89,6 +92,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> addOrUpd(ModelIndex modelIndex) {
int i = 0;
if (StringUtils.isEmpty(modelIndex.getId())) {
@ -104,6 +108,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> del(String id) {
ModelIndex index = modelIndexMapper.selectById(id);
index.setDataStatus(StringUtils.getUUID());
@ -116,6 +121,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> selectAllAtomic(ModelAtomicIndex modelAtomicIndex, Integer page, Integer size) {
IPage<ModelAtomicIndex> iPage = new Page<>(page, size);
iPage = modelAtomicIndexService.selectAll(iPage, modelAtomicIndex);
@ -131,6 +137,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> addOrUpdAtomic(ModelAtomicIndex modelAtomicIndex) {
int i = 0;
if (StringUtils.isEmpty(modelAtomicIndex.getId())) {
@ -146,6 +153,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public R<?> delAtomic(String id) {
ModelAtomicIndex index = modelAtomicIndexService.getMapper().selectById(id);
index.setDataStatus(StringUtils.getUUID());
@ -158,6 +166,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public List<CaseAtomicIndexDTO> listCaseAtomicIndex(String caseId, String indexSource) {
Assert.notEmpty(caseId, "案件id不能为空");
@ -207,6 +216,44 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
}).toList();
}
@Override
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
public Boolean saveCaseAtomicResult(CaseAtomicResultWrapper caseAtomicResultWrapper) {
Assert.notEmpty(caseAtomicResultWrapper.getActorId(), "行为人不能为空!");
Assert.notEmpty(caseAtomicResultWrapper.getCaseId(), "案件id不能为空");
ModelCase modelCase = modelCaseService.getById(caseAtomicResultWrapper.getCaseId());
Assert.notNull(modelCase, "案件不存在!");
//清空人工评估结果
removeCaseAtomicResult(caseAtomicResultWrapper.getCaseId(),modelCase.getCaseType(),
caseAtomicResultWrapper.getActorId(),"1");
// 保存原子评估结果
caseAtomicResultWrapper.getCaseAtomicIndexDTOS().stream().map(caseAtomicIndexDTO ->
caseAtomicIndexDTO.toModelAtomicResult(
caseAtomicResultWrapper.getCaseId(), caseAtomicResultWrapper.getActorId())).toList()
.forEach(modelAtomicResultMapper::insert);
return true;
}
/**
*
* @param caseId id
* @param caseType
* @param actorId id
* @param indexSource
*/
private void removeCaseAtomicResult(String caseId,String caseType, String actorId,String indexSource) {
List<ModelAtomicIndex> modelAtomicIndexList = modelAtomicIndexService.listCaseAtomicIndex(null, caseType, indexSource);
List<String> automicIndexIds = modelAtomicIndexList.stream().map(ModelAtomicIndex::getId).distinct().toList();
modelAtomicResultMapper.delete(Wrappers.lambdaQuery(ModelAtomicResult.class)
.eq(ModelAtomicResult::getCaseId, caseId)
.eq(ModelAtomicResult::getCasePersonId, actorId)
.in(CollUtil.isNotEmpty(automicIndexIds),ModelAtomicResult::getAtomicId, automicIndexIds));
}
/**
* id
* @param judgeLogic json

Loading…
Cancel
Save