/**
* 导出异常数据
* @param response
* @param orgCode 机构编码
* @param upload_no 上传批次
* @throws Exception
*/
@RequestMapping("/exportSettleAbnormalData")
public void exportSettleAbnormalData(HttpServletResponse response,String orgCode,String upload_no,String if_upload,String area) throws Exception{
QueryWrapper qw = new QueryWrapper<SettleAbnormal>();
qw.eq("upload_no",upload_no);
SysUser sysUser = sysUserService.getUser();
if("1".equals(sysUser.getUser_type())){//行政管理
if(!StrUtil.hasEmpty(orgCode)){
qw.eq("org_code",orgCode);
}
}else if("2".equals(sysUser.getUser_type()) || "3".equals(sysUser.getUser_type())){
qw.eq("org_code",sysUser.getOrg_code());
}
if(!StrUtil.hasEmpty(if_upload)){
qw.eq("if_upload",if_upload);
}
if(!StrUtil.hasEmpty(area)){
qw.eq("area",area);
}
List<SettleAbnormal> details = settleAbnormalService.list(qw);
// 通过工具类创建writer,默认创建xls格式
BigExcelWriter writer = (BigExcelWriter) ExcelUtil.getBigWriter();
writer.addHeaderAlias("rid", "RID");
writer.addHeaderAlias("org_code", "机构编码");
writer.addHeaderAlias("org_name", "机构名称");
writer.addHeaderAlias("area", "行政区");
writer.addHeaderAlias("carno", "身份证号");
writer.addHeaderAlias("name", "人员姓名");
writer.addHeaderAlias("settle_time", "费用发生时间");
writer.addHeaderAlias("settle_type", "结算类别");
writer.addHeaderAlias("med_type", "医疗类别");
writer.addHeaderAlias("catalogue_type", "目录大类");
writer.addHeaderAlias("catalogue_code", "目录编码");
writer.addHeaderAlias("catalogue_code_new", "修改后编码");
writer.addHeaderAlias("reason_one", "违规原因1");
writer.addHeaderAlias("reason_two", "违规原因2");
writer.addHeaderAlias("reason_three", "违规原因3");
writer.addHeaderAlias("reason_four", "违规原因4");
writer.addHeaderAlias("reason_five", "申诉原因");
//只导出定义字段
writer.setOnlyAlias(true) ;
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(details, true);
//out为OutputStream,需要写出到的目标流
//response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition", "attachment;filename=test.xls");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
// 关闭writer,释放内存
writer.close();
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
js请求部分
export function exportSettleAbnormalData(data) {
return request({
url: '/settleAbnormal/exportSettleAbnormalData',
method: 'post',
responseType: "blob",
headers: {
'Content-Type': 'application/x-download'
},
params:data,
})
}
this.$baseConfirm('你确定要导出当前信息吗', null, async () => {
this.listLoading = true
await exportSettleAbnormalData(this.queryForm).then((res) => {
let fileName = "徐州异常数据导出.xlsx";
let objectUrl = URL.createObjectURL(new Blob([res.data]))
const link = document.createElement('a')
link.download = decodeURI(fileName)
link.href = objectUrl
link.click()
this.listLoading = false;
this.$baseMessage("导出成功!", 'success')
})
})