package cn.besteam.modules.medical.controller; import cn.besteam.common.api.vo.Result; import cn.besteam.common.aspect.annotation.AutoLog; import cn.besteam.modules.medical.dto.*; import cn.besteam.modules.medical.service.IMwDisinfectRecordService; import cn.besteam.modules.medical.vo.MwDisinfectRecordVo; import cn.besteam.modules.medical.vo.MwDisinfectRecordExportVO; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * @Title: Controller * @Description: 消毒记录 * @author: besteam * @date: 2023-05-16 * @version: V1.0 */ @RestController @RequestMapping("/medical/mwDisinfectRecord") @Slf4j @Api(description = "消毒记录") public class MwDisinfectRecordController { @Autowired private IMwDisinfectRecordService mwDisinfectRecordService; @GetMapping("/getDisinfectRecordList") @ApiOperation("消毒记录-列表") public Result> getWasteWaterList(MwDisinfectRecordSeacherDto dto, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { IPage pageList = mwDisinfectRecordService.queryPageList(pageNo, pageSize,dto); return Result.ok(pageList); } /*=====消毒记录导出--开始=======*/ private static Map headerMapDisinfectRecord = new LinkedHashMap<>(); static { headerMapDisinfectRecord.put("hospitalName", "医院名称"); headerMapDisinfectRecord.put("disinfectTime", "消毒时间"); headerMapDisinfectRecord.put("disinfectAddress", "消毒地点"); headerMapDisinfectRecord.put("deviceType", "设备类型"); headerMapDisinfectRecord.put("disinfectType", "消毒方式"); headerMapDisinfectRecord.put("disinfectContent", "消毒内容"); headerMapDisinfectRecord.put("disinfectUserName", "消毒人员"); } @GetMapping(value = "/exportDisinfectRecord") @AutoLog(value = "消毒记录导出") @ApiOperation(value = "【0729迭代】消毒记录导出", notes = "消毒记录导出", produces = "application/json") public void exportDisinfectRecord(HttpServletResponse response, MwDisinfectRecordSeacherDto dto) throws IOException { List list = mwDisinfectRecordService.queryExportList(dto); List voList = new ArrayList<>(); for (MwDisinfectRecordVo record : list) { MwDisinfectRecordExportVO vo = new MwDisinfectRecordExportVO(); BeanUtils.copyProperties(record, vo); voList.add(vo); } ExcelWriter writer = ExcelUtil.getWriter(true); writer.renameSheet("消毒记录"); // 设置列宽 writer.setColumnWidth(0, 30); writer.setColumnWidth(1, 25); writer.setColumnWidth(2, 25); writer.setColumnWidth(3, 25); writer.setColumnWidth(4, 25); writer.setColumnWidth(5, 50); writer.setColumnWidth(6, 25); // 设置表头别名 writer.setHeaderAlias(headerMapDisinfectRecord); writer.write(voList); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("消毒记录", "UTF-8") + ".xls"); writer.flush(response.getOutputStream()); writer.close(); } /*=====消毒记录导出--结尾=======*/ }