diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventRecordServiceImplement.java b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventRecordServiceImplement.java index 227ed69..56c1e65 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventRecordServiceImplement.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventRecordServiceImplement.java @@ -43,7 +43,9 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; /// 登记事件记录服务实现 /// @@ -126,6 +128,7 @@ public class GaoEventRecordServiceImplement extends AbstractEntityService recordList) { + Set usedTempFileIdSet = new HashSet<>(); for (GaoEventRecord record : TimiJava.safeIterable(recordList)) { + TimiException.required(record, "not found record"); + prepareBatchAttachments(record, usedTempFileIdSet); create(record); } } + private void prepareBatchAttachments(GaoEventRecord record, Set usedTempFileIdSet) { + for (Attachment attachment : TimiJava.safeIterable(record.getAttachmentList())) { + if (attachment == null || TimiJava.isEmpty(attachment.getTempFileId()) || usedTempFileIdSet.add(attachment.getTempFileId())) { + continue; + } + Attachment clone = attachmentService.clone(attachment.getTempFileId()); + TimiException.required(clone.getId(), "登记照片临时附件复制失败"); + attachment.setTempFileId(clone.getId()); + } + } + @Transactional(TimiServerDBConfig.ROLLBACKER) @Override public void update(GaoEventRecord record) { @@ -221,6 +238,7 @@ public class GaoEventRecordServiceImplement extends AbstractEntityService attachmentList) { + if (!Boolean.TRUE.equals(event.getRequirePhoto())) { + return; + } + boolean hasPhoto = false; + for (Attachment attachment : TimiJava.safeIterable(attachmentList)) { + if (attachment != null && (attachment.getAttachType() == null || GaoEventRecord.AttachType.PHOTO.name().equalsIgnoreCase(attachment.getAttachType()))) { + hasPhoto = true; + break; + } + } + TimiException.requiredTrue(hasPhoto, "该事件必须上传照片"); + } + private void verifyImmutableRecordFields(GaoEventRecord request, GaoEventRecord dbRecord) { TimiException.requiredTrue(request.getCustomerId() == null || request.getCustomerId().equals(dbRecord.getCustomerId()), "登记记录 customerId 创建后不可修改"); TimiException.requiredTrue(request.getEventId() == null || request.getEventId().equals(dbRecord.getEventId()), "登记记录 eventId 创建后不可修改");