forked from kidgrow-microservices-platform

dougang
2020-11-20 f091a26b18e8d79a0ee7bab176c739bb0e7ce139
C端--导出医院数据
2 files added
5 files modified
256 ■■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java 68 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java 24 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java 18 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java 16 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/pom.xml 5 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html 108 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html 17 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java
New file
@@ -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;
}
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);
}
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;
    }
}
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);
        }
    }
}
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>
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html
New file
@@ -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="结束时间"> &emsp;
                </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>
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>