Bläddra i källkod

设备管理数据导出

huangwenjie 7 år sedan
förälder
incheckning
14e2aec77f

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/config/SpringSecurityConfig.java

@ -35,6 +35,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
                "/admin/team/importData",
                "/admin/hos/importData",
                "/admin/hos/doctor/toExcel",
                "/admin/device/toExcel",
                "/admin/basedata/importData",
                "/admin/wlyyUserRole/importData",
                "/WEB—INF/views/**"

+ 86 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/WlyyDeviceController.java

@ -1,9 +1,12 @@
package com.yihu.wlyy.controller.manager.device;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.device.entity.WlyyDevice;
import com.yihu.wlyy.service.manager.device.WlyyDeviceService;
import jxl.Workbook;
import jxl.write.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
@ -12,6 +15,12 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by yww on 2016/12/2.
 * 设备管理
@ -131,4 +140,81 @@ public class WlyyDeviceController extends BaseController {
    public String isCodeExist(String deviceCode) {
        return deviceService.existDeviceCode(deviceCode);
    }
    
    
    //导出设备报表
    @RequestMapping(value="toExcel",method = RequestMethod.POST,produces = "application/json;charset=UTF-8" )
    public void exportList(
            @RequestParam(value = "deviceName",required = false)String deviceName,
            @RequestParam(value = "deviceCode",required = false) String deviceCode,
            @RequestParam(value = "orgName",required = false)String orgName,
            @RequestParam(value = "linkman",required = false) String linkman,
            HttpServletResponse response){
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            JavaType javaType = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, WlyyDevice.class);
            List<WlyyDevice> wlyyDevices = deviceService.exporthDeviceList(deviceName,deviceCode,orgName,linkman);
            response.setContentType("octets/stream");
            response.setHeader("Content-Disposition", "attachment; filename="+ new String( "deviceDataList.xls"));
            OutputStream os = response.getOutputStream();
            this.write(os,wlyyDevices);
        }catch (Exception ex){
            error(ex);
        }
    }
    
    public void addHeader(WritableSheet ws) throws WriteException {
        
        String[] header = {"ID","设备名称","型号","SN码", "SIM卡号","机构名称", "联系人", "联系电话", "厂家名称"};
        int i = 0;
        for (String h : header) {
            addCell(ws, 0, i, h);//表名,行,列,header
            i++;
        }
    }
    
    public void write(WritableWorkbook wwb, List ls) throws Exception {
        try {
            WritableSheet ws;
            ws = wwb.createSheet("sheet",1);
            addHeader(ws);
            int i = 1;
            for (WlyyDevice m : (List<WlyyDevice>) ls) {
                addCell(ws, i, 0, m.getId()+"","");
                addCell(ws, i, 1, m.getDeviceName(),"");
                addCell(ws, i, 2, m.getDeviceModel(),"");
                addCell(ws, i, 3, m.getDeviceCode(),"");
                addCell(ws, i, 4, m.getSim()+"","");
                addCell(ws, i, 5, m.getOrgName(),"");
                addCell(ws, i, 6, m.getLinkman(),"");
                addCell(ws, i, 7, m.getTel(),"");
                addCell(ws, i, 8, m.getManufacturer(),"");
                i++;
            }
            wwb.write();
            wwb.close();
        } catch (IOException e) {
            e.printStackTrace();
            if (wwb != null) wwb.close();
            throw e;
        }
    }
    public void write(OutputStream os, List ls) throws Exception{
        write(Workbook.createWorkbook(os), ls);
    };
    //添加单元格内容
    public void addCell(WritableSheet ws, int row, int column,  String data) throws WriteException {
        Label label = new Label(column ,row, data);
        ws.addCell(label);
    }
    //添加单元格内容
    public void addCell(WritableSheet ws, int row, int column, String data, String memo) throws WriteException {
        Label label = new Label(column ,row, data);
        if(!org.springframework.util.StringUtils.isEmpty(memo)){
            WritableCellFeatures cellFeatures = new WritableCellFeatures();
            cellFeatures.setComment(memo);
            label.setCellFeatures(cellFeatures);
        }
        ws.addCell(label);
    }
}

+ 21 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/WlyyDeviceService.java

@ -15,6 +15,7 @@ package com.yihu.wlyy.service.manager.device;
        import javax.persistence.EntityManager;
        import java.util.Date;
        import java.util.HashMap;
        import java.util.List;
        import java.util.Map;
/**
@ -56,6 +57,26 @@ public class WlyyDeviceService {
        Specification<WlyyDevice> spec = DynamicSpecifications.bySearchFilter(filter.values(), WlyyDevice.class);
        return deviceDao.findAll(spec,pageRequest);
    }
    
    public List<WlyyDevice> exporthDeviceList(String deviceName, String deviceCode, String orgName, String linkman){
        
        Map<String,SearchFilter> filter = new HashMap<>();
        
        if(!StringUtils.isEmpty(orgName)){
            filter.put("orgName",new SearchFilter("orgName", SearchFilter.Operator.LIKE,orgName));
        }
        if(!StringUtils.isEmpty(deviceCode)){
            filter.put("deviceCode",new SearchFilter("deviceCode",SearchFilter.Operator.EQ,deviceCode));
        }
        if(!StringUtils.isEmpty(deviceName)){
            filter.put("deviceName",new SearchFilter("deviceName",SearchFilter.Operator.LIKE,deviceName));
        }
        if(!StringUtils.isEmpty(linkman)){
            filter.put("linkman",new SearchFilter("linkman",SearchFilter.Operator.EQ,linkman));
        }
        Specification<WlyyDevice> spec = DynamicSpecifications.bySearchFilter(filter.values(), WlyyDevice.class);
        return deviceDao.findAll(spec);
    }
    @Transactional
    public WlyyDevice createDevice(WlyyDevice device){

+ 16 - 3
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_list.jsp

@ -26,20 +26,32 @@
			<%--<div class="m-form-control f-ml15">--%>
				<%--<input type="text" id="inp_device_model" placeholder="请输入设备型号" class="f-ml10" data-attr-scan="deviceModel"/>--%>
			<%--</div>--%>
			<div id="div_error_list_grid">
			<div class="m-form-control f-ml15">
				<input type="text" id="inp_device_code" placeholder="请输入设备SN码" class="f-ml10" data-attr-scan="deviceCode"/>
				<input type="text" id="inp_device_code" name="inp_device_code" placeholder="请输入设备SN码" class="f-ml10" data-attr-scan="deviceCode"/>
			</div>
			<div class="m-form-control f-ml15">
				<input type="text" id="inp_org_name" placeholder="请输入机构名称" class="f-ml10" data-attr-scan="orgName"/>
				<input type="text" id="inp_org_name" name="inp_org_name" placeholder="请输入机构名称" class="f-ml10" data-attr-scan="orgName"/>
			</div>
			<div class="m-form-control f-ml15">
				<input type="text" id="inp_linkman" placeholder="请输入机构联系人" class="f-ml10" data-attr-scan="linkman"/>
				<input type="text" id="inp_linkman" name="inp_linkman" placeholder="请输入机构联系人" class="f-ml10" data-attr-scan="linkman"/>
			</div>
			<sec:authorize url="/admin/device/deviceList">
			<div id="btn_search" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
				<span>查询</span>
			</div>
			</sec:authorize>
			<sec:authorize url="/admin/device/toExcel">
			<div class="m-form-control m-form-control-fr">
				<div id="btn_export" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam">
					<span>导出</span>
				</div>
			</div>
			</sec:authorize>
			<sec:authorize url="/admin/device/create">
			<div class="m-form-control m-form-control-fr">
				<div id="btn_add" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam" style="margin-right: 20px;">
@ -48,6 +60,7 @@
			</div>
			</sec:authorize>
		</div>
	</div>
	<!-- 列表 -->

+ 31 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_list_js.jsp

@ -29,6 +29,7 @@
				$element: $('.m-retrieve-area'),
				$searchBtn: $('#btn_search'),
				$addBtn: $('#btn_add'),
                $exportBtn: $('#btn_export'),
				$deviceName: $("#inp_device_name"),//设备名称
				$deviceCode: $("#inp_device_code"),
@ -53,6 +54,36 @@
					self.$addBtn.click(function () {
						$.publish("device:info:create", [0]);
					});
					//导出
                    //生成Excel表
                    self.$exportBtn.click(function () {
                        //定义一个form表单
                        var myform = $("<form></form>");
                        myform.attr('method','post')
                        myform.attr('action',ctx + '/admin/device/toExcel');
                        //设备名称
                        var deviceName = $("<input type='hidden' name='deviceName' />")
                        deviceName.attr('value',$("#inp_device_name").val());
                        //设备编号
                        var deviceCode = $("<input type='hidden' name='deviceCode' />")
                        deviceName.attr('value',$("#deviceCode").val());
                        //社区名称
                        var orgName = $("<input type='hidden' name='orgName' />")
                        deviceName.attr('value',$("#orgName").val());
                        //联系人
                        var orgName = $("<input type='hidden' name='linkman' />")
                        deviceName.attr('value',$("#linkman").val());
                        myform.append(deviceName);
                        myform.append(deviceCode);
                        myform.append(orgName);
                        myform.append(orgName);
                        myform.appendTo('body').submit(); //must add this line for higher html spec
                    })
				}
			};
			master = {

+ 19 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/main.jsp

@ -117,6 +117,24 @@
				</div>
				</sec:authorize>
				<%-- 数据统计--%>
				<sec:authorize url="/admin/static/center">
				<div class="a-divider"></div>
				<div class="a-menu">
					<div class="a-menu-tit"><i class="icons icons-aside-2 icons-24 mr15"></i>数据统计</div>
					<div class="a-menu-list c-hide">
						<ul>
							</sec:authorize>
							<sec:authorize url="/admin/prescription/initial">
								<li><a href="javascript:locationMenu('staticPrescription');">长处方数据统计</a></li>
							</sec:authorize>
							<sec:authorize url="/admin/static/center">
						</ul>
					</div>
				</div>
				</sec:authorize>
				<%-- 问卷调查管理中心--%>
				<sec:authorize url="/admin/survey/center">
				<div class="a-divider"></div>
@ -228,6 +246,7 @@
					</div>
					</sec:authorize>
                <!-- 原有先注释 20160901  ********-->
                <!-- <div class="a-divider"></div>
                <div class="a-menu">

+ 4 - 0
patient-co-manage/wlyy-manage/src/main/webapp/static/js/menu.js

@ -21,6 +21,10 @@ var menu = {
    "deviceHealthIndex": "/admin/healthIndex/initial",//健康体征数据查询页面
    "patientDevice": "/admin/patientDevice/initial",//居民设备查询页面
    //数据统计
    "static": "/admin/static/center",//数据统计
    "staticPrescription": "/admin/prescription/initial",//长处方数据统计
    //安全管理
    "user": "/admin/user/initial",//人员管理界面
    "roles": "/admin/roles/initial",//用户角色管理界面