diff --git a/src/main/java/com/ccsens/carbasics/api/ExportController.java b/src/main/java/com/ccsens/carbasics/api/ExportController.java index d044aa9..f56dddf 100644 --- a/src/main/java/com/ccsens/carbasics/api/ExportController.java +++ b/src/main/java/com/ccsens/carbasics/api/ExportController.java @@ -1,5 +1,7 @@ package com.ccsens.carbasics.api; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.CharsetUtil; import com.ccsens.carbasics.bean.dto.ExportDto; import com.ccsens.carbasics.bean.dto.FirstAidDto; import com.ccsens.carbasics.bean.vo.ExportVo; @@ -12,6 +14,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -19,6 +22,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.Date; @Api(tags = "导出相关" , description = "") @RestController @@ -39,4 +45,15 @@ public class ExportController { return JsonResponse.newInstance().ok(pdfInfo); } + + @ApiOperation(value = "导出最新急救信息(自用)", notes = "") + @RequestMapping(value = "/exportFirstAid", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + public void exportFirstAid(String startTime, HttpServletResponse response) throws Exception{ + log.info("导出最新急救信息(自用):{}",startTime); + Workbook workbook = exportService.exportFirstAid(startTime); + log.info("导出最新急救信息(自用)结束:{}",workbook); + String fileName = "医院急救信息汇总表"+ DateUtil.format(new Date(), "yyyyMMddHHmmss") +".xlsx"; + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, CharsetUtil.UTF_8)); + workbook.write(response.getOutputStream()); + } } diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/FirstAidVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/FirstAidVo.java index f17ce96..f1dd660 100644 --- a/src/main/java/com/ccsens/carbasics/bean/vo/FirstAidVo.java +++ b/src/main/java/com/ccsens/carbasics/bean/vo/FirstAidVo.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * @author AUSU @@ -31,4 +33,28 @@ public class FirstAidVo { } + @Data + @ApiModel("导出急救信息-自用") + public static class NeedHospital { + @ApiModelProperty("医院名称") + private String hospitalName; + @ApiModelProperty("创建时间") + private Date createdAt; + @ApiModelProperty("急救项目ID") + private Long id; + @ApiModelProperty("是否是演示模式(0正式 1演示)") + private Byte valueType; + @ApiModelProperty("患者姓名") + private String name; + @ApiModelProperty("患者性别") + private Byte gender; + @ApiModelProperty("患者年龄") + private Integer age; + @ApiModelProperty("患者身份证号") + private String idcard; + @ApiModelProperty("信息来源(0手动添加 1平车自动添加)") + private Byte saveType; + @ApiModelProperty("病例状态") + private Byte dataStatus; + } } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/FirstAidDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/FirstAidDao.java index 43bea29..338db45 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/FirstAidDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/FirstAidDao.java @@ -3,6 +3,7 @@ package com.ccsens.carbasics.persist.dao; import com.ccsens.carbasics.bean.dto.PatientDto; import com.ccsens.carbasics.bean.po.FirstAid; import com.ccsens.carbasics.bean.po.Organization; +import com.ccsens.carbasics.bean.vo.FirstAidVo; import com.ccsens.carbasics.bean.vo.PatientVo; import com.ccsens.carbasics.persist.mapper.FirstAidMapper; import org.apache.ibatis.annotations.Param; @@ -70,4 +71,10 @@ public interface FirstAidDao extends FirstAidMapper { * @return 患者急救信息 */ FirstAid queryByOidAndIdcard(@Param("oid") Long organizationId,@Param("idcard") String idcard); + + /** + * 查询四家医院的病例列表 + * @return 四家医院的病例列表 + */ + List queryNeedHospital(@Param("startTime") Long startTime); } diff --git a/src/main/java/com/ccsens/carbasics/service/ExportService.java b/src/main/java/com/ccsens/carbasics/service/ExportService.java index f00e4cb..7dedae7 100644 --- a/src/main/java/com/ccsens/carbasics/service/ExportService.java +++ b/src/main/java/com/ccsens/carbasics/service/ExportService.java @@ -15,21 +15,24 @@ import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.dao.FirstAidDao; import com.ccsens.carbasics.persist.dao.FirstAidRecordDao; import com.ccsens.carbasics.util.Constant; +import com.ccsens.util.DesensitizedUtils; +import com.ccsens.util.PoiUtil; import com.ccsens.util.PropUtil; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.pdf.*; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; +import java.io.*; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; @Slf4j @@ -250,4 +253,72 @@ public class ExportService implements IExportService{ timeSort.add(String.valueOf(minute)); return timeSort; } + + + + + + + @Override + public Workbook exportFirstAid(String startTime) throws IOException, ParseException { + Workbook workbook = new XSSFWorkbook(); + //空白格 + PoiUtil.PoiUtilCell blank = new PoiUtil.PoiUtilCell(); + //excel + List> list = new ArrayList<>(); + //第一行list + List firstCells = new ArrayList<>(); + firstCells.add(new PoiUtil.PoiUtilCell("医院名称")); + firstCells.add(new PoiUtil.PoiUtilCell("创建时间")); + firstCells.add(new PoiUtil.PoiUtilCell("急救项目ID")); + firstCells.add(new PoiUtil.PoiUtilCell("是否是演示模式(0正式 1演示)")); + firstCells.add(new PoiUtil.PoiUtilCell("患者姓名")); + firstCells.add(new PoiUtil.PoiUtilCell("患者性别")); + firstCells.add(new PoiUtil.PoiUtilCell("患者年龄")); + firstCells.add(new PoiUtil.PoiUtilCell("患者身份证号")); + firstCells.add(new PoiUtil.PoiUtilCell("信息来源(0手动添加 1平车自动添加)")); + firstCells.add(new PoiUtil.PoiUtilCell("病例状态(0:创建 1:急救审核通过 2:急救审核拒绝 3出院审核通过 4出院审核拒绝 5:申请修改 6:申请拒绝')")); + list.add(firstCells); + //查询数据 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + Date parse = simpleDateFormat.parse(startTime); + long time = parse.getTime(); + + List hospitalData = firstAidDao.queryNeedHospital(time); + if (CollectionUtil.isNotEmpty(hospitalData)) { + for (FirstAidVo.NeedHospital hospitalDatum : hospitalData) { + List data = new ArrayList<>(); + data.add(new PoiUtil.PoiUtilCell(hospitalDatum.getHospitalName())); + data.add(new PoiUtil.PoiUtilCell(simpleDateFormat.format(hospitalDatum.getCreatedAt()))); + data.add(new PoiUtil.PoiUtilCell(hospitalDatum.getId().toString())); + data.add(new PoiUtil.PoiUtilCell(hospitalDatum.getValueType().toString())); + data.add(new PoiUtil.PoiUtilCell(StrUtil.isNotBlank(hospitalDatum.getName())?hospitalDatum.getName():"未填写")); + data.add(new PoiUtil.PoiUtilCell(ObjectUtil.isNull(hospitalDatum.getGender())?"未填写":hospitalDatum.getGender().toString())); + data.add(new PoiUtil.PoiUtilCell(ObjectUtil.isNull(hospitalDatum.getAge())?"未填写":hospitalDatum.getAge().toString())); + data.add(new PoiUtil.PoiUtilCell(DesensitizedUtils.idCardNum(hospitalDatum.getIdcard()))); + data.add(new PoiUtil.PoiUtilCell(hospitalDatum.getSaveType().toString())); + data.add(new PoiUtil.PoiUtilCell(hospitalDatum.getDataStatus().toString())); + list.add(data); + } + } + + + Workbook wbs = PoiUtil.exportWB("Sheet1", list, workbook); + //生成导出文件 +// String fileName = DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; +// String path = PropUtil.path + fileName; +// File tmpFile = new File(path); +// if (!tmpFile.getParentFile().exists()) { +// tmpFile.getParentFile().mkdirs(); +// } +// //将workBook写入文件 +// OutputStream stream = new FileOutputStream(tmpFile); +// wbs.write(stream); +// stream.close(); +// //返回文件路径 +// ExportVo.PdfInfo excelUrl = new ExportVo.PdfInfo(); +// String url = PropUtil.imgDomain+fileName; +// excelUrl.setPdfUrl(url); + return wbs; + } } diff --git a/src/main/java/com/ccsens/carbasics/service/IExportService.java b/src/main/java/com/ccsens/carbasics/service/IExportService.java index 4cc8959..07d0081 100644 --- a/src/main/java/com/ccsens/carbasics/service/IExportService.java +++ b/src/main/java/com/ccsens/carbasics/service/IExportService.java @@ -3,6 +3,11 @@ package com.ccsens.carbasics.service; import com.ccsens.carbasics.bean.dto.ExportDto; import com.ccsens.carbasics.bean.vo.ExportVo; import com.ccsens.carbasics.bean.vo.FirstAidVo; +import org.apache.poi.ss.usermodel.Workbook; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.text.ParseException; public interface IExportService { @@ -13,4 +18,11 @@ public interface IExportService { * @return pdf地址 */ ExportVo.PdfInfo exportApoplexyPdf(ExportDto.ExportPdf param, Long userId); + + /** + * 导出最新急救信息(自用) + * @param startTime 用户id + * @return excel + */ + Workbook exportFirstAid(String startTime) throws IOException, ParseException; } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c3b11fb..5abf242 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: common, util-test + active: prod + include: common, util-prod diff --git a/src/main/resources/mapper_dao/FirstAidDao.xml b/src/main/resources/mapper_dao/FirstAidDao.xml index 53ef94f..5b5eddc 100644 --- a/src/main/resources/mapper_dao/FirstAidDao.xml +++ b/src/main/resources/mapper_dao/FirstAidDao.xml @@ -228,4 +228,36 @@ created_at DESC LIMIT 1 + +