1. 修复证据改造bug

topo_dev
xueqingkun 6 months ago
parent ae39e7428d
commit ebaa73b40a

@ -52,6 +52,13 @@ public class CaseEvidenceController {
return R.ok(success); return R.ok(success);
} }
@Operation(summary = "批量删除案件证据信息")
@DeleteMapping("/batchDeleteEvidence")
public R<Boolean> batchDeleteEvidence(@RequestBody List<EvidenceIdWrapper> evidenceIdWrappers) {
boolean success = caseEvidenceService.batchDeleteEvidence(evidenceIdWrappers);
return R.ok(success);
}
@Operation(summary = "分页查询案件证据信息列表") @Operation(summary = "分页查询案件证据信息列表")
@GetMapping("/pageListEvidence") @GetMapping("/pageListEvidence")

@ -34,6 +34,8 @@ public interface CaseEvidenceService extends IService<CaseEvidence> {
*/ */
boolean deleteEvidence(String evidenceId,String fileId); boolean deleteEvidence(String evidenceId,String fileId);
boolean batchDeleteEvidence(List<EvidenceIdWrapper> evidenceIdWrappers);
/** /**
* *
* @param caseId id * @param caseId id
@ -144,5 +146,4 @@ public interface CaseEvidenceService extends IService<CaseEvidence> {
EvidenceDirectory createDirectory(EvidenceDirectoryReqVO evidenceDirectory); EvidenceDirectory createDirectory(EvidenceDirectoryReqVO evidenceDirectory);
void syncEvidenceAnalysis(List<CaseEvidenceDetailDTO> evidenceList); void syncEvidenceAnalysis(List<CaseEvidenceDetailDTO> evidenceList);
} }

@ -129,16 +129,23 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
public boolean deleteEvidence(String evidenceId, String fileId) { public boolean deleteEvidence(String evidenceId, String fileId) {
CaseEvidence caseEvidence = super.getOptById(evidenceId).orElseThrow(() -> new IllegalArgumentException("证据信息不存在")); CaseEvidence caseEvidence = super.getOptById(evidenceId).orElseThrow(() -> new IllegalArgumentException("证据信息不存在"));
if (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(); String caseId = caseEvidence.getCaseId();
List<EvidenceDirectoryDTO> evidenceDirectoryS = listDirectoryTree(caseId); 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 directoryDTO = new EvidenceDirectoryDTO(evidenceDirectoryS);
EvidenceDirectoryDTO directory = directoryDTO.findDirectory(caseEvidence.getDirectoryId()); 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();
evidenceDirectoryService.removeDirectoryIf(directory.getId(), () -> directory.getLevel() == 3); evidenceDirectoryService.removeDirectoryIf(directory.getId(), () -> directory.getLevel() == 3);
caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId()); caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId());
} }
@ -146,7 +153,26 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId) evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId)
.eq(EvidenceFile::getFileId, fileId).remove(); .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; return true;
} }

Loading…
Cancel
Save