编辑
2023-06-26
实用工具
00

代码

java
@ApiOperation(value = "导出编目质控历史") @PostMapping("/exportQcCatalogRecord") public void exportQcCatalogRecordList(HttpServletResponse response, @RequestBody QcCatalogRecordRequest request){ request.setPage(-1); request.setRows(-1); IPage<QcCatalogV> ipage=iRecCatalogQcService.getQcCatalogRecordList(request); List<QcCatalogV> list=ipage.getRecords(); try { response.setHeader("content-Type", "application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("编目质控历史" + ".xls", "utf-8")); ExportParams exportParams=new ExportParams(); // 生成workbook 并导出 Workbook workbook = ExcelExportUtil.exportBigExcel(exportParams, QcCatalogV.class, list); ExcelExportUtil.closeExportBigExcel(); workbook.write(response.getOutputStream()); workbook.close(); } catch (IOException e) { e.printStackTrace(); throw new BusinessException(ResultCodeEnum.ERR_0x1000.getCode(),e.getMessage()); } }
编辑
2023-06-21
学习记录
00

介绍

keySet() 方法返回映射中所有 key 组成的 Set 视图。

keySet() 方法的语法为:

hashmap.keySet()

返回映射中所有 key 组成的 Set 视图。

java
import java.util.HashMap; class Main { public static void main(String[] args) { // 创建一个 HashMap HashMap<Integer, String> sites = new HashMap<>(); // 往 HashMap 添加一些元素 sites.put(1, "Google"); sites.put(2, "Runoob"); sites.put(3, "Taobao"); System.out.println("sites HashMap: " + sites); // 返回所有 key 组成的 set 集合视图 System.out.println("Keys: " + sites.keySet()); // keySet() 返回所有 key 组成的 set 视图 // for-each loop 在该视图中访问每一个 key for(int key: sites.keySet()) { // 输出每个 key System.out.print(key + ", "); } } }
编辑
2023-06-16
遇到的问题
00

原因

项目需要在app中嵌套了一个网页,前端更新后没显示出效果,还是加载的缓存信息

分析

每次网页加载不同的地址会重新获取的这个机制,在网页地址后面拼接一个随机数,使得每次进入都是不同的地址,但是又不改变链接地址的指向,

编辑
2023-06-09
学习记录
00

简介

ry-with-resources自JDK7引入,在JDK9中进行了改进,使得用户可以更加方便、简洁的使用try-with-resources。

样例

java
InputStream is = null; OutputStream os = null; try { //... } catch (IOException e) { //... }finally{ try { if(os!=null){ os.close(); } if(is!=null){ is.close(); } } catch (IOException e2) { //... } }

使用try-with-reason 多个流则用分号隔开

编辑
2023-06-09
实用工具
00

前提

使用poi实现,导入excel并且识别,返回查询结果

代码

java
@PostMapping("/paperBorrowTempletImport") public Result<IPage<RecPaperBorrowRegisterResponse>>paperBorrowTempletImport(@RequestPart("file") MultipartFile file) { List<PaperBorrowTempletSearchRequest> domainList = new ArrayList<>(); try (InputStream inpStream = file.getInputStream()){ List<List<Object>> objlist = new ArrayList<>(); // 创建Excel工作薄 Workbook workbook = getWorkBook(inpStream); if (null == workbook) { throw new Exception("Excel工作薄为空!"); } // 遍历Excel中的所有sheet int rowNull = 0; for (Sheet sheet : workbook) { // 取sheet if (sheet == null) { continue; } // 遍历当前sheet中的所有行 for (Row row : sheet) { if (row == null) { continue; } // 验证是否本业务数据模板 if (row.getRowNum() == 0) { if (!"姓名".equals(getValue(row.getCell(0))) || !"工号".equals(getValue(row.getCell(1)))) { throw new BusinessException(ResultCodeEnum.ERR_0x1000.getCode(),"非本业务数据!"); } else { continue; } } // 连续两行为空行,则跳出 if ("".equals(getValue(row.getCell(0)).toString())) { rowNull++; if (rowNull == 2) { break; } else { continue; } } rowNull = 0; // 遍历所有列 List<Object> li = new ArrayList<>(); for (Cell cell : row) { li.add(getValue(cell)); } objlist.add(li); } } // 将字符数组转为对象 for (List<Object> obj : objlist) { if (ObjectUtils.isEmpty(obj)) { break; } PaperBorrowTempletSearchRequest domain = new PaperBorrowTempletSearchRequest(); domain.setInpNo(obj.get(0).toString()); domain.setVisitId(obj.get(1).toString()); domainList.add(domain); } // 根据导入的住院号获取标注患者信息 if (CollectionUtil.isNotEmpty(domainList)) { // 去除重复数据 domainList.stream().distinct(); } } catch (Exception e) { throw new BusinessException(ResultCodeEnum.ERR_0x1000.getCode(),e.getMessage()); } RecPaperBorrowRegisterRequest request=new RecPaperBorrowRegisterRequest(); request.setRows(-1); request.setPage(-1); request.setPaperBorrowTempletSearchRequestList(domainList); IPage<RecPaperBorrowRegisterResponse> iPage = iRecPaperBorrowService.getRecPaperBorrowRegisterList(request); return Result.success(iPage); }