Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/washBasketMonitorView.js =================================================================== diff -u -r13819 -r16144 --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/washBasketMonitorView.js (.../washBasketMonitorView.js) (revision 13819) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/washBasketMonitorView.js (.../washBasketMonitorView.js) (revision 16144) @@ -4,7 +4,64 @@ var washingMachineStore;// 清洗程序 var rinserStore;// 清洗机 var barcode = ''; +var basketStore; //左边灭菌篮筐的数据储存器 +function isDetermineKey(){ + + var searchKeyWord = Ext4.getCmp('searchKeyWord').getValue(); + var searchKeyWordReg = /(\d){9}/; + + if (searchKeyWord.length == 9 && searchKeyWordReg.test(searchKeyWord)) { //执行扫条码 + Ext4.Ajax.request({ + url : WWWROOT + '/disinfectSystem/baseData/containerAction!checkBarcode.do', + method : 'POST', + params : {barcode : searchKeyWord}, + success : function(response, options) { + Ext4.getCmp('searchKeyWord').setValue(''); + var result = Ext4.decode(response.responseText); + if (result.success && result.purpose == '清洗筐') { + basketStore.proxy.extraParams.basketDarcode = searchKeyWord; + basketStore.reload(); + basketStore.proxy.extraParams.basketDarcode = null; //请求完毕,把这个参数置空,以免影响后面的请求 + + itemsInBasketGrid.setTitle("清洗筐【" + result.containerName + "】内物品清单"); + treeStore.proxy.extraParams = {barcode : searchKeyWord}; + treeStore.reload(); + } else { + alert("请扫描清洗篮筐的条码"); + } + }, + failure : function(response, options) { + alert("数据加载异常!"); + } + }); + } else { //执行搜索列 + search(); + } + +} + +/** + * 搜索执行的方法 + * + */ +function search() { + 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(); + 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'; @@ -15,7 +72,55 @@ {text : "篮筐条码",width : 150,dataIndex : 'barcode'}, {text : "清洗分类类型",width : 150,dataIndex : 'washClassifyType'} ]; - var basketStore = new Ext4.data.JsonStore({ + + var gridTbar = ['->', { + width : 70, + text : '搜索列', + id : 'searchButton', + menu : { + id : 'searchMenu', + items : [{ + xtype : 'menucheckitem', + name : 'containerName', + checked : true, + text : '篮筐名' + }, { + xtype : 'menucheckitem', + name : 'status', + checked : true, + text : '篮筐状态' + }, { + xtype : 'menucheckitem', + name : 'barcode', + checked : true, + text : '篮筐条码' + }] + }, + listeners : { + focus : function (thisButton, The, eOpts) { + Ext4.getCmp('searchKeyWord').focus(); + } + } + }, { + xtype : 'textfield', + name : 'searchKeyWord', + id : 'searchKeyWord', + enableKeyEvents : true, + listeners : { + keydown : function (thisTextfield, e, eOpts) { + if (e.keyCode == 13) { + isDetermineKey(); + } + } + } + }, { + text : '搜索', + handler : function (thisButton) { + search(); + } + }]; + + basketStore = new Ext4.data.JsonStore({ proxy : { type : 'ajax', url : WWWROOT + '/disinfectSystem/baseData/containerAction!getAllContainersByPurpose.do', @@ -40,6 +145,7 @@ grid = new Ext4.grid.Panel({ title : '清洗篮筐列表', columns : columns, + tbar : gridTbar, frame : false, autoScroll : true, store: basketStore, Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java =================================================================== diff -u -r15819 -r16144 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 15819) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 16144) @@ -25,7 +25,13 @@ public List getAllContainer(); - public List getDepartmentContainerByPurpose(String purpose,String departCode); + /** + * 根据"处理科室编码"和"用途"两个字段获取容器 + * @param purpose 用途 + * @param departCode 处理科室编码 + * @return + */ + public List getContainerListByPurposeAndDepartCode(String purpose,String departCode); public Container getContainerByBarcode(String barcode); public List getContainerByPurpose(String purpose); @@ -57,19 +63,17 @@ public List callVirtualContainer(int amount , String taskGroup); /** - * 2016-09-27(cjr) * 根据sql得到篮筐的集合 - * @param sql:要查询的sql语句 - * @return:List + * @param sql 要查询的sql语句 + * @return */ public List getContainerListBySql(String sql); /** - * 2016-09-27(cjr) * 根据属性得到篮筐的集合(只适合单个属性) - * @param propertyName:属性名称 - * @param propertyValue:属性值 - * @return:List + * @param propertyName 属性名称 + * @param propertyValue 属性值 + * @return */ public List getContainerListByProperty(String propertyName, String propertyValue); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r16127 -r16144 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 16127) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 16144) @@ -551,7 +551,7 @@ } } /** - * 灭菌篮筐监控,加载条码对应的篮筐所装物品或已灭菌的物品 + * 灭菌篮筐监控和虚拟篮筐监控,加载条码对应的篮筐所装物品或已灭菌的物品 * * 2014-8-20 */ @@ -600,7 +600,7 @@ } basketObj.put("children", children); - basketObj.put("expanded", flag); //(cjr) + basketObj.put("expanded", flag); basketObj.put("expandable", true); array.add(basketObj); flag = false; @@ -1213,35 +1213,4 @@ } } - /** - * 扫描灭菌篮筐时,验证灭菌篮筐的条码是否合格 - * 2016-09-27(cjr) - */ - public void checkBarcode() { - - JSONObject jSONObject = new JSONObject(); - String basketBarcode = StrutsParamUtils.getPraramValue("barcode", ""); - if(StringUtils.isNotBlank(basketBarcode)){ - Container container = containerManager.getContainerByBarcode(basketBarcode); - if (container != null && Container.CONTAINER_PURPOSE_DISINFECTION.equals(container.getPurpose())) { - String containerName = getContainerNameByBasketBarcode(basketBarcode); - jSONObject.put("success", true); - jSONObject.put("containerName", containerName); - } else { - jSONObject.put("success", false); - } - - - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - PrintWriter out; - try { - out = response.getWriter(); - out.print(jSONObject.toString()); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java =================================================================== diff -u -r15771 -r16144 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 15771) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 16144) @@ -411,6 +411,7 @@ } } jsonStr.append("]"); + jsonStr.append(i==0?",'expanded':true":""); //自动展开第一个清洗篮筐的树形节点 jsonStr.append("}"); if (i != list.size()-1) { jsonStr.append(","); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r15819 -r16144 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 15819) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 16144) @@ -107,12 +107,16 @@ String hql = " where po.purpose='" + purpose + "' and po.status='" + status + "'"; return objectDao.findBySql(Container.class.getSimpleName(), hql); } + /** - * 通过当前登录科室和篮筐的用途加载 + * 根据"处理科室编码"和"用途"两个字段获取容器 + * @param purpose 用途 + * @param departCode 处理科室编码 + * @return */ @SuppressWarnings("unchecked") @Override - public List getDepartmentContainerByPurpose(String purpose,String departCode) { + public List getContainerListByPurposeAndDepartCode(String purpose,String departCode) { String sql = "where 1=1 "; if(StringUtils.isNotBlank(departCode)){ Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/virtualBasketMonitorView.js =================================================================== diff -u -r12331 -r16144 --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/virtualBasketMonitorView.js (.../virtualBasketMonitorView.js) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/virtualBasketMonitorView.js (.../virtualBasketMonitorView.js) (revision 16144) @@ -4,7 +4,29 @@ var washingMachineStore;// 清洗程序 var rinserStore;// 清洗机 var barcode = ''; +var basketStore; //左边灭菌篮筐的数据储存器 +/** + * 搜索执行的方法 + * + */ +function search() { + 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(); + basketStore.proxy.extraParams.searchKeyWord = null; + basketStore.proxy.extraParams.searchColumns = null; + Ext4.getCmp('searchKeyWord').setValue(''); +} + function renderColor(v, p, record){ var isCurrent = record.data['isCurrent']; var color = ""; @@ -24,7 +46,7 @@ {text : "是否当前篮筐",width : 120,dataIndex : 'isCurrent', renderer : renderColor}, {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', @@ -46,9 +68,62 @@ }); basketStore.reload(); + var gridTbar = ['->', { + width : 70, + text : '搜索列', + id : 'searchButton', + menu : { + id : 'searchMenu', + items : [{ + xtype : 'menucheckitem', + name : 'containerName', + checked : true, + text : '篮筐名' + }, { + xtype : 'menucheckitem', + name : 'status', + checked : true, + text : '篮筐状态' + }, { + xtype : 'menucheckitem', + name : 'isCurrent', + checked : true, + text : '是否当前篮筐' + }, { + xtype : 'menucheckitem', + name : 'barcode', + checked : true, + text : '篮筐条码' + }] + }, + listeners : { + focus : function (thisButton, The, eOpts) { + Ext4.getCmp('searchKeyWord').focus(); + } + } + }, { + xtype : 'textfield', + name : 'searchKeyWord', + id : 'searchKeyWord', + enableKeyEvents : true, + listeners : { + keydown : function (thisTextfield, e, eOpts) { + if (e.keyCode == 13) { + search(); + } + } + } + }, { + text : '搜索', + handler : function (thisButton) { + search(); + } + }]; + grid = new Ext4.grid.Panel({ title : '虚拟篮筐列表', columns : columns, + tbar : gridTbar, frame : false, autoScroll : true, store: basketStore, @@ -122,7 +197,7 @@ border : false, viewConfig : {loadMask : {msg : '正在加载,请稍候...'}}, store: treeStore - }) + }); var viewport = new Ext4.container.Viewport({ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java =================================================================== diff -u -r15183 -r16144 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java (.../ContainerAction.java) (revision 15183) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java (.../ContainerAction.java) (revision 16144) @@ -27,6 +27,7 @@ import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JsonPropertyFilter; import com.forgon.tools.string.StringTools; @@ -92,10 +93,9 @@ } /** - * 通过篮筐用途(灭菌筐、清洗筐)加载篮筐 + * 加载篮筐监控的视图数据(包括但不限于灭菌筐、清洗筐、虚拟篮筐)
+ * 通过前台传的purpose参数,可以知道具体需要返回那个哪种篮筐的数据 * - * 2014-7-3 - * forgonvoid */ public void getAllContainersByPurpose(){ @@ -104,24 +104,22 @@ String searchKeyWord = StrutsParamUtils.getPraramValue("searchKeyWord", null); String searchColumns = StrutsParamUtils.getPraramValue("searchColumns", null); - String sterileBasketDarcode = StrutsParamUtils.getPraramValue("sterileBasketDarcode", null); //这个参数只供给扫条码灭菌篮筐使用 + String basketDarcode = StrutsParamUtils.getPraramValue("basketDarcode", null); if(StringUtils.isNotBlank(purpose)){ List containers = new ArrayList(); String sql = ""; - if (searchKeyWord != null && searchColumns != null) { //关键字检索执行的函数(cjr) - - String searchKeyWord2 = ""; //界面显示的是"灭菌中",数据库是"灭菌",这里需要处理一下在进行检索 + if (searchKeyWord != null && searchColumns != null) { //关键字检索执行的函数 String[] searchColumnArray = searchColumns.split(";"); for (String searchColumn : searchColumnArray) { - if ("status".equals(searchColumn)) { - if (searchKeyWord.equals(TousseInstance.STATUS_STERILING) || searchKeyWord.equals("菌中") + if ("status".equals(searchColumn)) { //界面显示的是"灭菌中",数据库是"灭菌",这里需要处理一下再进行检索 + if (searchKeyWord.equals(TousseInstance.STATUS_STERILING) + || searchKeyWord.equals("菌中") || searchKeyWord.equals("中")) { - searchKeyWord2 = Container.CONTAINER_STATUS_STERILIZING; - sql += "po." + searchColumn + "='" + searchKeyWord2 + "' or "; + sql += "po." + searchColumn + "='" + Container.CONTAINER_STATUS_STERILIZING + "' or "; } else { sql += "po." + searchColumn + " like '%" + searchKeyWord + "%' or "; } @@ -130,20 +128,23 @@ } } sql = sql.substring(0, sql.length() - 4); - sql = " where 1 = 1 and (" + sql + ")" + " and po.purpose = '" + purpose + "'" + (departCode != null ? " and po.departCode = '" + departCode + "'" : ""); + sql = "where 1=1 and (" + sql+ ")" + " and po.purpose='" + purpose + "'" + (departCode != null ? " and po.departCode='" + departCode + "'" : ""); containers = containerManager.getContainerListBySql(sql); - - } else if (sterileBasketDarcode != null) { //扫条码灭菌篮筐执行的函数 - containers = containerManager.getContainerListByProperty("barcode", sterileBasketDarcode); - } else { //关键字检索时没传出关键字执行的函数(cjr) - containers = containerManager.getDepartmentContainerByPurpose(purpose, departCode); + } else if (basketDarcode != null) { //扫条码灭菌篮筐执行的函数 + containers = containerManager.getContainerListByProperty("barcode", basketDarcode); + } else { //其余的全查 + containers = containerManager.getContainerListByPurposeAndDepartCode(purpose, departCode); } - + JSONArray array = new JSONArray(); if (containers != null && containers.size() > 0) { for (int i = 0; i < containers.size(); i++) { Container container = containers.get(i); + if (!StringUtils.equals(container.getDepartCode(), departCode)) { //不是本科室的容器 + continue; + } + JSONObject obj = new JSONObject(); obj.put("containerName", container.getContainerName()); obj.put("status", container.getStatus()); @@ -344,4 +345,28 @@ public void prepare() throws Exception { iniInfo(); } + + /** + * 扫描篮筐时,验证条码是否合格 + * + */ + public void checkBarcode() { + + JSONObject jSONObject = new JSONObject(); + String basketBarcode = StrutsParamUtils.getPraramValue("barcode", ""); + if(StringUtils.isNotBlank(basketBarcode)){ + Container container = containerManager.getContainerByBarcode(basketBarcode); + if (container != null) { + jSONObject.put("success", true); + jSONObject.put("purpose", container.getPurpose()); + jSONObject.put("containerName", container.getContainerName()); + } else { + jSONObject.put("success", false); + } + StrutsResponseUtils.output(jSONObject); + } + + } + + } Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js =================================================================== diff -u -r15177 -r16144 --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js (.../sterileBasketMonitorView.js) (revision 15177) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js (.../sterileBasketMonitorView.js) (revision 16144) @@ -15,32 +15,29 @@ var searchKeyWordReg = /(\d){9}/; if (searchKeyWord.length == 9 && searchKeyWordReg.test(searchKeyWord)) { //执行扫条码 - Ext4.Ajax.request({ - url : WWWROOT + '/disinfectSystem/tousseInstanceAction!checkBarcode.do', + url : WWWROOT + '/disinfectSystem/baseData/containerAction!checkBarcode.do', method : 'POST', 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; + if (result.success && result.purpose == '灭菌筐') { + basketStore.proxy.extraParams.basketDarcode = searchKeyWord; basketStore.reload(); - basketStore.proxy.extraParams.sterileBasketDarcode = null; //请求完毕,把这个参数置空,以免影响后面的请求 + basketStore.proxy.extraParams.basketDarcode = null; //请求完毕,把这个参数置空,以免影响后面的请求 itemsInBasketGrid.setTitle("灭菌筐【" + result.containerName + "】历史装载记录"); treeStore.proxy.extraParams = {barcode : searchKeyWord}; treeStore.reload(); } else { alert("请扫描灭菌篮筐的条码"); } - }, failure : function(response, options) { alert("数据加载异常!"); } }); - } else { //执行搜索列 search(); }