Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/InvoiceTableManager.java =================================================================== diff -u -r18448 -r18588 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/InvoiceTableManager.java (.../InvoiceTableManager.java) (revision 18448) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/InvoiceTableManager.java (.../InvoiceTableManager.java) (revision 18588) @@ -14,6 +14,7 @@ import com.forgon.Constants; import com.forgon.component.grid.GridManager; +import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; import com.forgon.directory.model.OrgUnit; @@ -24,7 +25,6 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; -import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; @@ -38,6 +38,7 @@ import com.forgon.security.model.User; import com.forgon.tools.MathTools; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.string.StringTools; import com.forgon.tools.util.SqlUtils; import edu.emory.mathcs.backport.java.util.Arrays; @@ -64,6 +65,12 @@ private OrgUnitManager orgUnitManager; + private DateQueryAdapter dateQueryAdapter; + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } + public void setDiposableGoodBatchStockManager( DiposableGoodBatchStockManager diposableGoodBatchStockManager) { this.diposableGoodBatchStockManager = diposableGoodBatchStockManager; @@ -433,21 +440,63 @@ return str; } +// /** +// * 查询材料发货列表 +// * @param parameterMap +// * @return +// */ +// public String findMaterialInvoiceTableList(Map> parameterMap) { +// Map sqlWhereParamMap = gridManager +// .getParamFromView(parameterMap); +// +// String sql = " where po.orgUnitCoding = '" +// + AcegiHelper.getLoginUser() +// .getOrgUnitCodingFromSupplyRoomConfig() + "'"; +// String json = gridManager.renderGrid(parameterMap, +// MaterialInvoice.class.getSimpleName(), sql, new String[] { +// "materialInvoiceItem" }); +// return json; +// } /** * 查询材料发货列表 * @param parameterMap * @return */ public String findMaterialInvoiceTableList(Map> parameterMap) { - Map sqlWhereParamMap = gridManager - .getParamFromView(parameterMap); - - String sql = " where po.orgUnitCoding = '" + StringBuilder sql = new StringBuilder(); + sql.append(" where po.orgUnitCoding = '" + AcegiHelper.getLoginUser() - .getOrgUnitCodingFromSupplyRoomConfig() + "'"; + .getOrgUnitCodingFromSupplyRoomConfig() + "'"); + Map sqlWhereParamMap = gridManager.getParamFromView(parameterMap); + String startDate = sqlWhereParamMap.get("startDate"); + String endDate = sqlWhereParamMap.get("endDate"); + String keyWord = sqlWhereParamMap.get("keyWord"); + String departSearch = sqlWhereParamMap.get("departSearch"); + //根据发货检索 + String sendTimeSql = ""; + if (StringTools.isNotBlank(startDate) + && StringTools.isNotBlank(endDate)) { + sendTimeSql = " and " + dateQueryAdapter.dateAreaSql("po.sendTime", startDate, endDate, true); + } + //根据材料名称检索 + String keyWordSql = ""; + if (StringTools.isNotEmpty(keyWord)) { + keyWordSql = String.format(" and po.id in (select mic.id from MaterialItem mi join mi.materialInvoice mic where mi.materialDefinitionId = '%s') ", + keyWord); + } + //根据申请科室检索 + String departSearchSql = ""; + if (StringTools.isNotBlank(departSearch)) { + departSearchSql = String.format(" and po.depart='%s' ", departSearch); + } + sql.append(sendTimeSql); + sql.append(departSearchSql); + sql.append(keyWordSql); + String json = gridManager.renderGrid(parameterMap, - MaterialInvoice.class.getSimpleName(), sql, new String[] { + MaterialInvoice.class.getSimpleName(), sql.toString(), new String[] { "materialInvoiceItem" }); + return json; } Index: ssts-web/src/main/webapp/disinfectsystem/invoice/materialInvoiceView.js =================================================================== diff -u -r18549 -r18588 --- ssts-web/src/main/webapp/disinfectsystem/invoice/materialInvoiceView.js (.../materialInvoiceView.js) (revision 18549) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/materialInvoiceView.js (.../materialInvoiceView.js) (revision 18588) @@ -34,6 +34,48 @@ {name : 'userecordDepartCoding'} ]); +var departRecord = Ext.data.Record.create([ + {name : 'id'}, + {name : 'name'} + ]); + +var departJsonStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getAllOrgUnitName.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + root : 'data' + },departRecord + ), + listeners:{ + load : function(thiz,records,options){ + if(records.length != 1){ + // thiz.insert(0, new departRecord({id:"-1",name:"全部"})); + // Ext.getCmp('departSearch').setValue("全部"); + }else{ + Ext.getCmp('departSearch').setValue(records[0].data.name); + } + } + } +}); +departJsonStore.load(); + +//材料 +var materialStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!getMaterialDefinitionDatas.do?selectType=material', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'} + ]) +}); + //添加材料发货 function addMaterialInvoice(id) { //var myMask = new top.Ext.LoadMask(top.Ext.getBody() , {msg:"正在加载,请稍候..."}); @@ -843,7 +885,24 @@ } } - +function initQueryValueAndReload() { + var departSearch = $Id('departSearch').value; + var startDate = $Id('startDate').value; + var endDate = $Id('endDate').value; + var code = Ext.getCmp('code').getValue(); + if(startDate || endDate){ + if(!compareDate(startDate,endDate)){ + showResult("开始时间不能大于结束时间"); + return; + } + } + + $Id('parm_s_startDate').value = startDate; + $Id('parm_s_endDate').value = endDate; + $Id('parm_s_keyWord').value = code; + $Id('parm_s_departSearch').value = departSearch; + grid.dwrReload(); +} /** * 修改记录 * modifyRecord函数 触发modify函数调用,并传入当前列的值以及record.data对象 @@ -917,12 +976,6 @@ deleteMaterialInvoice(grid); } }, { - text : '刷新列表', - iconCls : 'btn_ext_refresh1', - handler : function() { - grid.dwrReload(); - } - }, { text : '批量打印', iconCls : 'icon_print', handler : function() { @@ -943,7 +996,96 @@ plugins: filters, autoExpandColumn : 'operationRemark', renderTo : 'gridDiv', - frame : false + frame : false, + listeners: { + render : function(grid) { + + var tbar2 = new Ext.Toolbar ({ + items : [{ + text : '申请科室:' + },{ + xtype : 'combo', + id : 'departSearch', + name : 'departSearch', + queryParam : 'spell', + minChars : 0, + width : 165, + valueField : 'name', + displayField : 'name', + store : departJsonStore, + forceSelection : true, + lazyInit : true, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true, + anchor : '95%' + },{ + text : '物品名称:' + },{ + xtype : 'combo', + id : 'code', + name : 'code', + queryParam : 'spell', + minChars : 0, + valueField : 'id', + displayField : 'name', + width : 165, + store : materialStore, + forceSelection : true, + lazyInit : true, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true, + anchor : '97%', + listeners : { + select : function(combo, record, index) { + Ext.getCmp('code').setValue(record.data.id); + } + } + },{ + text : '开始日期:' + },{ + xtype : 'datefield', + id : 'startDate', + name : 'startDate', + editable:true, + format:'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + allowBlank : true, + readOnly : false, + width : 100, + anchor : '95%' + },{ + text : '结束日期:' + },{ + xtype : 'datefield', + id : 'endDate', + name : 'endDate', + readOnly : false, + editable:false, + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + format:'Y-m-d', + allowBlank : true, + width : 100, + anchor : '95%' + },{ + text : '刷新列表', + iconCls : 'btn_ext_refresh1', + handler : function() { + initQueryValueAndReload(); + } + } + ] + }); + tbar2.render(grid.tbar); + // 自动加载列表 + // Ext.getCmp('tousseType').selectAll(); + // refreshList(); + } + } + }, readerDetail, InvoiceTableManager.findMaterialInvoiceTableList, null Index: ssts-web/src/main/webapp/disinfectsystem/invoice/materialInvoiceView.jsp =================================================================== diff -u -r18549 -r18588 --- ssts-web/src/main/webapp/disinfectsystem/invoice/materialInvoiceView.jsp (.../materialInvoiceView.jsp) (revision 18549) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/materialInvoiceView.jsp (.../materialInvoiceView.jsp) (revision 18588) @@ -73,5 +73,11 @@ +
+ + + + +
\ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js =================================================================== diff -u -r18491 -r18588 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js (.../invoiceView.js) (revision 18491) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceView.js (.../invoiceView.js) (revision 18588) @@ -1948,6 +1948,57 @@ handler : function() { mergePrintInvoices(); } + },{ + 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(); + }, + render : function() { + Ext.getCmp('tousseType').selectAll(); + } + }, + anchor : '95%' },{ type : 'button', text : '打印'+entityName, @@ -2142,68 +2193,8 @@ '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