Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r13061 -r13063 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 13061) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 13063) @@ -141,7 +141,7 @@ public List getDepartmentMonthDetailList( String startTime,String endTime, String depart,String departCoding,String type, String goodsName, - String batch,String searchType,boolean disinfection); + String batch,String searchType,boolean disinfection,String disposableGoodsType); public List getInvoiceItems(String settleDepartSearch,String depart, String startDate, String endDate, String applicant, String goodsName, Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r13061 -r13063 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 13061) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 13063) @@ -3898,7 +3898,7 @@ @Override public List getDepartmentMonthDetailList( String startTime,String endTime, String departSearch,String departCoding,String typeSearch, - String goodsNameSearch, String batch,String searchType,boolean disinfection) { + String goodsNameSearch, String batch,String searchType,boolean disinfection,String disposableGoodsType) { List datas = new ArrayList(); startTime += " 00:00:00"; @@ -3909,6 +3909,23 @@ String lostMaterialFilterSql = ""; String damageFilterSql = ""; String supplyRoomDiposableGoodsFilterSql = ""; + + String invoiceItemDisposableGoodsTypePredicate = " (1=1) "; + String diposableGoodsItemPredicate = " (1=1) "; + String disposableGoodsInvoiceAmountPredicate = " (ii.diposable='是') "; + String returnGoodsItemPredicate = " (1=1) "; + String receiveRecordItemPredicate = " (1=1) "; + String disposableGoodsIdSql = ""; + if(StringUtils.isNotBlank(disposableGoodsType)){ + disposableGoodsIdSql = String.format(" select id from DisposableGoods where type='%s' ", disposableGoodsType); + invoiceItemDisposableGoodsTypePredicate = String.format(" (ii.diposable='否' or ii.disposableGoodsId in(%s)) ", disposableGoodsIdSql); + diposableGoodsItemPredicate = String.format(" (d.disposableGoodsID in(%s)) ", disposableGoodsIdSql); + disposableGoodsInvoiceAmountPredicate = String.format(" (ii.diposable='是' and ii.disposableGoodsId in(%s)) ", disposableGoodsIdSql); +// returnGoodsItemPredicate = String.format(" (rr.type!='一次性物品' or rr.disposableGoodsId in(%s)) ", disposableGoodsIdSql); + returnGoodsItemPredicate = String.format(" (ri.disposableGoodsId in(%s)) ", disposableGoodsIdSql); + receiveRecordItemPredicate = String.format(" (rri.disposableGoodsId in(%s)) ", disposableGoodsIdSql); + } + if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) { monthFilterSql = " and i.sendtime between " + dateQueryAdapter.dateConverAdapter2( startTime @@ -4081,6 +4098,7 @@ diposableGoodsSql = " union all (select i.settleaccountsdepart,d.name as name,sum(d.amount) as amount,sum(d.fluctuationPrice*d.amount) as settlementprice,'一次性物品' as type" + ",d.batch from invoice i,DiposableGoodsItem d " + " where i.id = d.invoice_id and i.orgUnitCoding = '"+handleDeptCode+"' " + +" and "+diposableGoodsItemPredicate + monthFilterSql + departFilterSql + nameFilterSql @@ -4091,6 +4109,7 @@ + "-sum(ri.amount) as amount,-sum(ri.settlementPrice) as settlementprice,rr.type as type" + ",ri.batchNumber from returngoodsrecord rr,returngoodsitem ri where rr.id = ri.returngoodsrecord_id and rr.handleDepartCode = '"+handleDeptCode+"' " + returnGoodsMonthFilterSql + +" and "+returnGoodsItemPredicate + " group by rr.depart,ri.toussename,rr.type,ri.batchNumber)"; String lostMaterial = " union all (select r.depart,r.materialName,sum(r.amount),sum(r.amount*r.materialCost),'新增器械' as type,'' " @@ -4106,6 +4125,7 @@ +" from ReceiveRecord rr,ReceiveRecordItem rri left join " + DisposableGoodsBatchStock.class.getSimpleName() + " dbs " +" on rri.diposableGoodBatchStock_id = dbs.id where rr.id = rri.receiveRecord_id and rr.departCoding = '"+handleDeptCode+"' " +supplyRoomDiposableGoodsFilterSql + +" and "+receiveRecordItemPredicate + " group by rri.goodsName,rri.amount,rri.type,dbs.batchNumber) "; String sql = tousseSql + diposableGoodsSql + returnGoodsSql + supplyRoomDiposableGoodsSql; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js =================================================================== diff -u -r13016 -r13063 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js (.../departmentMonthlyDetailDSInvoiceItemView.js) (revision 13016) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js (.../departmentMonthlyDetailDSInvoiceItemView.js) (revision 13063) @@ -5,7 +5,20 @@ Ext.onReady(function() { Ext.QuickTips.init(); // 记录cookie(3步) - + 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(); function reloadReport(){ var startTime= $Id('startTime').value; var endTime= $Id('endTime').value; @@ -17,6 +30,7 @@ goodsSearch = goodsSearch.replace('#','%23'); var tousseType = $Id('tousseType').value; var searchType = $Id('searchType').value; + var disposableGoodsType = Ext.getCmp("disposableGoodsType").value; if(departSearch == "全部"){ departSearch = ""; } @@ -28,7 +42,7 @@ removeMask: true }); myMask.show(); - window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=DepartmentMonthDetail.jasper&reportName=departmentMonthDetail&departSearch="+departSearch+"&startTime="+startTime+"&endTime="+endTime+"&goodsSearch="+goodsSearch+"&tousseType="+tousseType+"&searchType="+searchType+"&batch="+batch+"&departCoding="+departCoding,'thisIframe','_self'); + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=DepartmentMonthDetail.jasper&reportName=departmentMonthDetail&departSearch="+departSearch+"&startTime="+startTime+"&endTime="+endTime+"&goodsSearch="+goodsSearch+"&tousseType="+tousseType+"&searchType="+searchType+"&batch="+batch+"&departCoding="+departCoding+"&disposableGoodsType="+disposableGoodsType,'thisIframe','_self'); } Ext.ux.ForgonPageGrid.prototype.getGridParameterMap = function() {}; @@ -90,10 +104,10 @@ border : 0, frame : true, bodyStyle : 'padding:0px auto;margin:0px', - height : 135, + height : 160, items : [{ layout : 'column', - height : 50, + height : 80, items : [{ xtype : 'hidden', name : 'departCoding', @@ -262,6 +276,24 @@ anchor : '95%' }] },{ + columnWidth : 0.3, + layout : 'form', + labelWidth : 60, + items : [{ + xtype : 'combo', + fieldLabel : "类别", + displayField : 'typeName', + valueField : 'typeValue', + store : diposableGooodsStore, + forceSelection : true, + editable : false, + triggerAction : 'all', + name : "disposableGoodsType", + id : "disposableGoodsType", + value : '', + anchor : '95%' + }] + },{ width : 10 }] }], Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r13061 -r13063 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 13061) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 13063) @@ -421,6 +421,7 @@ String goodsSearch = StrutsParamUtils.getPraramValue("goodsSearch", null); String batch = StrutsParamUtils.getPraramValue("batch", null); + String disposableGoodsType = StrutsParamUtils.getPraramValue("disposableGoodsType", ""); boolean disinfection = isDisinfection(goodsSearch); if(disinfection){ int pos1 = goodsSearch.lastIndexOf("["); @@ -431,7 +432,7 @@ } } return jasperReportManager.getDepartmentMonthDetailList( - startTime,endTime, departSearch, departCoding,tousseType, goodsSearch, batch,searchType,disinfection); + startTime,endTime, departSearch, departCoding,tousseType, goodsSearch, batch,searchType,disinfection,disposableGoodsType); } else if (reportName.equals("invoiceQuery")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String depart = StrutsParamUtils.getPraramValue("depart", "");