Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java =================================================================== diff -u -r15146 -r15156 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 15146) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 15156) @@ -56,10 +56,12 @@ public List callVirtualContainer(int amount , String taskGroup); /** + * 2016-09-27(cjr) * 根据sql得到篮筐的集合 - * @param sql + * @param sql:要查询的sql语句 + * @param searchBarcode:过滤的篮筐条码 * @return */ - public List getContainerListBySql(String sql); + public List getContainerListBySql(String sql, String searchBarcode); } Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js =================================================================== diff -u -r15146 -r15156 --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js (.../sterileBasketMonitorView.js) (revision 15146) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js (.../sterileBasketMonitorView.js) (revision 15156) @@ -6,105 +6,73 @@ var barcode = ''; var itemsInBasketGrid; //右边灭菌篮筐的历史装载记录的视图 var treeStore; //右边灭菌篮筐的历史装载记录的数据储存器 -var barcodeTemp = ''; //输入的条码字符串 +var basketStore; //左边灭菌篮筐的数据储存器 -/*--------------------------- -功能:停止事件冒泡 ----------------------------*/ -function stopBubble(e) { - //如果提供了事件对象,则这是一个非IE浏览器 - if ( e && e.stopPropagation ) - //因此它支持W3C的stopPropagation()方法 - e.stopPropagation(); - else - //否则,我们需要使用IE的方式来取消事件冒泡 - window.event.cancelBubble = true; -} -//阻止浏览器的默认行为 -function stopDefault( e ) { - //阻止默认浏览器动作(W3C) - if ( e && e.preventDefault ) - e.preventDefault(); - //IE中阻止函数器默认动作的方式 - else - window.event.returnValue = false; - return false; -} -function loadBarcodeDevice(barcodeTemp){ +function isDetermineKey(){ - if(barcodeTemp.length >= 9){ - var barcode = barcodeTemp.substring(barcodeTemp.length-9,barcodeTemp.length); - barcodeTemp=''; + var searchKeyWord = Ext4.getCmp('searchKeyWord').getValue(); + var searchKeyWordReg = /(\d){9}/; + + if (searchKeyWord.length == 9 && searchKeyWordReg.test(searchKeyWord)) { //执行扫条码 - Ext4.Ajax.request({ + Ext4.Ajax.request({ url : WWWROOT + '/disinfectSystem/tousseInstanceAction!checkBarcode.do', method : 'POST', - params : {barcode : barcode}, + params : {barcode : searchKeyWord}, success : function(response, options) { + Ext4.getCmp('searchKeyWord').setValue(''); var result = Ext4.decode(response.responseText); if (result.success) { + basketStore.proxy.extraParams.sterileBasketDarcode = searchKeyWord; + basketStore.reload(); + basketStore.proxy.extraParams.sterileBasketDarcode = null; //请求完毕,把这个参数置空,以免影响后面的请求 + itemsInBasketGrid.setTitle("灭菌筐【" + result.containerName + "】历史装载记录"); - treeStore.proxy.extraParams = {barcode : barcode}; + treeStore.proxy.extraParams = {barcode : searchKeyWord}; treeStore.reload(); } else { - alert("请扫描灭菌篮筐的条码!"); + alert("请扫描灭菌篮筐的条码"); } }, failure : function(response, options) { alert("数据加载异常!"); } }); - - }else{ - alert('条码长度不符合规范。'); - } + + } else { //执行搜索列 + search(); + } } - -//在页面无需将光标定位在输入框相应全局的扫描枪事件 -function showKeyDown(){ +/** + * 搜索执行的方法 + * + */ +function search() { + var searchColumns = ''; + Ext4.getCmp('searchMenu').items.each(function(item) { + if (item.checked) { + searchColumns += item.name + ';'; + } + }); + searchColumns = searchColumns.substring(0, searchColumns.length - 1); - if(event.keyCode == 48 || event.keyCode == 96){ - barcodeTemp += '0'; - }else if(event.keyCode == 49 || event.keyCode == 97){ - barcodeTemp += '1'; - }else if(event.keyCode == 50 || event.keyCode == 98){ - barcodeTemp += '2'; - }else if(event.keyCode == 51 || event.keyCode == 99){ - barcodeTemp += '3'; - }else if(event.keyCode == 52 || event.keyCode == 100){ - barcodeTemp += '4'; - }else if(event.keyCode == 53 || event.keyCode == 101){ - barcodeTemp += '5'; - }else if(event.keyCode == 54 || event.keyCode == 102){ - barcodeTemp += '6'; - }else if(event.keyCode == 55 || event.keyCode == 103){ - barcodeTemp += '7'; - }else if(event.keyCode == 56 || event.keyCode == 104){ - barcodeTemp += '8'; - }else if(event.keyCode == 57 || event.keyCode == 105){ - barcodeTemp += '9'; - }else if(event.keyCode == 13){ - loadBarcodeDevice(barcodeTemp); - barcodeTemp=''; - } -// stopBubble(event); -// stopDefault(event); + basketStore.proxy.extraParams.searchKeyWord = Ext4.getCmp('searchKeyWord').getValue(); + basketStore.proxy.extraParams.searchColumns = searchColumns; + basketStore.reload(); + basketStore.proxy.extraParams.searchKeyWord = null; + basketStore.proxy.extraParams.searchColumns = null; + Ext4.getCmp('searchKeyWord').setValue(''); } - - Ext4.onReady(function() { Ext4.QuickTips.init(); Ext4.BLANK_IMAGE_URL = WWWROOT + '/ext/resources/images/default/s.gif'; - window.focus(); - document.onkeydown = showKeyDown; - var columns = [ {text : "篮筐名",width : 180,dataIndex : 'containerName'}, {text : "篮筐状态",width : 100,dataIndex : 'status',renderer: function(v,p,record){ @@ -115,7 +83,7 @@ }}, {text : "篮筐条码",width : 150,dataIndex : 'barcode'} ]; - var basketStore = new Ext4.data.JsonStore({ + basketStore = new Ext4.data.JsonStore({ proxy : { type : 'ajax', url : WWWROOT + '/disinfectSystem/baseData/containerAction!getAllContainersByPurpose.do', @@ -151,6 +119,11 @@ name : 'status', checked : true, text : '篮筐状态' + }, { + xtype : 'menucheckitem', + name : 'barcode', + checked : true, + text : '篮筐条码' }] }, listeners : { @@ -162,27 +135,18 @@ xtype : 'textfield', name : 'searchKeyWord', id : 'searchKeyWord', + enableKeyEvents : true, listeners : { keydown : function (thisTextfield, e, eOpts) { - alert(89); + if (e.keyCode == 13) { + isDetermineKey(); + } } } }, { text : '搜索', handler : function (thisButton) { - var searchColumns = ''; - Ext4.getCmp('searchMenu').items.each(function(item) { - if (item.checked) { - searchColumns += item.name + ';'; - } - }); - searchColumns = searchColumns.substring(0, searchColumns.length - 1); - - basketStore.proxy.extraParams.searchKeyWord = Ext4.getCmp('searchKeyWord').getValue(); - basketStore.proxy.extraParams.searchColumns = searchColumns; - - basketStore.reload(); - Ext4.getCmp('searchKeyWord').setValue(''); + search(); } }]; @@ -205,7 +169,6 @@ itemsInBasketGrid.setTitle("灭菌筐【" + record.get('containerName') + "】历史装载记录"); treeStore.proxy.extraParams = {barcode : barcode}; treeStore.reload(); - basketStore.reload(); } } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r15146 -r15156 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 15146) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 15156) @@ -461,10 +461,17 @@ } @Override - public List getContainerListBySql(String sql) { + public List getContainerListBySql(String sql, String searchBarcode) { - return objectDao.findBySql(Container.class.getSimpleName(), sql); + if (sql == null) { + return objectDao.findByProperty(Container.class.getSimpleName(), "barcode", searchBarcode); + } else if (searchBarcode == null) { + return objectDao.findBySql(Container.class.getSimpleName(), sql); + } else { + return new ArrayList(); + } + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r15135 -r15156 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 15135) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 15156) @@ -1169,7 +1169,7 @@ /** * 扫描灭菌篮筐时,验证灭菌篮筐的条码是否合格 - * + * 2016-09-27(cjr) */ public void checkBarcode() { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java =================================================================== diff -u -r15146 -r15156 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java (.../ContainerAction.java) (revision 15146) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java (.../ContainerAction.java) (revision 15156) @@ -101,23 +101,25 @@ String departCode = AcegiHelper.getLoginUser().getCurrentOrgUnitCode(); String searchKeyWord = StrutsParamUtils.getPraramValue("searchKeyWord", null); String searchColumns = StrutsParamUtils.getPraramValue("searchColumns", null); + String sterileBasketDarcode = StrutsParamUtils.getPraramValue("sterileBasketDarcode", null); //这个参数只供给扫条码灭菌篮筐使用 if(StringUtils.isNotBlank(purpose)){ List containers = new ArrayList(); - if (searchKeyWord != null && searchColumns != null) { - String sql = ""; - String[] searchColumnArray = searchColumns.split(";"); + String sql = ""; + + if (searchKeyWord != null && searchColumns != null) { //搜索列执行的函数(cjr) + String[] searchColumnArray = searchColumns.split(";"); for (String searchColumn : searchColumnArray) { sql += "po." + searchColumn + " like '%" + searchKeyWord + "%' or "; } sql = sql.substring(0, sql.length() - 4); sql = " where 1 = 1 and (" + sql + ")" + " and po.purpose = '" + purpose + "'"; + containers = containerManager.getContainerListBySql(sql, null); - - containers = containerManager.getContainerListBySql(sql); - + } else if (sterileBasketDarcode != null) { //扫条码灭菌篮筐执行的函数 + containers = containerManager.getContainerListBySql(null, sterileBasketDarcode); } else { containers = containerManager.getDepartmentContainerByPurpose(purpose,departCode); }