From c2a9635771370e7ec908db7e11a5cdd1b5f7bbf0 Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期一, 14 七月 2025 17:23:29 +0800 Subject: [PATCH] 修改删除提问词,用户添加和导入设置创建时间 --- src/main/java/com/linghu/controller/KeywordController.java | 86 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 82 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/linghu/controller/KeywordController.java b/src/main/java/com/linghu/controller/KeywordController.java index f5443cf..751c723 100644 --- a/src/main/java/com/linghu/controller/KeywordController.java +++ b/src/main/java/com/linghu/controller/KeywordController.java @@ -36,6 +36,7 @@ import org.apache.poi.ss.usermodel.DataValidationHelper; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.util.CellRangeAddressList; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -49,6 +50,7 @@ import javax.xml.bind.ValidationException; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.time.LocalDate; import java.time.LocalDateTime; import java.io.IOException; import java.time.format.DateTimeFormatter; @@ -284,8 +286,8 @@ dto.getPlatformId()); } //查询所有平台名称 - List<String> platfromNames = result.stream() - .map(ResultListVO::getPlatform_name) + List<String> platfromNames = platformService.list().stream() + .map(Platform::getPlatform_name) .filter(Objects::nonNull) .collect(Collectors.toList()); // 3. 导出Excel @@ -293,6 +295,68 @@ // 3. 使用自定义的SheetWriteHandler来添加数据验证 ExcelWriter excelWriter = EasyExcel.write(out, ResultListVO.class) + /* .registerWriteHandler(new SheetWriteHandler() { + @Override + public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, + WriteSheetHolder writeSheetHolder) { + Sheet sheet = writeSheetHolder.getSheet(); + + // 添加数据验证(下拉框) + DataValidationHelper helper = sheet.getDataValidationHelper(); + CellRangeAddressList rangeList = new CellRangeAddressList( + 1, 65535, 0, 0); // D列(第4列) + + DataValidationConstraint constraint = helper.createExplicitListConstraint( + platfromNames.toArray(new String[0])); + DataValidation validation = helper.createValidation(constraint, rangeList); + sheet.addValidationData(validation); + } + })*/ + .build(); + + + WriteSheet writeSheet = EasyExcel.writerSheet("平台分布占比").build(); + excelWriter.write(result, writeSheet); + excelWriter.finish(); + + // 4. 构建响应 + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=references_export.xlsx") + .contentType(MediaType.APPLICATION_OCTET_STREAM) + .body(out.toByteArray()); + } + + /** + * 根据平台查看 0-当前轮 1-代表前1轮 2-代表前2轮 + */ + @PostMapping("/exportGetResultByPlatformId2") + @ApiOperation(value = "导出:根据平台查看2") + public ResponseEntity<byte[]> exportGetResultByPlatformId2(@RequestBody ExportGetResultByPlatformIdDTO dto) { + Keyword keyword = keywordService.getById(dto.getKeywordId()); + List<ResultListVO> result=new ArrayList<>(); + if (dto.getIsNow()==0){ + result = keywordMapper.getResultByPlatformId(dto.getKeywordId(), dto.getQuestionId(), keyword.getNum(), + dto.getPlatformId()); + }else { + result = keywordMapper.getResultByPlatformId(dto.getKeywordId(), dto.getQuestionId(), 1, + dto.getPlatformId()); + } + List<ResultList2VO> result2=new ArrayList<>(); + for (ResultListVO vo : result) { + ResultList2VO vo2 = new ResultList2VO(); + BeanUtils.copyProperties(vo, vo2); // 复制同名同类型的字段 + result2.add(vo2); + } + //查询所有平台名称 + List<String> platfromNames = platformService.list().stream() + .map(Platform::getPlatform_name) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + // 3. 导出Excel + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + // 3. 使用自定义的SheetWriteHandler来添加数据验证 + ExcelWriter excelWriter = EasyExcel.write(out, ResultList2VO.class) .registerWriteHandler(new SheetWriteHandler() { @Override public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, @@ -314,7 +378,7 @@ WriteSheet writeSheet = EasyExcel.writerSheet("平台分布占比").build(); - excelWriter.write(result, writeSheet); + excelWriter.write(result2, writeSheet); excelWriter.finish(); // 4. 构建响应 @@ -343,7 +407,21 @@ @ApiOperation("下载投喂模板") public ResponseEntity<byte[]> downTemplate() throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); - EasyExcel.write(out, ReferenceExcel.class).sheet("投喂模板").doWrite(new ArrayList<>()); + // 创建示例数据(第一行) + ReferenceExcel exampleData = new ReferenceExcel(); + exampleData.setPlatform_name("示例平台"); + exampleData.setTitle("示例标题"); + exampleData.setCreate_time(LocalDate.now()); // 设置当前日期作为示例 + exampleData.setUrl("https://example.com"); + + List<ReferenceExcel> excelList=new ArrayList<>(); + excelList.add(exampleData); + + ExcelWriter excelWriter = EasyExcel.write(out, ReferenceExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("平台分布占比").build(); + excelWriter.write(excelList, writeSheet); + excelWriter.finish(); + return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=platform_template.xlsx") -- Gitblit v1.7.1