diff --git a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java index 65e6bc8..ec66fac 100644 --- a/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java +++ b/src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionUpdateRequest.java @@ -4,11 +4,13 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.StrUtil; import com.biutag.supervision.aop.ParamChecked; +import com.biutag.supervision.pojo.vo.FileVo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; @Schema(description = "涉访涉诉修改请求") @@ -70,6 +72,8 @@ public class ComplaintCollectionUpdateRequest implements ParamChecked { @Schema(description = "业务类型name") private String businessTypeName; + @Schema(description = "附件列表") + private List thingFiles = new ArrayList<>(); @Override public void check() { if (StrUtil.isBlank(id)) { diff --git a/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java b/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java index 9229961..48e9563 100644 --- a/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java +++ b/src/main/java/com/biutag/supervision/repository/complaintCollectionFile/ComplaintCollectionFileResourceService.java @@ -8,6 +8,7 @@ import com.biutag.supervision.pojo.entity.ComplaintCollectionFile; import com.biutag.supervision.pojo.param.complaintCollectionFile.ComplaintCollectionFileQueryParam; import com.biutag.supervision.repository.base.BaseDAO; import jakarta.annotation.Resource; +import jakarta.validation.ValidationException; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -57,4 +58,14 @@ public class ComplaintCollectionFileResourceService extends BaseDAO { + + public boolean delByComplaintCollectionId(String complaintCollectionId) { + if (StrUtil.isBlank(complaintCollectionId)) { + throw new ValidationException("complaintCollectionId不能为空"); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(ComplaintCollectionFile::getComplaintId, complaintCollectionId); + int rows = complaintCollectionFileMapper.delete(qw); + return rows >= 0; + } } diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java index deea0f1..534841a 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -101,23 +101,8 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic complaintCollection.setCreateTime(LocalDateTime.now()); complaintCollection.setCreateBy(UserContextHolder.getCurrentUser().getUserName()); Boolean res = complaintCollectionResourceService.createComplaintCollection(Arrays.asList(complaintCollection)); - if (CollectionUtil.isNotEmpty(request.getThingFiles())) { - // 防御 - Assert.notNull(complaintCollection.getId(), "主表插入后未获取到ID"); - List files = request.getThingFiles().stream().map(one -> { - ComplaintCollectionFile file = new ComplaintCollectionFile(); - file.setComplaintId(complaintCollection.getId()); - file.setFileName(one.getFileName()); - file.setFilePath(one.getFilePath()); - file.setCreateBy(UserContextHolder.getCurrentUser().getUserName()); - file.setCreateTime(LocalDateTime.now()); - return file; - }).toList(); - boolean ok = complaintCollectionFileResourceService.createComplaintCollectionFile(files); - if (!ok) { - throw new ValidationException("附件保存失败"); - } - } + Assert.notNull(complaintCollection.getId(), "主表插入后未获取到ID"); + saveThingFilesOrThrow(complaintCollection.getId(), request.getThingFiles()); return Result.success(res); } @@ -134,14 +119,19 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic throw new RuntimeException("目标信息状态不可删除"); } boolean deleted = complaintCollectionResourceService.deleteById(request.getId()); + if (!deleted){ + throw new RuntimeException("删除失败"); + } return Result.success(true); } @Override + @Transactional(rollbackFor = Exception.class) public Result updateComplaintCollection(ComplaintCollectionUpdateRequest request) { + String id = request.getId(); ComplaintCollectionExistParam existParam = new ComplaintCollectionExistParam(); - existParam.setId(request.getId()); + existParam.setId(id); boolean exists = complaintCollectionResourceService.exists(existParam); if (!exists) { throw new NoSuchElementException("未找到可修改信息"); @@ -165,6 +155,8 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic if (!ok) { throw new RuntimeException("修改失败"); } + complaintCollectionFileResourceService.delByComplaintCollectionId(id); + saveThingFilesOrThrow(id, request.getThingFiles()); return Result.success(true); } @@ -526,4 +518,32 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic return negative; } + /** + * 保存附件 + * @param complaintId + * @param thingFiles + */ + private void saveThingFilesOrThrow(String complaintId, List thingFiles) { + if (CollectionUtil.isEmpty(thingFiles)) { + return; + } + String userName = UserContextHolder.getCurrentUser().getUserName(); + LocalDateTime now = LocalDateTime.now(); + List files = thingFiles.stream().map(one -> { + ComplaintCollectionFile file = new ComplaintCollectionFile(); + file.setComplaintId(complaintId); + file.setFileName(one.getFileName()); + file.setFilePath(one.getFilePath()); + file.setCreateBy(userName); + file.setCreateTime(now); + return file; + }).toList(); + + boolean ok = complaintCollectionFileResourceService.createComplaintCollectionFile(files); + if (!ok) { + throw new ValidationException("附件保存失败"); + } + } + + }