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