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