Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/InvoiceTableManager.java =================================================================== diff -u -r17485 -r18448 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/InvoiceTableManager.java (.../InvoiceTableManager.java) (revision 17485) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/InvoiceTableManager.java (.../InvoiceTableManager.java) (revision 18448) @@ -38,7 +38,10 @@ import com.forgon.security.model.User; import com.forgon.tools.MathTools; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.util.SqlUtils; +import edu.emory.mathcs.backport.java.util.Arrays; + /** * @author WangYi 2012-3-5 */ @@ -116,8 +119,13 @@ String recyclingApplicantID = sqlWhereParamMap .get("recyclingApplicantID"); String invoiceType = sqlWhereParamMap.get("invoiceType"); + String selectedTousseType = sqlWhereParamMap.get("selectedTousseType"); + String selectedDepartCodes = sqlWhereParamMap.get("selectedDepartCodes"); // String sql = "where po.invoicePlan is not null"; String sql = "where 1=1 "; +// if (StringUtils.isNotBlank(selectedTousseType)) { +// sql = "inner join po.invoiceItem where 1=1 "; +// } if (StringUtils.isNotBlank(recyclingApplicantID)) { sql += " and po.invoicePlan.id = " + recyclingApplicantID + " and po.status != '" + Invoice.STATUS_UNDELIVERED + "'"; @@ -132,6 +140,17 @@ sql += " and po.orgUnitCoding = '" + AcegiHelper.getLoginUser() .getOrgUnitCodingFromSupplyRoomConfig() + "'"; + if(StringUtils.isNotBlank(selectedDepartCodes)){ + String[] selectedDepartCodesArr = selectedDepartCodes.split(";"); + sql += String.format(" and %s ", SqlUtils.getStringFieldInCollectionsPredicate("po.departCoding", Arrays.asList(selectedDepartCodesArr))); + + } + if (StringUtils.isNotBlank(selectedTousseType)) { + String[] selectedTousseTypeArr = selectedTousseType.split(","); + sql += String.format(" and po.id in(select i.invoiceID from InvoiceItem i where %s) ", SqlUtils.getStringFieldInCollectionsPredicate("i.tousseType", Arrays.asList(selectedTousseTypeArr))); + }else{ +// sql += " and 1=1 "; + } String json = gridManager.renderGrid(parameterMap, Invoice.class.getSimpleName(), sql, new String[] { "invoicePlan", "returnedTousseItems", Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js =================================================================== diff -u -r18102 -r18448 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js (.../invoiceView.js) (revision 18102) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js (.../invoiceView.js) (revision 18448) @@ -1,5 +1,6 @@ var entityName = "发货单"; var grid; +var tousseTypeDataArray = [['一次性物品','一次性物品'],['器械包','器械包'],['敷料包','敷料包'],['消毒物品','消毒物品'],['自定义器械包','自定义器械包'],['外来器械包','外来器械包'],['外部代理灭菌包','外部代理灭菌包']]; var rd = new Ext.data.JsonReader({ fields : [ {name : 'id'}, @@ -306,6 +307,10 @@ }); } +function refreshList(){ +// alert('refreshList') + grid.dwrReload(); +} // 验证条码是否是在发货单中存在--用于外部代理灭菌单 function isBarcodeRepeatForeignProxy(barcode) { if (barcode != null && barcode.length > 0) { @@ -1704,6 +1709,27 @@ // expires : new Date(new Date().getTime() + 2592000000) // })); + var departGroupStore = new Ext.data.SimpleStore({ + fields : ['id', 'shift','departCode' ], + url : WWWROOT + '/disinfectSystem/invoiceDepartmentAction!loadDepartGroup.do' + }); + + departGroupStore.on('load', function(){ + + ShiftDef = Ext.data.Record.create([ + {name: "id", type: "string"}, + {name: "shift", type: "string"}, + {name: "departCode", type: "string"} + ]); + var record = new ShiftDef({ + id: '', + shift: "全部", + departCode: "" + }); + + departGroupStore.insert(0, record); + }); + var columns = [ {header : "流水号",width : 100,dataIndex : 'serialNumber',renderer : renderCallModifyFunction}, {header : "状态",width : 70,dataIndex : 'status',renderer : renderColor}, @@ -1764,6 +1790,8 @@ {type : 'string',dataIndex : 'depart'}, {type : 'string',dataIndex : 'settleAccountsDepart'}, {type : 'list',dataIndex : 'status',options : [ invoiceStatusNo, invoiceStatusYes,invoiceStatusSigned ],phpMode : true}, + {type : 'list',dataIndex : 'isPrint',options : [ '是', '否' ],phpMode : true}, +// {type : 'string',dataIndex : 'isPrint'}, {type : 'date',dataIndex : 'sendTime'}, {type : 'date',dataIndex : 'applicationTime'}, {type : 'string',dataIndex : 'invoicePlanType'}, @@ -2101,7 +2129,84 @@ plugins : filters, autoExpandColumn : 'warehouseName', renderTo : 'gridDiv', - frame : false + frame : false, + getGridParameterMap: function(){ + var selectedTousseTypeCmp = Ext.getCmp('tousseType'); + var invoiceDepartGroupsCmp = Ext.getCmp('invoiceDepartGroup'); + if(!selectedTousseTypeCmp || !invoiceDepartGroupsCmp){ + return null; + } + var selectedTousseType = selectedTousseTypeCmp.getValue(); + var invoiceDepartGroups = invoiceDepartGroupsCmp.getValue(); +// alert(selectedTousseType) +// alert(invoiceDepartGroups) + var obj = { + 'parm_s_selectedTousseType': [selectedTousseType], + 'parm_s_selectedDepartCodes': [invoiceDepartGroups] + }; + return obj; + }, + listeners: { + render : function(grid) { + + var tbar2 = new Ext.Toolbar ({ + items : [{ + text : '科室分组:' + },{ + xtype : 'combo', + id : 'invoiceDepartGroup', + name : 'invoiceDepartGroup', + valueField : 'departCode', + displayField : 'shift', + allowBlank : false, + editable : false, + emptyText:'请选择科室分组', + width : 120, + store : departGroupStore, + forceSelection : true, + triggerAction : 'all', + listeners : { + select : function(combo, record, index){ + refreshList(); + } + }, + anchor : '95%' + }, + { + text : '物品类型:' + },{ + xtype : 'multiSelect', + id : 'tousseType', + name : 'tousseType', + valueField : 'value', + displayField : 'key', + allowBlank : true, + editable : false, + fieldLabel:'类型', + width : 300, + emptyText:'请选择物品类型', + mode:'local', + store : new Ext.data.SimpleStore({ + data:tousseTypeDataArray, + fields:['key','value'] + }), +// forceSelection : true, + triggerAction : 'all', + listeners : { + select : function(combo, record, index){ + refreshList(); + } + }, + anchor : '95%' + } + ] + }); + tbar2.render(grid.tbar); + // 自动加载列表 + Ext.getCmp('tousseType').selectAll(); +// refreshList(); + } + } }, readerDetail, InvoiceTableManager.findInvoiceTableList, null Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.jsp =================================================================== diff -u -r17478 -r18448 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.jsp (.../invoiceView.jsp) (revision 17478) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.jsp (.../invoiceView.jsp) (revision 18448) @@ -21,14 +21,17 @@ <%@ include file="/common/includeExtJs4_2.jsp"%> + + +