Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r41383 -r41497 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 41383) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 41497) @@ -768,6 +768,7 @@ {hidden :SSTS_WashingMachineStoveUseCountReport,text:"清洗机使用次数统计报表",href:WWWROOT+'/disinfectsystem/reportforms/washingMachineStoveUseCountView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_SterilizingStoveUseCountReport,text:"灭菌炉使用次数统计报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizingStoveUseCountView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseWorkLoadTotalReport,text:(sstsConfig.tousseWorkLoadName ? sstsConfig.tousseWorkLoadName : "器械包工作量统计报表"),href:WWWROOT+'/disinfectsystem/reportforms/tousseWorkLoadView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :!sstsConfig.enableInstrumentSetDemandReport,text:'手术器械包需求量分析报表',href:WWWROOT+'/disinfectsystem/reportforms/instrumentSetDemandReport.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :!((sstsConfig.hasOwnProperty('enableRiskLevelOfTousseDefinition')) && sstsConfig.enableRiskLevelOfTousseDefinition),text:"物品风险级别统计报表",href:WWWROOT+'/disinfectsystem/reportforms/goodsRiskLevelReport.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_CleaningAreaWorkloadForUser,text:'清洗区人员工作量统计报表',href:WWWROOT+'/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_WaitPackingTaskReport,text:'待装配任务工作表',href:WWWROOT+'/disinfectsystem/reportforms/waitPackingTaskReport.jsp',hrefTarget:linkTarget,leaf:true}, Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/instrumentSetDemandReport.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/instrumentSetDemandReport.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/instrumentSetDemandReport.jsp (revision 41497) @@ -0,0 +1,49 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> +<%@page import="java.util.Date"%> +<%@page import="java.text.SimpleDateFormat"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> + + + + + + + + + +<% + SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd"); + request.setAttribute("newDate", dateFormat.format(new Date())); + %> + + +手术器械包需求量分析报表 + + + + + + + +
+
+
+ + +
+ + +
+ + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/config/zsykzx/config.js =================================================================== diff -u -r41467 -r41497 --- ssts-web/src/main/webapp/disinfectsystem/config/zsykzx/config.js (.../config.js) (revision 41467) +++ ssts-web/src/main/webapp/disinfectsystem/config/zsykzx/config.js (.../config.js) (revision 41497) @@ -272,6 +272,8 @@ sterilizationConsumablesQuantityConsumptionMethod:1, // 是否启用未录入使用记录器械包报表 ZSYKEQ-26 enableUnusedTousseInstanceReport: true, + //启用器械包需求量分析报表 + enableInstrumentSetDemandReport:true, // 是否启用未及时回收处理的器械包统计报表 ZSYKEQ-12 enableUseRecordRecyclingDelayReport: true Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/instrumentSetDemandReport.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/instrumentSetDemandReport.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/instrumentSetDemandReport.js (revision 41497) @@ -0,0 +1,284 @@ +var entityName = "手术器械包需求量分析报表"; + +function reloadReport() { + var startDate = $Id('startDate').value; + var endDate = $Id('endDate').value; + var depart = Ext.getCmp('depart').getValue(); + var tousseName = Ext.getCmp('tousseName').getRawValue(); + var brancheOfHospitalName = Ext.getCmp('brancheOfHospitalIds').getRawValue(); + var brancheOfHospitalIds = Ext.getCmp('brancheOfHospitalIds').getValue(); + var onlyQueryGap = Ext.getCmp('onlyQueryGap').getValue(); + onlyQueryGap = (onlyQueryGap == true) ? '是' : '否'; + if (depart.indexOf('全部') == 0) { + depart = ""; + } + + if (brancheOfHospitalName == '全部') { + brancheOfHospitalIds = '' + } + + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + + var reportFile = "instrumentSetDemandReport.jasper"; + + var url = WWWROOT + '/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do'; + var params = { + jasperreportName: reportFile, + startDate: startDate, + endDate: endDate, + depart: depart, + brancheOfHospitalIds: brancheOfHospitalIds, + tousseName: tousseName, + onlyQueryGap: onlyQueryGap, + reportName: 'instrumentSetDemandReport' + } + searchReport(url, params); +} + +var myMask; +Ext.onReady(function () { + Ext.QuickTips.init(); + var operationReservationDeparts = sstsConfig.operationReservationDeparts || []; + operationReservationDeparts.unshift({ name: '全部', code: '-1' }) + var departStore = new Ext.data.Store({ + reader: new top.Ext.data.JsonReader({ + fields: [ + { name: 'name' }, + { name: 'code' } + ] + }), + data: operationReservationDeparts + }); + + var brancheOfHospitalStoreRecord = Ext.data.Record.create([{ + name: 'id' + }, { + name: 'name' + }]); + + //物品选择下拉框Store + var comboGoodsStore = new Ext.data.Store({ + proxy: new Ext.data.HttpProxy({ + url: WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchAllTousseAndAllDisposableGoods.do', + method: 'post' + }), + reader: new Ext.data.JsonReader({ + totalProperty: 'totalCount', + root: 'data' + }, [{ name: 'name', mapping: 'name' }]) + }); + + var brancheOfHospitalStore = new Ext.data.Store({ + proxy: new Ext.data.HttpProxy({ + url: WWWROOT + '/disinfectSystem/brancheOfHospitalAction!findBrancheOfHospitalList.do', + method: 'POST' + }), + reader: new Ext.data.JsonReader({ + totalProperty: 'totalCount', + root: 'data' + }, [ + { name: 'id' }, + { name: 'name' }] + ), + listeners: { + load: function (thiz, records, options) { + if (brancheOfHospitalStore.getCount() > 1) { + brancheOfHospitalStore.insert(0, new brancheOfHospitalStoreRecord({ 'id': '-1', 'name': '全部' })); + Ext.getCmp('brancheOfHospitalIds').selectAll(); + } + } + } + }); + + brancheOfHospitalStore.load(); + + var form = new Ext.form.FormPanel({ + title: entityName, + region: 'north', + labelAlign: 'right', + buttonAlign: 'center', + collapsible: true, + collapseMode: 'mini', + split: true, + border: 0, + // bodyStyle : 'padding: 10px 10px 0px 10px;', + frame: true, + height: 140, + bodyStyle: 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; + labelWidth: 90, + items: [{ + layout: 'column', + items: [{ + columnWidth: .25, + layout: 'form', + items: [new Ext.form.DateField({ + id: 'startDate', + name: 'startDate', + fieldLabel: '开始日期', + readOnly: false, + format: 'Y-m-d', + value: newDate, + anchor: '95%' + })] + }, { + columnWidth: .25, + layout: 'form', + items: [new Ext.form.DateField({ + id: 'endDate', + name: 'endDate', + fieldLabel: '结束日期', + readOnly: false, + format: 'Y-m-d', + value: newDate, + anchor: '95%' + })] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'multiSelect', + fieldLabel: '院区', + id: "brancheOfHospitalIds", + name: "brancheOfHospitalIds", + minChars: 0, + valueField: 'id', + displayField: 'name', + store: brancheOfHospitalStore, + forceSelection: false, + lazyInit: true, + triggerAction: 'all', + typeAhead: false, + editable: false, + anchor: '95%', + separator: ';', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('name') == '全部') { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function (record) { + if (record.get('name') != '全部' && !record.get(this.checkField)) { + selectAll = false; + return; + } + }, combo); + + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); + } + combo.setValue(combo.getCheckedValue()); + } + } + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'combo', + fieldLabel: '科室', + valueField: 'name', + displayField: 'name', + id: 'depart', + name: 'depart', + mode: 'local', + triggerAction: 'all', + forceSelection: true, + editable: false, + value: '全部', + store: departStore, + anchor: '95%', + separator: ';' + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'combo', + queryParam: 'spell', + minChars: 0, + fieldLabel: "器械包", + valueField: 'name', + displayField: 'name', + store: comboGoodsStore, + triggerAction: 'all', + forceSelection: false, + lazyInit: false, + editable: true, + hideTrigger: true, + typeAhead: false, + allowBlank: true, + name: "tousseName", + id: "tousseName", + anchor: '95%' + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'checkbox', + id: 'onlyQueryGap', + name: 'onlyQueryGap', + separator: ';', + boxLabel: '仅显示存在缺口的器械包', + inputValue: '仅显示存在缺口的器械包' + }] + }] + }], + buttons: [{ + text: '查询', + minWidth: 70, + iconCls: 'icon_search', + handler: function () { + reloadReport(); + } + }, { + text: '重置', + minWidth: 70, + iconCls: 'icon_set', + handler: function () { + Ext.getCmp('startDate').setValue(new Date()); + Ext.getCmp('endDate').setValue(new Date()); + Ext.getCmp('tousseName').setValue(""); + Ext.getCmp('disinfectProgram').setValue(""); + Ext.getCmp('disinfectProgram').setRawValue(""); + Ext.getCmp('rinserName').setValue(""); + Ext.getCmp('rinserName').setRawValue(""); + Ext.getCmp('querySupplyRoom').setValue(""); + Ext.getCmp('goodsSearchText').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 + }] + }); +}); \ No newline at end of file