1. 证据改造代码提交

topo_dev
xueqingkun 6 months ago
parent 2d4332bfcf
commit 3808fd57df

@ -1,5 +1,7 @@
package com.supervision.common.constant; package com.supervision.common.constant;
import java.util.Map;
public class EvidenceConstants { public class EvidenceConstants {
// 证据处理状态 // 证据处理状态
/** /**
@ -31,4 +33,20 @@ public class EvidenceConstants {
*/ */
public static final String PROCESS_STATUS_VERIFIED = "6"; public static final String PROCESS_STATUS_VERIFIED = "6";
/**
* 0:
* 1:
* 2:
* 3:
* 4:
*/
public static final Map<String, String> PROCESS_STATUS_MAPPING =
Map.of(PROCESS_STATUS_UNPROCESSED,"0",
PROCESS_STATUS_OCR_OK,"1",
PROCESS_STATUS_TITLE_EXTRACT_OK,"1",
PROCESS_STATUS_ATTR_EXTRACT_OK,"1",
PROCESS_STATUS_SUCCESS,"2",
PROCESS_STATUS_FAILED,"3",
PROCESS_STATUS_VERIFIED,"4");
} }

@ -6,6 +6,9 @@ import com.supervision.common.domain.R;
import com.supervision.police.domain.EvidenceDirectory; import com.supervision.police.domain.EvidenceDirectory;
import com.supervision.police.dto.*; import com.supervision.police.dto.*;
import com.supervision.police.service.CaseEvidenceService; import com.supervision.police.service.CaseEvidenceService;
import com.supervision.police.vo.EvidenceDirectoryReqVO;
import com.supervision.police.vo.OcrAndExtractReqVO;
import com.supervision.police.vo.VerifyEvidenceReqVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -53,10 +56,11 @@ public class CaseEvidenceController {
@Operation(summary = "分页查询案件证据信息列表") @Operation(summary = "分页查询案件证据信息列表")
@GetMapping("/pageListEvidence") @GetMapping("/pageListEvidence")
public R<IPage<CaseEvidenceDetailDTO>> pageListEvidence(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId, public R<IPage<CaseEvidenceDetailDTO>> pageListEvidence(@RequestParam @Parameter(name = "caseId",description = "案件id") String caseId,
@RequestParam(required = false) @Parameter(name = "directoryId",description = "目录id") String directoryId,
@RequestParam(required = false) @Parameter(name = "evidenceName",description = "证据名") String evidenceName, @RequestParam(required = false) @Parameter(name = "evidenceName",description = "证据名") String evidenceName,
@RequestParam(defaultValue = "1") @Parameter(name = "pageNum",description = "页码") Integer pageNum, @RequestParam(defaultValue = "1") @Parameter(name = "pageNum",description = "页码") Integer pageNum,
@RequestParam(defaultValue = "10") @Parameter(name = "pageSize",description = "每页数量") Integer pageSize) { @RequestParam(defaultValue = "10") @Parameter(name = "pageSize",description = "每页数量") Integer pageSize) {
IPage<CaseEvidenceDetailDTO> pageListEvidence = caseEvidenceService.pageListEvidence(caseId, evidenceName,pageNum, pageSize); IPage<CaseEvidenceDetailDTO> pageListEvidence = caseEvidenceService.pageListEvidence(caseId, directoryId,evidenceName,pageNum, pageSize);
return R.ok(pageListEvidence); return R.ok(pageListEvidence);
} }
@ -78,6 +82,22 @@ public class CaseEvidenceController {
return R.ok(list); return R.ok(list);
} }
@Operation(summary = "查询案件证据文件树")
@GetMapping("/file/tree")
public R<List<EvidenceDirectoryDTO>> listFileTree(@RequestParam("caseId")
@Parameter(name = "caseId",description = "案件id") String caseId) {
List<EvidenceDirectoryDTO> list = caseEvidenceService.listFileTree(caseId);
return R.ok(list);
}
@Operation(summary = "创建证据目录信息")
@PostMapping("/directory/save")
public R<EvidenceDirectory> createDirectory(@RequestBody EvidenceDirectoryReqVO evidenceDirectory) {
EvidenceDirectory directory = caseEvidenceService.createDirectory(evidenceDirectory);
return R.ok(directory);
}
@Operation(summary = "更新证据目录信息") @Operation(summary = "更新证据目录信息")
@PostMapping("/directory/update") @PostMapping("/directory/update")
public R<Boolean> updateDirectory(@RequestBody EvidenceDirectory evidenceDirectory) { public R<Boolean> updateDirectory(@RequestBody EvidenceDirectory evidenceDirectory) {
@ -103,7 +123,7 @@ public class CaseEvidenceController {
} }
@Operation(summary = "删除文件目录") @Operation(summary = "删除文件目录")
@PostMapping("/directory/directory/rm") @PostMapping("/directory/rm")
public R<Boolean> removeDirectory(@RequestBody List<String> directoryIdList) { public R<Boolean> removeDirectory(@RequestBody List<String> directoryIdList) {
Boolean success = caseEvidenceService.removeDirectory(directoryIdList); Boolean success = caseEvidenceService.removeDirectory(directoryIdList);
@ -112,9 +132,9 @@ public class CaseEvidenceController {
@Operation(summary = "证据识别并提取") @Operation(summary = "证据识别并提取")
@PostMapping("/ocrAndExtract") @PostMapping("/ocrAndExtract")
public R<String> ocrAndExtract(@RequestBody List<EvidenceDirectoryDTO> evidenceFileDTOS, @RequestParam(name = "caseId") String caseId) { public R<String> ocrAndExtract(@RequestBody OcrAndExtractReqVO ocrAndExtractReqVO) {
String batchNo = caseEvidenceService.ocrAndExtract(caseId, evidenceFileDTOS); String batchNo = caseEvidenceService.ocrAndExtract(ocrAndExtractReqVO.getCaseId(), ocrAndExtractReqVO.getEvidenceFileList());
return R.ok(batchNo); return R.ok(batchNo);
} }
@ -128,19 +148,28 @@ public class CaseEvidenceController {
} }
@Operation(summary = "核实证据") @Operation(summary = "核实证据")
@GetMapping("/caseEvidence/verify") @PostMapping("/verify")
public R<List<EvidenceProcessDTO>> verifyEvidence(@RequestBody List<EvidenceVerifyDTO> evidenceVerifyDTOS, public R<List<EvidenceProcessDTO>> verifyEvidence(@RequestBody VerifyEvidenceReqVO verifyEvidenceReqVO) {
@RequestParam("caseId") String caseId,
@RequestParam(value = "batchNo",required = false) String batchNo) { caseEvidenceService.verifyEvidence(verifyEvidenceReqVO.getEvidenceVerifyList(),
caseEvidenceService.verifyEvidence(evidenceVerifyDTOS,caseId,batchNo); verifyEvidenceReqVO.getCaseId(),verifyEvidenceReqVO.getBatchNo());
return R.ok(); return R.ok();
} }
@Operation(summary = "查询证据详情-结果以树的方式展示") @Operation(summary = "查询证据详情-结果以树的方式展示")
@GetMapping("/caseEvidence/details") @GetMapping("/details")
public R<List<EvidenceDirectoryDTO>> evidenceDetails(@RequestParam("caseId") String caseId, public R<List<EvidenceDirectoryDTO>> evidenceDetails(@RequestParam("caseId") String caseId,
@RequestParam(value = "batchNo",required = false) String batchNo) { @RequestParam(value = "batchNo",required = false) String batchNo) {
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = caseEvidenceService.evidenceDetails(caseId,batchNo); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = caseEvidenceService.evidenceDetails(caseId,batchNo);
return R.ok(evidenceDirectoryDTOS); return R.ok(evidenceDirectoryDTOS);
} }
@Operation(summary = "查询证据详情-结果以树的方式展示")
@GetMapping("/directory/generateName")
public R<String> generateDirectoryName(@RequestParam("caseId") String caseId,
@RequestParam(value = "categoryId") String categoryId,
@RequestParam(value = "provider") String provider) {
String directoryName = caseEvidenceService.generateDirectoryName(caseId,categoryId,provider);
return R.ok(directoryName);
}
} }

@ -32,6 +32,9 @@ public class CaseEvidenceDetailDTO {
@Schema(description = "案件证据类型描述") @Schema(description = "案件证据类型描述")
private String evidenceTypeDesc; private String evidenceTypeDesc;
@Schema(description = "案件证据文件格式 文件夹 .jpg ....")
private String evidenceFormat;
@Schema(description = "证据提供人") @Schema(description = "证据提供人")
private String provider; private String provider;
@ -56,11 +59,19 @@ public class CaseEvidenceDetailDTO {
@Schema(description = "案件证据属性") @Schema(description = "案件证据属性")
private Map<String,String> property= new HashMap<>(); private Map<String,String> property= new HashMap<>();
/** /**
* -1 0 1 * -1 0 1
*/ */
private String updateStatus = "-1"; private String updateStatus = "-1";
/**
* 0:
* 1:
* 2:
* 3:
* 4:
*/
private String processStatus; private String processStatus;
public CaseEvidenceDetailDTO() { public CaseEvidenceDetailDTO() {
@ -116,4 +127,16 @@ public class CaseEvidenceDetailDTO {
return caseEvidence; return caseEvidence;
} }
public void setEvidenceFormatValue(EvidenceDirectoryDTO directory){
if (null == directory){
return;
}
if (2 == directory.getLevel() && CollUtil.isNotEmpty(this.fileList)){
this.evidenceFormat = CollUtil.getFirst(this.fileList).getFileType();
}
if (3 == directory.getLevel()){
this.evidenceFormat = "文件夹";
}
}
} }

@ -90,6 +90,21 @@ public class EvidenceDirectoryDTO {
return null; return null;
} }
public List<String> findDirectoryIdList(String categoryId){
List<String> list = new ArrayList<>();
if (StrUtil.equals(this.categoryId, categoryId)){
list.add(this.id);
}
if (CollUtil.isNotEmpty(this.child)){
for (EvidenceDirectoryDTO directoryDTO : this.child) {
if (StrUtil.equals(directoryDTO.getCategoryId(), categoryId)){
list.addAll(directoryDTO.findDirectoryIdList(categoryId));
}
}
}
return list;
}
public List<String> listAllFileId(){ public List<String> listAllFileId(){
List<String> fileIdList = new ArrayList<>(); List<String> fileIdList = new ArrayList<>();
if (CollUtil.isNotEmpty(this.fileIdList)){ if (CollUtil.isNotEmpty(this.fileIdList)){
@ -134,6 +149,15 @@ public class EvidenceDirectoryDTO {
return -1; return -1;
} }
public void setDirectoryLevel(int currentLevel){
this.level = currentLevel;
if (CollUtil.isNotEmpty(this.child)){
for (EvidenceDirectoryDTO directoryDTO : this.getChild()) {
directoryDTO.setDirectoryLevel(currentLevel + 1);
}
}
}
public void appendChildDirectory(){ public void appendChildDirectory(){
if (CollUtil.isNotEmpty(this.child)){ if (CollUtil.isNotEmpty(this.child)){
for (EvidenceDirectoryDTO directoryDTO : child) { for (EvidenceDirectoryDTO directoryDTO : child) {

@ -3,6 +3,7 @@ package com.supervision.police.dto;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.unit.DataSizeUtil; import cn.hutool.core.io.unit.DataSizeUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.supervision.common.constant.EvidenceConstants;
import com.supervision.police.domain.EvidenceCategory; import com.supervision.police.domain.EvidenceCategory;
import lombok.Data; import lombok.Data;
@ -82,7 +83,9 @@ public class EvidenceProcessDTO {
this.attachmentSize = DataSizeUtil.format(sum); this.attachmentSize = DataSizeUtil.format(sum);
} }
this.evidenceType = caseEvidence.getEvidenceType(); this.evidenceType = caseEvidence.getEvidenceType();
this.status = caseEvidence.getProcessStatus(); if (StrUtil.isNotEmpty(caseEvidence.getProcessStatus())){
this.status = EvidenceConstants.PROCESS_STATUS_MAPPING.get(caseEvidence.getProcessStatus());
}
} }

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.police.domain.CaseEvidence; import com.supervision.police.domain.CaseEvidence;
import com.supervision.police.domain.EvidenceDirectory; import com.supervision.police.domain.EvidenceDirectory;
import com.supervision.police.dto.*; import com.supervision.police.dto.*;
import com.supervision.police.vo.EvidenceDirectoryReqVO;
import java.util.List; import java.util.List;
@ -45,11 +46,12 @@ public interface CaseEvidenceService extends IService<CaseEvidence> {
/** /**
* *
* @param caseId id * @param caseId id
* @param directoryId id
* @param pageNum * @param pageNum
* @param pageSize * @param pageSize
* @return * @return
*/ */
IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId,String evidenceName, Integer pageNum, Integer pageSize); IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId,String directoryId,String evidenceName, Integer pageNum, Integer pageSize);
CaseEvidenceDetailDTO queryEvidenceDetail(String evidenceId); CaseEvidenceDetailDTO queryEvidenceDetail(String evidenceId);
@ -66,6 +68,9 @@ public interface CaseEvidenceService extends IService<CaseEvidence> {
* @param caseId id * @param caseId id
* @return * @return
*/ */
List<EvidenceDirectoryDTO> listFileTree(String caseId);
List<EvidenceDirectoryDTO> listDirectoryTree(String caseId); List<EvidenceDirectoryDTO> listDirectoryTree(String caseId);
/** /**
@ -123,4 +128,9 @@ public interface CaseEvidenceService extends IService<CaseEvidence> {
void verifyEvidence(List<EvidenceVerifyDTO> evidenceVerifyDTOS,String caseId,String batchNo); void verifyEvidence(List<EvidenceVerifyDTO> evidenceVerifyDTOS,String caseId,String batchNo);
List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo); List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo);
String generateDirectoryName(String caseId, String categoryId, String provider);
EvidenceDirectory createDirectory(EvidenceDirectoryReqVO evidenceDirectory);
} }

@ -18,6 +18,7 @@ import com.supervision.police.domain.EvidenceFile;
import com.supervision.common.constant.EvidenceConstants; import com.supervision.common.constant.EvidenceConstants;
import com.supervision.police.domain.*; import com.supervision.police.domain.*;
import com.supervision.police.mapper.CaseEvidenceMapper; import com.supervision.police.mapper.CaseEvidenceMapper;
import com.supervision.police.vo.EvidenceDirectoryReqVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -157,10 +158,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
@Override @Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, String evidenceName, Integer pageNum, Integer pageSize) { public IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, String directoryId,String evidenceName, Integer pageNum, Integer pageSize) {
Assert.notEmpty(caseId, "案件id不能为空"); Assert.notEmpty(caseId, "案件id不能为空");
Page<CaseEvidence> caseEvidencePage = super.lambdaQuery().eq(CaseEvidence::getCaseId, caseId) Page<CaseEvidence> caseEvidencePage = super.lambdaQuery().eq(CaseEvidence::getCaseId, caseId)
.eq(StrUtil.isNotEmpty(directoryId), CaseEvidence::getDirectoryId, directoryId)
.like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName) .like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName)
.orderBy(true, false, CaseEvidence::getUpdateTime) .orderBy(true, false, CaseEvidence::getUpdateTime)
.page(new Page<>(pageNum, pageSize)); .page(new Page<>(pageNum, pageSize));
@ -177,6 +179,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
List<RecordFileDTO> recordFileDTOS = fileOcrProcessService.queryFileList(fileInfoList.stream().map(EvidenceFileDTO::getFileId).toList()); List<RecordFileDTO> recordFileDTOS = fileOcrProcessService.queryFileList(fileInfoList.stream().map(EvidenceFileDTO::getFileId).toList());
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(caseId);
// 转换分页结果 // 转换分页结果
//查询字典 //查询字典
List<ComDictionary> evidenceTypeDic = comDictionaryService.lambdaQuery().eq(ComDictionary::getType, "evidence_type").list(); List<ComDictionary> evidenceTypeDic = comDictionaryService.lambdaQuery().eq(ComDictionary::getType, "evidence_type").list();
@ -185,6 +190,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
caseEvidenceDetailDTO.setEvidenceTypeDesc( caseEvidenceDetailDTO.setEvidenceTypeDesc(
comDictionaryService.getName(evidenceTypeDic, "evidence_type", caseEvidence.getEvidenceType())); comDictionaryService.getName(evidenceTypeDic, "evidence_type", caseEvidence.getEvidenceType()));
caseEvidenceDetailDTO.setContentTypeValue(recordFileDTOS); caseEvidenceDetailDTO.setContentTypeValue(recordFileDTOS);
EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(caseEvidence.getDirectoryId(), evidenceDirectoryDTOS);
caseEvidenceDetailDTO.setEvidenceFormatValue(directory);
return caseEvidenceDetailDTO; return caseEvidenceDetailDTO;
}); });
} }
@ -274,7 +282,8 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
} }
@Override @Override
public List<EvidenceDirectoryDTO> listDirectoryTree(String caseId) { public List<EvidenceDirectoryDTO> listFileTree(String caseId) {
Assert.notEmpty(caseId,"案件ID不能为空!"); Assert.notEmpty(caseId,"案件ID不能为空!");
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId);
@ -283,6 +292,13 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
return evidenceDirectoryDTOS; return evidenceDirectoryDTOS;
} }
@Override
public List<EvidenceDirectoryDTO> listDirectoryTree(String caseId) {
Assert.notEmpty(caseId,"案件ID不能为空!");
return evidenceDirectoryService.listDirectoryTree(caseId);
}
@Override @Override
public void initCaseEvidenceDirectory(String caseId, String caseType) { public void initCaseEvidenceDirectory(String caseId, String caseType) {
@ -359,7 +375,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
public String ocrAndExtract(String caseId, List<EvidenceDirectoryDTO> evidenceFileDTOS) { public String ocrAndExtract(String caseId, List<EvidenceDirectoryDTO> evidenceFileDTOS) {
List<CaseEvidenceDetailDTO> oldEvidences = this.queryEvidenceList(caseId); List<CaseEvidenceDetailDTO> oldEvidences = this.queryEvidenceList(caseId);
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(caseId); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listFileTree(caseId);
List<CaseEvidenceDetailDTO> newEvidences = toCaseCaseEvidenceDetailDTO(evidenceFileDTOS, evidenceDirectoryDTOS); List<CaseEvidenceDetailDTO> newEvidences = toCaseCaseEvidenceDetailDTO(evidenceFileDTOS, evidenceDirectoryDTOS);
newEvidences.forEach(caseEvidenceDetailDTO -> caseEvidenceDetailDTO.setCaseId(caseId)); newEvidences.forEach(caseEvidenceDetailDTO -> caseEvidenceDetailDTO.setCaseId(caseId));
@ -394,6 +410,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
if (evidence.getUpdateStatus().equals("1")){ if (evidence.getUpdateStatus().equals("1")){
// 新增 // 新增
CaseEvidence caseEvidence = evidence.toCaseEvidence(); CaseEvidence caseEvidence = evidence.toCaseEvidence();
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_UNPROCESSED);
this.save(caseEvidence); this.save(caseEvidence);
for (EvidenceFileDTO evidenceFileDTO : evidence.getFileList()) { for (EvidenceFileDTO evidenceFileDTO : evidence.getFileList()) {
if (evidenceFileDTO.getUpdateStatus().equals("1")){ if (evidenceFileDTO.getUpdateStatus().equals("1")){
@ -433,7 +450,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = this.queryEvidenceList(caseId,batchNo); List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = this.queryEvidenceList(caseId,batchNo);
if (CollUtil.isNotEmpty(caseEvidenceDetailDTOS)){ if (CollUtil.isEmpty(caseEvidenceDetailDTOS)){
return new ArrayList<>(); return new ArrayList<>();
} }
List<EvidenceProcessDTO> processDTOList = caseEvidenceDetailDTOS.stream().map(EvidenceProcessDTO::new).collect(Collectors.toList()); List<EvidenceProcessDTO> processDTOList = caseEvidenceDetailDTOS.stream().map(EvidenceProcessDTO::new).collect(Collectors.toList());
@ -486,7 +503,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
@Override @Override
public List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo) { public List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo) {
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(caseId); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listFileTree(caseId);
List<CaseEvidence> caseEvidenceList = this.lambdaQuery().eq(CaseEvidence::getCaseId, caseId).list(); List<CaseEvidence> caseEvidenceList = this.lambdaQuery().eq(CaseEvidence::getCaseId, caseId).list();
List<CategoryPromptDTO> categoryPromptDTOS = evidenceDirectoryService.listCategoryPrompt(caseId); List<CategoryPromptDTO> categoryPromptDTOS = evidenceDirectoryService.listCategoryPrompt(caseId);
@ -505,6 +522,64 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
return evidenceDirectoryDTOS; return evidenceDirectoryDTOS;
} }
@Override
public String generateDirectoryName(String caseId, String categoryId, String provider) {
Assert.notEmpty(caseId, "案件id不能为空");
Assert.notEmpty(categoryId, "目录id不能为空");
Assert.notEmpty(provider, "提供方不能为空");
EvidenceCategory category = evidenceCategoryService.getById(categoryId);
Assert.notNull(category, "目录不存在");
List<EvidenceDirectory> directoryList = evidenceDirectoryService.lambdaQuery()
.eq(EvidenceDirectory::getCaseId, caseId)
.eq(EvidenceDirectory::getCategoryId, categoryId).list();
String directoryName = category.getCategoryName() + provider;
long count = directoryList.stream().filter(d -> StrUtil.contains(d.getDirectoryName(), provider)).count();
if (count > 0){
directoryName = directoryName + count;
}
return directoryName;
}
@Override
public EvidenceDirectory createDirectory(EvidenceDirectoryReqVO evidenceDirectory) {
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(evidenceDirectory.getCaseId());
List<String> directoryIdList = null;
for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) {
directoryIdList = evidenceDirectoryDTO.findDirectoryIdList(evidenceDirectory.getCategoryId());
if (CollUtil.isNotEmpty(directoryIdList)){
break;
}
}
Assert.notEmpty(directoryIdList, "目录分类不存在");
EvidenceDirectoryDTO directory = null;
for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) {
directory = evidenceDirectoryDTO.findDirectory(CollUtil.getFirst(directoryIdList));
if (null != directory){
break;
}
}
Assert.notNull(directory, "目录不存在");
long count = evidenceDirectoryService.lambdaQuery().eq(EvidenceDirectory::getParentId, directory.getId())
.list().stream()
.filter(d -> StrUtil.contains(d.getDirectoryName(), evidenceDirectory.getDirectoryName())).count();
if (count > 0){
evidenceDirectory.setDirectoryName(evidenceDirectory.getDirectoryName() + count + 1);
}
EvidenceDirectory directory1 = new EvidenceDirectory();
directory1.setCaseId(evidenceDirectory.getCaseId());
directory1.setCategoryId(evidenceDirectory.getCategoryId());
directory1.setDirectoryName(evidenceDirectory.getDirectoryName());
directory1.setParentId(directory.getId());
evidenceDirectoryService.save(directory1);
return directory1;
}
private CaseEvidenceDetailDTO findEvidenceDetail(String evidenceId, List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS) { private CaseEvidenceDetailDTO findEvidenceDetail(String evidenceId, List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS) {
for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : caseEvidenceDetailDTOS) { for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : caseEvidenceDetailDTOS) {

@ -36,16 +36,7 @@ public class EvidenceDirectoryServiceImpl extends ServiceImpl<EvidenceDirectoryM
.filter(item -> StrUtil.equals(directoryDTO.getId(),item.getParentId())).toList()); .filter(item -> StrUtil.equals(directoryDTO.getId(),item.getParentId())).toList());
} }
List<EvidenceDirectoryDTO> directoryDTOList = directoryDTOS.stream().filter(item -> StrUtil.isEmpty(item.getParentId())).toList(); return directoryDTOS.stream().filter(item -> StrUtil.isEmpty(item.getParentId())).peek(item -> item.setDirectoryLevel(1)).toList();
List<String> directoryIds = list.stream().map(EvidenceDirectory::getId).toList();
for (String directoryId : directoryIds) {
// 设置目录层级
setDirectoryLevel(directoryId, directoryDTOList);
}
// 把文件也拼接到目录树中
return directoryDTOS;
} }
@Override @Override
@ -81,17 +72,6 @@ public class EvidenceDirectoryServiceImpl extends ServiceImpl<EvidenceDirectoryM
return super.getBaseMapper().listCategoryPrompt(caseId); return super.getBaseMapper().listCategoryPrompt(caseId);
} }
private void setDirectoryLevel(String directoryId, List<EvidenceDirectoryDTO> directoryDTOList) {
for (EvidenceDirectoryDTO evidenceDirectoryDTO : directoryDTOList) {
int level = evidenceDirectoryDTO.evalLevel(directoryId, 1);
if (level > 0) {
evidenceDirectoryDTO.setLevel(level);
}
return;
}
}
} }

@ -0,0 +1,24 @@
package com.supervision.police.vo;
import lombok.Data;
/**
*
*/
@Data
public class EvidenceDirectoryReqVO {
/**
* id
*/
private String caseId;
/**
*
*/
private String directoryName;
/**
* id
*/
private String categoryId;
}

@ -0,0 +1,14 @@
package com.supervision.police.vo;
import com.supervision.police.dto.EvidenceDirectoryDTO;
import lombok.Data;
import java.util.List;
@Data
public class OcrAndExtractReqVO {
private String caseId;
private List<EvidenceDirectoryDTO> evidenceFileList;
}

@ -0,0 +1,25 @@
package com.supervision.police.vo;
import com.supervision.police.dto.EvidenceVerifyDTO;
import lombok.Data;
import java.util.List;
@Data
public class VerifyEvidenceReqVO {
/**
* id
*/
private String caseId;
/**
*
*/
private String batchNo;
/**
*
*/
private List<EvidenceVerifyDTO> evidenceVerifyList;
}

@ -56,6 +56,7 @@
ce.evidence_name, ce.evidence_name,
ce.evidence_type, ce.evidence_type,
ce.directory_id, ce.directory_id,
ce.process_status,
ef.file_id, ef.file_id,
mf.filename, mf.filename,
mf.file_type, mf.file_type,

Loading…
Cancel
Save