|
|
|
@ -129,24 +129,50 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
public boolean deleteEvidence(String evidenceId, String fileId) {
|
|
|
|
|
|
|
|
|
|
CaseEvidence caseEvidence = super.getOptById(evidenceId).orElseThrow(() -> new IllegalArgumentException("证据信息不存在"));
|
|
|
|
|
if (StrUtil.isEmpty(fileId)) {
|
|
|
|
|
// 同步删除文件夹
|
|
|
|
|
String caseId = caseEvidence.getCaseId();
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryS = listDirectoryTree(caseId);
|
|
|
|
|
deleteEvidence(evidenceId, fileId, evidenceDirectoryS, caseEvidence);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void deleteEvidence(String evidenceId, String fileId,
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryS, CaseEvidence caseEvidence) {
|
|
|
|
|
EvidenceDirectoryDTO directoryDTO = new EvidenceDirectoryDTO(evidenceDirectoryS);
|
|
|
|
|
EvidenceDirectoryDTO directory = directoryDTO.findDirectory(caseEvidence.getDirectoryId());
|
|
|
|
|
|
|
|
|
|
if (directory.getLevel() != 3 || StrUtil.isEmpty(fileId)) {
|
|
|
|
|
// 当前证据不属于三级目录下的证据,删除文件的同时也要清楚证据数据
|
|
|
|
|
boolean remove = super.lambdaUpdate().eq(CaseEvidence::getId, evidenceId).remove();
|
|
|
|
|
if (remove) {
|
|
|
|
|
evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId).remove();
|
|
|
|
|
|
|
|
|
|
// 同步删除文件夹
|
|
|
|
|
String caseId = caseEvidence.getCaseId();
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryS = listDirectoryTree(caseId);
|
|
|
|
|
EvidenceDirectoryDTO directoryDTO = new EvidenceDirectoryDTO(evidenceDirectoryS);
|
|
|
|
|
EvidenceDirectoryDTO directory = directoryDTO.findDirectory(caseEvidence.getDirectoryId());
|
|
|
|
|
evidenceDirectoryService.removeDirectoryIf(directory.getId(),()->directory.getLevel() == 3);
|
|
|
|
|
evidenceDirectoryService.removeDirectoryIf(directory.getId(), () -> directory.getLevel() == 3);
|
|
|
|
|
caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId());
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId)
|
|
|
|
|
.eq(EvidenceFile::getFileId, fileId).remove();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
|
public boolean batchDeleteEvidence(List<EvidenceIdWrapper> wrappers) {
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(wrappers)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
List<String> evidenceIds = wrappers.stream().map(EvidenceIdWrapper::getEvidenceId).toList();
|
|
|
|
|
List<CaseEvidence> caseEvidenceList = super.listByIds(evidenceIds);
|
|
|
|
|
String caseId = CollUtil.getFirst(caseEvidenceList).getCaseId();
|
|
|
|
|
List<EvidenceDirectoryDTO> evidenceDirectoryS = listDirectoryTree(caseId);
|
|
|
|
|
|
|
|
|
|
// 同步删除文件夹
|
|
|
|
|
Map<String, CaseEvidence> caseEvidenceMap = caseEvidenceList.stream().collect(Collectors.toMap(CaseEvidence::getId, v -> v));
|
|
|
|
|
for (EvidenceIdWrapper evidenceIdWrapper : wrappers) {
|
|
|
|
|
deleteEvidence(evidenceIdWrapper.getEvidenceId(), evidenceIdWrapper.getFileId(),
|
|
|
|
|
evidenceDirectoryS, caseEvidenceMap.get(evidenceIdWrapper.getEvidenceId()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|