增加导出Excel

This commit is contained in:
Euni4U 2024-12-10 14:09:50 +08:00
parent 96c127133d
commit 4a867b4c87
2 changed files with 69 additions and 0 deletions

View File

@ -33,6 +33,7 @@ import cn.iocoder.yudao.module.tblist.service.ecganalysisparas.EcganalysisparasS
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.net.URLEncoder;
@Tag(name = "管理后台 - 心电分析数据") @Tag(name = "管理后台 - 心电分析数据")
@RestController @RestController
@ -129,6 +130,7 @@ public class EcganalysisparasController {
ExcelUtils.write(response, "心电分析数据.xls", "数据", EcganalysisparasRespVO.class, ExcelUtils.write(response, "心电分析数据.xls", "数据", EcganalysisparasRespVO.class,
BeanUtils.toBean(list, EcganalysisparasRespVO.class)); BeanUtils.toBean(list, EcganalysisparasRespVO.class));
} }
@GetMapping("/getexamIDdata") @GetMapping("/getexamIDdata")
@Operation(summary = "根据examId获得心电数据") @Operation(summary = "根据examId获得心电数据")
@Parameter(name = "examID", description = "检查编号", required = true, example = "1024") @Parameter(name = "examID", description = "检查编号", required = true, example = "1024")
@ -149,4 +151,40 @@ public class EcganalysisparasController {
return success(doList); return success(doList);
} }
@GetMapping("/export-workload-excel")
@Operation(summary = "导出医生工作量统计Excel")
@PreAuthorize("@ss.hasPermission('tblist:ecganalysisparas:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportWorkloadExcel(@RequestParam("startTime") String startTime,
@RequestParam("endTime") String endTime,
HttpServletResponse response) throws IOException {
// 设置响应头
// response.setContentType("application/vnd.ms-excel");
// response.setCharacterEncoding("utf-8");
// String fileName = URLEncoder.encode("医生工作量统计", "UTF-8").replaceAll("\\+", "%20");
// response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xls");
QueryWrapper<EcganalysisparasDO> queryWrapper = new QueryWrapper<>();
queryWrapper.select("doctorId, doctorName, doctorDiagTime, COUNT(*) as count")
.ge("doctorDiagTime", startTime)
.le("doctorDiagTime", endTime)
.groupBy("doctorId, doctorName, doctorDiagTime")
.orderByDesc("doctorDiagTime");
List<Map<String, Object>> resultList = ecganalysisparasMapper.selectMaps(queryWrapper);
List<EcgWorkloadVO> workloadList = new ArrayList<>();
for (Map<String, Object> result : resultList) {
EcgWorkloadVO workload = new EcgWorkloadVO();
//workload.setDoctorId((Integer) result.get("doctorId"));
workload.setDoctorName(result.get("doctorName").toString());
workload.setDoctorDiagTime(result.get("doctorDiagTime").toString().replace('T',' '));
workload.setCount((Long) result.get("count"));
workloadList.add(workload);
}
// 导出Excel
ExcelUtils.write(response, "医生工作量统计.xls", "数据", EcgWorkloadVO.class, BeanUtils.toBean(workloadList, EcgWorkloadVO.class));
}
} }

View File

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.tblist.controller.admin.ecganalysisparas.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import com.alibaba.excel.annotation.ExcelProperty;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 医生工作量统计 VO")
@Data
@ExcelIgnoreUnannotated
public class EcgWorkloadVO {
@Schema(description = "医生诊断的时间")
@ExcelProperty("诊断时间")
private String doctorDiagTime;
@Schema(description = "诊断医生的姓名", example = "赵六")
@ExcelProperty("医生姓名")
private String doctorName;
// @Schema(description = "诊断医生的医生id", example = "29431")
// @ExcelProperty("医生ID")
// private Integer doctorId;
@Schema(description = "诊断数量")
@ExcelProperty("诊断数量")
private Long count;
}