Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.jsp =================================================================== diff -u -r16401 -r17209 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.jsp (.../tousseGoodsWarningView.jsp) (revision 16401) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.jsp (.../tousseGoodsWarningView.jsp) (revision 17209) @@ -13,17 +13,13 @@ <%@ include file="/common/includeExtJsAndCss.jsp"%> <% - SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager)SpringBeanManger.getBean("supplyRoomConfigManager"); String orgUnitCoding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); String orgUnitName = AcegiHelper.getLoginUser().getOrgUnitNameCodingFromSupplyRoomConfig(); int supplyRoomType = supplyRoomConfigManager.getSupplyRoomTypeByOrgUnitCoding(orgUnitCoding); request.setAttribute("orgUnitName",orgUnitName); request.setAttribute("orgUnitCoding",orgUnitCoding); request.setAttribute("userName",AcegiHelper.getLoginUser().getUserFullName()); - - String queryType = request.getParameter("queryType"); - request.setAttribute("queryType", queryType); %> + + + + @@ -80,6 +77,8 @@ + + \ No newline at end of file Index: forgon-tools/src/main/java/com/forgon/tools/excel/ExcelCellStyle.java =================================================================== diff -u -r12331 -r17209 --- forgon-tools/src/main/java/com/forgon/tools/excel/ExcelCellStyle.java (.../ExcelCellStyle.java) (revision 12331) +++ forgon-tools/src/main/java/com/forgon/tools/excel/ExcelCellStyle.java (.../ExcelCellStyle.java) (revision 17209) @@ -60,7 +60,9 @@ public static HSSFFont bigHSSFFont; public static short hSSFDataFormat; - // 初始化单元格样式 + /** + * 初始化单元格样式 + */ public static void iniAllStyles() { // 字体和数字 bigHSSFFont = ExcelHelper.getHSSFFont(HSSFFont.BOLDWEIGHT_BOLD); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r16934 -r17209 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 16934) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 17209) @@ -45,6 +45,7 @@ import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.string.StringTools; /** * @author songwei @@ -562,72 +563,79 @@ @SuppressWarnings("unchecked") public String findWarningTousseGoodsTableList( Map> parameterMap) { - Map sqlWhereParamMap = gridManager .getParamFromView(parameterMap); String departCodeOfSelect = sqlWhereParamMap.get("department"); String departCodeOfCurrentUser = AcegiHelper.getLoginUser() - .getOrgUnitCodingFromSupplyRoomConfig(); + .getOrgUnitCodingFromSupplyRoomConfig(); //登录用户当前科室编码 int roomType = supplyRoomConfigManager - .getSupplyRoomTypeByOrgUnitCoding(departCodeOfCurrentUser); + .getSupplyRoomTypeByOrgUnitCoding(departCodeOfCurrentUser); //登录用户当前科室属于哪种“供应室类型” StringBuilder sqlBuilder = new StringBuilder("WHERE 1=1 "); - if (roomType == SupplyRoomConfig.SUPPLYROOM_TYPE_1){ - - if(StringUtils.isNotBlank(departCodeOfSelect)){ - sqlBuilder.append(String.format(" AND po.location = '%s'", - departCodeOfSelect)); + if(StringUtils.isNotBlank(departCodeOfSelect)){ //指定想要查看的科室 + sqlBuilder.append(String.format(" AND po.location = '%s'", departCodeOfSelect)); sqlBuilder.append(" AND " + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, TousseInstance.STATUS_SHIPPED, TousseInstance.STATUS_SIGNED)); -// sqlBuilder.append(" AND po.departmentStock_id is not null"); } else { - sqlBuilder.append(String.format(" AND po.orgUnitCoding = '%s'", - departCodeOfCurrentUser)); + sqlBuilder.append(String.format(" AND po.orgUnitCoding = '%s'", departCodeOfCurrentUser)); sqlBuilder.append(" AND " + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, TousseInstance.STATUS_STERILED, TousseInstance.STATUS_RETURNED)); } - } else { - sqlBuilder.append(String.format(" AND po.location = '%s'", - departCodeOfCurrentUser)); + sqlBuilder.append(String.format(" AND po.location = '%s'", departCodeOfCurrentUser)); sqlBuilder.append(" AND " + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, TousseInstance.STATUS_SHIPPED, TousseInstance.STATUS_SIGNED)); -// sqlBuilder.append(" AND po.departmentStock_id is not null"); } String type = sqlWhereParamMap.get("type"); Date now = new Date(); + String startTime = sqlWhereParamMap.get("startTime"); + String endTime = sqlWhereParamMap.get("endTime"); switch (type) { - case SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE: - sqlBuilder.append(" AND po.validUntil < " - + dateQueryAdapter.dateAdapter(now)); - break; - case SystemWarningItemVO.WARNING_TYPE_TOUSSE: - sqlBuilder.append(" AND po.warningUntil < " - + dateQueryAdapter.dateAdapter(now)); - sqlBuilder.append(" AND po.validUntil > " - + dateQueryAdapter.dateAdapter(now)); - break; - // 默认显示已过期和即将过期的所有器械包 - default: - sqlBuilder.append(" AND po.warningUntil < " - + dateQueryAdapter.dateAdapter(now)); - break; + case SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE: + sqlBuilder.append(" AND po.validUntil < " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.validUntil", startTime, endTime); + break; + case SystemWarningItemVO.WARNING_TYPE_TOUSSE: + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + sqlBuilder.append(" AND po.validUntil > " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); + break; + default: //默认显示已过期和即将过期的所有器械包 + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); + break; } - String sql = sqlBuilder.toString(); return gridManager.renderGrid(parameterMap, TousseInstance.class.getSimpleName(), sql, TousseInstance.filterProperties); + } + /** + * 获取查询的时间段(注意此方法只适用于本类的findWarningTousseGoodsTableList方法,其他地方不可用) + * @param sqlBuilder StringBuilder对象 + * @param field 时间字段 + * @param startTime 开始时间(精确到天格式如:2017-01-01) + * @param endTime 结束时间(精确到天格式如:2017-01-01) + */ + private void setQueryTime(StringBuilder sqlBuilder, String field, String startTime, + String endTime) { + if (StringTools.isNotBlank(startTime) + && StringTools.isNotBlank(endTime)) { //如果选择的类型是“已过期的器械包物品”,需要按照失效期的时间段过滤 + sqlBuilder.append(String.format(" AND %s between %s AND %s ", + field, + dateQueryAdapter.dateConverAdapter2(startTime + " 00:00:00", "yyyy-mm-dd HH24:MI:SS"), + dateQueryAdapter.dateConverAdapter2(endTime + " 23:59:59", "yyyy-mm-dd HH24:MI:SS"))); + } } public String loadAllDepartmentTousse(Map> parameterMap) { Index: ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/action/SystemWarningAction.java =================================================================== diff -u -r12331 -r17209 --- ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/action/SystemWarningAction.java (.../SystemWarningAction.java) (revision 12331) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/action/SystemWarningAction.java (.../SystemWarningAction.java) (revision 17209) @@ -1,13 +1,36 @@ package com.forgon.disinfectsystem.systemwarning.action; import java.io.IOException; +import java.util.Date; +import java.util.List; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; + +import jxl.Workbook; +import jxl.write.Label; +import jxl.write.WritableCellFormat; +import jxl.write.WritableFont; +import jxl.write.WritableSheet; +import jxl.write.WritableWorkbook; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; - +import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.directory.vo.LoginUserData; +import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.systemwarning.SystemWarningItemVO; import com.forgon.disinfectsystem.systemwarning.service.SystemWarningManager; +import com.forgon.tools.SqlBuilder; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.ForgonDateUtils; /** * @author wangyi @@ -20,11 +43,30 @@ public class SystemWarningAction { private SystemWarningManager systemWarningManager; - + + private SupplyRoomConfigManager supplyRoomConfigManager; + + private DateQueryAdapter dateQueryAdapter;; + + private ObjectDao objectDao; + public void setSystemWarningManager(SystemWarningManager systemWarningManager) { this.systemWarningManager = systemWarningManager; } + public void setSupplyRoomConfigManager( + SupplyRoomConfigManager supplyRoomConfigManager) { + this.supplyRoomConfigManager = supplyRoomConfigManager; + } + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } + + public void setObjectDao(ObjectDao objectDao) { + this.objectDao = objectDao; + } + public void getSystemWarning(){ StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); @@ -38,5 +80,172 @@ } } + + /** + * 获取需要告警器械包,并且导出的excel文件 + */ + public void exportTousseWarningInfo() { + String startTime = StrutsParamUtils.getPraramValue("startTime", ""); + String endTime = StrutsParamUtils.getPraramValue("endTime", ""); + String warningType = StrutsParamUtils.getPraramValue("warningType", ""); + String departmentCode = StrutsParamUtils.getPraramValue("department", ""); + LoginUserData loginUserData = AcegiHelper.getLoginUser(); + String currentOrgUnitCode = loginUserData.getCurrentOrgUnitCode(); //登录用户当前科室编码 + + StringBuilder sqlBuilder = new StringBuilder("WHERE 1=1 "); + if (supplyRoomConfigManager.isFirstSupplyRoomOrgUnit(currentOrgUnitCode)){ + if(StringUtils.isNotBlank(departmentCode)){ //指定想要查看的科室 + sqlBuilder.append(String.format(" AND po.location = '%s'", departmentCode)); + sqlBuilder.append(" AND " + + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, + TousseInstance.STATUS_SHIPPED, + TousseInstance.STATUS_SIGNED)); + } else { + sqlBuilder.append(String.format(" AND po.orgUnitCoding = '%s'", currentOrgUnitCode)); + sqlBuilder.append(" AND " + + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, + TousseInstance.STATUS_STERILED, + TousseInstance.STATUS_RETURNED)); + } + } else { + sqlBuilder.append(String.format(" AND po.location = '%s' ", currentOrgUnitCode)); + sqlBuilder.append(" AND " + + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, + TousseInstance.STATUS_SHIPPED, + TousseInstance.STATUS_SIGNED)); + } + Date now = new Date(); + switch (warningType) { + case SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE: + sqlBuilder.append(" AND po.validUntil < " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.validUntil", startTime, endTime); + break; + case SystemWarningItemVO.WARNING_TYPE_TOUSSE: + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + sqlBuilder.append(" AND po.validUntil > " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); + break; + default: //默认显示已过期和即将过期的所有器械包 + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); + break; + } + sqlBuilder.append(" order by po.validUntil asc "); + String sql = sqlBuilder.toString(); + List tis = (List) objectDao.findBySql("TousseInstance", sql); + createExportFileByJxl(tis); + } + + /** + * 导出excel文件 + * @param tis 需要告警的器械包集合 + */ + private void createExportFileByJxl(List tis) { + if (CollectionUtils.isNotEmpty(tis)) { + HttpServletResponse response = StrutsParamUtils.getResponse(); + WritableWorkbook book = null; + try { + String fileName = "器械包告警列表.xls"; + response.setContentType("application/octet-stream"); + response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GBK"), "ISO8859_1")); + + ServletOutputStream servletOutputStream = response.getOutputStream(); + book = Workbook.createWorkbook(servletOutputStream); //打开文件 + int length = tis.size(); //查询结果记录数 + int sheetSize = 500; + int sheetNum = 1; + if(length%sheetSize > 0){ + sheetNum = length/sheetSize+1; + }else{ + sheetNum = length/sheetSize; + } + String headers[] = {"器械包名称", "条码", "炉号", "炉次", "灭菌程序", "失效日期", "灭菌日期", "位置"}; //需导出的列头定义 + Label label; + //循环sheet数量 + for(int kk = 0; kk < sheetNum; kk ++){ + WritableSheet ws=book.createSheet(("器械包告警列表"+(kk+1)),kk); //生成名为"器械包告警列表"的工作表,参数0表示这是第一页 + ws.setRowView(0,320); //设定第一行的行高 + ws.setColumnView(0,30); + ws.setColumnView(1,20); + ws.setColumnView(2,20); + ws.setColumnView(3,20); + ws.setColumnView(4,20); + ws.setColumnView(5,20); + ws.setColumnView(6,20); + ws.setColumnView(7,20); + + for (int i = 0; i < headers.length; i++) { + WritableFont arial12pt = new WritableFont(WritableFont.ARIAL,11, WritableFont.BOLD); + WritableCellFormat arial12format = new WritableCellFormat(arial12pt); + arial12format.setWrap(false); + label = new Label(i, 0, headers[i], arial12format); + ws.addCell(label); + } + + for(int i = kk*sheetSize; i< (kk+1)*sheetSize ; i++ ){ + if(i < length ){ + TousseInstance ti = (TousseInstance) tis.get(i); + String sterileEndTime = ti.getSterileEndTime(); + if (StringTools.isNotBlank(sterileEndTime)) { + sterileEndTime = sterileEndTime.substring(0, 10); + } + String[] infos = new String[] { + ti.getTousseName(), + ti.getBarcode(), + ti.getSterilizerName(), + ti.getSterileFrequency(), + ti.getSterilingType(), + ForgonDateUtils.safelyFormatDate(ti.getValidUntil(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDD, ""), + sterileEndTime, + ti.getSterilizerPosition() + }; + for (int j = 0; j < infos.length; j++) { + label= new Label(j, i+1-(kk*sheetSize), infos[j]); + ws.addCell(label); + } + }else{ + break; + } + } + } + book.write(); + servletOutputStream.flush(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if(book!=null){ + try { + book.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + try { + response.getOutputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + /** + * 获取查询的时间段(注意此方法只适用于本类的exportTousseWarningInfo方法,其他地方不可用) + * @param sqlBuilder StringBuilder对象 + * @param field 时间字段 + * @param startTime 开始时间(精确到天格式如:2017-01-01) + * @param endTime 结束时间(精确到天格式如:2017-01-01) + */ + private void setQueryTime(StringBuilder sqlBuilder, String field, String startTime, + String endTime) { + if (StringTools.isNotBlank(startTime) + && StringTools.isNotBlank(endTime)) { //如果选择的类型是“已过期的器械包物品”,需要按照失效期的时间段过滤 + sqlBuilder.append(String.format(" AND %s between %s AND %s ", + field, + dateQueryAdapter.dateConverAdapter2(startTime + " 00:00:00", "yyyy-mm-dd HH24:MI:SS"), + dateQueryAdapter.dateConverAdapter2(endTime + " 23:59:59", "yyyy-mm-dd HH24:MI:SS"))); + } + } + } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.js =================================================================== diff -u -r16972 -r17209 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.js (.../tousseGoodsWarningView.js) (revision 16972) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.js (.../tousseGoodsWarningView.js) (revision 17209) @@ -4,19 +4,11 @@ var win; var tempBasketBarcode = ""; var tempBasketName = ""; -var dataStore; function renderCallTousseInstanceInfoShowFun(v, p, record){ var isComboTousse = (record.data['tousseDefinition.tousseType'] == '聚合包'); return "" + record.data['tousseName'] + ""; } -function renderSterilizer(v, p, record) { - if (v) { - return v.name; - } - return ""; -} - /** * 显示申请单终止原因 */ @@ -409,26 +401,24 @@ Ext.QuickTips.init(); Ext.BLANK_IMAGE_URL = WWWROOT + '/ext/resources/images/default/s.gif'; - dataStore = new Ext.data.SimpleStore( { - fields : ['value'], - data : [['全部'],[warningTousseGoods],[disabledTousseGoods]] - }); - var type = ""; - if(department != null && department != "" - && warningType2 != null && warningType2 != ""){ + var allFlag = '全部'; + var dt = new Date(); + $Id('parm_s_startTime').value = dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-01"; + $Id('parm_s_endTime').value = Ext.util.Format.date(dt, 'Y-m-d'); + + var type = allFlag; + if(department && warningType2){ //前一个页面指定了“科室”和“告警类型” document.getElementById("parm_s_type").value = warningType2; document.getElementById("parm_s_department").value = department; type = warningType2; + } else { + document.getElementById("parm_s_type").value = allFlag; } - if(queryType != null && queryType != "" && queryType != 'null'){ - document.getElementById("parm_s_type").value = queryType; - type = queryType; - } var columns = [ {header : "器械包名称",width : 200,dataIndex : 'tousseName',renderer:renderCallTousseInstanceInfoShowFun}, {header : "条码",width : 150,dataIndex : 'barcode'}, - {header : "炉号",width : 150,dataIndex : 'sterilizerName', renderer : renderSterilizer}, + {header : "炉号",width : 150,dataIndex : 'sterilizerName'}, {header : "炉次",width : 150,dataIndex : 'sterileFrequency'}, {header : "灭菌程序",width : 100,dataIndex : 'sterilingType'}, {header : "失效日期",width : 150,dataIndex : 'validUntil',renderer : myDateFormat}, @@ -470,28 +460,68 @@ loadAllDepartmentTousse(); } },{ - text : '告警类型:' + xtype : 'label', + text : '告警类型:' },{ xtype : 'combo', id : 'warningType', name : 'warningType', valueField : 'value', displayField : 'value', - store : dataStore, + store : new Ext.data.SimpleStore({ + fields : ['value'], + data : [[allFlag],[warningTousseGoods],[disabledTousseGoods]] + }), forceSelection : true, mode : 'local', editable:false, triggerAction : 'all', - width : 180, + width : 150, value : type, listeners : { select : function(combo,record,index ){ $Id('parm_s_type').value = combo.getRawValue(); - $Id('parm_s_department').value = ""; grid.dwrReload(); } } },'-',{ + xtype : 'label', + text : '开始时间:' + },{ + xtype : 'datefieldWithMin', + id : 'startTime', + name : 'startTime', + readOnly : true, + value: new Date(dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"), + format : 'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + listeners : { + select : function(_this) { + $Id('parm_s_startTime').value = Ext.util.Format.date(_this.getValue(), 'Y-m-d'); + } + } + },'-',{ + xtype : 'label', + text : '结束时间:' + },{ + xtype : 'datefieldWithMin', + id : 'endTime', + name : 'endTime', + readOnly : true, + value: dt, + format : 'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + listeners : { + select : function(_this) { + $Id('parm_s_endTime').value = Ext.util.Format.date(_this.getValue(), 'Y-m-d'); + } + } + },'-',{ + text : ' 查询 ', + handler : function() { + grid.dwrReload(); + } + },'-',{ text : '废弃', iconCls : 'btn_ext_application_del', id:'deleteTousseGoods', @@ -516,31 +546,36 @@ recycTTousseGoods(grid); } },'-',{ - text : '打印过期器械包', + text : '打印选择的包', iconCls : 'icon_print', id:'printTousseGoods', hidden:System_TousseGoods_delete, - menu: new Ext.menu.Menu({ - items: [ - {text: '打印选择的包', handler: function(){printTousseGoods(grid)}}, - {text: '打印全部过期包', handler:function(){ - top.Ext.MessageBox.confirm("请确认", "要打印全部过期包吗?", - function(btn) { - if (btn == 'yes') { - top.Ext.MessageBox.alert("提示","本功能暂未开通"); - } - }); - } - } - ] - }) - }]; + handler: function(){printTousseGoods(grid)} + },'-',{ + text : '导出', + iconCls : 'btn_ext_download', + handler : function() { + if (grid.store.getCount() < 1) { + showResult('没数据!'); + } else { + var startTime = $Id('parm_s_startTime').value; + var endTime = $Id('parm_s_endTime').value; + var warningType = $Id('parm_s_type').value; + var department = $Id('parm_s_department').value; + location.href = WWWROOT + "/system/systemWarningAction!exportTousseWarningInfo.do" + + "?startTime=" + startTime + + "&endTime=" + endTime + + "&warningType=" + warningType + + "&department=" + department; + } + } + }]; grid = new Ext.ux.ForgonPageGrid({ title : '器械包物品告警列表', tbar : tbar, pageSize : 20, - defaultSortField : 'id', + defaultSortField : 'validUntil', defaultSortDirection : 'ASC', isCheckboxSelectionModel : true, rememberSelected : false,