Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r28713 -r28716 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 28713) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 28716) @@ -9,8 +9,8 @@ var newAmount = 0; var isDelete = false; var saveBasketsArr = []; -var shareDeparts = []; -var shareDepartsStr = ''; +var shareDepartsMap = new newMap(); +var shareDepartsArr = []; /** * 不回收的器械包的集合。这个是由绑定带出来的器械包,并且不回收,在回收这里本来是不做处理的。现在要能修改原来的申请数量,相关的还有装配任务 */ @@ -750,8 +750,16 @@ error:function(msg){ } }); - shareDeparts = []; - shareDepartsStr = ''; + if(shareDepartsMap.has(tousseName)){ + shareDepartsMap.delete(tousseName) + } + if(shareDepartsArr.length > 0){ + for(var i=0;i 0){ - if(msg.shareDeparts.indexOf(departValue) == -1 && departValue !== ''){ - alertDiv('该器械包不属于该科室。'); - return; - } - shareDeparts = msg.shareDeparts; - }else { - if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').attr('value') != tousseDepart && msg.tousseInstance.status != '已废弃'){ - alertDiv('该器械包不属于该科室。'); - return; - } - shareDepartsStr = tousseDepart; - } // 对于已废弃的包,不检查其位置和所属科室的信息 var ti = msg.tousseInstance; var td = ti.tousseDefinition; @@ -1739,6 +1734,22 @@ alertDiv(barcode+",已入筐!"); scanned = true; }else{ + if(msg.shareDeparts.length > 0){ + if(msg.shareDeparts.indexOf(departValue) == -1 && departValue !== ''){ + alertDiv('该器械包不属于该科室。'); + return; + } + shareDepartsMap.set(msg.idCardInstance.tousseName,msg.shareDeparts); + }else { + if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').attr('value') != tousseDepart && msg.tousseInstance.status != '已废弃'){ + alertDiv('该器械包不属于该科室。'); + return; + } + shareDepartsArr.push({ + tousseName:msg.idCardInstance.tousseName, + tousseDepart:tousseDepart + }) + } var orgUnitName = $('#depart').val(); var addSuccess = false; var idCardClassifyBasket = msg.idCardClassifyBasket; @@ -5142,17 +5153,34 @@ }) } function selectDepart(departName,departCode){ - if(shareDeparts.length > 0){ - if(shareDeparts.indexOf(departName) == -1){ - alertDiv('该科室跟器械包的科室为共用科室,请删除器械包后再切换'); - return; + var tousseNameArr = []; + + if(shareDepartsMap.size() > 0){ + var k = 0; + shareDepartsMap.forEach(function(arr,item){ + if(arr.indexOf(departName) == -1){ + tousseNameArr[k] = item; + k++; + } + }) + } + + if(shareDepartsArr.length > 0) { + var k = 0; + for(var i=0;i 0){ + var msg = '以下物品不属于【'+departName+'】,不允许进行科室切换:
'; + msg += '【' + tousseNameArr.join(',') + '】'; + alertDiv(msg); + return; + } var oldValue = document.getElementById('departCode').value; //加载科室申领模板 if(params_id == '' && params_appId == '' && sstsConfig.isLoadApplyTemplateForAddRecycleRecord == true){ Index: ssts-web/src/main/webapp/js/common.js =================================================================== diff -u -r28699 -r28716 --- ssts-web/src/main/webapp/js/common.js (.../common.js) (revision 28699) +++ ssts-web/src/main/webapp/js/common.js (.../common.js) (revision 28716) @@ -3074,4 +3074,206 @@ }catch(e){ } } +} + +function newMap(){ + this.elements = new Array(); + // 获取Map元素个数 + this.size = function() { +        return this.elements.length; + }, + // 判断Map是否为空 + this.isEmpty = function() { + return (this.elements.length < 1); + }, + // 删除Map所有元素 + this.clear = function() { + this.elements = new Array(); + }, + // 向Map中增加元素(key, value) + this.put = function(_key, _value) { + if (this.containsKey(_key) == true) { + if (this.containsValue(_value)) { + if (this.remove(_key) == true) { + this.elements.push({ + key : _key, + value : _value + }) + } + }else { + this.elements.push({ + key : _key, + value : _value + }) + } + }else { + this.elements.push({ + key : _key, + value : _value + }) + } + }, + // 向Map中增加元素(key, value) + this.set = function(_key, _value) { + if (this.containsKey(_key) == true) { + if (this.containsValue(_value)) { + if (this.remove(_key) == true) { + this.elements.push({ + key : _key, + value : _value + }); + } + }else { + this.elements.push({ + key : _key, + value : _value + }); + } + }else { + this.elements.push({ + key : _key, + value : _value + }); + } + }, + // 删除指定key的元素,成功返回true,失败返回false + this.remove = function(_key) { + var bln = false; + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].key == _key) { + this.elements.splice(i, 1); + return true; + } + } + } catch (e) { + bln = false; + } + + return bln; + }, + // 删除指定key的元素,成功返回true,失败返回false + this.delete = function(_key) { + var bln = false; + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].key == _key) { + this.elements.splice(i, 1); + return true; + } + } + } catch (e) { + bln = false; + } + + return bln; + }, + // 获取指定key的元素值value,失败返回null + this.get = function(_key) { + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].key == _key) { + return this.elements[i].value; + } + } + } catch (e) { + return null; + } + }, + // set指定key的元素值value + this.setValue = function(_key, _value) { + var bln = false; + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].key == _key) { + this.elements[i].value = _value; + return true; + } + } + } catch (e) { + bln = false; + } + + return bln; + }, + // 获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null + this.element = function(_index) { + if (_index < 0 || _index >= this.elements.length) { + return null; + } + return this.elements[_index]; + }, + // 判断Map中是否含有指定key的元素 + this.containsKey = function(_key) { + var bln = false; + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].key == _key) { + bln = true; + } + } + } catch (e) { + bln = false; + } + + return bln; + }, + // 判断Map中是否含有指定key的元素 + this.has = function(_key) { + var bln = false; + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].key == _key) { + bln = true; + } + } + } catch (e) { + bln = false; + } + + return bln; + }, + // 判断Map中是否含有指定value的元素 + this.containsValue = function(_value) { + var bln = false; + try { + for (i = 0; i < this.elements.length; i++) { + if (this.elements[i].value == _value) { + bln = true; + } + } + } catch (e) { + bln = false; + } + + return bln; + }, + // 获取Map中所有key的数组(array) + this.keys = function() { + var arr = new Array(); + for (i = 0; i < this.elements.length; i++) { + arr.push(this.elements[i].key); + } + return arr; + }, + // 获取Map中所有value的数组(array) + this.values = function() { + var arr = new Array(); + for (i = 0; i < this.elements.length; i++) { + arr.push(this.elements[i].value); + } + return arr; + }, + // map遍历数组 + this.forEach = function forEach(callback,context){ + context = context || window; + var newAry = new Array(); + for(var i = 0; i < this.elements.length;i++) { + if(typeof  callback === 'function') { + var val = callback.call(context,this.elements[i].value,this.elements[i].key,this.elements); + newAry.push(this.elements[i].value); + } + } + return newAry; + } } \ No newline at end of file