Index: ssts-web/src/main/webapp/jasperRtp/sterilizationRecordReport.jrxml =================================================================== diff -u -r14515 -r14539 --- ssts-web/src/main/webapp/jasperRtp/sterilizationRecordReport.jrxml (.../sterilizationRecordReport.jrxml) (revision 14515) +++ ssts-web/src/main/webapp/jasperRtp/sterilizationRecordReport.jrxml (.../sterilizationRecordReport.jrxml) (revision 14539) @@ -152,7 +152,7 @@ - + @@ -166,21 +166,21 @@ - + - + - + Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r14526 -r14539 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 14526) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 14539) @@ -420,7 +420,8 @@ {hidden :SSTS_MATERIAL_MISS_ITEM_TOTAL_VIEW,text:"器材丢失汇总统计报表",href:WWWROOT+'/disinfectsystem/reportforms/materialMissTotalView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_MATERIAL_MISS_ITEM_TOTAL_VIEW,text:"器材丢失明细统计报表",href:WWWROOT+'/disinfectsystem/reportforms/materialMissItemView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_MATERIAL_MISS_ITEM_TOTAL_VIEW,text:"器材报损汇总统计报表",href:WWWROOT+'/disinfectsystem/reportforms/materialDamageTotalView.jsp',hrefTarget:linkTarget,leaf:true}, - {hidden :SSTS_MATERIAL_MISS_ITEM_TOTAL_VIEW,text:"器材报损明细统计报表",href:WWWROOT+'/disinfectsystem/reportforms/materialDamageItemView.jsp',hrefTarget:linkTarget,leaf:true} + {hidden :SSTS_MATERIAL_MISS_ITEM_TOTAL_VIEW,text:"器材报损明细统计报表",href:WWWROOT+'/disinfectsystem/reportforms/materialDamageItemView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :false,text:"灭菌情况报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizationRecordInfoView.jsp',hrefTarget:linkTarget,leaf:true} ] },{ text:"财务核算及物品发放报表", Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizationRecordInfoView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizationRecordInfoView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizationRecordInfoView.jsp (revision 14539) @@ -0,0 +1,49 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> + + + + + + + + + + + +灭菌情况报表 + + + + + + + +
+
+
+ + +
+ + +
+ + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizationRecordInfoView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizationRecordInfoView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/sterilizationRecordInfoView.js (revision 14539) @@ -0,0 +1,334 @@ +var entityName = "灭菌情况报表"; +var grid; + +var rd = new Ext.data.JsonReader( { + fields : [ + {name : 'id'}, + {name : 'departId'}, + {name : 'name'} + + ] +}); + +// 申请科室Store +var sendDepartJsonStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getDepartNameJson.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + root : 'data' + },[ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'} + ] + ) +}); + +var supplyRoomStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', + method : 'POST' + }), + baseParams :{type:"12"}, + reader : rd, + listeners :{ + 'load' : function(thiz,records,options){ + if(records.length > 0){ + var record = records[0]; + Ext.getCmp('querySupplyRoom').setValue(record.get('departId')); + } + } + } +}); + +var myMask; +Ext.onReady(function() { + Ext.QuickTips.init(); + // 记录cookie(3步) + function reloadReport(){ + var startDate = $Id('startDate').value; + var endDate = $Id('endDate').value; + var sterilizerName = Ext.getCmp('sterilizerName').getValue(); + var querySupplyRoom = Ext.getCmp('querySupplyRoom').getValue(); + var sendDepart = Ext.getCmp('sendDepart').getValue(); + var frequency = Ext.getCmp('frequency').getValue(); + + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + + var reportFile = "SterilizationRecordReport.jasper"; + window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName="+reportFile+"&reportName=SterilizationRecord&startDate="+startDate+"&endDate="+endDate+"&sendDepart="+sendDepart+"&querySupplyRoom="+querySupplyRoom+"&sterilizerName="+sterilizerName+"&frequency="+frequency+"",'thisIframe','_self'); + } + + var columns = [ + {id :'depart',header : "科室",width : 180,dataIndex : 'depart'}, + {header : "物品名称",width : 200,dataIndex : 'goodsName'}, + {header : "数量",width : 100,dataIndex : 'amount'}, + {header : "单价(元)",width : 100,dataIndex : 'price'}, + {header : "金额(元)",width : 100,dataIndex : 'totalPrice'}, + {header : "批次",width : 100,dataIndex : 'batchNumber'}, + {id : 'total',header : "总计(元)",width : 120,dataIndex : 'total' + }]; + + var readerDetail = [{ + name : 'id' + },{ + name : 'depart' + }, { + name : 'goodsName' + }, { + name : 'amount' + }, { + name : 'price' + }, { + name : 'totalPrice' + }, { + name : 'batchNumber' + }, { + name : 'total' + }]; + + var sign = true; + var dwrCallParams = null; + + var tbar = [{ + text : '导出Excel', + iconCls : 'btn_ext_refresh', + id : 'editTbar', + handler : function() { + var month = Ext.getCmp('monthSearch').getRawValue(); + var depart = Ext.getCmp('departSearch').getValue(); + location.href=WWWROOT + "/disinfectsystem/reportforms/departmentMonthlyExport.jsp?depart="+depart+"&month="+month+"&reportType=科室月报明细"; + } + } ]; + + Ext.ux.ForgonPageGrid.prototype.getGridParameterMap = function() { + + }; + + var departRecord = Ext.data.Record.create([ { + name : 'id' + }, { + name : 'name' + } ]); + + var inspectItemStore = new Ext.data.SimpleStore({ + fields : [ 'inspectItem' ], + url : WWWROOT + '/disinfectSystem/qualityMonitoringConfigAction!getInspectItem.do' + }); + inspectItemStore.on("beforeload", function(thiz, options) { + thiz.baseParams["selectAll"] = 'true'; + thiz.baseParams["type"] = Ext.getCmp('monitoringType').getValue(); + }); + + var materialDefinitionStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!getMaterialDefinitionDataForMaterial.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'spelling',mapping : 'spelling'}, + {name : 'type',mapping : 'type'}, + {name : 'name',mapping : 'name'} + ]) + }); + + var form = new Ext.form.FormPanel({ + title : '灭菌情况报表', + region : 'north', + labelAlign : 'right', + buttonAlign : 'center', + collapsible : true, + collapseMode : 'mini', + split : true, + border : 0, + // bodyStyle : 'padding: 10px 10px 0px 10px;', + frame : true, + bodyStyle : 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; + height : 140, + items : [{ + layout : 'column', + height : 60, + labelWidth : 70, + items : [{ + columnWidth : .2, + layout : 'form', + labelWidth : 60, + items : [new Ext.form.DateField({ + id:'startDate', + name : 'startDate', + fieldLabel : '开始日期', + readOnly : false, + format:'Y-m-d', + value : new Date(), + anchor : '95%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + reloadReport(); + } + } + } + } + })] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : 60, + items : [new Ext.form.DateField({ + id:'endDate', + name : 'endDate', + fieldLabel : '结束日期', + readOnly : false, + format:'Y-m-d', + value : new Date(), + anchor : '95%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + reloadReport(); + } + } + } + } + })] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : 70, + items : [{ + xtype : 'combo', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departId', + displayField : 'name', + fieldLabel : "选择供应室", + allowBlank : true, + editable : false, + store : supplyRoomStore, + forceSelection : true, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : 60, + flex : 1, + items : [{ + xtype : 'combo', + fieldLabel : '送货科室', + id : 'sendDepart', + name : 'sendDepart', + queryParam : 'spell', + minChars : 0, + valueField : 'name', + displayField : 'name', + store : sendDepartJsonStore, + forceSelection : true, + lazyInit : true, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true + }] + },{ + columnWidth : .4, + layout : 'form', + labelWidth : 50, + items : [{ + xtype : 'combo', + fieldLabel : "灭菌炉", + valueField : 'sterilizerName', + displayField : 'sterilizerName', + store : new Ext.data.SimpleStore({ + fields : [ 'sterilizerName' ], + url : WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getAllSterilizer.do?' + }), + triggerAction : 'all', + forceSelection : false, + lazyInit : false, + editable : false, + hideTrigger : false, + typeAhead : false, + allowBlank : true, + name : "sterilizerName", + id : "sterilizerName", + anchor : '95%' + }] + },{ + layout:'form', + columnWidth:.22, + labelWidth:60, + items:[{ + xtype : 'textfield', + id : 'frequency', + name : 'frequency', + fieldLabel : '炉次', + regex: /^\d+$/, //正则表达式 这里假设只允许输入数字 如果输入的不是数字 就会出现下面定义的提示信息 + regexText:"只能够输入数字", //定义不符合正则表达式的提示信息 + anchor : '95%', + allowBlank : true + }] + }] + }], + buttons:[{ + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(); + } + },{ + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + Ext.getCmp('startDate').setValue(""); + Ext.getCmp('endDate').setValue(""); + Ext.getCmp('sendDepart').setValue(""); + Ext.getCmp('frequency').setValue(""); + Ext.getCmp('sterilizerName').setValue(""); + Ext.getCmp('querySupplyRoom').setValue(""); + } + }] + }); + + + var reportForm = new Ext.Panel({ + frame:false,//渲染面板 + autoScroll:true,//自动显示滚动条 + collapsible:true,//允许展开和收缩 + bodyPadding:5, + html:'' + }); + + var viewport = new Ext.Viewport({ + layout : 'border', + items : [form, { + region : 'center', + margins : '0 0 0 0', + layout : 'fit', + items : reportForm + }] + }); + supplyRoomStore.load(); + + }); \ No newline at end of file Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r14527 -r14539 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 14527) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 14539) @@ -76,6 +76,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.PackingFractionDefectiveBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.SatisfyInfo; import com.forgon.disinfectsystem.jasperreports.javabeansource.SatisfyItem; +import com.forgon.disinfectsystem.jasperreports.javabeansource.SterilizationRecordItenBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordItemBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordOperatorBean; @@ -273,7 +274,10 @@ } }else if (reportName.equals("QualityMonitoring")) {// 质量监测 return getQualityMonitoringDataSource(); - } else if (reportName.equals("departSatisfyReport")) {// 满意度调查报表 + }else if(reportName.equals("SterilizationRecord")){ // 灭菌记录信息 + return getSterilizationRecordDataSource(); + } + else if (reportName.equals("departSatisfyReport")) {// 满意度调查报表 return getSatisfyDataSource(); } else if (reportName.equals("quotaReprot")) {// 十八项指标 String queryYear = StrutsParamUtils.getPraramValue("queryYear", ""); @@ -1016,7 +1020,12 @@ String startTime = StrutsParamUtils.getPraramValue("startTime", ""); String endTime = StrutsParamUtils.getPraramValue("endTime", ""); map.put("title", "核算月报(" + startTime + " & " + endTime + ")"); - } else if (reportName.equals("QualityMonitoring")) {// 质量监测 + }else if(reportName.equals("SterilizationRecord")){ // 灭菌记录信息 + String startTime = StrutsParamUtils.getPraramValue("startDate", ""); + String endTime = StrutsParamUtils.getPraramValue("endDate", ""); + map.put("title", "灭菌记录信息"); + map.put("createDate", " " + startTime + " ~ " + endTime ); + }else if (reportName.equals("QualityMonitoring")) {// 质量监测 return getQualityMonitoringParamet(); } else if (reportName.equals("quotaReprot")) {// 十八项指标 // return getQuotaDataSource(); @@ -2128,6 +2137,95 @@ } return list; } + + public List getSterilizationRecordDataSource() { + List list = new ArrayList(); + String startDate = StrutsParamUtils.getPraramValue("startDate", ""); + String endDate = StrutsParamUtils.getPraramValue("endDate", ""); + + String querySupplyRoom = StrutsParamUtils.getPraramValue("querySupplyRoom", ""); + String sterilizerName = StrutsParamUtils.getPraramValue("sterilizerName", ""); + String sendDepart = StrutsParamUtils.getPraramValue("sendDepart", ""); + String frequency = StrutsParamUtils.getPraramValue("frequency", ""); + + String sql = " select ti.sterilizerName,ti.sterileFrequency,ti.tousseName,ti.locationForDisplay," + + " ti.sterileEndTime,ti.sterilizationUser,count(*) amount from tousseinstance ti "; + + String endSql = " group by ti.sterilizerName,ti.sterileFrequency,ti.tousseName," + +" ti.locationForDisplay,ti.sterileEndTime,ti.sterilizationUser" + +" order by ti.sterileEndTime desc"; + if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + sql += " where ti.sterileEndTime between " + + dateQueryAdapter.dateAdapter(startDate+" 00:00:00") + + " and " + "" + + dateQueryAdapter.dateAdapter(endDate+" 23:59:59"); + // 器械包的供应室 + if(StringUtils.isNotBlank(querySupplyRoom)){ + sql += " and ti.orgUnitCoding = '" + querySupplyRoom + "'"; + } + // 送货科室 + if(StringUtils.isNotBlank(sendDepart)){ + sql += " and ti.locationForDisplay = '" + sendDepart + "'"; + } + if(StringUtils.isNotBlank(sterilizerName)){ + sql += " and ti.sterilizerName = '" + sterilizerName + "'"; + } + if(StringUtils.isNotBlank(frequency)){ + sql += " and ti.sterileFrequency = '" + frequency + "'"; + } + sql += endSql; + ResultSet resultSet = objectDao.executeSql(sql); + list = getSterilizationRecordBeanList(resultSet); + } + return list; + } + + private List getSterilizationRecordBeanList(ResultSet rs){ + List list = new ArrayList(); + if( rs != null){ + try { + while (rs.next()) { + SterilizationRecordItenBean bean = new SterilizationRecordItenBean(); + // 从数据库里面查出来的数据依次是:灭菌炉、炉次、器械包名称、发货科室、灭菌时间、灭菌员、数量 + String str = rs.getString(1); + if(StringUtils.isNotBlank(str)){ + bean.setSterilizerName(str); + } + str = rs.getString(2); + if(StringUtils.isNotBlank(str)){ + try{ + bean.setFrequency(Integer.valueOf(str)); + }catch(Exception e){ + e.printStackTrace(); + } + } + str = rs.getString(3); + if(StringUtils.isNotBlank(str)){ + bean.setTousseName(str); + } + str = rs.getString(4); + if(StringUtils.isNotBlank(str)){ + bean.setSendDepart(str); + } + str = rs.getString(5); + if(StringUtils.isNotBlank(str)){ + bean.setSterilizationFinishTime(str); + } + str = rs.getString(6); + if(StringUtils.isNotBlank(str)){ + bean.setSterilizationUser(str); + } + bean.setTousseAmount(rs.getInt(7)); + list.add(bean); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + } + return list; + } private Map getBeanMap(List beanList){ if(beanList == null) Index: ssts-web/src/main/webapp/jasperRtp/sterilizationRecordReport.jasper =================================================================== diff -u -r14515 -r14539 Binary files differ