|
|
|
@ -4,20 +4,18 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.supervision.common.constant.EvidenceConstants;
|
|
|
|
|
import com.supervision.minio.domain.MinioFile;
|
|
|
|
|
import com.supervision.minio.service.MinioService;
|
|
|
|
|
import com.supervision.police.dto.*;
|
|
|
|
|
import com.supervision.police.service.*;
|
|
|
|
|
import com.supervision.police.domain.CaseEvidence;
|
|
|
|
|
import com.supervision.police.domain.ComDictionary;
|
|
|
|
|
import com.supervision.police.domain.EvidenceFile;
|
|
|
|
|
import com.supervision.common.constant.EvidenceConstants;
|
|
|
|
|
import com.supervision.police.domain.*;
|
|
|
|
|
import com.supervision.police.dto.*;
|
|
|
|
|
import com.supervision.police.mapper.CaseEvidenceMapper;
|
|
|
|
|
import com.supervision.police.service.*;
|
|
|
|
|
import com.supervision.police.vo.EvidenceDirectoryReqVO;
|
|
|
|
|
import com.supervision.police.vo.VerifyEvidenceReqVO;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
@ -28,8 +26,6 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -150,7 +146,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
|
public List<CaseEvidenceDetailDTO> queryEvidenceList(String caseId, String batchNo) {
|
|
|
|
|
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = queryEvidenceList(caseId);
|
|
|
|
|
if (StrUtil.isNotEmpty(batchNo)){
|
|
|
|
|
if (StrUtil.isNotEmpty(batchNo)) {
|
|
|
|
|
for (CaseEvidenceDetailDTO evidenceDetail : caseEvidenceDetailDTOS) {
|
|
|
|
|
List<EvidenceFileDTO> filter = evidenceDetail.getFileList().stream().filter(file -> StrUtil.equals(file.getBatchNo(), batchNo)).toList();
|
|
|
|
|
evidenceDetail.setFileList(filter);
|
|
|
|
@ -161,32 +157,32 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
|
public IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, String directoryId,String evidenceName, Integer pageNum, Integer pageSize) {
|
|
|
|
|
public IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, String directoryId, String evidenceName, Integer pageNum, Integer pageSize) {
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(caseId, "案件id不能为空");
|
|
|
|
|
|
|
|
|
|
List<String> directoryIds = new ArrayList<>();
|
|
|
|
|
if (StrUtil.isNotEmpty(directoryId)){
|
|
|
|
|
if (StrUtil.isNotEmpty(directoryId)) {
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(caseId);
|
|
|
|
|
EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(directoryId, evidenceDirectoryDTOS);
|
|
|
|
|
if (null != directory){
|
|
|
|
|
if (directory.getLevel() == 1 || directory.getLevel() == 2){
|
|
|
|
|
if (null != directory) {
|
|
|
|
|
if (directory.getLevel() == 1 || directory.getLevel() == 2) {
|
|
|
|
|
directoryIds.addAll(directory.listAllFileId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
IPage<CaseEvidence> caseEvidencePage = new Page<>(pageNum, pageSize);
|
|
|
|
|
if (StrUtil.isEmpty(directoryId) || CollUtil.isNotEmpty(directoryIds)){
|
|
|
|
|
if (StrUtil.isEmpty(directoryId) || CollUtil.isNotEmpty(directoryIds)) {
|
|
|
|
|
// 全部 或者一级目录 或者 二级目录查询证据
|
|
|
|
|
caseEvidencePage = super.lambdaQuery().eq(CaseEvidence::getCaseId, caseId)
|
|
|
|
|
.in(CollUtil.isNotEmpty(directoryIds), CaseEvidence::getDirectoryId, directoryIds)
|
|
|
|
|
.like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName)
|
|
|
|
|
.orderBy(true, false, CaseEvidence::getUpdateTime)
|
|
|
|
|
.page(new Page<>(pageNum, pageSize));
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
// 三级目录查询证据文件
|
|
|
|
|
List<CaseEvidence> list = this.lambdaQuery().eq(CaseEvidence::getDirectoryId, directoryId).list();
|
|
|
|
|
if (CollUtil.isNotEmpty(list)){
|
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
|
|
Page<EvidenceFileDTO> page = evidenceFileService.pageListFileInfo(
|
|
|
|
|
list.stream().map(CaseEvidence::getId).toList(), Page.of(pageNum, pageSize));
|
|
|
|
|
caseEvidencePage = page.convert(file -> {
|
|
|
|
@ -270,9 +266,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
// 遍历OCR结果拼接ocrText并赋值给lLMExtractDto的text
|
|
|
|
|
StringBuilder ocrText = new StringBuilder();
|
|
|
|
|
fileOcrProcesses.forEach(fileOcrProcess -> {
|
|
|
|
|
if (StrUtil.isNotEmpty(fileOcrProcess.getReviseText())){
|
|
|
|
|
if (StrUtil.isNotEmpty(fileOcrProcess.getReviseText())) {
|
|
|
|
|
ocrText.append(fileOcrProcess.getReviseText());
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
ocrText.append(fileOcrProcess.getOcrText());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -286,8 +282,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
updateById(caseEvidence);
|
|
|
|
|
// 根据证据目录id查询提示词
|
|
|
|
|
EvidenceDirectory directory = evidenceDirectoryService.getById(caseEvidence.getDirectoryId());
|
|
|
|
|
EvidenceCategory category = evidenceCategoryService.getById(directory.getCategoryId());
|
|
|
|
|
NotePrompt notePrompt = notePromptService.getById(category.getPromptId());
|
|
|
|
|
NotePrompt notePrompt = notePromptService.getOne(new QueryWrapper<NotePrompt>().eq("evidence_category_id", directory.getCategoryId()));
|
|
|
|
|
if (notePrompt != null) {
|
|
|
|
|
log.info("属性提取开始。");
|
|
|
|
|
long attrStart = System.currentTimeMillis();
|
|
|
|
@ -318,42 +313,42 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceCategoryDTO> listCategoryTree(String caseType) {
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(caseType,"案件类型不能为空!");
|
|
|
|
|
Assert.notEmpty(caseType, "案件类型不能为空!");
|
|
|
|
|
return evidenceCategoryService.listCategoryTree(caseType);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceDirectoryDTO> listFileTree(String caseId) {
|
|
|
|
|
|
|
|
|
|
return listFileTree(caseId,null);
|
|
|
|
|
return listFileTree(caseId, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceDirectoryDTO> listFileTree(String caseId, String batchNo) {
|
|
|
|
|
Assert.notEmpty(caseId,"案件ID不能为空!");
|
|
|
|
|
Assert.notEmpty(caseId, "案件ID不能为空!");
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
evidenceDirectoryService.appendFile(evidenceDirectoryDTOS, evidenceFileService.queryFileInfoList(caseId,batchNo));
|
|
|
|
|
evidenceDirectoryService.appendFile(evidenceDirectoryDTOS, evidenceFileService.queryFileInfoList(caseId, batchNo));
|
|
|
|
|
|
|
|
|
|
return evidenceDirectoryDTOS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceDirectoryDTO> listFileTree(String caseId, String batchNo, String evidenceId, String directoryId) {
|
|
|
|
|
Assert.notEmpty(caseId,"案件ID不能为空!");
|
|
|
|
|
Assert.notEmpty(caseId, "案件ID不能为空!");
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
evidenceDirectoryService.appendFile(evidenceDirectoryDTOS,
|
|
|
|
|
evidenceFileService.queryFileInfoList(caseId,batchNo, evidenceId, directoryId));
|
|
|
|
|
evidenceFileService.queryFileInfoList(caseId, batchNo, evidenceId, directoryId));
|
|
|
|
|
|
|
|
|
|
return evidenceDirectoryDTOS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceDirectoryDTO> listDirectoryTree(String caseId) {
|
|
|
|
|
Assert.notEmpty(caseId,"案件ID不能为空!");
|
|
|
|
|
Assert.notEmpty(caseId, "案件ID不能为空!");
|
|
|
|
|
|
|
|
|
|
return evidenceDirectoryService.listDirectoryTree(caseId);
|
|
|
|
|
}
|
|
|
|
@ -369,9 +364,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateDirectory(EvidenceDirectory evidenceDirectory) {
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(evidenceDirectory.getId(),"目录ID不能为空!");
|
|
|
|
|
Assert.notEmpty(evidenceDirectory.getId(), "目录ID不能为空!");
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(evidenceDirectory.getParentId(),"父级目录id不能为空");
|
|
|
|
|
Assert.notEmpty(evidenceDirectory.getParentId(), "父级目录id不能为空");
|
|
|
|
|
|
|
|
|
|
return evidenceDirectoryService.lambdaUpdate()
|
|
|
|
|
.set(EvidenceDirectory::getParentId, evidenceDirectory.getParentId())
|
|
|
|
@ -408,13 +403,13 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
|
public Boolean removeDirectory(List<String> directoryIdList) {
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(directoryIdList)){
|
|
|
|
|
if (CollUtil.isEmpty(directoryIdList)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
boolean success = evidenceDirectoryService.removeBatchByIds(directoryIdList);
|
|
|
|
|
|
|
|
|
|
if (success){
|
|
|
|
|
if (success) {
|
|
|
|
|
// 删除目录,意味着证据也要被删除
|
|
|
|
|
super.lambdaUpdate().eq(CaseEvidence::getDirectoryId, directoryIdList).remove();
|
|
|
|
|
evidenceFileService.lambdaUpdate().in(EvidenceFile::getDirectoryId, directoryIdList).remove();
|
|
|
|
@ -426,6 +421,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
* 提取证据信息
|
|
|
|
|
* 1. 只对证据文件进行新增操作,不删除已有的文件
|
|
|
|
|
* 2. 如果第三级目录下已经存在文件,只新增证据文件,对证据进行ocr识别但不对证据进行重新提取操作
|
|
|
|
|
*
|
|
|
|
|
* @param caseId
|
|
|
|
|
* @param evidenceFileDTOS 文件信息
|
|
|
|
|
*/
|
|
|
|
@ -441,14 +437,14 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
List<CaseEvidenceDetailDTO> operationalEvidenceList = findChangedEvidence(oldEvidences, newEvidences);
|
|
|
|
|
|
|
|
|
|
String batchId = ((CaseEvidenceService)AopContext.currentProxy()).updateCaseEvidence4NewTransaction(operationalEvidenceList);
|
|
|
|
|
String batchId = ((CaseEvidenceService) AopContext.currentProxy()).updateCaseEvidence4NewTransaction(operationalEvidenceList);
|
|
|
|
|
|
|
|
|
|
List<EvidenceFileDTO> evidenceFileDTOList = operationalEvidenceList.stream()
|
|
|
|
|
.flatMap(evidenceDetailDTO -> evidenceDetailDTO.getFileList().stream().filter(file -> StrUtil.equals(file.getUpdateStatus(),"1"))).toList();
|
|
|
|
|
((CaseEvidenceService)AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList);
|
|
|
|
|
.flatMap(evidenceDetailDTO -> evidenceDetailDTO.getFileList().stream().filter(file -> StrUtil.equals(file.getUpdateStatus(), "1"))).toList();
|
|
|
|
|
((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList);
|
|
|
|
|
|
|
|
|
|
for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) {
|
|
|
|
|
if (StrUtil.equals(caseEvidenceDetailDTO.getUpdateStatus(),"1")){
|
|
|
|
|
if (StrUtil.equals(caseEvidenceDetailDTO.getUpdateStatus(), "1")) {
|
|
|
|
|
// 需要分析(ocr识别+标题提取)
|
|
|
|
|
xxlJobService.executeTaskByJobHandler("evidenceAnalysis", caseEvidenceDetailDTO.getId());
|
|
|
|
|
}
|
|
|
|
@ -460,23 +456,24 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新案件证据信息 note:这个方法中的事务是一个新的事务,不会与之前的事务保持原子操作
|
|
|
|
|
*
|
|
|
|
|
* @param caseEvidenceDetailDTOList 新旧证据信息
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
|
|
|
|
|
public String updateCaseEvidence4NewTransaction(List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOList) {
|
|
|
|
|
|
|
|
|
|
String batchNo = DateTime.now().toString("yyyyMMddHHmmss");
|
|
|
|
|
for (CaseEvidenceDetailDTO evidence : caseEvidenceDetailDTOList) {
|
|
|
|
|
if (evidence.getUpdateStatus().equals("1")){
|
|
|
|
|
if (evidence.getUpdateStatus().equals("1")) {
|
|
|
|
|
// 新增
|
|
|
|
|
CaseEvidence caseEvidence = evidence.toCaseEvidence();
|
|
|
|
|
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_UNPROCESSED);
|
|
|
|
|
this.save(caseEvidence);
|
|
|
|
|
evidence.setId(caseEvidence.getId());
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidence.getFileList()) {
|
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(),"1","2")){
|
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(), "1", "2")) {
|
|
|
|
|
// 新增
|
|
|
|
|
EvidenceFile evidenceFile = new EvidenceFile(caseEvidence.getId(), evidenceFileDTO.getFileId());
|
|
|
|
|
evidenceFile.setDirectoryId(evidence.getDirectoryId());
|
|
|
|
@ -495,9 +492,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}else if (evidence.getUpdateStatus().equals("-1")){
|
|
|
|
|
} else if (evidence.getUpdateStatus().equals("-1")) {
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidence.getFileList()) {
|
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(),"1","2")){
|
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(), "1", "2")) {
|
|
|
|
|
// 新增
|
|
|
|
|
EvidenceFile evidenceFile = new EvidenceFile(evidence.getId(), evidenceFileDTO.getFileId());
|
|
|
|
|
evidenceFile.setDirectoryId(evidence.getDirectoryId());
|
|
|
|
@ -517,36 +514,36 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceProcessDTO> listOcrAndExtract(String caseId,String batchNo) {
|
|
|
|
|
public List<EvidenceProcessDTO> listOcrAndExtract(String caseId, String batchNo) {
|
|
|
|
|
Assert.notEmpty(caseId, "案件id不能为空");
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseId);
|
|
|
|
|
Assert.notNull(modelCase, "案件不存在");
|
|
|
|
|
|
|
|
|
|
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = this.queryEvidenceList(caseId,batchNo);
|
|
|
|
|
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = this.queryEvidenceList(caseId, batchNo);
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(caseEvidenceDetailDTOS)){
|
|
|
|
|
if (CollUtil.isEmpty(caseEvidenceDetailDTOS)) {
|
|
|
|
|
return new ArrayList<>();
|
|
|
|
|
}
|
|
|
|
|
List<EvidenceProcessDTO> processDTOList = caseEvidenceDetailDTOS.stream()
|
|
|
|
|
.filter(evidenceDetail->CollUtil.isNotEmpty(evidenceDetail.getFileList()))
|
|
|
|
|
.filter(evidenceDetail -> CollUtil.isNotEmpty(evidenceDetail.getFileList()))
|
|
|
|
|
.map(EvidenceProcessDTO::new).collect(Collectors.toList());
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId);
|
|
|
|
|
List<EvidenceCategory> categoryList = evidenceCategoryService.lambdaQuery().eq(EvidenceCategory::getCaseType, modelCase.getCaseType()).list();
|
|
|
|
|
|
|
|
|
|
List<NotePrompt> notePrompts = notePromptService.list();
|
|
|
|
|
for (EvidenceProcessDTO evidenceProcessDTO : processDTOList) {
|
|
|
|
|
evidenceProcessDTO.setTemplateInfo(evidenceDirectoryDTOS, categoryList);
|
|
|
|
|
evidenceProcessDTO.setTemplateInfo(evidenceDirectoryDTOS, categoryList, notePrompts);
|
|
|
|
|
evidenceProcessDTO.setEvidenceTypeName(categoryList);
|
|
|
|
|
}
|
|
|
|
|
return processDTOList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void verifyEvidence(List<EvidenceVerifyDTO> evidenceVerifyDTOS,String caseId,String batchNo) {
|
|
|
|
|
public void verifyEvidence(List<EvidenceVerifyDTO> evidenceVerifyDTOS, String caseId, String batchNo) {
|
|
|
|
|
Assert.notEmpty(caseId, "案件id不能为空");
|
|
|
|
|
if (CollUtil.isEmpty(evidenceVerifyDTOS)){
|
|
|
|
|
if (CollUtil.isEmpty(evidenceVerifyDTOS)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = queryEvidenceList(caseId,batchNo);
|
|
|
|
|
List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = queryEvidenceList(caseId, batchNo);
|
|
|
|
|
Map<String, List<EvidenceVerifyDTO>> evidenceMap = evidenceVerifyDTOS.stream().collect(Collectors.groupingBy(EvidenceVerifyDTO::getEvidenceId));
|
|
|
|
|
for (Map.Entry<String, List<EvidenceVerifyDTO>> entry : evidenceMap.entrySet()) {
|
|
|
|
|
String evidenceId = entry.getKey();
|
|
|
|
@ -557,7 +554,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
// 修改ocr内容
|
|
|
|
|
for (EvidenceVerifyDTO verifyDTO : value) {
|
|
|
|
|
if (StrUtil.isNotEmpty(verifyDTO.getOcrText())){
|
|
|
|
|
if (StrUtil.isNotEmpty(verifyDTO.getOcrText())) {
|
|
|
|
|
fileOcrProcessService.lambdaUpdate()
|
|
|
|
|
.eq(FileOcrProcess::getFileId, verifyDTO.getFileId())
|
|
|
|
|
.set(FileOcrProcess::getReviseText, verifyDTO.getOcrText()).update();
|
|
|
|
@ -565,7 +562,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
// 调整顺序
|
|
|
|
|
CaseEvidenceDetailDTO evidenceDetail = findEvidenceDetail(evidenceId, caseEvidenceDetailDTOS);
|
|
|
|
|
if (evidenceDetail != null){
|
|
|
|
|
if (evidenceDetail != null) {
|
|
|
|
|
List<String> list = value.stream().map(EvidenceVerifyDTO::getFileId).toList();
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidenceDetail.getFileList()) {
|
|
|
|
|
evidenceFileDTO.setRank(findRank(list, evidenceFileDTO.getFileId()));
|
|
|
|
@ -603,19 +600,19 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo,String evidenceId) {
|
|
|
|
|
public List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo, String evidenceId) {
|
|
|
|
|
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listFileTree(caseId,batchNo,evidenceId,null);
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listFileTree(caseId, batchNo, evidenceId, null);
|
|
|
|
|
|
|
|
|
|
List<CaseEvidence> caseEvidenceList = this.lambdaQuery().eq(CaseEvidence::getCaseId, caseId).list();
|
|
|
|
|
// 强行翻译
|
|
|
|
|
Map<String, String> dictionaryMap = comDictionaryService.getDictionaryMapReverse("prompt_attribute_valuetype");
|
|
|
|
|
for (CaseEvidence caseEvidence : caseEvidenceList) {
|
|
|
|
|
List<NotePromptExtractAttributesDto> property = caseEvidence.getProperty();
|
|
|
|
|
if (CollUtil.isNotEmpty(property)){
|
|
|
|
|
if (CollUtil.isNotEmpty(property)) {
|
|
|
|
|
for (NotePromptExtractAttributesDto notePromptExtractAttributesDto : property) {
|
|
|
|
|
String attrValueType = notePromptExtractAttributesDto.getAttrValueType();
|
|
|
|
|
if (StrUtil.isNotEmpty(attrValueType) && dictionaryMap.containsKey(attrValueType)){
|
|
|
|
|
if (StrUtil.isNotEmpty(attrValueType) && dictionaryMap.containsKey(attrValueType)) {
|
|
|
|
|
notePromptExtractAttributesDto.setAttrValueType(dictionaryMap.get(attrValueType));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -628,11 +625,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
Map<String, CategoryPromptDTO> categoryPromptMap = categoryPromptDTOS.stream().collect(Collectors.toMap(CategoryPromptDTO::getDirectoryId, Function.identity()));
|
|
|
|
|
|
|
|
|
|
Iterator<EvidenceDirectoryDTO> iterator = evidenceDirectoryDTOS.iterator();
|
|
|
|
|
while (iterator.hasNext()){
|
|
|
|
|
while (iterator.hasNext()) {
|
|
|
|
|
EvidenceDirectoryDTO evidenceDirectoryDTO = iterator.next();
|
|
|
|
|
evidenceDirectoryDTO.setFileEvidence(caseEvidenceMap, categoryPromptMap);
|
|
|
|
|
evidenceDirectoryDTO.removeEmptyDirectory();
|
|
|
|
|
if (CollUtil.isEmpty(evidenceDirectoryDTO.getChild()) && CollUtil.isEmpty(evidenceDirectoryDTO.getFileInfoList())){
|
|
|
|
|
if (CollUtil.isEmpty(evidenceDirectoryDTO.getChild()) && CollUtil.isEmpty(evidenceDirectoryDTO.getFileInfoList())) {
|
|
|
|
|
iterator.remove();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -655,7 +652,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
String directoryName = category.getCategoryName() + provider;
|
|
|
|
|
long count = directoryList.stream().filter(d -> StrUtil.contains(d.getDirectoryName(), provider)).count();
|
|
|
|
|
if (count > 0){
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
directoryName = directoryName + count;
|
|
|
|
|
}
|
|
|
|
|
return directoryName;
|
|
|
|
@ -668,7 +665,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
List<String> directoryIdList = null;
|
|
|
|
|
for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) {
|
|
|
|
|
directoryIdList = evidenceDirectoryDTO.findDirectoryIdList(evidenceDirectory.getCategoryId());
|
|
|
|
|
if (CollUtil.isNotEmpty(directoryIdList)){
|
|
|
|
|
if (CollUtil.isNotEmpty(directoryIdList)) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -676,7 +673,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
EvidenceDirectoryDTO directory = null;
|
|
|
|
|
for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) {
|
|
|
|
|
directory = evidenceDirectoryDTO.findDirectory(CollUtil.getFirst(directoryIdList));
|
|
|
|
|
if (null != directory){
|
|
|
|
|
if (null != directory) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -685,7 +682,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
long count = evidenceDirectoryService.lambdaQuery().eq(EvidenceDirectory::getParentId, directory.getId())
|
|
|
|
|
.list().stream()
|
|
|
|
|
.filter(d -> StrUtil.contains(d.getDirectoryName(), evidenceDirectory.getDirectoryName())).count();
|
|
|
|
|
if (count > 0){
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
evidenceDirectory.setDirectoryName(evidenceDirectory.getDirectoryName() + count + 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -699,15 +696,15 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation= Propagation.REQUIRES_NEW, transactionManager = "dataSourceTransactionManager")
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW, transactionManager = "dataSourceTransactionManager")
|
|
|
|
|
public void preSyncSubmitOCR(List<EvidenceFileDTO> evidenceFileList) {
|
|
|
|
|
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidenceFileList) {
|
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getFileType(),"doc","docx")){
|
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "doc", "docx")) {
|
|
|
|
|
fileOcrProcessService.syncSubmitOCR(List.of(evidenceFileDTO.getFileId()), fileOcrProcessService::doWordCRTask);
|
|
|
|
|
}else if (StrUtil.equalsAny(evidenceFileDTO.getFileType(),"pdf")){
|
|
|
|
|
} else if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "pdf")) {
|
|
|
|
|
fileOcrProcessService.syncSubmitOCR(List.of(evidenceFileDTO.getFileId()), fileOcrProcessService::doPdfCRTask);
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
fileOcrProcessService.syncSubmitOCR(List.of(evidenceFileDTO.getFileId()), fileOcrProcessService::doOCRTask);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -716,15 +713,15 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
private CaseEvidenceDetailDTO findEvidenceDetail(String evidenceId, List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS) {
|
|
|
|
|
for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : caseEvidenceDetailDTOS) {
|
|
|
|
|
if (StrUtil.equals(caseEvidenceDetailDTO.getId(), evidenceId)){
|
|
|
|
|
if (StrUtil.equals(caseEvidenceDetailDTO.getId(), evidenceId)) {
|
|
|
|
|
return caseEvidenceDetailDTO;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<CaseEvidenceDetailDTO> toCaseCaseEvidenceDetailDTO(List<EvidenceDirectoryDTO> newDirectoryDTOS,List<EvidenceDirectoryDTO> oldEvidenceDirectoryDTOS) {
|
|
|
|
|
if (CollUtil.isEmpty(newDirectoryDTOS)){
|
|
|
|
|
private List<CaseEvidenceDetailDTO> toCaseCaseEvidenceDetailDTO(List<EvidenceDirectoryDTO> newDirectoryDTOS, List<EvidenceDirectoryDTO> oldEvidenceDirectoryDTOS) {
|
|
|
|
|
if (CollUtil.isEmpty(newDirectoryDTOS)) {
|
|
|
|
|
return new ArrayList<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -738,12 +735,12 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
String directoryId = evidenceFile.getId();
|
|
|
|
|
EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(directoryId, oldEvidenceDirectoryDTOS);
|
|
|
|
|
if (null == directory){
|
|
|
|
|
log.warn("toCaseCaseEvidenceDetailDTO:目录id:{}不存在对应的目录分类信息",directoryId);
|
|
|
|
|
if (null == directory) {
|
|
|
|
|
log.warn("toCaseCaseEvidenceDetailDTO:目录id:{}不存在对应的目录分类信息", directoryId);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (directory.getLevel() == 1 || directory.getLevel() == 2){
|
|
|
|
|
if (directory.getLevel() == 1 || directory.getLevel() == 2) {
|
|
|
|
|
for (String fileId : evidenceFile.getFileIdList()) {
|
|
|
|
|
CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO();
|
|
|
|
|
caseEvidenceDetailDTO.setEvidenceType(directory.getCategoryId());
|
|
|
|
@ -752,7 +749,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
evidenceFileDTO.setFileId(fileId);
|
|
|
|
|
|
|
|
|
|
MinioFile minioFile = fileMap.get(fileId);
|
|
|
|
|
if (null != minioFile){
|
|
|
|
|
if (null != minioFile) {
|
|
|
|
|
// 证据名为文件名
|
|
|
|
|
caseEvidenceDetailDTO.setEvidenceName(minioFile.getFilename());
|
|
|
|
|
evidenceFileDTO.setFileType(minioFile.getFileType());
|
|
|
|
@ -762,9 +759,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
caseEvidenceDetailDTOS.add(caseEvidenceDetailDTO);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (directory.getLevel() == 3){
|
|
|
|
|
if (directory.getLevel() == 3) {
|
|
|
|
|
CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO();
|
|
|
|
|
if (CollUtil.isNotEmpty(directory.getFileInfoList())){
|
|
|
|
|
if (CollUtil.isNotEmpty(directory.getFileInfoList())) {
|
|
|
|
|
String evidenceId = CollUtil.getFirst(directory.getFileInfoList()).getEvidenceId();
|
|
|
|
|
caseEvidenceDetailDTO.setId(evidenceId);
|
|
|
|
|
}
|
|
|
|
@ -777,7 +774,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO();
|
|
|
|
|
evidenceFileDTO.setFileId(fileId);
|
|
|
|
|
MinioFile minioFile = fileMap.get(fileId);
|
|
|
|
|
if (null != minioFile){
|
|
|
|
|
if (null != minioFile) {
|
|
|
|
|
evidenceFileDTO.setFileName(minioFile.getFilename());
|
|
|
|
|
evidenceFileDTO.setFileType(minioFile.getFileType());
|
|
|
|
|
}
|
|
|
|
@ -795,7 +792,8 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查找发生改变的证据
|
|
|
|
|
* @param oldEvidenceList 旧证据列表
|
|
|
|
|
*
|
|
|
|
|
* @param oldEvidenceList 旧证据列表
|
|
|
|
|
* @param newEvidenceFileList 新证据列表
|
|
|
|
|
* @return 发生改变的证据
|
|
|
|
|
*/
|
|
|
|
@ -804,20 +802,20 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
List<CaseEvidenceDetailDTO> caseEvidence2DTOList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)){
|
|
|
|
|
if (CollUtil.isEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)) {
|
|
|
|
|
// 数据库中不存在数据,则全部新增
|
|
|
|
|
for (CaseEvidenceDetailDTO evidenceDetailDTO : newEvidenceFileList) {
|
|
|
|
|
List<String> fileIds = evidenceDetailDTO.getFileList().stream().map(EvidenceFileDTO::getFileId).toList();
|
|
|
|
|
evidenceDetailDTO.setUpdateStatus("1");
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidenceDetailDTO.getFileList()) {
|
|
|
|
|
evidenceFileDTO.setUpdateStatus("1");
|
|
|
|
|
evidenceFileDTO.setRank(findRank(fileIds,evidenceFileDTO.getFileId()));
|
|
|
|
|
evidenceFileDTO.setRank(findRank(fileIds, evidenceFileDTO.getFileId()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
caseEvidence2DTOList.addAll(newEvidenceFileList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isEmpty(newEvidenceFileList)){
|
|
|
|
|
if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isEmpty(newEvidenceFileList)) {
|
|
|
|
|
// 数据库中存在数据,没有新增数据
|
|
|
|
|
for (CaseEvidenceDetailDTO evidenceDetailDTO : oldEvidenceList) {
|
|
|
|
|
evidenceDetailDTO.setUpdateStatus("0");
|
|
|
|
@ -829,7 +827,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)){
|
|
|
|
|
if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)) {
|
|
|
|
|
// 数据库中和新数据都存在
|
|
|
|
|
Map<String, EvidenceFileDTO> fileCache = Stream.of(newEvidenceFileList, oldEvidenceList)
|
|
|
|
|
.flatMap(Collection::stream)
|
|
|
|
@ -839,21 +837,21 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
for (CaseEvidenceDetailDTO oldEvidence : oldEvidenceList) {
|
|
|
|
|
boolean isFind = false;
|
|
|
|
|
for (CaseEvidenceDetailDTO newEvidence : newEvidenceFileList) {
|
|
|
|
|
if (StrUtil.equals(oldEvidence.getId(),newEvidence.getId())){
|
|
|
|
|
if (StrUtil.equals(oldEvidence.getId(), newEvidence.getId())) {
|
|
|
|
|
isFind = true;
|
|
|
|
|
oldEvidence.setUpdateStatus("-1");
|
|
|
|
|
List<String> oldFileIds = oldEvidence.getFileList().stream().map(EvidenceFileDTO::getFileId).toList();
|
|
|
|
|
List<String> newFileIds = newEvidence.getFileList().stream().map(EvidenceFileDTO::getFileId).toList();
|
|
|
|
|
TupleIdRecord tupleIdRecord = compareFileList(newFileIds,oldFileIds);
|
|
|
|
|
TupleIdRecord tupleIdRecord = compareFileList(newFileIds, oldFileIds);
|
|
|
|
|
|
|
|
|
|
List<EvidenceFileDTO> updateFileList = new ArrayList<>();
|
|
|
|
|
// 新增的文件顺序排在原有文件的后面
|
|
|
|
|
int initOrder = oldFileIds.size() -1;
|
|
|
|
|
int initOrder = oldFileIds.size() - 1;
|
|
|
|
|
for (String addFileId : tupleIdRecord.addFileList) {
|
|
|
|
|
EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO();
|
|
|
|
|
evidenceFileDTO.setFileId(addFileId);
|
|
|
|
|
evidenceFileDTO.setUpdateStatus("1");
|
|
|
|
|
if (null != fileCache.get(addFileId)){
|
|
|
|
|
if (null != fileCache.get(addFileId)) {
|
|
|
|
|
evidenceFileDTO.setFileType(fileCache.get(addFileId).getFileType());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -864,7 +862,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO();
|
|
|
|
|
evidenceFileDTO.setFileId(deleteFileId);
|
|
|
|
|
evidenceFileDTO.setUpdateStatus("0");
|
|
|
|
|
if (null != fileCache.get(deleteFileId)){
|
|
|
|
|
if (null != fileCache.get(deleteFileId)) {
|
|
|
|
|
evidenceFileDTO.setFileType(fileCache.get(deleteFileId).getFileType());
|
|
|
|
|
}
|
|
|
|
|
evidenceFileDTO.setRank(findRank(oldFileIds, deleteFileId));
|
|
|
|
@ -875,7 +873,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO();
|
|
|
|
|
evidenceFileDTO.setFileId(updateFileId);
|
|
|
|
|
evidenceFileDTO.setUpdateStatus("2");
|
|
|
|
|
if (null != fileCache.get(updateFileId)){
|
|
|
|
|
if (null != fileCache.get(updateFileId)) {
|
|
|
|
|
evidenceFileDTO.setFileType(fileCache.get(updateFileId).getFileType());
|
|
|
|
|
}
|
|
|
|
|
evidenceFileDTO.setRank(findRank(oldFileIds, updateFileId));
|
|
|
|
@ -886,7 +884,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
caseEvidence2DTOList.add(newEvidence);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!isFind){
|
|
|
|
|
if (!isFind) {
|
|
|
|
|
oldEvidence.setUpdateStatus("0");
|
|
|
|
|
caseEvidence2DTOList.add(oldEvidence);
|
|
|
|
|
}
|
|
|
|
@ -894,7 +892,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (CaseEvidenceDetailDTO newEvidence : newEvidenceFileList) {
|
|
|
|
|
if (StrUtil.isEmpty(newEvidence.getId())){
|
|
|
|
|
if (StrUtil.isEmpty(newEvidence.getId())) {
|
|
|
|
|
newEvidence.setUpdateStatus("1");
|
|
|
|
|
List<String> newFileIds = newEvidence.getFileList().stream().map(EvidenceFileDTO::getFileId).toList();
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : newEvidence.getFileList()) {
|
|
|
|
@ -909,9 +907,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
return caseEvidence2DTOList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int findRank(List<String> newFileIds,String fileId){
|
|
|
|
|
private int findRank(List<String> newFileIds, String fileId) {
|
|
|
|
|
for (int i = 0; i < newFileIds.size(); i++) {
|
|
|
|
|
if (newFileIds.get(i).equals(fileId)){
|
|
|
|
|
if (newFileIds.get(i).equals(fileId)) {
|
|
|
|
|
return i;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -919,15 +917,14 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 初始化案件证据目录
|
|
|
|
|
*
|
|
|
|
|
* @param evidenceCategoryDTOS 证据分类
|
|
|
|
|
* @param caseId 案件id
|
|
|
|
|
* @param parentId 父级目录id
|
|
|
|
|
* @param caseId 案件id
|
|
|
|
|
* @param parentId 父级目录id
|
|
|
|
|
*/
|
|
|
|
|
private void initCaseEvidenceDirectory(List<EvidenceCategoryDTO> evidenceCategoryDTOS, String caseId, String parentId) {
|
|
|
|
|
private void initCaseEvidenceDirectory(List<EvidenceCategoryDTO> evidenceCategoryDTOS, String caseId, String parentId) {
|
|
|
|
|
for (EvidenceCategoryDTO evidenceCategoryDTO : evidenceCategoryDTOS) {
|
|
|
|
|
EvidenceDirectory evidenceDirectory = new EvidenceDirectory();
|
|
|
|
|
evidenceDirectory.setCaseId(caseId);
|
|
|
|
@ -942,9 +939,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* left 新增 right 删除
|
|
|
|
|
*
|
|
|
|
|
* @param newFileIdList
|
|
|
|
|
* @param oldFileIdList
|
|
|
|
|
* @return
|
|
|
|
@ -954,24 +951,25 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
List<String> deleteFileList = new ArrayList<>();
|
|
|
|
|
List<String> updateFileList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)){
|
|
|
|
|
if (CollUtil.isEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)) {
|
|
|
|
|
addFileList = newFileIdList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isEmpty(newFileIdList)){
|
|
|
|
|
if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isEmpty(newFileIdList)) {
|
|
|
|
|
deleteFileList = oldFileIdList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)){
|
|
|
|
|
if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)) {
|
|
|
|
|
deleteFileList = oldFileIdList.stream().filter(fileId -> !newFileIdList.contains(fileId)).collect(Collectors.toList());
|
|
|
|
|
addFileList = newFileIdList.stream().filter(fileId -> !oldFileIdList.contains(fileId)).collect(Collectors.toList());
|
|
|
|
|
updateFileList = oldFileIdList.stream().filter(newFileIdList::contains).collect(Collectors.toList());
|
|
|
|
|
updateFileList = oldFileIdList.stream().filter(newFileIdList::contains).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new TupleIdRecord(addFileList,updateFileList, deleteFileList);
|
|
|
|
|
return new TupleIdRecord(addFileList, updateFileList, deleteFileList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
record TupleIdRecord(List<String> addFileList ,List<String> updateFileList, List<String> deleteFileList){}
|
|
|
|
|
record TupleIdRecord(List<String> addFileList, List<String> updateFileList, List<String> deleteFileList) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|