From 56f023ffcd4968077ace0573d3cb7cdb091455a1 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Thu, 18 Jul 2024 13:50:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=20=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=A1=88=E4=BB=B6=E5=8E=9F=E5=AD=90=E6=8C=87=E6=A0=87=E8=AF=84?= =?UTF-8?q?=E4=BC=B0=E7=BB=93=E6=9E=9C(saveCaseAtomicResult)=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ModelIndexController.java | 16 +++++++ .../police/dto/CaseAtomicIndexDTO.java | 24 +++++++++- .../police/dto/CaseAtomicResultWrapper.java | 24 ++++++++++ .../service/ModelAtomicIndexService.java | 7 +++ .../police/service/ModelIndexService.java | 9 ++++ .../service/impl/ModelIndexServiceImpl.java | 47 +++++++++++++++++++ 6 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/supervision/police/dto/CaseAtomicResultWrapper.java diff --git a/src/main/java/com/supervision/police/controller/ModelIndexController.java b/src/main/java/com/supervision/police/controller/ModelIndexController.java index 163d37d..6da09e9 100644 --- a/src/main/java/com/supervision/police/controller/ModelIndexController.java +++ b/src/main/java/com/supervision/police/controller/ModelIndexController.java @@ -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 list = modelIndexService.listCaseAtomicIndex(caseId, indexSource); return R.ok(list); } + + + /** + * 保存案件原子指标评估结果 + * @param caseAtomicResultWrapper + * @return + */ + @Operation(summary = "保存案件原子指标评估结果") + @PostMapping("/saveCaseAtomicResult") + public R saveCaseAtomicResult(@RequestBody CaseAtomicResultWrapper caseAtomicResultWrapper) { + + Boolean result = modelIndexService.saveCaseAtomicResult(caseAtomicResultWrapper); + return R.ok(result); + } } diff --git a/src/main/java/com/supervision/police/dto/CaseAtomicIndexDTO.java b/src/main/java/com/supervision/police/dto/CaseAtomicIndexDTO.java index 9f306f1..83c5004 100644 --- a/src/main/java/com/supervision/police/dto/CaseAtomicIndexDTO.java +++ b/src/main/java/com/supervision/police/dto/CaseAtomicIndexDTO.java @@ -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; + } } diff --git a/src/main/java/com/supervision/police/dto/CaseAtomicResultWrapper.java b/src/main/java/com/supervision/police/dto/CaseAtomicResultWrapper.java new file mode 100644 index 0000000..34a7640 --- /dev/null +++ b/src/main/java/com/supervision/police/dto/CaseAtomicResultWrapper.java @@ -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 caseAtomicIndexDTOS; + + +} diff --git a/src/main/java/com/supervision/police/service/ModelAtomicIndexService.java b/src/main/java/com/supervision/police/service/ModelAtomicIndexService.java index f107545..df079e2 100644 --- a/src/main/java/com/supervision/police/service/ModelAtomicIndexService.java +++ b/src/main/java/com/supervision/police/service/ModelAtomicIndexService.java @@ -18,5 +18,12 @@ public interface ModelAtomicIndexService { List selectBatchIds(List ids); + /** + * 根据案件id和指标来源获取案件原子指标 + * @param indexIdList 原子指标id集合 + * @param caseId 案件id + * @param indexSource 指标来源 + * @return + */ List listCaseAtomicIndex(List indexIdList, String caseId, String indexSource); } diff --git a/src/main/java/com/supervision/police/service/ModelIndexService.java b/src/main/java/com/supervision/police/service/ModelIndexService.java index b70ea1e..01bb98e 100644 --- a/src/main/java/com/supervision/police/service/ModelIndexService.java +++ b/src/main/java/com/supervision/police/service/ModelIndexService.java @@ -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 { * @return */ List listCaseAtomicIndex(String caseId, String indexSource); + + /** + * 保存案件原子指标评估结果;只用于人工评估结果 + * @param caseAtomicResultWrapper 案件原子指标评估结果包装类 + * @return 保存结果 true:保存成功 false:保存失败 + */ + Boolean saveCaseAtomicResult(CaseAtomicResultWrapper caseAtomicResultWrapper); + } diff --git a/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java index 107d1d7..5986df8 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java @@ -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 selectAll(ModelIndex modelIndex, Integer page, Integer size) { IPage iPage = new Page<>(page, size); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); @@ -89,6 +92,7 @@ public class ModelIndexServiceImpl extends ServiceImpl addOrUpd(ModelIndex modelIndex) { int i = 0; if (StringUtils.isEmpty(modelIndex.getId())) { @@ -104,6 +108,7 @@ public class ModelIndexServiceImpl extends ServiceImpl del(String id) { ModelIndex index = modelIndexMapper.selectById(id); index.setDataStatus(StringUtils.getUUID()); @@ -116,6 +121,7 @@ public class ModelIndexServiceImpl extends ServiceImpl selectAllAtomic(ModelAtomicIndex modelAtomicIndex, Integer page, Integer size) { IPage iPage = new Page<>(page, size); iPage = modelAtomicIndexService.selectAll(iPage, modelAtomicIndex); @@ -131,6 +137,7 @@ public class ModelIndexServiceImpl extends ServiceImpl addOrUpdAtomic(ModelAtomicIndex modelAtomicIndex) { int i = 0; if (StringUtils.isEmpty(modelAtomicIndex.getId())) { @@ -146,6 +153,7 @@ public class ModelIndexServiceImpl extends ServiceImpl delAtomic(String id) { ModelAtomicIndex index = modelAtomicIndexService.getMapper().selectById(id); index.setDataStatus(StringUtils.getUUID()); @@ -158,6 +166,7 @@ public class ModelIndexServiceImpl extends ServiceImpl listCaseAtomicIndex(String caseId, String indexSource) { Assert.notEmpty(caseId, "案件id不能为空"); @@ -207,6 +216,44 @@ public class ModelIndexServiceImpl extends ServiceImpl + 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 modelAtomicIndexList = modelAtomicIndexService.listCaseAtomicIndex(null, caseType, indexSource); + List 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字符串