From f091a26b18e8d79a0ee7bab176c739bb0e7ce139 Mon Sep 17 00:00:00 2001 From: dougang <78125310@kidgrow.com> Date: Fri, 20 Nov 2020 16:11:47 +0800 Subject: [PATCH] C端--导出医院数据 --- kidgrow-business/kidgrow-opration-center/pom.xml | 5 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java | 24 +++- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java | 68 +++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java | 18 +++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html | 108 +++++++++++++++++++++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html | 17 +++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java | 16 +++ 7 files changed, 251 insertions(+), 5 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java new file mode 100644 index 0000000..75b3441 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java @@ -0,0 +1,68 @@ +package com.kidgrow.oprationcenter.model; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @Description: <br> + * @Project: <br> + * @CreateDate: Created in 2020/11/20 09:56 <br> + * @Author: <a href="78125310@kidgrow.com">dougang</a> + */ +@Data +public class ScreeningHospitalDataExcel implements Serializable { + + private static final long serialVersionUID = -5886012896705137070L; + + @Excel(name = "机构编码", height = 20, width = 30, isImportField = "true_st") + private String organizationNo; + + @Excel(name = "机构名称", height = 20, width = 30, isImportField = "true_st") + private String organizationName; + + @Excel(name = "儿童ID", height = 20, width = 30, isImportField = "true_st") + private String childId; + + @Excel(name = "儿童名称", height = 20, width = 30, isImportField = "true_st") + private String childName; + + @Excel(name = "性别", replace = { "男_0", "女_1" }, isImportField = "true_st") + private String childSex; + + @Excel(name = "出生日期", isImportField = "true_st", width = 20) + private String childBirthday; + + @Excel(name = "联系方式", height = 20, width = 30, isImportField = "true_st") + private String phoneNum; + + @Excel(name = "年龄", height = 20, width = 30, isImportField = "true_st") + private String age; + + @Excel(name = "身高百分位", height = 20, width = 30, isImportField = "true_st") + private String heightPer; + + @Excel(name = "体重", height = 20, width = 30, isImportField = "true_st") + private String weight; + + @Excel(name = "体重状态", height = 20, width = 30, isImportField = "true_st") + private String fatState; + + @Excel(name = "bmi", height = 20, width = 30, isImportField = "true_st") + private String bmi; + + @Excel(name = "诊断时间", isImportField = "true_st", width = 20) + private String diagnoseTime; + + @Excel(name = "靶身高", height = 20, width = 30, isImportField = "true_st") + private String targetHeight; + + @Excel(name = "预测身高", height = 20, width = 30, isImportField = "true_st") + private String foreastHeight; + + @Excel(name = "预测身高百分位", height = 20, width = 30, isImportField = "true_st") + private String foreastHeightPer; +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java index 2dcd39a..9396aad 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java @@ -4,20 +4,24 @@ import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.ISuperService; import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; +import java.util.List; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @version 1.0 * @Description: 筛查医院信息表-未完待续<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-01 09:37:05 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> - * @version 1.0 */ public interface IHospitalScreeningService extends ISuperService<HospitalScreening> { /** * 列表 + * * @param params * @return */ @@ -25,14 +29,16 @@ /** - * 根据HospitalScreening对象当做查询条件进行查询 - * @param hospitalScreening - * @return HospitalScreening对象 - */ + * 根据HospitalScreening对象当做查询条件进行查询 + * + * @param hospitalScreening + * @return HospitalScreening对象 + */ HospitalScreening findByObject(HospitalScreening hospitalScreening); /** * 状态变更 + * * @param params * @return */ @@ -40,10 +46,18 @@ /** * 根据医院名称模糊查询医院数据列表 + * * @param hospitalName * @return */ ResultBody<HospitalScreening> findByName(String hospitalName); + /** + * 导出医院数据 + * @param param 参数 + * @return + */ + List<ScreeningHospitalDataExcel> export(Map<String, Object> param); + } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java index 79d5fbe..ac8150b 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java @@ -1,14 +1,18 @@ package com.kidgrow.oprationcenter.service.impl; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.oprationcenter.mapper.HospitalScreeningMapper; import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; import com.kidgrow.oprationcenter.service.IHospitalScreeningService; +import com.kidgrow.report.feign.ReportService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -25,6 +29,10 @@ @Slf4j @Service public class HospitalScreeningServiceImpl extends SuperServiceImpl<HospitalScreeningMapper, HospitalScreening> implements IHospitalScreeningService { + + @Autowired + private ReportService reportService; + /** * 列表 * @param params @@ -91,4 +99,14 @@ public ResultBody<HospitalScreening> findByName(String hospitalName) { return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功"); } + + @Override + public List<ScreeningHospitalDataExcel> export(Map<String, Object> param) { + List<ScreeningHospitalDataExcel> list = null; + ResultBody resultBody = reportService.exportData(param); + if(resultBody.getCode() == 0 && resultBody.getData() != null){ + list = JSONArray.parseArray(JSONArray.toJSONString(resultBody.getData()), ScreeningHospitalDataExcel.class); + } + return list; + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java index 79aa3f8..c3c48c5 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java @@ -3,19 +3,24 @@ import com.kidgrow.common.controller.BaseController; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; +import com.kidgrow.common.utils.ExcelUtil; import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; import com.kidgrow.oprationcenter.service.IHospitalScreeningService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -147,4 +152,15 @@ return ResultBody.ok().data(null).msg(""); } } + + @ApiOperation(value = "导出") + @PostMapping("/export") + public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws IOException { + List<ScreeningHospitalDataExcel> list = hospitalScreeningService.export(params); + //导出操作 + if(list != null && list.size() > 0) { + String name = MapUtils.getString(params,"hospitalName"); + ExcelUtil.exportExcel(list, null, name, ScreeningHospitalDataExcel.class, name, response); + } + } } diff --git a/kidgrow-business/kidgrow-opration-center/pom.xml b/kidgrow-business/kidgrow-opration-center/pom.xml index 9fb3c1b..adc2dc1 100644 --- a/kidgrow-business/kidgrow-opration-center/pom.xml +++ b/kidgrow-business/kidgrow-opration-center/pom.xml @@ -52,5 +52,10 @@ <artifactId>kidgrow-usercenter-api</artifactId> <version>1.0</version> </dependency> + <dependency> + <groupId>com.kidgrow</groupId> + <artifactId>kidgrow-report-center-api</artifactId> + <version>1.0</version> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html new file mode 100644 index 0000000..8cd7f50 --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html @@ -0,0 +1,108 @@ +<form id="app-form-add" lay-filter="app-form-add" class="layui-form model-form"> + <div style="display:flex"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label" style="width: 75px;">时间范围</label> + <div class="layui-input-block" style="width: 500px;"> + <input type="text" class="layui-input search-input" id="beginTime" autocomplete="off" placeholder="开始时间"> 至 + <input type="text" class="layui-input search-input" id="endTime" autocomplete="off" placeholder="结束时间">   + </div> + <input type="hidden" id="hospitalIds"/> + <input type="hidden" id="hospitalNames"/> + </div> + </div> + </div> + + <div class="layui-form-item model-form-footer"> + <button class="layui-btn" id="export" type="button">导出 + </button> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + </div> +</form> + +<script> + layui.use(['form', 'laydate', 'util', 'config', 'admin'], function () { + var form = layui.form; + var config = layui.config; + var $ = layui.jquery; + var admin = layui.admin; + var laydate = layui.laydate; + + form.render(); + + //执行一个laydate实例 + laydate.render({ + elem: '#beginTime' //指定元素 + }); + laydate.render({ + elem: '#endTime' //指定元素 + }); + + $('#export').click(function () { + var startTime = $('#beginTime').val(); + var endTime = $('#endTime').val(); + if (startTime != null && endTime != null) { + var flag = compareDate(startTime, endTime); + if (!flag) { + layer.msg('结束时间不得小于开始时间'); + return; + } + } + var url = config.base_server + 'api-opration/hospitalscreening/export'; + var xhr = new XMLHttpRequest(); + xhr.open('POST', url, true); + xhr.responseType = "blob"; + var form = new FormData(); + // Add selected file to form + form.append("hospitalId", $("#hospitalIds").val()); + form.append('hospitalName', $("#hospitalName").val()); + form.append('beginTime', $("#beginTime").val()); + form.append('endTime', endTime); + form.append('hospitalName', $("#hospitalNames").val()); + + xhr.setRequestHeader("client_type", "DESKTOP_WEB"); + xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token); + xhr.onload = function () { + if (this.status == 200) { + var fileName = $("#hospitalNames").val() + ".xlsx"; + var blob = this.response; + var a = document.createElement('a'); + a.innerHTML = fileName; + // 指定生成的文件名 + a.download = fileName; + a.href = URL.createObjectURL(blob); + document.body.appendChild(a); + var evt = document.createEvent("MouseEvents"); + evt.initEvent("click", false, false); + a.dispatchEvent(evt); + document.body.removeChild(a); + } + } + xhr.send(form); + }); + + var hospital = admin.getTempData('t_hospital'); + if(hospital){ + $("#hospitalIds").val(hospital.hospitalId) + $("#hospitalNames").val(hospital.hospitalName); + } + form.render(); + + //比较日期大小 + function compareDate(logintime, logouttime) { + var arys1 = new Array(); + var arys2 = new Array(); + if (logintime != null && logouttime != null) { + arys1 = logintime.split('-'); + var logindate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]); + arys2 = logouttime.split('-'); + var logoutdate = new Date(arys2[0], parseInt(arys2[1] - 1), arys2[2]); + if (logindate > logoutdate) { + return false; + } else { + return true; + } + } + } + }); +</script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html index 282f27f..8d52bb3 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html @@ -43,6 +43,9 @@ <button class="layui-btn layui-btn-xs" lay-event="downLoad"> 下载二维码 </button> + <button class="layui-btn layui-btn-xs" lay-event="export"> + 导出 + </button> </script> <script type="text/html" id="hospital-push-state"> @@ -229,6 +232,8 @@ downLoad(data.hospitalQrImage); } else if (layEvent === 'edit') { showEditModel_add("编辑", data); + }else if(layEvent === 'export'){ + showEditModel_import("导出",data); } }); @@ -236,5 +241,17 @@ window.open(url); } + var showEditModel_import = function (title, data) { + admin.putTempData('t_hospital', data); + admin.popupCenter({ + title: title, + path: 'pages/keaigao/exportScreeningHospital.html', + area: '500px', + offset: '0px', + finish: function () { + } + }); + }; + }); </script> \ No newline at end of file -- Gitblit v1.8.0