diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalAnswerVideoResVo.java b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalAnswerVideoResVo.java index 59e8c580..9eea9d2d 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalAnswerVideoResVo.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalAnswerVideoResVo.java @@ -3,17 +3,16 @@ package com.supervision.manage.pojo.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.time.temporal.TemporalUnit; import java.util.List; @Data public class MedicalAnswerVideoResVo { - @ApiModelProperty("消息内容") - private String message; + @ApiModelProperty("成功个数") + private int totalCount; - @ApiModelProperty("模板是否正确 true:正确 false:错误") - private boolean templateErrorFlag = true; + @ApiModelProperty("失败个数") + private int failCount; @ApiModelProperty("文件id") private String fileId; diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/UploadQuestionLibraryResVo.java b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/UploadQuestionLibraryResVo.java index 336a981b..180f450f 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/UploadQuestionLibraryResVo.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/UploadQuestionLibraryResVo.java @@ -6,12 +6,13 @@ import lombok.Data; @Data public class UploadQuestionLibraryResVo { - @ApiModelProperty("消息内容") - private String message; + @ApiModelProperty("总数据条数") + private int totalCount; + + @ApiModelProperty("失败数据条数") + private int failCount; @ApiModelProperty("文件id") private String fileId; - @ApiModelProperty("模板是否正确 true:正确 false:错误") - private boolean templateErrorFlag = true; } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java index 186a38e7..bd765285 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java @@ -129,14 +129,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa log.info("uploadQuestionLibrary : 读取文件耗时:{} s" , timer.intervalSecond()); // 校验模板是否正确 - List assertTitle = assertTitle(reader); - if (CollUtil.isNotEmpty(assertTitle)){ - FileResource fileResource = fileManageService.uploadFile(multipartFile,multipartFile.getContentType()); - UploadQuestionLibraryResVo uploadQuestionLibraryResVo = new UploadQuestionLibraryResVo(); - uploadQuestionLibraryResVo.setFileId(fileResource.getId()); - uploadQuestionLibraryResVo.setTemplateErrorFlag(false); - return uploadQuestionLibraryResVo; - } + assertTitle(reader); List uploadQuestionLibraryDTOS = reader.readAll(UploadQuestionLibraryDTO.class); questionExcelDoAction(uploadQuestionLibraryDTOS); @@ -186,23 +179,13 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa * 校验行头 * @param reader */ - private List assertTitle(ExcelReader reader){ - HashSet messages = new HashSet<>(); + private void assertTitle(ExcelReader reader){ List titleList = reader.readRow(0); - if (CollUtil.isEmpty(titleList)){ - messages.add("标题行为空"); - return CollUtil.newArrayList(messages); - } + Assert.isTrue(CollUtil.isEmpty(titleList), "表头格式有误,请重新导入"); for (int i = 0; i < UploadQuestionLibraryDTO.READ_ANSWER_VIDEO_TITLE.size(); i++) { - if (titleList.size() <= i){ - messages.add("标题行长度不匹配"); - return CollUtil.newArrayList(messages); - } - if (!UploadQuestionLibraryDTO.READ_ANSWER_VIDEO_TITLE.get(i).equals(titleList.get(i))){ - messages.add("标题行不匹配"); - } + Assert.isTrue(titleList.size() <= i, "表头格式有误,请重新导入"); + Assert.isTrue(!UploadQuestionLibraryDTO.READ_ANSWER_VIDEO_TITLE.get(i).equals(titleList.get(i)), "表头格式有误,请重新导入"); } - return CollUtil.newArrayList(messages); } @@ -246,8 +229,9 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa String message = StrUtil.format("共导入数据{}条,失败{}条。", uploadQuestionLibraryDTOS.size(), uploadQuestionLibraryDTOS.stream().filter(dto -> CollUtil.isNotEmpty(dto.getErrorCodeEnums())).count()); - uploadQuestionLibraryResVo.setMessage(message); + uploadQuestionLibraryResVo.setTotalCount(uploadQuestionLibraryDTOS.size()); + uploadQuestionLibraryResVo.setFailCount((int) uploadQuestionLibraryDTOS.stream().filter(dto -> CollUtil.isNotEmpty(dto.getErrorCodeEnums())).count()); return uploadQuestionLibraryResVo; diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/OfflineAnswerVideoResource.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/OfflineAnswerVideoResource.java index e4380748..dc5f8ed2 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/OfflineAnswerVideoResource.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/OfflineAnswerVideoResource.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; @@ -20,11 +21,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.InputStream; -import java.util.HashSet; +import java.io.*; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -49,21 +48,15 @@ public class OfflineAnswerVideoResource implements AnswerVideoResourceService { private final CommonDicService commonDicService; @Override - public MedicalAnswerVideoResVo preGenerationMedicalAnswerVideo(InputStream bookStream, String medicalId) throws Exception { + public MedicalAnswerVideoResVo preGenerationMedicalAnswerVideo(InputStream inputStream, String medicalId) throws Exception { TimeInterval timer = DateUtil.timer(); - ExcelReader reader = ExcelUtil.getReader(bookStream); + + ExcelReader reader = ExcelUtil.getReader(inputStream); log.info("generationMedicalAnswerVideo : 读取文件耗时:{} s" , timer.intervalSecond()); // 校验模板是否正确 - List assertTitle = assertTitle(reader); - if (CollUtil.isNotEmpty(assertTitle)){ - FileResource fileResource = fileManageService.uploadFile(bookStream); - MedicalAnswerVideoResVo medicalAnswerVideoResVo = new MedicalAnswerVideoResVo(); - medicalAnswerVideoResVo.setFileId(fileResource.getId()); - medicalAnswerVideoResVo.setTemplateErrorFlag(false); - return medicalAnswerVideoResVo; - } + assertTitle(reader); List medicalRecAnswerExcelDTOS = reader.readAll(MedicalRecAnswerExcelDTO.class); @@ -118,9 +111,8 @@ public class OfflineAnswerVideoResource implements AnswerVideoResourceService { MedicalAnswerVideoResVo medicalAnswerVideoResVo = new MedicalAnswerVideoResVo(); medicalAnswerVideoResVo.setFileId(fileId); - String message = StrUtil.format("共导入数据{}条,失败{}条。",medicalRecAnswerExcelDTOS.size(), - medicalRecAnswerExcelDTOS.stream().filter(dto -> CollUtil.isNotEmpty(dto.getErrorCodeEnums())).count()); - medicalAnswerVideoResVo.setMessage(message); + medicalAnswerVideoResVo.setTotalCount(medicalRecAnswerExcelDTOS.size()); + medicalAnswerVideoResVo.setFailCount((int) medicalRecAnswerExcelDTOS.stream().filter(dto -> CollUtil.isNotEmpty(dto.getErrorCodeEnums())).count()); List medicalRecQaVOList = medicalRecAnswerExcelDTOS.stream().filter(dto -> CollUtil.isEmpty(dto.getErrorCodeEnums())).map(dto -> { MedicalRecQaVO medicalRecQaVO = new MedicalRecQaVO(); @@ -168,8 +160,9 @@ public class OfflineAnswerVideoResource implements AnswerVideoResourceService { public File writeExcel(List medicalRecAnswerExcelDTOS) throws Exception { - List errorList = medicalRecAnswerExcelDTOS.stream() - .filter(dto -> CollUtil.isNotEmpty(dto.getErrorCodeEnums())).collect(Collectors.toList()); + List> errorList = medicalRecAnswerExcelDTOS.stream() + .filter(dto -> CollUtil.isNotEmpty(dto.getErrorCodeEnums())) + .map(MedicalRecAnswerExcelDTO::toExcelMap).collect(Collectors.toList()); File templateFile = fileManageService.downloadFile(errorTemplateResourceId); try (ExcelWriter writer = ExcelUtil.getWriter(templateFile)){ @@ -186,23 +179,13 @@ public class OfflineAnswerVideoResource implements AnswerVideoResourceService { * 校验行头 * @param reader */ - private List assertTitle(ExcelReader reader){ - HashSet messages = new HashSet<>(); + private void assertTitle(ExcelReader reader){ List titleList = reader.readRow(0); - if (CollUtil.isEmpty(titleList)){ - messages.add("标题行为空"); - return CollUtil.newArrayList(messages); - } + Assert.isTrue(CollUtil.isNotEmpty(titleList), "表头格式有误,请重新导入"); for (int i = 0; i < MedicalRecAnswerExcelDTO.READ_ANSWER_VIDEO_TITLE.size(); i++) { - if (titleList.size() <= i){ - messages.add("标题行长度不匹配"); - return CollUtil.newArrayList(messages); - } - if (!MedicalRecAnswerExcelDTO.READ_ANSWER_VIDEO_TITLE.get(i).equals(titleList.get(i))){ - messages.add("标题行不匹配"); - } + Assert.isTrue(titleList.size() > i, "表头格式有误,请重新导入"); + Assert.isTrue(MedicalRecAnswerExcelDTO.READ_ANSWER_VIDEO_TITLE.get(i).equals(titleList.get(i)), "表头格式有误,请重新导入"); } - return CollUtil.newArrayList(messages); }