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());
}
}
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 + ", ");
}
}
}
项目需要在app中嵌套了一个网页,前端更新后没显示出效果,还是加载的缓存信息
每次网页加载不同的地址会重新获取的这个机制,在网页地址后面拼接一个随机数,使得每次进入都是不同的地址,但是又不改变链接地址的指向,
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 多个流则用分号隔开
使用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);
}