Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/invoiceQueryView.js =================================================================== diff -u -r15305 -r15307 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/invoiceQueryView.js (.../invoiceQueryView.js) (revision 15305) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/invoiceQueryView.js (.../invoiceQueryView.js) (revision 15307) @@ -23,6 +23,9 @@ return; } var goodsType = Ext.getCmp('goodsType').getValue(); + var disposableGoodsType = Ext.getCmp('disposableGoodsType').getValue(); + var expensiveGoodsType = Ext.getCmp('expensiveGoodsType').getValue(); + var summaryType = Ext.getCmp('summaryType').getValue(); if(summaryType == ""){ showResult("请选择统计类型!"); @@ -54,13 +57,15 @@ +"&startDate=" + startDate + "&endDate=" +endDate + "&applicant=" + applicant + "&goodsName=" +goodsName + "&hasRemark=" +hasRemark + "&goodsType=" + goodsType + "&showCustonTousseAmount="+showCustonTousseAmount + + "&disposableGoodsType=" + disposableGoodsType + "&expensiveGoodsType=" + expensiveGoodsType + "&batchNumber=" + batchNumber + "&hospitalNumber=" + hospitalNumber,'thisIframe', '_self'); }else{ window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=invoiceItemsQuery_main_1.jasper&reportName=invoiceQuery&depart=" + departSearch+ "&settleDepartSearch=" + settleDepartSearch +"&startDate=" + startDate + "&endDate=" +endDate + "&applicant=" + applicant + "&goodsName=" +goodsName + "&hasRemark=" +hasRemark + "&goodsType=" + goodsType + "&showCustonTousseAmount="+showCustonTousseAmount + + "&disposableGoodsType=" + disposableGoodsType + "&expensiveGoodsType=" + expensiveGoodsType + "&batchNumber=" + batchNumber  + "&hospitalNumber=" + hospitalNumber,'thisIframe', '_self'); } } @@ -114,6 +119,26 @@ data : [ ['全部'],['全部器械包'],['器械包'],['敷料包'],['消毒物品'],['外来器械包'],['自定义器械包'],['外部代理灭菌包'],['一次性物品'],['器械材料'],['高值耗材'] ] }); + var diposableGooodsStore = new Ext.data.JsonStore({ + fields : [ 'typeName','typeValue' ], + url : WWWROOT + '/disinfectSystem/diposableGoodsAction!getDisposableGoodsTypeForFilter.do', + listeners : { + load : function(store,records) { + if(records.length > 0){ +// var combo = Ext.getCmp("disposableGoodsType"); + // 触发选中事件 +// combo.fireEvent('select', combo,records[0],0); + } + } + } + }); + diposableGooodsStore.load(); + + var expensiveGoodsTypeStore = new Ext.data.SimpleStore( { + fields : ['value'], + data : [ ['全部'],['一次性物品'],['器械']] + }); + var summaryTypeStore = new Ext.data.SimpleStore( { fields : ['value'], data : [ ['发货汇总'],['发货明细']] @@ -130,10 +155,10 @@ border : 0, frame : true, bodyStyle : 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; - height : 90, + height : 110, items : [{ layout : 'column', - height : 50, + height : 80, labelWidth : 70, items : [{ columnWidth : .2, @@ -212,11 +237,68 @@ editable : false, mode : 'local', triggerAction : 'all', + anchor : '95%', + listeners : { + select : function(store,records){ + if(Ext.getCmp('disposableGoodsType')){ + if(Ext.getCmp('goodsType').getValue() == '全部' + || Ext.getCmp('goodsType').getValue() == '一次性物品'){ + Ext.getCmp('disposableGoodsTypeElement').setDisabled(false); + }else{ + Ext.getCmp('disposableGoodsTypeElement').setDisabled(true); + } + + if(Ext.getCmp('goodsType').getValue() == '高值耗材'){ + Ext.getCmp('expensiveGoodsTypeElement').setDisabled(false); + }else{ + Ext.getCmp('expensiveGoodsTypeElement').setDisabled(true); + } + } + } + } + }] + },{ + columnWidth : 0.2, + layout : 'form', + labelWidth : 100, + id:'disposableGoodsTypeElement', + items : [{ + xtype : 'combo', + fieldLabel : "一次性物品类型", + displayField : 'typeName', + valueField : 'typeValue', + store : diposableGooodsStore, + forceSelection : true, + editable : false, + triggerAction : 'all', + name : "disposableGoodsType", + id : "disposableGoodsType", + value : '', anchor : '95%' }] },{ columnWidth : .2, layout : 'form', + labelWidth : 90, + id:'expensiveGoodsTypeElement', + items : [{ + xtype : 'combo', + fieldLabel : '高值耗材类型', + id : 'expensiveGoodsType', + name : 'expensiveGoodsType', + valueField : 'value', + displayField : 'value', + store : expensiveGoodsTypeStore, + forceSelection : true, + value:'全部', + editable : false, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] + },{ + columnWidth : .2, + layout : 'form', labelWidth : 60, items : [{ xtype : 'combo', Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r15305 -r15307 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 15305) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 15307) @@ -6837,21 +6837,39 @@ String showCustonTousseAmountStr = requestParams.get("showCustonTousseAmount"); Boolean showCustonTousseAmount = Boolean.valueOf(showCustonTousseAmountStr); String goodsType = StringTools.defaultIfEmpty(requestParams.get("goodsType"),"全部"); + String disposableGoodsType = StringTools.defaultIfEmpty(requestParams.get("disposableGoodsType"),"全部"); + String expensiveGoodsType = StringTools.defaultIfEmpty(requestParams.get("expensiveGoodsType"),"全部"); String tousseTypeSql = " 1=1 "; String disposableTypeSql = " 1=1 "; String materialTypeSql = " 1=1 "; if(StringTools.equals("一次性物品", goodsType)){ tousseTypeSql = " 1=2 "; - disposableTypeSql = " 1=1 "; + if(!StringTools.equals("全部", disposableGoodsType) && !StringTools.isBlank(disposableGoodsType)){ + String disposableGoodsIdSql = String.format(" select id from DisposableGoods where type='%s' ", disposableGoodsType); + disposableTypeSql = String.format(" (bo.disposableGoodsID in(%s)) ", disposableGoodsIdSql); + } materialTypeSql = " 1=2 "; }else if(StringTools.equals("器械材料", goodsType)){ tousseTypeSql = " 1=2 "; disposableTypeSql = " 1=2 "; materialTypeSql = " 1=1 "; }else if(StringTools.equals("高值耗材", goodsType)){ tousseTypeSql = " 1=2 "; - materialTypeSql = " dg.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"'"; - disposableTypeSql = " bo.expensiveDisposablegoodsId is not null "; + if(!StringTools.equals("全部", expensiveGoodsType) && !StringTools.isBlank(expensiveGoodsType)){ + if(StringTools.equals("一次性物品", expensiveGoodsType)){ + disposableTypeSql = " bo.expensiveDisposablegoodsId is not null "; + materialTypeSql = " 1=2 "; + }else if(StringTools.equals("器械", expensiveGoodsType)){ + disposableTypeSql = " 1=2 "; + materialTypeSql = " dg.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"'"; + }else{ + disposableTypeSql = " bo.expensiveDisposablegoodsId is not null "; + materialTypeSql = " dg.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"'"; + } + }else{ + disposableTypeSql = " bo.expensiveDisposablegoodsId is not null "; + materialTypeSql = " dg.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"'"; + } }else if(!StringTools.equals("全部", goodsType)){ //器械包的类型 tousseTypeSql = SqlUtils.getStringFieldInCollectionsPredicate("td.tousseType", getTousseTypes(goodsType)); @@ -6943,11 +6961,12 @@ sql += " and m.applicant = '" + applicant + "'"; } if (StringUtils.isNotBlank(goodsName)) { - if(isDisinfection){ - sql += " and type <> '一次性物品'"; - }else{ - sql += " and m.name ='" + goodsName + "'"; - } + sql += " and m.name ='" + goodsName + "'"; +// if(isDisinfection){ +// sql += " and type <> '一次性物品'"; +// }else{ +// sql += " and m.name ='" + goodsName + "'"; +// } } if (StringUtils.isNotBlank(batchNumber)) { sql += " and m.batch = '" + batchNumber + "'";