Browse Source

导出四家医院急救信息接口

master
ma 4 years ago
parent
commit
f0293091c2
  1. 17
      src/main/java/com/ccsens/carbasics/api/ExportController.java
  2. 26
      src/main/java/com/ccsens/carbasics/bean/vo/FirstAidVo.java
  3. 7
      src/main/java/com/ccsens/carbasics/persist/dao/FirstAidDao.java
  4. 79
      src/main/java/com/ccsens/carbasics/service/ExportService.java
  5. 12
      src/main/java/com/ccsens/carbasics/service/IExportService.java
  6. 4
      src/main/resources/application.yml
  7. 32
      src/main/resources/mapper_dao/FirstAidDao.xml

17
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());
}
}

26
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;
}
}

7
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<FirstAidVo.NeedHospital> queryNeedHospital(@Param("startTime") Long startTime);
}

79
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<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
//第一行list
List<PoiUtil.PoiUtilCell> 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<FirstAidVo.NeedHospital> hospitalData = firstAidDao.queryNeedHospital(time);
if (CollectionUtil.isNotEmpty(hospitalData)) {
for (FirstAidVo.NeedHospital hospitalDatum : hospitalData) {
List<PoiUtil.PoiUtilCell> 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;
}
}

12
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;
}

4
src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: test
include: common, util-test
active: prod
include: common, util-prod

32
src/main/resources/mapper_dao/FirstAidDao.xml

@ -228,4 +228,36 @@
created_at DESC
LIMIT 1
</select>
<select id="queryNeedHospital" resultType="com.ccsens.carbasics.bean.vo.FirstAidVo$NeedHospital">
SELECT
o.`name` AS hospitalName,
f.created_at,
f.id,
f.value_type,
f.`name`,
f.gender,
f.age,
f.idcard,
f.save_type,
f.data_status
FROM
t_organization AS o
LEFT JOIN t_qcp_first_aid AS f ON o.id = f.hospital_id
LEFT JOIN t_organization_project AS op ON o.id = op.organization_id
WHERE
o.rec_status = 0
AND o.`name` IN (
'山西医科大学第一医院',
'太原钢铁(集团)有限公司总医院',
'运城市盐湖区人民医院',
'晋中市榆次区人民医院'
)
AND op.rec_status = 0
AND f.rec_status = 0
<if test="startTime != null and startTime != ''">
AND f.created_at > #{startTime}
</if>
ORDER BY f.created_at DESC
</select>
</mapper>

Loading…
Cancel
Save