From 2d03ec79e1892248b520cf097e8a58dd82a4892f Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 22 五月 2026 15:19:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_天津_阳光彩印' into dev_天津_阳光彩印
---
src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java | 67 +++++++++++++++++++++++++++++++--
1 files changed, 63 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
index 8c30cb3..215d605 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -161,10 +161,17 @@
dto.setDateStr(inspectionTask.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- // 鍒濆鍖栦笁涓檮浠跺垪琛�
- dto.setCommonFileList(finalCommonFiles.stream().filter(commonFile -> commonFile.getType().equals(FileNameType.INSPECTION.getValue())).collect(Collectors.toList()));
- dto.setCommonFileListAfter(finalCommonFiles.stream().filter(commonFile -> commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_AFTER.getValue())).collect(Collectors.toList()));
- dto.setCommonFileListBefore(finalCommonFiles.stream().filter(commonFile -> commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue())).collect(Collectors.toList()));
+ // 鍒濆鍖栦笁涓檮浠跺垪琛紝鎸塩ommonId鍜宼ype杩囨护
+ Long taskId = inspectionTask.getId();
+ dto.setCommonFileList(finalCommonFiles.stream()
+ .filter(commonFile -> commonFile.getCommonId().equals(taskId) && commonFile.getType().equals(FileNameType.INSPECTION.getValue()))
+ .collect(Collectors.toList()));
+ dto.setCommonFileListAfter(finalCommonFiles.stream()
+ .filter(commonFile -> commonFile.getCommonId().equals(taskId) && commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_AFTER.getValue()))
+ .collect(Collectors.toList()));
+ dto.setCommonFileListBefore(finalCommonFiles.stream()
+ .filter(commonFile -> commonFile.getCommonId().equals(taskId) && commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue()))
+ .collect(Collectors.toList()));
return dto;
@@ -211,11 +218,63 @@
i = inspectionTaskMapper.insert(inspectionTask);
} else {
i = inspectionTaskMapper.updateById(inspectionTask);
+ // 缂栬緫鏃跺鐞嗛檮浠跺垹闄ら�昏緫
+ handleFileDeletion(inspectionTask.getId(), inspectionTaskDto);
}
+
commonFileService.migrateTempFilesToFormal(inspectionTask.getId(),inspectionTaskDto.getTempFileIds());
return i;
}
+ /**
+ * 澶勭悊闄勪欢鍒犻櫎閫昏緫锛氬姣斿師鏈夐檮浠跺拰浼犲叆鐨勯檮浠讹紝鍒犻櫎琚Щ闄ょ殑闄勪欢
+ */
+ private void handleFileDeletion(Long taskId, InspectionTaskDto inspectionTaskDto) {
+ // 鏌ヨ鍘熸湁鐨勪笁绉嶇被鍨嬮檮浠�
+ List<CommonFile> existingFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, taskId)
+ .in(CommonFile::getType, Arrays.asList(
+ FileNameType.INSPECTION.getValue(),
+ FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue(),
+ FileNameType.INSPECTION_PRODUCTION_AFTER.getValue())));
+
+ if (CollectionUtils.isEmpty(existingFiles)) {
+ return;
+ }
+
+ // 鑾峰彇鍓嶇浼犲叆鐨勯檮浠禝D闆嗗悎
+ Set<Long> submittedFileIds = new HashSet<>();
+ if (inspectionTaskDto.getCommonFileList() != null) {
+ inspectionTaskDto.getCommonFileList().stream()
+ .map(CommonFile::getId)
+ .filter(Objects::nonNull)
+ .forEach(submittedFileIds::add);
+ }
+ if (inspectionTaskDto.getCommonFileListBefore() != null) {
+ inspectionTaskDto.getCommonFileListBefore().stream()
+ .map(CommonFile::getId)
+ .filter(Objects::nonNull)
+ .forEach(submittedFileIds::add);
+ }
+ if (inspectionTaskDto.getCommonFileListAfter() != null) {
+ inspectionTaskDto.getCommonFileListAfter().stream()
+ .map(CommonFile::getId)
+ .filter(Objects::nonNull)
+ .forEach(submittedFileIds::add);
+ }
+
+ // 鎵惧嚭闇�瑕佸垹闄ょ殑闄勪欢ID锛堝師鏈変絾鍓嶇娌′紶鐨勶級
+ List<Long> toDeleteIds = existingFiles.stream()
+ .map(CommonFile::getId)
+ .filter(id -> !submittedFileIds.contains(id))
+ .collect(Collectors.toList());
+
+ // 鍒犻櫎闄勪欢
+ if (!toDeleteIds.isEmpty()) {
+ commonFileService.delCommonFileByIds(toDeleteIds.toArray(new Long[0]));
+ }
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public int delByIds(Long[] ids) {
--
Gitblit v1.9.3