Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js =================================================================== diff -u -r38606 -r40807 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 38606) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 40807) @@ -164,7 +164,7 @@ } //针对删除固定条码 var delTousseByFixedBarcode = function () { - if (typeof (departCoding) == "undefined" || departCoding == "0" ) { + if (typeof (departCoding) == "undefined" || departCoding == "0") { departCoding = ""; } Ext.Ajax.request({ @@ -929,7 +929,7 @@ * 处理多个器械包的灭菌装载 * @param obj json对象,格式:{tousseInstances:[{barcode:'barcode1'},{barcode:'barcode2'},{barcode:'barcode3'}]} */ -function processMultiTousseInstance(obj,newFixedBarcodeArray) { +function processMultiTousseInstance(obj, newFixedBarcodeArray) { //扫描的是包 if (Ext.getCmp('basketBarcode').getValue() == '') { showResult('请先录入篮筐'); @@ -977,7 +977,7 @@ var amountArr = []; var result = Ext.decode(response.responseText); if (result.message == "成功放入篮筐") { - if(!newFixedBarcodeArray){ + if (!newFixedBarcodeArray) { fixedBarcodeIndex++; } reloadReviewedPanel(reviewedPanel, function () { @@ -986,14 +986,14 @@ if (sstsConfig.combineBasketItemStatisticsAndBasketItemDetailsInTheSterilizationLoadingModule && result.data && result.data.length > 0) { reloadBasketGrid(basketBarcode, ''); waitSterileLoadingTousseStore.reload(); - if(newFixedBarcodeArray){ - if(fixedBarcodeIndex < newFixedBarcodeArray.length){ + if (newFixedBarcodeArray) { + if (fixedBarcodeIndex < newFixedBarcodeArray.length) { isLoading = false fixedBarcodeIndex = 0; scanBarcodeAndAddToBasket(newFixedBarcodeArray[fixedBarcodeIndex].barcode, 'scanBarcode'); } - }else { - if(fixedBarcodeIndex < fixedBarcodeArray.length){ + } else { + if (fixedBarcodeIndex < fixedBarcodeArray.length) { isLoading = false scanBarcodeAndAddToBasket(fixedBarcodeArray[fixedBarcodeIndex].barcode, 'scanBarcode'); } @@ -1051,14 +1051,14 @@ Ext.getCmp('barcode').setValue(''); Ext.getCmp('barcodeEnd').setValue(''); Ext.getCmp('barcode').focus(); - if(newFixedBarcodeArray){ - if(fixedBarcodeIndex < newFixedBarcodeArray.length){ + if (newFixedBarcodeArray) { + if (fixedBarcodeIndex < newFixedBarcodeArray.length) { isLoading = false fixedBarcodeIndex = 0; scanBarcodeAndAddToBasket(newFixedBarcodeArray[fixedBarcodeIndex].barcode, 'scanBarcode'); } - }else { - if(fixedBarcodeIndex < fixedBarcodeArray.length){ + } else { + if (fixedBarcodeIndex < fixedBarcodeArray.length) { isLoading = false scanBarcodeAndAddToBasket(fixedBarcodeArray[fixedBarcodeIndex].barcode, 'scanBarcode'); } @@ -1082,12 +1082,18 @@ var searchKeyWordReal = Ext.getCmp('searchKeyWord').getValue(); var departCode = Ext.getCmp('departName').value; var sterilingMode = Ext.getCmp('sterilingMode').value; + var taskGroups = Ext.getCmp('taskGroups').getValue(); //搜索条件中是否包含科室 if (Ext.getCmp('departName').getRawValue() != "") { searchKeyWordReal = searchKeyWordReal + "|" + departCode } + //SZSLGZXYY-41:任务组 + if (taskGroups !== '' && taskGroups.indexOf('全部') >= 0) { + taskGroups = ''; + } + Ext.getCmp('field').setValue(''); Ext.getCmp('direction').setValue(''); @@ -1096,6 +1102,7 @@ params: { searchKeyWordReal: searchKeyWordReal, sterilingMode: sterilingMode, + taskGroups: taskGroups, start: 0, limit: pageSize } @@ -1788,225 +1795,314 @@ } }); + var taskGroupItems = Ext.data.Record.create([ + { name: 'name', type: 'string' } + ]); - waitSterileLoadingTousseGrid = new Ext.grid.GridPanel({ - id: 'waitSterileLoadingTousseGrid', - title: '待灭菌装载器械包信息', - loadMask: true, - width: document.body.clientWidth / 4 + 50, - height: enableBeginEndBarcodeScan ? 300 : 280, - bodyStyle: 'border:1px solid #afd7af', - store: waitSterileLoadingTousseStore, - autoScroll: true,//设置滚动条自动显示 - //如需要显示横向滚动条,则要注释下面的属性 - /*viewConfig: { - forceFit:true - },*/ - //columns: waitSterileLoadingTousseGridColumnArray, - cm: new Ext.grid.ColumnModel(waitSterileLoadingTousseGridColumnArray), - sm: waitSterileLoadingTousseGridSm, - bbar: pageBar, - tbar: [showDepartOfTousseInstanceSterileName, { - xtype: 'combo', - id: 'departName', - name: 'departName', - queryParam: 'spell', - minChars: 0, - valueField: 'departmentCode', - displayField: 'departmentName', - width: 80, - pageSize: pageSize, - listConfig: { width: 300 }, - forceSelection: true, - lazyInit: true, - triggerAction: 'all', - hidden: !showDepartOfTousseInstanceSterile, - hideTrigger: true, - typeAhead: false, - allowBlank: true, - listeners: { - expand: function () {//下拉框宽度调大 - this.view.setWidth(300); - this.list.setWidth(300); - }, - specialkey: function (thisTextfield, e) { - if (e.getKey() == Ext.EventObject.ENTER) { - search(); + //SZSLGZXYY-41:任务组 + var taskGroupStore = new Ext.data.Store({ + proxy: new Ext.data.HttpProxy({ + url: WWWROOT + '/disinfectSystem/baseData/taskGroupAction!getTaskGroupList.do', + method: 'POST' + }), + reader: new Ext.data.JsonReader({ + totalProperty: 'totalCount', + root: 'data' + }, [ + { name: 'name', mapping: 'name' } + ]), + listeners: { + beforeload: function () { + taskGroupStore.baseParams["departCoding"] = orgUnitCoding; + }, + load: function (thiz, records, options) { + if (records.length > 0) { + taskGroupStore.insert(0, new taskGroupItems({ 'name': '全部' })); + for (var i = 0; i < taskGroupStore.getCount(); i++) { + taskGroupStore.getAt(i).set('checked', true) } } - }, - store: new Ext.data.Store({ - pageSize: pageSize, - proxy: new Ext.data.HttpProxy({ - url: WWWROOT + '/systemmanage/orgUnit/searchApplyDepartmentByKeyWord.do', - method: 'POST' - }), - reader: new Ext.data.JsonReader({ - root: 'data', - totalProperty: 'totalCount' - }, [ - { name: 'departmentCode', mapping: 'departmentCode' }, - { name: 'departmentName', mapping: 'departmentName' } - ]) - }) + } } - , '-', { - xtype: 'textfield', - name: 'searchKeyWord', - id: 'searchKeyWord', - width: 80 - }, '灭菌方式:', { - xtype: 'combo', - fieldLabel: '', - id: 'sterilingMode', - name: 'sterilingMode', - width: 100, - valueField: 'value', - displayField: 'value', - store: sterilingModeStore, - allowBlank: true, - editable: false, - forceSelection: true, - triggerAction: 'all', - value: '全部', - anchor: '95%' - }, { - xtype: 'hidden', - name: 'field', - id: 'field' - }, { - xtype: 'hidden', - name: 'direction', - id: 'direction' - }, { - text: '搜索', - handler: function (thisButton) { + }); + + var tbar = [{ + xtype: 'hidden', + name: 'field', + id: 'field' + }, { + xtype: 'hidden', + name: 'direction', + id: 'direction' + }, { + xtype: 'textfield', + hidden: true, + id: 'searchKeyWordReal' + }, showDepartOfTousseInstanceSterileName, { + xtype: 'combo', + id: 'departName', + name: 'departName', + queryParam: 'spell', + minChars: 0, + valueField: 'departmentCode', + displayField: 'departmentName', + width: 80, + pageSize: pageSize, + listConfig: { width: 300 }, + forceSelection: true, + lazyInit: true, + triggerAction: 'all', + hidden: !showDepartOfTousseInstanceSterile, + hideTrigger: true, + typeAhead: false, + allowBlank: true, + listeners: { + expand: function () {//下拉框宽度调大 + this.view.setWidth(300); + this.list.setWidth(300); + }, + specialkey: function (thisTextfield, e) { + if (e.getKey() == Ext.EventObject.ENTER) { search(); } - }, '-', { - text: '载入', - handler: function (thisButton) { - var selectRows = waitSterileLoadingTousseGrid.getSelectionModel().getSelections(); - if (!selectRows || !selectRows.length) { - showResult("请选择需要载入的器械包"); - return false; + } + }, + store: new Ext.data.Store({ + pageSize: pageSize, + proxy: new Ext.data.HttpProxy({ + url: WWWROOT + '/systemmanage/orgUnit/searchApplyDepartmentByKeyWord.do', + method: 'POST' + }), + reader: new Ext.data.JsonReader({ + root: 'data', + totalProperty: 'totalCount' + }, [ + { name: 'departmentCode', mapping: 'departmentCode' }, + { name: 'departmentName', mapping: 'departmentName' } + ]) + }) + }, { + xtype: 'textfield', + name: 'searchKeyWord', + id: 'searchKeyWord', + width: 80 + }, '灭菌方式:', { + xtype: 'combo', + fieldLabel: '', + id: 'sterilingMode', + name: 'sterilingMode', + width: 100, + valueField: 'value', + displayField: 'value', + store: sterilingModeStore, + allowBlank: true, + editable: false, + forceSelection: true, + triggerAction: 'all', + value: '全部', + anchor: '95%' + }] + + var tbarItems = []; + + tbarItems.push('任务组:', { + xtype: 'multiSelect', + id: 'taskGroups', + name: 'taskGroups', + queryParam: 'spell', + minChars: 0, + width: 250, + separator: ';', + valueField: 'name', + displayField: 'name', + store: taskGroupStore, + editable: false, + triggerAction: 'all', + allowBlank: true, + anchor: '95%', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('name') == '全部') { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); } + } - //左边审核列表的包的灭菌方式 - var sterilingModeFromBasketGoodsDetailGrid = getSterilingModeFromBasketGoodsDetailGrid(); - var firstSterilingMode = selectRows[0].data["sterilingMode"]; - //判断所选中的包里是否有灭菌方式不同的包,如果有则进行提示不能扫入 - if (((sterilingModeFromBasketGoodsDetailGrid && sterilingModeFromBasketGoodsDetailGrid.length > 0) || sterilingModeFromBasketGoodsDetailGrid === "") - && firstSterilingMode != sterilingModeFromBasketGoodsDetailGrid) { - var currentSterilingMode = selectRows[0].data["sterilingMode"]; + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function (record) { + if (record.get('name') != '全部' && !record.get(this.checkField)) { + selectAll = false; + return; + } + }, combo); + + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); + } + combo.setValue(combo.getCheckedValue()); + }, + render: function () { + Ext.getCmp('taskGroups').setRawValue('全部'); + } + } + }) + + tbarItems.push({ + text: '搜索', + handler: function (thisButton) { + search(); + } + }, '-', { + text: '载入', + handler: function (thisButton) { + var selectRows = waitSterileLoadingTousseGrid.getSelectionModel().getSelections(); + if (!selectRows || !selectRows.length) { + showResult("请选择需要载入的器械包"); + return false; + } + + //左边审核列表的包的灭菌方式 + var sterilingModeFromBasketGoodsDetailGrid = getSterilingModeFromBasketGoodsDetailGrid(); + var firstSterilingMode = selectRows[0].data["sterilingMode"]; + //判断所选中的包里是否有灭菌方式不同的包,如果有则进行提示不能扫入 + if (((sterilingModeFromBasketGoodsDetailGrid && sterilingModeFromBasketGoodsDetailGrid.length > 0) || sterilingModeFromBasketGoodsDetailGrid === "") + && firstSterilingMode != sterilingModeFromBasketGoodsDetailGrid) { + var currentSterilingMode = selectRows[0].data["sterilingMode"]; + noticeDiffSterilingMessage(top.Ext, getDiffSterilingModeMessage(selectRows[0].data["tousseName"], currentSterilingMode, sterilingModeFromBasketGoodsDetailGrid), function () { + Ext.getCmp('barcode').focus(false, 100); + }); + return false; + } + if (selectRows.length > 1) { + for (var i = 1; i < selectRows.length; i++) { + if (firstSterilingMode != selectRows[i].data["sterilingMode"]) { + var currentSterilingMode = selectRows[i].data["sterilingMode"]; noticeDiffSterilingMessage(top.Ext, getDiffSterilingModeMessage(selectRows[0].data["tousseName"], currentSterilingMode, sterilingModeFromBasketGoodsDetailGrid), function () { Ext.getCmp('barcode').focus(false, 100); }); return false; } - if (selectRows.length > 1) { - for (var i = 1; i < selectRows.length; i++) { - if (firstSterilingMode != selectRows[i].data["sterilingMode"]) { - var currentSterilingMode = selectRows[i].data["sterilingMode"]; - noticeDiffSterilingMessage(top.Ext, getDiffSterilingModeMessage(selectRows[0].data["tousseName"], currentSterilingMode, sterilingModeFromBasketGoodsDetailGrid), function () { - Ext.getCmp('barcode').focus(false, 100); - }); - return false; - } - } + } + } + var selectedBarcodeArray = []; + fixedBarcodeArray = []; + fixedBarcodeIndex = 0; + if (selectRows && selectRows.length && selectRows.length > 0) { + var obj = {}; + var sterilingModeObject = {}; + var sterilingModeArray = []; + var alreadyAddBlankSterilingMode = false; + for (var i = 0; i < selectRows.length; i++) { + if (selectRows[i].json.isTraceable == '是') { + selectedBarcodeArray.push({ "barcode": selectRows[i].data["objBarcode"] }); + } else { + fixedBarcodeArray.push({ "barcode": selectRows[i].data["objBarcode"] }); } - var selectedBarcodeArray = []; - fixedBarcodeArray = []; - fixedBarcodeIndex = 0; - if (selectRows && selectRows.length && selectRows.length > 0) { - var obj = {}; - var sterilingModeObject = {}; - var sterilingModeArray = []; - var alreadyAddBlankSterilingMode = false; - for (var i = 0; i < selectRows.length; i++) { - if (selectRows[i].json.isTraceable == '是') { - selectedBarcodeArray.push({ "barcode": selectRows[i].data["objBarcode"] }); - } else { - fixedBarcodeArray.push({ "barcode": selectRows[i].data["objBarcode"] }); - } - var sterilingModeData = selectRows[i].data["sterilingMode"]; - if (sterilingModeData) { - if (!sterilingModeObject[sterilingModeData]) { - sterilingModeArray.push(sterilingModeData); - sterilingModeObject[sterilingModeData] = sterilingModeData; - } - } else { - if (!alreadyAddBlankSterilingMode) { - sterilingModeArray.push(""); - alreadyAddBlankSterilingMode = true; - } - } + var sterilingModeData = selectRows[i].data["sterilingMode"]; + if (sterilingModeData) { + if (!sterilingModeObject[sterilingModeData]) { + sterilingModeArray.push(sterilingModeData); + sterilingModeObject[sterilingModeData] = sterilingModeData; } - if (sterilingModeArray.length > 1) { - showResult("所选的器械包有多种不同的灭菌方式,请选择相同灭菌方式的器械入筐"); - return false; + } else { + if (!alreadyAddBlankSterilingMode) { + sterilingModeArray.push(""); + alreadyAddBlankSterilingMode = true; } - if (selectedBarcodeArray.length > 0) { - DWREngine.setAsync(false); - var barcode = Ext.getCmp('barcode').getValue(); - var barcodeEnd = Ext.getCmp('barcodeEnd').getValue(); - SterileLoadingTableManager.getResultJsonStrByBarcode(barcode + ";" + barcodeEnd, getTousseStoreBarcodes(), Ext.getCmp('basketBarcode').getValue(), function (jsonStr) { - var obj = Ext.util.JSON.decode(jsonStr); - var returnType = obj.returnType; - if (returnType == "noResult") { - showResult('未找到相应的结果'); - return; - } else if (returnType == "multiTousseInstancesSuccess") { - //是否包含装载到虚拟篮筐的器械包 - var includeTousseInVirtualBasket = obj.includeTousseInVirtualBasket; - if (includeTousseInVirtualBasket) { - Ext.MessageBox.confirm("请确认", "条码范围内有器械包已在虚拟篮筐中,是否继续装载?", function (button, text) { - if ("yes" == button) { - processMultiTousseInstance(obj); - } else { - //如果选否时,需要进行清空 - Ext.getCmp('barcode').setValue(''); - Ext.getCmp('barcodeEnd').setValue(''); - Ext.getCmp('barcode').focus(); - } - }); - } else { + } + } + if (sterilingModeArray.length > 1) { + showResult("所选的器械包有多种不同的灭菌方式,请选择相同灭菌方式的器械入筐"); + return false; + } + if (selectedBarcodeArray.length > 0) { + DWREngine.setAsync(false); + var barcode = Ext.getCmp('barcode').getValue(); + var barcodeEnd = Ext.getCmp('barcodeEnd').getValue(); + SterileLoadingTableManager.getResultJsonStrByBarcode(barcode + ";" + barcodeEnd, getTousseStoreBarcodes(), Ext.getCmp('basketBarcode').getValue(), function (jsonStr) { + var obj = Ext.util.JSON.decode(jsonStr); + var returnType = obj.returnType; + if (returnType == "noResult") { + showResult('未找到相应的结果'); + return; + } else if (returnType == "multiTousseInstancesSuccess") { + //是否包含装载到虚拟篮筐的器械包 + var includeTousseInVirtualBasket = obj.includeTousseInVirtualBasket; + if (includeTousseInVirtualBasket) { + Ext.MessageBox.confirm("请确认", "条码范围内有器械包已在虚拟篮筐中,是否继续装载?", function (button, text) { + if ("yes" == button) { processMultiTousseInstance(obj); - } - } else {//不为器械包实例条码 - // showResult("条码(尾)只能扫描器械包条码"); - if (obj.message && obj.message !== '0') { - showResult(obj.message); + } else { + //如果选否时,需要进行清空 + Ext.getCmp('barcode').setValue(''); Ext.getCmp('barcodeEnd').setValue(''); + Ext.getCmp('barcode').focus(); } - } - }); - obj.tousseInstances = selectedBarcodeArray; - processMultiTousseInstance(obj,fixedBarcodeArray); - DWREngine.setAsync(true); - }else { - if (fixedBarcodeArray.length > 0) { - scanBarcodeAndAddToBasket(fixedBarcodeArray[0].barcode, 'scanBarcode'); + }); + } else { + processMultiTousseInstance(obj); } + } else {//不为器械包实例条码 + // showResult("条码(尾)只能扫描器械包条码"); + if (obj.message && obj.message !== '0') { + showResult(obj.message); + Ext.getCmp('barcodeEnd').setValue(''); + } } - } else { - showResult("请选择需要载入的器械包"); + }); + obj.tousseInstances = selectedBarcodeArray; + processMultiTousseInstance(obj, fixedBarcodeArray); + DWREngine.setAsync(true); + } else { + if (fixedBarcodeArray.length > 0) { + scanBarcodeAndAddToBasket(fixedBarcodeArray[0].barcode, 'scanBarcode'); } } - }, { - xtype: 'textfield', - hidden: true, - id: 'searchKeyWordReal' - }], + } else { + showResult("请选择需要载入的器械包"); + } + } + }) + + var tbarTool = new Ext.Toolbar({ + items: tbarItems + }); + + waitSterileLoadingTousseGrid = new Ext.grid.GridPanel({ + id: 'waitSterileLoadingTousseGrid', + title: '待灭菌装载器械包信息', + loadMask: true, + width: document.body.clientWidth / 4 + 50, + height: enableBeginEndBarcodeScan ? 300 : 280, + bodyStyle: 'border:1px solid #afd7af', + store: waitSterileLoadingTousseStore, + autoScroll: true,//设置滚动条自动显示 + //如需要显示横向滚动条,则要注释下面的属性 + /*viewConfig: { + forceFit:true + },*/ + //columns: waitSterileLoadingTousseGridColumnArray, + cm: new Ext.grid.ColumnModel(waitSterileLoadingTousseGridColumnArray), + sm: waitSterileLoadingTousseGridSm, + bbar: pageBar, + tbar: tbar, listeners: { - render: function () { + render: function (thisGrid) { pageBar.loading.handler = function () { //在此处重写PagingToolbar的刷新方法,清除之前的搜索条件 Ext.getCmp('searchKeyWord').setValue(''); Ext.getCmp('searchKeyWordReal').setValue(''); Ext.getCmp('field').setValue(''); Ext.getCmp('direction').setValue(''); waitSterileLoadingTousseStore.load({ params: { start: 0, limit: pageSize } }); }; + tbarTool.render(thisGrid.tbar); }, sortchange: function (ct, column, direction, eOpts) { var field = column.field; Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingView.jsp =================================================================== diff -u -r34543 -r40807 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingView.jsp (.../sterilizationLoadingView.jsp) (revision 34543) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingView.jsp (.../sterilizationLoadingView.jsp) (revision 40807) @@ -3,6 +3,7 @@ <%@ page import="com.forgon.disinfectsystem.entity.basedatamanager.container.Container" %> <% request.setAttribute("fontSize",AcegiHelper.getLoginUser().getFontSize() == null?"12":AcegiHelper.getLoginUser().getFontSize()); + request.setAttribute("orgUnitCoding",AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig()); %> @@ -32,7 +33,9 @@ - + + + @@ -60,6 +65,7 @@ +