Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/disinfectionInthaBox.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/disinfectionInthaBox.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/disinfectionInthaBox.js (revision 25349) @@ -0,0 +1,4175 @@ +var tousseArray = new Array(); +var deleteTousseItemArray = new Array(); +/** + * 不回收的器械包的集合。这个是由绑定带出来的器械包,并且不回收,在回收这里本来是不做处理的。现在要能修改原来的申请数量,相关的还有装配任务 + */ +var unrecycleTousseItemArray = new Array(); +//添加或删除器械包 +function addOrDelTousse(item){ + var basketBarcode = item.basketBarcode; + var basketId = item.basketId; + var classifiedItemId = item.classifiedItemId; + var tousseName = item.tousseName; + var amount = item.amount; + var tousseAmountForMaterial = item.tousseAmountForMaterial; + var itemType = item.itemType; + var tousseNameForMaterial = item.tousseNameForMaterial; + var idCardBarcode = item.idCardBarcode; + var basketGroupBarcodes = item.basketGroupBarcodes; + + var length = tousseArray.length; + var sigle = true; + var deleteIndex = []; + for(var i = 0;i < length ; i++){ + var t_basketBarcode = tousseArray[i].basketBarcode; + var t_tousseName = tousseArray[i].tousseName; + var t_amount = tousseArray[i].amount; + var t_tousseNameForMaterial = tousseArray[i].tousseNameForMaterial; + var t_tousseDefinitionID = tousseArray[i].tousseDefinitionID; + var t_idCardBarcode = tousseArray[i].idCardBarcode; + var t_amountForMaterial = tousseArray[i].tousseAmountForMaterial; + var t_basketGroupBarcodes = tousseArray[i].basketGroupBarcodes; + var t_itemType = tousseArray[i].itemType; + if(t_basketBarcode == basketBarcode && itemType == t_itemType && t_tousseName == tousseName && t_tousseDefinitionID == item.tousseDefinitionID && t_idCardBarcode == idCardBarcode){ + if(itemType == '材料' && (tousseNameForMaterial != t_tousseNameForMaterial || basketGroupBarcodes != t_basketGroupBarcodes)){ + continue; + } + tousseArray[i].amount = t_amount + amount; + tousseArray[i].tousseAmountForMaterial = t_amountForMaterial + tousseAmountForMaterial; + tousseArray[i].basketSequence = item.basketSequence; + if(tousseArray[i].amount === 0){ + //如果数量为0,入筐后又移除了 + deleteIndex.push(i); + } + sigle = false; + } + } + for(var i = 0; i < deleteIndex.length;++i){ + tousseArray.splice(deleteIndex[i],1); + } + if(sigle){ + if(basketBarcode && item.tousseDefinitionID && amount && tousseName && itemType){ + //需要保证基本信息是有效的 + var newTousse = { + basketBarcode: basketBarcode, + basketId: basketId, + classifiedItemId: '', + tousseDefinitionID: item.tousseDefinitionID, + tousseName: tousseName, + amount: amount, + tousseAmountForMaterial: tousseAmountForMaterial, + itemType: itemType, + tousseNameForMaterial: tousseNameForMaterial, + idCardBarcode: idCardBarcode, + basketGroupBarcodes: basketGroupBarcodes, + basketSequence: item.basketSequence + }; + tousseArray.push(newTousse); + } + } +} + + +var ab; +var lock = false; +//锁定键盘 +function lockup(e){ e.preventDefault(); } +//高亮层不锁定 +function lockout(e){ e.stopPropagation(); } + +function alertDiv(alertWord,hideCloseButton,showOtherButton){ + lock = true; + document.getElementById ("showWord").innerHTML = alertWord; + if(typeof(hideCloseButton) != 'undefined' && hideCloseButton){ + $('#idBoxClose').hide(); + }else{ + $('#idBoxClose').show(); + } + if(showOtherButton){ + $('#idBoxCenterUserType').show(); + }else{ + $('#idBoxCenterUserType').hide(); + } + ab = new AlertBox("idBox"); + ab.onShow = function(){ + if ( lock ) { + $$E.addEvent( document, "keydown", lockup ); + $$E.addEvent( this.box, "keydown", lockout ); + OverLay.show(); + } + }; + ab.onClose = function(){ + $$E.removeEvent( document, "keydown", lockup ); + $$E.removeEvent( this.box, "keydown", lockout ); + OverLay.close(); + }; + + ab.center = true; + ab.show(); +} + +function closeDiv(){ + ab.close(); +} +/** + * 刷新当前页面 + * @returns + */ +function refresh(){ + location.reload(); +} +var applicationType = null; +var userNameByBarcode = "";//条形码对应的用户名 + +function showMessage(message){ + if(document.getElementById('messageDiv') == null || !$('#messageDiv').dialog('isOpen')){ + $("
"+message+"
").dialog({ + title : '提示', + width :520, + modal: true, + show: { + effect: "explode", + duration: 1000 + }, + hide: { + effect: "explode", + duration: 1000 + }, + buttons: { + '关闭': function() { + $(this).dialog( "close" ); + } + } + }); + } +} +var isSecondSupplyRoom = false; +var supplyRoomType_val = params_type; +if(supplyRoomType_val==2){ + isSecondSupplyRoom = true; +} + +function addZero(str){ + if(str<10){ + return "0"+str; + }else{ + return str; + } +} + +function dateObjFormat(v){ + if(v == null){ + return ""; + } else { + return (parseInt(v.year,10)+1900)+"-"+addZero(parseInt(v.month,10)+1)+"-"+addZero(v.date)+" "+addZero(v.hours)+":"+addZero(v.minutes); + } +} + +var msgObj; + +function validateNumber(thiz){ + if(thiz.value.length==1){ + thiz.value=thiz.value.replace(/[^1-9]/g,''); + }else{ + thiz.value=thiz.value.replace(/\D/g,''); + } +} + +/** + * 增加物品(即点击左边的“+”图标). + * @param row + */ +function add(row){ + var recycleAmount = $('#recycleAmount'+row).val() == ''?0:parseInt($('#recycleAmount'+row).val(),10); + //是否整包申请 + var isApplyEntireTousse = $('#isApplyEntireTousse'+row).val(); + var tousseType = $('#tousseType'+row).val(); + if(recycleAmount >= 1){ + if(tousseType == '外来器械包'){ + alertDiv("外来器械包回收数量不能大于1,请点击器械包名修改材料数量!"); + return; + } + if(tousseType == '消毒物品' && '是' != isApplyEntireTousse){ + alertDiv("拆包申请的消毒物品回收数量不能大于1,请点击器械包名修改材料数量!"); + return; + } + } + increaseAmount(row); + setTousseItemLoadedAmountCss(row); + updateBindGoods(row); +} +/** + * 验证加急数量是否大于回收数量。如果加急数量大于回收数量,返回true,否则返回false + * @param row + */ +function validateUrgentAmount(row,recycleAmount){ + var urgentAmount = $('#urgentAmount'+row).val() == ''?0:parseInt($('#urgentAmount'+row).val(),10); + if(urgentAmount > recycleAmount){ + alertDiv('回收数量不能小于加急数量'); + return true; + } + return false; +} +/** + * 减少物品(即点击左边的“-”图标). + * @param row + */ +function reduce(row){ + var recycleAmount = $('#recycleAmount'+row).val() == ''?0:parseInt($('#recycleAmount'+row).val(),10)-1; + if(recycleAmount >= 0){ + if(validateUrgentAmount(row,recycleAmount)){ + return; + } + $('#recycleAmount'+row).val(recycleAmount); + updateBindGoods(row); + } + changeRecycleAmount(row); + setTousseItemLoadedAmountCss(row); +} + +/** + * 清除掉已经删除掉的器械包. + * @param tousseDefinitionID + */ +function cleanDeleteTousseItem(tousseDefinitionID){ + var length = deleteTousseItemArray.length; + for(var i = 0;i < length ; i++){ + var oldTousseDefinitionID = deleteTousseItemArray[i].tousseDefinitionID; + if(oldTousseDefinitionID == tousseDefinitionID){ + //删除 + deleteTousseItemArray.splice(i,1); + break; + } + } +} +//扫描器械包条码和标识牌,添加丢失报损备注到已经存在的回收项 +function addErrorDamageRemark(ti,row){ + if(ti.status == used){ + //必须是已使用。因为使用记录才会有包实例上的丢失报损 + var er = $('#hiddenErrorRemark' + row).val(); + var dr = $('#hiddenDamageRemark' + row).val(); + var erArr = []; + var drArr = []; + if(!isUndefinedOrNullOrEmpty(er)){ + erArr.push(er); + } + if(!isUndefinedOrNullOrEmpty(ti.errorRemark)){ + erArr.push(ti.errorRemark); + } + + if(!isUndefinedOrNullOrEmpty(dr)){ + drArr.push(dr); + } + if(!isUndefinedOrNullOrEmpty(ti.damageRemark)){ + drArr.push(ti.damageRemark); + } + $('#hiddenErrorRemark' + row).val(erArr.join(';')); + $('#hiddenDamageRemark' + row).val(drArr.join(';')); + } +} +function loadUnSupplementMaterial(msg,tmpRow,tousseBarcode){ + if(msg.unSupplementMaterials != null){ + + var errorStr = $('#recyclingError' + tmpRow).val(); + var damageStr = $('#recyclingDamage' + tmpRow).val(); + + var recyclingErrorJsonArray = new Array(); + if(!isUndefinedOrNullOrEmpty(errorStr)){ + recyclingErrorJsonArray = JSON.parse(errorStr); + for(var i = 0 ; i < recyclingErrorJsonArray.length ; i++){ + if(recyclingErrorJsonArray[i].tousseBarcode == tousseBarcode){ + return false; + } + } + } + var recyclingDamageJsonArray = new Array(); + if(!isUndefinedOrNullOrEmpty(damageStr)){ + recyclingDamageJsonArray = JSON.parse(damageStr); + for(var i = 0 ; i < recyclingDamageJsonArray.length ; i++){ + if(recyclingDamageJsonArray[i].tousseBarcode == tousseBarcode){ + return false; + } + } + } + + for(var m = 0 ; m < msg.unSupplementMaterials.length ; m++){ + var detail = msg.unSupplementMaterials[m]; + if(detail.amount <= 0){ + continue; + } + if(detail.type == '回收误差'){ + var errorObj = { + detailId: detail.id, + tousseDefinitionID: detail.tousseDefinitionId, + materialDefinitionId: detail.materialDefinitionId, + materialName: detail.materialName, + amount: detail.amount, + errorType: detail.errorType, + tousseBarcode:detail.tousseBarcode, + intoBasketAmount:detail.amount, + errorDamageQmKey : detail.errorDamageQmKey + }; + recyclingErrorJsonArray.push(errorObj); + }else if(detail.type == '器械报损'){ + var item = { + detailId: detail.id, + tousseDefinitionID: detail.tousseDefinitionId, + materialDefinitionId: detail.materialDefinitionId, + materialName: detail.materialName, + tousseBarcode:detail.tousseBarcode, + amount: detail.amount, + errorDamageQmKey : detail.errorDamageQmKey + }; + recyclingDamageJsonArray.push(item); + } + } + if(recyclingErrorJsonArray.length > 0){ + setTousseItemRecyclingError(tmpRow,JSON.stringify(recyclingErrorJsonArray)); + document.getElementById('recyclingErrorButton'+tmpRow).className = 'btn-b-edit'; + } + if(recyclingDamageJsonArray.length > 0){ + setTousseItemRecyclingDamage(tmpRow,JSON.stringify(recyclingDamageJsonArray)); + document.getElementById('recyclingDamageButton'+tmpRow).className = 'btn-c-edit'; + } + if(recyclingErrorJsonArray.length > 0 || recyclingDamageJsonArray.length > 0){ + document.getElementById('showTousseName'+tmpRow).className = 'input-a-yellow'; + } + } +} + +/** + * 删除物品. + * @param confirmMsg + * @param actionFunction + * @param row + * @param deleteButton + * @param basketBarcode + * @param basketId + */ +function deleteConfirm(confirmMsg,actionFunction,row,deleteButton,basketBarcode,basketId){ + $("#dialogConfirm").dialog({ + resizable: false, + height:310, + width:600, + modal: true, + open: function() { + $("#confirmMsg").text(confirmMsg); + }, + close: function() { + $("#confirmMsg").text(""); + }, + buttons: { + "是": function() { + if(actionFunction == 'deleteTousse'){//删器械包 + deleteTousseItem(row); + }else if(actionFunction == 'deleteBasketItem'){//删篮筐内物品 + deleteBasketItem(deleteButton); + }else if(actionFunction == 'deleteBasket'){//删篮筐 + deleteBasket(deleteButton,basketBarcode,basketId); + } + refreshSplitBasketView(); + refreshAllBasketTotalNum(); + $(this).dialog("close"); + },"否": function() { + $(this).dialog("close"); + } + } + }); +} +/** + * 检查是否有丢失报损信息,如果有,返回提示信息。否则返回空字符 + */ +function checkHaveErrorDamage(row){ + var returnMsg = ""; + var recyclingErrorJsonArrayStr = $('#recyclingError'+row).val(); + if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + var errorAmount = recyclingErrorJsonArray[j].amount; + if(errorAmount > 0){ + returnMsg = "该器械包有登记丢失信息,请先删除丢失信息后再删除!"; + break; + } + } + } + if(returnMsg == ""){ + var recyclingItemDamageJsonStr = $('#recyclingDamage'+row).val(); + if(!isUndefinedOrNullOrEmpty(recyclingItemDamageJsonStr)){ + var jsonArray = JSON.parse(recyclingItemDamageJsonStr); + for(var j = 0;j < jsonArray.length ; j++){ + var errorAmount = jsonArray[j].amount; + if(errorAmount > 0){ + returnMsg = "该器械包有登记报损信息,请先删除报损信息后再删除!"; + break; + } + } + } + } + return returnMsg; +} +function deleteTousseItem(row){ + var returnMsg = checkHaveErrorDamage(row); + + if(!isUndefinedOrNullOrEmpty(returnMsg)){ + alertDiv(returnMsg); + return false; + } + + $('#tousseItemsTr'+row).hide(); + $('#deleted'+row).val('1'); + var tousseName = $('#tousseName'+row).val(); + var amountLeft = parseInt($('#loadedAmount'+row).val(),10); + var tousseDefinitionID = parseInt($('#tousseDefinitionID'+row).val(),10); + var tousse = { + tousseDefinitionID: tousseDefinitionID, + tousseName: tousseName, + amount: amountLeft + } + deleteTousseItemArray.push(tousse); + //移除篮筐内物品 + $("#basketsUl li").each(function(){ + var jsonObj = null; + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var obj = $(this).val(); + jsonObj = JSON.parse(obj); + }else if($(this).attr('class') == 'del'){ + if(jsonObj.tousseName == tousseName){ + var deleteButton = $(this).find('a'); + deleteBasketItem(deleteButton); + } + } + }); + }); + var depart = $('#depart').val(); + var recyclingTime = $('#recyclingTime').val(); + var applicationAmount = $('#applicationAmount'+row).val(); + var description = "ID=" + params_appId + ",科室[" + depart + "]的申请单在" + recyclingTime + "回收时删除[" + tousseName + "]" + applicationAmount + "个"; + //日志记录 + $.ajax({ + type:'get', + url : WWWROOT + '/log/saveLog.do', + data:'model=' + encodeURI("回收模块") + '&type=D&description=' + encodeURI(description), + dataType:'text', + success:function(msg){ + }, + error:function(msg){ + } + }); + return true; +} + + +function unloadStaff(tousseDefinitionID,amount,idCardBarcode){ + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseDefinitionID'+i).val() == tousseDefinitionID){ + $('#loadedAmount'+i).val(parseInt($('#loadedAmount'+i).val(),10)-parseInt(amount,10)); + var idCard = $('#isThereIdentificationCard'+i).val(); + if(idCard == '是' && idCardBarcode == ''){ + var recyclingErrorJsonArrayStr = $('#recyclingError'+i).val(); + if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ + var intoBasketAmount = parseInt(recyclingErrorJsonArray[j].intoBasketAmount); + recyclingErrorJsonArray[j].intoBasketAmount = intoBasketAmount - parseInt(amount); + $('#recyclingError'+i).val(JSON.stringify(recyclingErrorJsonArray)); + break; + } + } + } + } + return false; + } + }); +} + +//删除整个篮筐 +function deleteBasket(deleteButton,basketBarcode,basketId){ + var liElement = $(deleteButton).parent().parent(); + var delBasktJsonStr = liElement.find('input').val(); + var basketJson = JSON.parse(delBasktJsonStr); + $("#basketsUl li").each(function(){ + var hideStr = $(this).find('input').val(); + var hiddenjson = JSON.parse(hideStr); + var actionBasketBarcode = basketJson.barcode; + if(hiddenjson.barcode == actionBasketBarcode){ + deleteAction(this); + $(this).remove(); + } + }); + + //如果篮筐全被删除完时,则提示信息放开 + if($("#basketsUl > li").length == 0){ + $("#scanContainerBarcodeTipUl").show(); + } +} + +/** + * 由于删除篮筐中的一个物品后,数组长度发生变化,继续循环删除其他物品就会报错,所以每次只循环一次就跳出循环,重新获取数组长度继续循环 + */ +function deleteAction(thiz){ + $(thiz).find('dl').children().each(function(i,element){ + if($(this).attr('class') == 'del'){ + var deleteButton = $(this).find('a'); + deleteBasketItem(deleteButton); + return false;//跳出each循环 + } + }); + if($(thiz).find('dl').children().length > 0){ + deleteAction(thiz); + } +} + +function deleteMaterialItem(deleteButton,containerBarcode,basketId){ + var hideElement = $(deleteButton).parent().prev().prev().prev().prev(); + var nameElement = $(deleteButton).parent().prev().prev().prev(); + var barcodeElement = $(deleteButton).parent().prev().prev(); + var amountElement = $(deleteButton).parent().prev(); + var delElement = $(deleteButton).parent(); + + var item = JSON.parse(hideElement.val()); + var tousse = { + basketBarcode: containerBarcode, + basketId: basketId, + classifiedItemId: '', + tousseName: item.materialName, + tousseDefinitionID: item.tousseDefinitionID, + amount: -parseInt(item.amount), + tousseAmountForMaterial: -parseInt(item.tousseAmount), + itemType: item.type, + tousseNameForMaterial: item.tousseName, + idCardBarcode: item.idCardBarcode, + basketGroupBarcodes:item.basketGroupBarcodes + } + addOrDelTousse(tousse); + + refreshSequence(delElement.parent().parent(),0); + hideElement.remove(); + nameElement.remove(); + barcodeElement.remove(); + amountElement.remove(); + delElement.remove(); +} + +function refreshSequence(liElement,sequence){ + if(liElement){ + if(!sequence || sequence <= 0){ + sequence = 0; + } + var basketHidenValue = liElement.find('input:first').val(); + if(basketHidenValue){ + var basketInfo = JSON.parse(basketHidenValue); + basketInfo.sequence = sequence; + liElement.find('input:first').val(JSON.stringify(basketInfo)) + var showName = sequence > 0?(sequence + '.' + basketInfo.basketName):basketInfo.basketName; + liElement.find('font:first').html(showName); + } + } +} +/** + * 刷新对应篮筐的包与材料总数量 + * @param liElement + */ +function refreshBasketTotalNum(liElement){ + if(liElement){ + var total = 0; + liElement.find('dd.num').each(function(){ + var num = parseInt($(this).html()); + if(num){ + total += num; + } + }); + liElement.find('font.totalnum').html(total); + } +} +/** + * 刷新所有篮筐的包与材料总数量 + */ +function refreshAllBasketTotalNum(){ + $("#basketsUl li").each(function(){ + refreshBasketTotalNum($(this)); + }); +} + +//删除篮筐中的物品 +function deleteBasketItem(deleteButton){ + var hideElement = $(deleteButton).parent().prev().prev().prev().prev(); + var nameElement = $(deleteButton).parent().prev().prev().prev(); + var barcodeElement = $(deleteButton).parent().prev().prev(); + var amountElement = $(deleteButton).parent().prev(); + var delElement = $(deleteButton).parent(); + + var basketElement = $(deleteButton).parent().parent(); + var basketJSON = basketElement.prev().prev().prev().prev().prev(); + var basket = basketJSON.val()?JSON.parse(basketJSON.val()):{}; + var item = hideElement.val()?JSON.parse(hideElement.val()):{}; + var name = ""; + var tousseNameForMaterial = ""; + var type = item.type; + var idCardBarcode = item.idCardBarcode; + var basketGroupBarcodes = item.basketGroupBarcodes; + //删除材料所在包 内的 全部删除 + if(type == "材料"){ + name = item.materialName; + tousseNameForMaterial = item.tousseName; + $('dl[class="sed clearfix"]').each(function(){ + var basketEle = $(this).prev().prev().prev().prev().prev().val(); + var basketJSON = JSON.parse(basketEle); + $(this).children().each(function(){ + if($(this).attr('type') == 'hidden'){ + var hideValue = $(this).val(); + if(!isUndefinedOrNullOrEmpty(hideValue)){ + var obj = JSON.parse(hideValue); + if(obj.type == '材料' && obj.tousseDefinitionID == item.tousseDefinitionID && + obj.basketGroupBarcodes == basketGroupBarcodes && + obj.idCardBarcode == idCardBarcode){ + + var delButton = $(this).next().next().next().next().find('a'); + deleteMaterialItem(delButton,basketJSON.barcode,basketJSON.classifyBasketId); + } + } + } + }); + }); + } + var tousseAmountForMaterial = item.tousseAmount; + //alert(name+"--"+type+"--"+amount+"--"+tousseNameForMaterial+"--"+usebasketAmount+"--"+basketGroupNum); + if(type == '材料'){ + unloadStaff(item.tousseDefinitionID,tousseAmountForMaterial,idCardBarcode); + }else{ + name = item.tousseName; + var amount = item.amount; + + unloadStaff(item.tousseDefinitionID,amount,idCardBarcode); + + var basketId = basket.classifyBasketId; + var containerBarcode = basket.barcode; + var tousse = { + basketBarcode: containerBarcode, + basketId: basketId, + classifiedItemId: '', + tousseName: name, + tousseDefinitionID: item.tousseDefinitionID, + amount: -parseInt(amount), + tousseAmountForMaterial: -parseInt(tousseAmountForMaterial), + itemType: type, + tousseNameForMaterial: tousseNameForMaterial, + idCardBarcode: idCardBarcode, + basketGroupBarcodes: basketGroupBarcodes + } + addOrDelTousse(tousse); + + hideElement.remove(); + nameElement.remove(); + barcodeElement.remove(); + amountElement.remove(); + delElement.remove(); + } + checkLoadedAmount(); + refreshSequence(delElement.parent().parent(),0); +} + +//清理视图列表 +function cleanTableList(){ + $("#tousseItemTable").empty(); + $("#basketsUl").empty(); +} + +function cleanMaterialAndBasketTableList(){ + $("#basketsUl").empty(); +} + +/*--------------------------- +功能:停止事件冒泡 +---------------------------*/ +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; +} + +/** + * 在页面无需将光标定位在输入框相应全局的扫描枪事件,并且阻止冒泡事件和阻止浏览器的默认行为. + */ +var barcodeGloble = ''; +function showKeyDown(){ + + if(event.char){ + var isCRLF = (event.keyCode == 13 || event.char == '\n' || event.char == '\r'); + if(!isCRLF){ + barcodeGloble += event.char; + } + + if(isCRLF){ + loadBarcodeDevice(barcodeGloble); + } + }else{ + if(event.keyCode == 48 || event.keyCode == 96){ + barcodeGloble += '0'; + }else if(event.keyCode == 49 || event.keyCode == 97){ + barcodeGloble += '1'; + }else if(event.keyCode == 50 || event.keyCode == 98){ + barcodeGloble += '2'; + }else if(event.keyCode == 51 || event.keyCode == 99){ + barcodeGloble += '3'; + }else if(event.keyCode == 52 || event.keyCode == 100){ + barcodeGloble += '4'; + }else if(event.keyCode == 53 || event.keyCode == 101){ + barcodeGloble += '5'; + }else if(event.keyCode == 54 || event.keyCode == 102){ + barcodeGloble += '6'; + }else if(event.keyCode == 55 || event.keyCode == 103){ + barcodeGloble += '7'; + }else if(event.keyCode == 56 || event.keyCode == 104){ + barcodeGloble += '8'; + }else if(event.keyCode == 57 || event.keyCode == 105){ + barcodeGloble += '9'; + }else if(event.keyCode == 13){ + loadBarcodeDevice(barcodeGloble); + } + } + + + stopBubble(event); + stopDefault(event); +} + +// 扫描第二个篮框时,取消合并提示,默认不合并 +function mergedBasket(){ + return false; +} + + +/** + * 判断此标识牌条码是否已经入筐. + * @param barcode + * @returns {Boolean} + */ +function idCardIsExist(barcode){ + var exist = false; + $('dl[class="sed clearfix"]').each(function(){ + $(this).children().each(function(){ + if($(this).attr('type') == 'hidden'){ + var hideValue = $(this).val(); + if(!isUndefinedOrNullOrEmpty(hideValue)){ + var hiddenjson = JSON.parse(hideValue); + if(hiddenjson.idCardBarcode == barcode){ + exist = true; + return false; + } + } + } + }); + }); + return exist; +} + +/** + * 创建物品入筐 + * @param basketItem + */ +function addBasketItemElement(basketItem){ + var ci_id = basketItem.ci_id; + var type = basketItem.type; + var orgUnitName = basketItem.orgUnitName; + var tousseName = basketItem.tousseName; + var materialName = basketItem.materialName; + var showName = basketItem.showName; + var amount = basketItem.amount; + var tousseAmount = basketItem.tousseAmount; + var basketBarcode = basketItem.basketBarcode; + var idCardBarcode = basketItem.idCardBarcode; + var tousseDefinitionID = basketItem.tousseDefinitionID; + var tousseType = basketItem.tousseType; + var basketGroupBarcodes = basketItem.basketGroupBarcodes; + var putBasketMaxAmount = basketItem.putBasketMaxAmount; + var isExist = false; + var basketElement = $('dl[class="sed clearfix"]:eq(0)'); + var basketHidenValue = $("#basketsUl li:first").find('input').val(); + if(type == '材料'){ + $("#basketsUl li").each(function(){ + var hideStr = $(this).find('input').val(); + var json = JSON.parse(hideStr); + if(json.barcode == basketBarcode){ + basketElement = $(this).find("dl"); + basketHidenValue = hideStr; + $(this).find('dl').children().each(function(){ + if($(this).attr('type') == 'hidden'){ + var hideStr = $(this).val(); + var json = JSON.parse(hideStr); + if(json.materialName == materialName && json.tousseDefinitionID == tousseDefinitionID && + json.idCardBarcode == idCardBarcode && json.basketGroupBarcodes == basketGroupBarcodes){ + isExist = true; + json.amount = (json.amount + amount); + json.tousseAmount = (json.tousseAmount + tousseAmount); + $(this).val(JSON.stringify(json)); + $(this).next().next().next().text(json.amount); + return false; + } + } + }); + return false; + } + }); + }else{ + $("#basketsUl li").each(function(){ + var hideStr = $(this).find('input').val(); + var json = JSON.parse(hideStr); + if(json.barcode == basketBarcode){ + basketElement = $(this).find("dl"); + basketHidenValue = hideStr; + $(this).find('dl').children().each(function(){ + if($(this).attr('type') == 'hidden'){ + var hideStr = $(this).val(); + var json = JSON.parse(hideStr); + if(json.tousseDefinitionID == tousseDefinitionID && json.idCardBarcode == idCardBarcode){ + json.amount = (json.amount + amount); + $(this).val(JSON.stringify(json)); + $(this).next().next().next().text(json.amount); + isExist = true; + return false; + } + } + }); + return false; + } + }); + } + if(!isExist){ + + var showBarcode = idCardBarcode; + if(type == '材料' && idCardBarcode == ""){ + showBarcode = tousseName; + } + var element = ''; + element += '
' + showName + '
'; + element += '
 ' + showBarcode + '
'; + element += '
' + amount + '
'; + element += '
删除
'; + + var json = getBasketItemJSON(ci_id,type,orgUnitName,tousseName,materialName,amount,tousseAmount,idCardBarcode,tousseDefinitionID,basketGroupBarcodes,putBasketMaxAmount,tousseType); + basketElement.prepend($(element)); + basketElement.find("input:first").val(json); + } + + var basketJson = JSON.parse(basketHidenValue); + var basketBarcode = basketJson.barcode; + var basketId = basketJson.classifyBasketId; + + var goodsName = tousseName; + var tousseNameForMaterial = ""; + if(type == "材料"){ + goodsName = materialName; + tousseNameForMaterial = tousseName; + } + var tousse = { + basketBarcode: basketBarcode, + basketId: basketId, + classifiedItemId: ci_id, + tousseName: goodsName, + amount: amount, + tousseAmountForMaterial: tousseAmount, + itemType: type, + tousseNameForMaterial: tousseNameForMaterial, + idCardBarcode: idCardBarcode, + tousseDefinitionID: tousseDefinitionID, + basketGroupBarcodes: basketGroupBarcodes, + basketSequence:basketJson.sequence + } + addOrDelTousse(tousse); +} + +function setIdCardErrorIntoBasketAmount(row,amount){ + var recyclingErrorJsonArrayStr = $('#recyclingError'+row).val(); + if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ + var intoBasketAmount = recyclingErrorJsonArray[j].intoBasketAmount; + recyclingErrorJsonArray[j].intoBasketAmount = parseInt(intoBasketAmount) + parseInt(amount); + $('#recyclingError'+row).val(JSON.stringify(recyclingErrorJsonArray)); + break; + } + } + } +} +function basketLoadGoods(basketName,basketBarcode,classifyBasketId){ + var width = 740; + var height = 400; + var designedTousseWidth = 980; + var designedTousseHeight = 700; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 1080; + height = 800; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + width = size.width; + height = size.height; + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['['+basketName + '] 已装载物品列表',true], + content : 'basketLoadGoodsView.jsp?resolution=' + resolution + '&width=' + width + '&height=' + height + '&basketBarcode=' + basketBarcode + '&classifyBasketId=' + classifyBasketId, + area : [ width + 'px' , height +heightExtra + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} + +function createBasketUiElement(basketBarcode,classifyBasketId,basketName,washClassifyType,sequence){ + var basketElement = '
  • '; + basketElement += ''; + basketElement += ''; + basketElement += '删除'; + basketElement += ''; + basketElement += ''; + + var showBasketLoadMaterialAmount = sstsConfig.showBasketLoadMaterialAmount; + var imageButton = ''; + if(showBasketLoadMaterialAmount == true){ + imageButton = ''; + } + + basketElement += '' + (sequence&&sequence>0?(sequence+'.' + basketName):basketName) + '      ' + imageButton +''; + basketElement += '' + 0 + ''; + basketElement += '
    '; + basketElement += '
  • '; + var obj = $(basketElement); + $("#basketsUl").prepend(obj); + var json = getBasketJSON(classifyBasketId,basketBarcode,washClassifyType,sequence,basketName); + $("#basketsUl li:first").find('input').val(json); + toggleItems(obj.find('span')[0]); +} +function noticeIdCardUseAmount(useAmount){ + if(sstsConfig && sstsConfig.idCardUseAmountNoticeType){ + var msg = '此标识牌已经使用' + useAmount + '次'; + if(1 == sstsConfig.idCardUseAmountNoticeType){ + jShowResult(msg); + }else if(2 == sstsConfig.idCardUseAmountNoticeType){ + speaker.speak(msg); + }else if(3 == sstsConfig.idCardUseAmountNoticeType){ + speaker.speak(msg); + jShowResult(msg); + } + } +} +function addBasketElement(basketItem){ + var currentNode; + var isBasketLoaded = false; + $("#basketsUl li").each(function(){ + var hide = $(this).find('input'); + var item = JSON.parse(hide.val()); + if(item.barcode == basketItem.containerBarcode){ + isBasketLoaded = true; + currentNode = $(this); + return false; + } + }); + + if(isBasketLoaded){ + //将篮筐放置在最前面 + $("#basketsUl").prepend(currentNode); +// toggleItems(currentNode.find('span')[1]); + }else{ + createBasketUiElement(basketItem.containerBarcode,basketItem.id,basketItem.containerName,basketItem.washClassifyType); + } + $("#scanContainerBarcodeTipUl").hide(); +} +/** + * 在添加器械包之前验证是否需要先选择科室。如果配置了要加载模板,并且还没有选择科室,在添加器械包之前需要先选择科室。 + *
    因为没有选择科室,就添加器械包,会导致在后面选择科室之后,添加的器械包会被清空. + * 返回true,表示已经选择了科室,或者没有加载模板的功能,不选科室也没关系。返回false表示必须先选科室了才能添加器械包,并且当前还没有选择科室。 + */ +function checkSelectDepartBeforeAddTousse(){ + if(sstsConfig.isLoadApplyTemplateForAddRecycleRecord == true){ + var departName = document.getElementById('depart').value; + var departCode = document.getElementById('departCode').value; + if(isUndefinedOrNullOrEmpty(departCode) || isUndefinedOrNullOrEmpty(departName)){ + alertDiv("请选择科室"); + return false; + } + } + return true; +} + +/** + * 追加条码到条码集合中. + * @param originalBarcodes 条码集合 + * @param barcode 需要追加的条码 + */ +function appendBarcodes(originalBarcodes, barcode) { + if (originalBarcodes) { + return originalBarcodes + ';' + barcode; + } + return barcode; +} +/** + * 是否正在显示装配任务对话框,防止重复显示 + */ +var showingPackingTask = false; +function showUnfinishedPackingTask(msg){ + var message = null; + if(!msg.unfinishedPackingTask || msg.unfinishedPackingTask.length == 0){ + message = msg.errorMessage; + alertDiv(message); + }else{ + if(!showingPackingTask){ + var tdStyle = 'font-size:28px;text-align:center;'; + var nameWidth = '440px;',taskGroupWidth='200px;',amoutWidth='140px;'; + var table = ''; + for(var i = 0; i < msg.unfinishedPackingTask.length;++i){ + var task = msg.unfinishedPackingTask[i]; + table += ''; + } + table += '
    '+msg.errorMessage+'
    任务组器械包数量
    '+task.taskGroup+''+task.name+''+task.unPackAmount+'
    '; + var html = '
    '+table+'
    '; + $(html).dialog({ + maxHeight: 600, + width: 800, + modal:true, + close: function( event, ui ) { + showingPackingTask = false; + } + }); + showingPackingTask = true; + } + } +} +/** + * 根据扫描的条码加载对应的对象. + * @param barcodeTemp + */ +function loadBarcodeDevice(barcodeTemp){ + if(barcodeTemp.length >= 1){ + //var barcode = barcodeTemp.substring(barcodeTemp.length-9,barcodeTemp.length); + //由于条码可能超过9位,所以取全部 + var barcode = barcodeTemp; + $.ajax({ + type:'get', + url:encodeURI(WWWROOT + '/disinfectSystem/recyclingRecordAction!getBarcodeInfo.do?time='+new Date()+'&barcode='+barcode+''), + data:'recyclingRecordId=' + encodeURI($('#id').val()) + '&formType=' + encodeURI($('#appType').val()), + dataType:'json', + success:function(msg){ + if(msg.errorMessage != null ){ + if(msg.unfinishedPackingTask!=null){ + showUnfinishedPackingTask(msg); + }else{ + alertDiv(msg.errorMessage); + } + }else if(msg.orgUnit!= null){ + //只更新科室名称及编码信息(since2015-12-16 SYF),添加新单时才更新部门 + if(params_appId == null || params_appId == "null" || params_appId == ""){ + selectDepart(msg.orgUnit.name,msg.orgUnit.orgUnitCoding) + }else{ + alertDiv("已有回收单不可更改科室"); + } + }else if(msg.basket != null){ + //不装配的篮筐不能回收扫描 + var containerStatus = msg.basket.containerStatus; + if(containerStatus == "清洗完成" || containerStatus == "清洗中"){ + $("#dialogConfirm").dialog({ + resizable: false, + height:310, + width:600, + modal: true, + open: function() { + $("#confirmMsg").text("【"+msg.basket.containerName + "】当前状态为【" + containerStatus + "】,还有物品未装配,是否继续使用该篮筐?"); + }, + close: function() { + $("#confirmMsg").text(""); + }, + buttons: { + "是": function() { + addBasketElement(msg.basket); + $( this ).dialog( "close" ); + }, + "否": function() { + $( this ).dialog( "close" ); + } + } + }); + }else{ + addBasketElement(msg.basket); + } + }else if(msg.tousseInstance != null){ + if(!checkSelectDepartBeforeAddTousse()){ + return false; + } + + if(!msg.isIDCardInstance){ //扫描器械包实例的条码 + var ti = msg.tousseInstance; + var td = ti.tousseDefinition; + + var isExist = false; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ + $('#recycleAmount'+i).val(parseInt($('#recycleAmount'+i).val()) + 1); + $('#tousseOrIDCardInstanceBarcodes'+i).val(appendBarcodes($('#tousseOrIDCardInstanceBarcodes'+i).val(), ti.barcode)); + addErrorDamageRemark(ti,i); + loadUnSupplementMaterial(msg,i,ti.barcode); + isExist = true; + } + }); + + if(!isExist){ + var isThereIdentificationCard = '否'; + if(td.isDisableIDCard == "否"){ + isThereIdentificationCard = '是'; + } + var tmpRow = $("#tousseItemTable > tbody > tr").length; //获取子元素,不包含孙子及以下的元素 + var timeStr = new Date().getTime(); + var errorDamageQmKey = td.id + "_" + timeStr; + var toussItem = { + row: tmpRow, + tousseItemId: '', + tousseName: td.name, + tousseDefinitionID: td.id, + applicationAmount: 0, + recycleAmount: 1, + loadedAmount: 0, + isCleanedEntirely: td.isCleanedEntirely, + tousseType: td.tousseType, + isThereIdentificationCard: isThereIdentificationCard, + isApplyEntireTousse: td.isApplyEntireTousse, + urgentAmount : 0, + tousseRemark:'', + errorDamageQmKey : errorDamageQmKey, + barcode : ti.barcode + }; + addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle); + //清除已删除的包 + cleanDeleteTousseItem(td.id); + addErrorDamageRemark(ti,tmpRow); + //未补充的丢失报损 + loadUnSupplementMaterial(msg,tmpRow,ti.barcode); + } + }else{ //扫描标识牌实例条码 + barcode = msg.idCardInstance.barcode; + if($('#depart').attr('value') == ''){ + $('#depart').val(msg.tousseInstance.locationForDisplay) + $('#departCode').val(msg.tousseInstance.location) + } + var tousseDepart = isUndefinedOrNullOrEmpty(msg.tousseInstance.locationForDisplay2)?msg.tousseInstance.locationForDisplay:msg.tousseInstance.locationForDisplay2; + // 对于已废弃的包,不检查其位置和所属科室的信息 + if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').attr('value') != tousseDepart && msg.tousseInstance.status != '已废弃'){ + alertDiv('该器械包不属于该科室。'); + }else{ + var ti = msg.tousseInstance; + var td = ti.tousseDefinition; + + var exist = idCardIsExist(barcode); + if(exist){ + alertDiv(barcode+",已入筐!"); + scanned = true; + }else{ + var orgUnitName = $('#depart').val(); + var addSuccess = false; + var idCardClassifyBasket = msg.idCardClassifyBasket; + if(idCardClassifyBasket){ + if(idCardClassifyBasket.containerStatus == "清洗完成" || idCardClassifyBasket.containerStatus == "清洗中"){ + alertDiv("【"+idCardClassifyBasket.containerName + "】当前状态为【" + idCardClassifyBasket.containerStatus + "】,还有物品未装配"); + return false; + }else{ + addBasketElement(idCardClassifyBasket); + } + } + var basketHideStr = $("#basketsUl li:first").find('input').val(); + if(basketHideStr == null || basketHideStr == ""){ + alertDiv("请扫描篮筐条码!"); + return false; + } + + var loadedAmount = tousseIntoBasketFunction(td.id,td.name,1,td.isCleanedEntirely,orgUnitName,barcode,td.tousseType); + + if(loadedAmount > 0){ + var tousseIsExist = false; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ + tousseIsExist = true; + $('#loadedAmount'+i).val(1 + parseInt($('#loadedAmount'+i).val(),10)); + $('#tousseOrIDCardInstanceBarcodes'+i).val(appendBarcodes($('#tousseOrIDCardInstanceBarcodes'+i).val(), ti.barcode)); + if(parseInt($('#loadedAmount'+i).val()) > parseInt($('#recycleAmount'+i).val())){ + $('#recycleAmount'+i).val(parseInt($('#loadedAmount'+i).val())); + } + addErrorDamageRemark(ti,i); + loadUnSupplementMaterial(msg,i,ti.barcode); + } + }); + if(!tousseIsExist){ + var tmpRow = $("#tousseItemTable > tbody > tr").length; + var timeStr = new Date().getTime(); + var errorDamageQmKey = td.id + "_" + timeStr; + var toussItem = { + row: tmpRow, + tousseItemId: '', + tousseName: td.name, + tousseDefinitionID: td.id, + applicationAmount: 0, + recycleAmount: 1, + loadedAmount: 1, + isCleanedEntirely: td.isCleanedEntirely, + tousseType: td.type, + isThereIdentificationCard: '是', + isApplyEntireTousse: td.isApplyEntireTousse, + urgentAmount : 0, + tousseRemark:'', + errorDamageQmKey : errorDamageQmKey, + barcode : ti.barcode + }; + addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle); + //清除已删除的包 + cleanDeleteTousseItem(td.id); + addErrorDamageRemark(ti,tmpRow); + //未补充的丢失报损 + loadUnSupplementMaterial(msg,tmpRow,ti.barcode); + } + noticeIdCardUseAmount(msg.idCardUseAmount); + if(msg.isTousseNeedMaintain != null && msg.isTousseNeedMaintain == true){ + alertDiv('\'' + msg.tousseInstance.tousseDefinition.name + '\'' + '需要保养了.'); + } + refreshAllBasketTotalNum(); + } + + //记住扫描的标志牌 + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ + var barcodesStr = $('#barcodes'+i).val(); + if(barcodesStr == ""){ + var idCardBarcodeArray = new Array(); + idCardBarcodeArray[0] = {}; + idCardBarcodeArray[0].barcode = barcode; + idCardBarcodeArray[0].addSuccess = addSuccess; + $('#barcodes'+i).val(JSON.stringify(idCardBarcodeArray)); + }else{ + var idCardBarcodeArray = JSON.parse(barcodesStr); + var idCardIsExist = false; + var idCardLen = idCardBarcodeArray.length; + for(var n = 0;n < idCardLen;n++){ + if(idCardBarcodeArray[n].barcode == barcode){ + idCardIsExist = true; + break; + } + } + if(!idCardIsExist){ + idCardBarcodeArray[idCardLen] = {}; + idCardBarcodeArray[idCardLen].barcode = barcode; + idCardBarcodeArray[idCardLen].addSuccess = addSuccess; + $('#barcodes'+i).val(JSON.stringify(idCardBarcodeArray)); + } + } + } + }); + } + } + } + checkLoadedAmount(); + }else if(msg.user != null){ + userNameByBarcode = msg.user.fullName; + //点击选中回收人员或是清点人员 + if(currentUserType == userType_recycling){ + $('#recyclingUser').val(userNameByBarcode); + currentUserType = userType_operator; + }else if(currentUserType == userType_operator){ + $('#operator').val(userNameByBarcode); + currentUserType = userType_recycling; + } + selectUserType(currentUserType); + }else{ + alertDiv('没有找到该条码所对应的信息。'); + } + $("#codeScan").val(""); + barcodeGloble = ""; + }, + error:function(msg){ + barcodeGloble = ""; + //提示信息输出... + } + }); + }else{ + alertDiv('条码长度不符合规范。'); + } +} + +//选择回收人员 +function selectRecyclingUser(){ + $('#recyclingUser').val(userNameByBarcode); +} +//选择清点人员 +function selectOperator(){ + $('#operator').val(userNameByBarcode); +} + + +function openselectRecyclingApplication(){ + var width = 740; + var height = 400; + if(resolution == '1980'){ + width = 980; + height = 420; + } + + layerIndex=layer.open({ + type : 2, + title : ['选择申请单',true], + content : 'recyclingApplications.jsp?resolution='+resolution, + area : [ width + 'px' , height + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : ['100px',''] + }); +} + +function openRecyclingErrorPage(row,errorDamageQmKey){ + + var tousseType = $('#tousseType' + row).val(); + if(tousseType == '外来器械包'){ + alertDiv("外来器械包不能添加丢失项!"); + return false; + } + + var isEditIDCardError = false; + if($('#id').val() == ""){ + isEditIDCardError = true; + } + var tousseName = $('#tousseName'+row).val(); + var width = 740; + var height = 400; + var designedTousseWidth = 980; + var designedTousseHeight = 700; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 980; + height = 700; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + var errorRemark = $('#hiddenErrorRemark'+row).val(); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['材料丢失',true], + content : 'recyclingErrors.jsp?resolution='+resolution+'&isEditIDCardError='+isEditIDCardError+'&width='+width+'&height='+height + +'&row='+row+'&tousseDefinitionID='+$('#tousseDefinitionID'+row).val()+'&tousseName='+encodeAll(tousseName) + +'&recordType=' + params_recordType + +'&tousseCount='+($('#recycleAmount'+row).val()==''?0:$('#recycleAmount'+row).val()) + '&errorRemark=' + errorRemark + +'&errorDamageQmKey=' + errorDamageQmKey, + area : [ width + 'px' , height +heightExtra + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} + +function openSetUrgentAmountPage(row){ + + var tousseItemId = $('#tousseItemId'+row).val(); + if(tousseItemId != ''){ + return false; + } + + var isEditIDCardError = false; + if($('#id').val() == ""){ + isEditIDCardError = true; + } + var tousseName = $('#tousseName'+row).val(); + var applyAmount = $('#applicationAmount'+row).val(); + var recycleAmount = $('#recycleAmount'+row).val(); + var urgentAmount = $('#urgentAmount'+row).val(); + var urgentLevel = $('#urgentLevel' + row).val(); + + var width = 740; + var height = 400; + var designedTousseWidth = 980; + var designedTousseHeight = 700; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 980; + height = 700; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['器械包加急',true], + //iframe : {src : 'setTousseUrgentAmount.jsp?resolution='+resolution+'&width='+width+'&height='+height+'&row='+row+'&tousseDefinitionID='+$('#tousseDefinitionID'+row).val()+'&tousseName='+encodeAll(tousseName)+'&applyAmount='+applyAmount+'&recycleAmount='+recycleAmount+'&urgentAmount='+urgentAmount}, + content : 'setTousseUrgentAmount.jsp?resolution='+resolution+'&width='+width + +'&height='+height+'&row='+row+'&tousseDefinitionID='+$('#tousseDefinitionID'+row).val() + +'&tousseName='+encodeAll(tousseName)+'&applyAmount='+applyAmount+'&recycleAmount=' + +recycleAmount+'&urgentAmount='+urgentAmount + '&urgentName=' + encodeAll(urgentLevel), + area : [ width + 'px' , height +heightExtra + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} + +function getTousseItemRecyclingError(row){ + return $('#recyclingError' + row).val(); +} + +function setTousseItemRecyclingError(row,jsonstr,errorRemark){ + $('#recyclingError' + row).val(jsonstr); + if(!isUndefinedOrNull(errorRemark)){ + $('#hiddenErrorRemark' + row).val(errorRemark); + } + refreshErrorRemarkView(row); + refreshErrorMaterialsView(row); +} +/** + * 将丢失报损的材料json字符串格式化为 名称*数量;名称*数量 的形式.如果数量为0,则排除 + * @param materialArrayStr + * @returns + */ +function formatErrorOrDamageMaterials(materialArrayStr){ + if(!isUndefinedOrNullOrEmpty(materialArrayStr)){ + var materialArray = JSON.parse(materialArrayStr); + var materials = ""; + for(var i = 0; i < materialArray.length;++i){ + var amount = parseInt(materialArray[i].amount); + if(amount > 0){ + materials += materialArray[i].materialName + "*" + materialArray[i].amount + ";"; + } + } + return materials.length > 0?materials.substring(0,materials.length - 1):""; + } + return ""; +} +/** + * 刷新丢失材料的显示,如果没有启用回收的丢失报损备注功能,或者没有丢失材料,那么隐藏整行 + * @param row 行号 + */ +function refreshErrorMaterialsView(row){ + var hide = true; + if(sstsConfig.enableRecycleMaterialErrorDamageRemark){ + var recyclingErrorJsonArrayStr = $('#recyclingError' + row).val(); + var materials = formatErrorOrDamageMaterials(recyclingErrorJsonArrayStr); + if(!isUndefinedOrNullOrEmpty(materials)){ + $('#errorMaterials' + row).text('丢失材料:' + materials); + hide = false; + } + } + if(hide){ + $('#errorMaterialsTr' + row).hide(); + }else{ + $('#errorMaterialsTr' + row).show(); + } +} +/** + * 刷新丢失备注的显示,如果没有启用回收的丢失报损备注功能,或者没有丢失备注,那么隐藏整行 + * @param row 行号 + */ +function refreshErrorRemarkView(row){ + var hide = true; + if(sstsConfig.enableRecycleMaterialErrorDamageRemark){ + var errorRemark = $('#hiddenErrorRemark' + row).val(); + if(!isUndefinedOrNullOrEmpty(errorRemark)){ + $('#errorRemark' + row).text('丢失备注:' + errorRemark); + hide = false; + } + } + if(hide){ + $('#errorRemarkTr' + row).hide(); + }else{ + $('#errorRemarkTr' + row).show(); + } +} +/** + * 刷新报损备注的显示,如果没有启用回收的丢失报损备注功能,或者没有报损备注,那么隐藏整行 + * @param row 行号 + */ +function refreshDamageRemarkView(row){ + var hide = true; + if(sstsConfig.enableRecycleMaterialErrorDamageRemark){ + var errorRemark = $('#hiddenDamageRemark' + row).val(); + if(!isUndefinedOrNullOrEmpty(errorRemark)){ + $('#damageRemark' + row).text('报损备注:' + errorRemark); + hide = false; + } + } + if(hide){ + $('#damageRemarkTr' + row).hide(); + }else{ + $('#damageRemarkTr' + row).show(); + } +} +/** + * 刷新拆包器械拆分篮筐数量的显示界面。如果没有启用拆分篮筐显示功能,或者没有报损备注,那么隐藏整行 + * @param row 行号 + */ +function refreshSplitBasketView(){ + if(sstsConfig.enableSplitBasketCount){ + //包定义id与包拆分的篮筐的映射 + var tousseDefIdBasketGroupMap = {}; + $('dl[class="sed clearfix"]').each(function(){ + $(this).children().each(function(){ + if($(this).attr('type') == 'hidden'){ + var hideValue = $(this).val(); + if(!isUndefinedOrNullOrEmpty(hideValue)){ + var obj = JSON.parse(hideValue); + if(obj.type == '材料'){ + tousseDefIdBasketGroupMap[obj.tousseDefinitionID] = obj.basketGroupBarcodes; + } + } + } + }); + }); + $("#tousseItemTable > tbody > tr").each(function(row,element) { + var tousseDefinitionId = $("#tousseDefinitionID" + row).val(); + var tousseType = $("#tousseType" + row).val();//省医现在希望最好是只有外来器械才显示 + var basketGroupBarcodes = tousseDefIdBasketGroupMap[tousseDefinitionId]; + if((tousseType == '外来器械包'|| tousseType == '外来器械拆分小包' ) && !isUndefinedOrNull(basketGroupBarcodes)){ + $('#splitBasket' + row).text('拆分篮筐数:' + basketGroupBarcodes.split(";").length); + $('#splitBasketTr' + row).show(); + }else{ + $('#splitBasket' + row).text(''); + $('#splitBasketTr' + row).hide(); + } + }); + } +} +/** + * 刷新报损材料明细的显示,如果没有启用回收的丢失报损备注功能,或者没有报损材料,那么隐藏整行 + * @param row 行号 + */ +function refreshDamageMaterialsView(row){ + var hide = true; + if(sstsConfig.enableRecycleMaterialErrorDamageRemark){ + var recyclingDamageArrayStr = $('#recyclingDamage' + row).val(); + var materials = formatErrorOrDamageMaterials(recyclingDamageArrayStr); + if(!isUndefinedOrNullOrEmpty(materials)){ + $('#damageMaterials' + row).text('报损材料:' + materials); + hide = false; + } + } + if(hide){ + $('#damageMaterialsTr' + row).hide(); + }else{ + $('#damageMaterialsTr' + row).show(); + } +} + +function getTousseItemRecyclingDamage(row){ + return $('#recyclingDamage' + row).val(); +} + +function setTousseItemRecyclingDamage(row,jsonstr,damageRemark){ + $('#recyclingDamage' + row).val(jsonstr); + if(!isUndefinedOrNull(damageRemark)){ + $('#hiddenDamageRemark' + row).val(damageRemark); + } + refreshDamageRemarkView(row); + refreshDamageMaterialsView(row); +} + +function updateUrgentAmount(row,urgentAmount,urgentLevel){ + $('#urgentAmount'+row).val(urgentAmount); + $('#urgentAmountDiv'+row).html(urgentAmount); + $('#urgentLevel' + row).val(urgentLevel); + if(urgentAmount > 0){ + $('#urgentAmountDiv'+row).css("background-image","url(urgentBg.png)"); + if(sstsConfig.showUrgentLevel){ + $('#urgentAmountDiv'+row).html(urgentLevel); + }else{ + $('#urgentAmountDiv'+row).html(urgentAmount); + } + }else{ + $('#urgentAmountDiv'+row).css("background-image","url(unUrgentBg.png)"); + $('#urgentAmountDiv'+row).html("+"); + } +} + +function openRecyclingDamagePage(row,tousseName,tousseItemId,errorDamageQmKey){ + + var tousseType = $('#tousseType' + row).val(); + if(tousseType == '外来器械包'){ + alertDiv("外来器械包不能添加报损项!"); + return false; + } + + var width = 740; + var height = 400; + var designedTousseWidth = 980; + var designedTousseHeight = 700; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + var depart = $('#depart').val(); + var departCode = $('#departCode').val(); + var damageRemark = $('#hiddenDamageRemark' + row).val(); + if(resolution == '1980'){ + width = 980; + height = 700; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['材料报损',true], + content : 'recyclingDamage.jsp?resolution='+resolution+'&width='+width+'&height='+height + +'&row='+row+'&tousseDefinitionID='+$('#tousseDefinitionID'+row).val()+'&tousseName='+tousseName + +'&tousseItemId='+tousseItemId+'&tousseCount='+$('#recycleAmount'+row).attr('value') + +'&recordType=' + params_recordType + +'&depart='+depart+'&departCode='+departCode+ '&damageRemark=' + damageRemark + +'&errorDamageQmKey=' + errorDamageQmKey, + area : [ width + 'px' , height +heightExtra + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} + +function submitForeignTousseDefinition(applicationId,foreignTousseInfo){ + $.ajax({ + type : 'post', + url : WWWROOT + '/disinfectSystem/foreigntousseapplication/foreignTousseApplicationAction!updateForeignTousseDefiniton.do', + data : {id : applicationId,foreignTousseInfo : foreignTousseInfo}, + dataType : 'json', + success : function(msg) { + alert(msg.message); + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + alert(textStatus); + } + }); +} + +function amendDisinfectionTousse(row){ + var tousseName = $('#tousseName'+row).val(); + var tousseDefinitionID = $('#tousseDefinitionID'+row).val(); + var tousseType = $('#tousseType'+row).val(); + if(tousseType == '消毒物品' || tousseType == '灭菌物品'){ + var width = 740; + var height = 400; + if(resolution == '1980'){ + width = 980; + height = 700; + } + + layerIndex=layer.open({ + type : 2, + title : ['消毒物品明细',true], + content : 'disinfectionTousseItems.jsp?resolution='+resolution+'&row='+row+'&tousseDefinitionID='+tousseDefinitionID, + area : [ width + 'px' , height + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : ['100px',''] + }); + }else if(tousseType == '器械包'){ +// $.ajax({ +// type:'post', +// url:WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getToussePictureAmount.do', +// data:'id=' + tousseDefinitionID, +// dataType:'text', +// success:function(msg){ +// var amount = parseInt(msg,10); +// var items = new Array(); +// if(amount == 0){ +// amount = 1; +// } +// for(var i = 0;i < amount;i++){ +// items.push(); +// } + $.magnificPopup.open({ + items: [{ + src:'tousseImage.jsp?resolution='+resolution+'&tousseDefinitionID='+tousseDefinitionID+'&tousseName='+encodeURIComponent(tousseName)+'&number='+1, + type :'iframe' + },{ + //只是为了让箭头出现,如果可以有其他办法,这里可以去掉。因为在tousseImage.jsp内部,修改了下一页和上一页的处理 + src: '
    永远看不到我
    ', + type: 'inline' + }], + tClose: '关闭(Esc)', + gallery: { + enabled: true, + tPrev: '上一页 (左箭头)', // Alt text on left arrow + tNext: '下一页 (右箭头)' + }, + image: { + verticalFit: true + }, + type: 'image' // this is default type + }); +// }, +// error:function(XMLHttpRequest, textStatus, errorThrown){ +// } +// }); + }else if(tousseType == '自定义器械包'){ + var width = 740; + var height = 400; + var designedTousseWidth = 980; + var designedTousseHeight = 700; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 980; + height = 700; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : [tousseName + ' 材料信息',true], + content : 'setMaterialRecycleAmount.jsp?resolution='+resolution+'&width='+width+'&height='+height+'&row='+row+'&tousseDefinitionID=' + tousseDefinitionID, + area : [ width + 'px' , height +heightExtra + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); + }else if(tousseType == '外来器械包'){ + var width = 740; + var height = 400; + var designedTousseWidth = 980; + var designedTousseHeight = 700; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 1080; + height = 800; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + + layerIndex=layer.open({ + type : 2, + title : [tousseName + ' 信息',true], + content : 'setForeignTousseDefinition.jsp?resolution='+resolution+'&width='+width+'&height='+height+'&row='+row+'&tousseDefinitionID=' + tousseDefinitionID + '&applicationId=' + params_appId + '&recyclingrecordId=' + params_id, + area : [ width + 'px' , height +heightExtra + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); + } +} + +function getBasketJSON(itemId,barcode,washClassifyType,sequence,basketName){ + var json = {}; + json.classifyBasketId = itemId; + json.barcode = barcode; + json.washClassifyType = washClassifyType; + json.sequence = sequence; + json.basketName = basketName; + return JSON.stringify(json); +} + +function getBasketItemJSON(ci_id,type,orgUnitName,tousseName,materialName,amount,tousseAmount,idCardBarcode, + tousseDefinitionID,basketGroupBarcodes,putBasketMaxAmount,tousseType){ + var json = {}; + json.classifiedItemId = ci_id; + json.type = type; + json.orgUnitName = orgUnitName; + json.tousseName = tousseName; + json.materialName = materialName; + json.amount = amount;//td显示的数量 + json.tousseAmount = tousseAmount;//材料相对的包数量 + json.idCardBarcode = idCardBarcode; + json.tousseDefinitionID = tousseDefinitionID; + json.tousseType = tousseType; + json.putBasketMaxAmount = putBasketMaxAmount; + json.useBasketBarcodes = new Array(); + json.basketGroupBarcodes = basketGroupBarcodes; + return JSON.stringify(json); +} + +/** + * 获取已入篮筐的数据. + * @param isCleanedEntirely + * @returns {Array} + */ +function getScanedGoods(isCleanedEntirely){ + var basketJsonArray = new Array(); + $("#basketsUl li").each(function(){ + var hideStr = $(this).find('input').val(); + var hiddenjson = JSON.parse(hideStr); + + var scanedGoodsArray = new Array(); + + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var itemJson = $(this).val(); + var json = JSON.parse(itemJson); + if(json.classifiedItemId == ""){ + var type = json.type; + var name = json.tousseName; + if(type == '材料'){ + name = json.materialName; + } + scanedGoodsArray.push({ + name:name, + tousseDefinitionID:json.tousseDefinitionID, + tousseName:json.tousseName, + tousseType:json.tousseType, + type:json.type, + amount:json.amount, + idCardBarcode : json.idCardBarcode, + putBasketMaxAmount:json.putBasketMaxAmount + }); + } + } + }); + + if(isCleanedEntirely == "是"){ + if(sstsConfig.cleanedEntirelyTousseIntoWashClassifyEmptyBasket){ + if(isUndefinedOrNullOrEmpty(hiddenjson.washClassifyType)){ + basketJsonArray.push({ + barcode : hiddenjson.barcode, + name:hiddenjson.basketName, + washClassifyType : hiddenjson.washClassifyType, + scanedGoods : scanedGoodsArray + }); + return false; + } + }else{ + basketJsonArray.push({ + barcode : hiddenjson.barcode, + name:hiddenjson.basketName, + washClassifyType : hiddenjson.washClassifyType, + scanedGoods : scanedGoodsArray + }); + return false; + } + }else{ + basketJsonArray.push({ + barcode : hiddenjson.barcode, + name:hiddenjson.basketName, + washClassifyType : hiddenjson.washClassifyType, + scanedGoods : scanedGoodsArray + }); + } + }); + return basketJsonArray; +} + +/** + * 判断此次能入筐的数量. + * @param tousseDefinitionID + * @param tousseName + * @param recycleAmount + * @param isCleanedEntirely + * @param orgUnitName + * @param idCardBarcode + * @returns {Number} + */ +function tousseIntoBasketFunction(tousseDefinitionID,tousseName,recycleAmount,isCleanedEntirely,orgUnitName,idCardBarcode,tousseType){ + var params = getScanedGoods(isCleanedEntirely); + if(params.length <=0){ + if(isCleanedEntirely == "是" && sstsConfig.cleanedEntirelyTousseIntoWashClassifyEmptyBasket){ + //因为篮筐列表不会为空(之前已经验证过了),但是整包申请的包,如果配置为必须入清洗分类类型为空的篮筐,那可能就会执行到这里 + alertDiv("缺少清洗分类类型为空的篮筐,请扫描"); + return 0; + } + } + var loadedAmount = 0; + var recyclingApplicationId = $('#recyclingApplicationId').val(); + DWREngine.setAsync(false); + RecyclingRecordTableManager.getTousseIntoBasketAmount(tousseDefinitionID,recycleAmount,idCardBarcode,JSON.stringify(params),JSON.stringify(getTousseIntoBasketInfo()),recyclingApplicationId,function(result){ + var jsonObj = JSON.parse(result); + + if(!jsonObj.success){ + alertDiv(jsonObj.message); + }else{ + var data = jsonObj.data; + loadedAmount = data.amount; + if(isCleanedEntirely == "否"){ + var materials = data.materials; + if(materials == null){ + alertDiv("异常数据,请联系管理员!"); + return; + } + for(var i = 0;i < materials.length;i++){ + var item = materials[i]; + var basketItem = { + ci_id: "", + type: '材料', + orgUnitName: orgUnitName, + tousseName: tousseName, + tousseDefinitionID: tousseDefinitionID, + tousseType:tousseType, + materialName: item.materialName, + showName: item.materialName, + amount: item.materialAmount, + tousseAmount: loadedAmount, + basketBarcode: item.basketBarcode, + idCardBarcode: idCardBarcode, + basketGroupBarcodes:item.basketGroupBarcodes, + putBasketMaxAmount : item.putBasketMaxAmount + }; + addBasketItemElement(basketItem); + } + }else{ + var basketItem = { + ci_id: "", + type: '器械包', + orgUnitName: orgUnitName, + tousseName: tousseName, + tousseDefinitionID: tousseDefinitionID, + tousseType:tousseType, + materialName: "", + showName: tousseName, + amount: loadedAmount, + tousseAmount: loadedAmount, + basketBarcode: data.basketBarcode, + idCardBarcode: idCardBarcode, + basketGroupBarcodes: data.basketBarcode, + putBasketMaxAmount : data.putBasketMaxAmount + }; + addBasketItemElement(basketItem); + } + } + }); + DWREngine.setAsync(true); + return loadedAmount; +} + +//将器械包放入篮筐中 +function putTousseInTheBasket(row){ + var inputSuccess = false; + if($('#basketsUl').children().length > 0){ + var tousseName = $('#tousseName'+row).val(); + var tousseDefinitionID = $('#tousseDefinitionID'+row).val(); + var showTousseName = $('#showTousseName'+row).val(); + var tousseType = $('#tousseType'+row).val(); + var isCleanedEntirely = $('#isCleanedEntirely'+row).val(); + + var amount = parseInt($('#recycleAmount'+row).val(),10) - parseInt($('#loadedAmount'+row).val(),10); + + //回收数量扣减入筐操作 如果已经入筐就不能入筐,只能是手动从篮筐里面删除,因为程序不晓得从哪个篮筐里面扣减 + var msg = ""; + if(amount < 0){ + $("#basketsUl li").each(function(){ + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var hideStr = $(this).val(); + var json = JSON.parse(hideStr); + if(json.tousseName == tousseName){ + msg = tousseName+"已入筐,请从篮筐内删除后再入筐!"; + return false; + } + } + }); + }); + } + if(amount > 9999){ + msg = "入筐数量不能大于9999!"; + } + + if(!isUndefinedOrNullOrEmpty(msg)){ + alertDiv(msg); + return false; + } + + var isIDCard = $('#isThereIdentificationCard'+row).val(); + if(isIDCard == '是'){ + var showMsg = null; + var recyclingErrorJsonArrayStr = $('#recyclingError'+row).val(); + if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + var isIdCardLost = false; + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ + isIdCardLost = true; + var errorAmount = parseInt(recyclingErrorJsonArray[j].amount); + var intoBasketAmount = parseInt(recyclingErrorJsonArray[j].intoBasketAmount); + if(errorAmount == 0 || errorAmount == intoBasketAmount){ + showMsg = $('#tousseName'+row).val()+"扫描的标识牌数量不等于回收数量,如果标识牌丢失,请在回收误差中登记丢失记录!"; + }else{ + if(errorAmount - intoBasketAmount >0){ + amount = errorAmount - intoBasketAmount; + } + } + break; + } + } + if(!isIdCardLost && amount > 0){ + showMsg = $('#tousseName'+row).val()+"扫描的标识牌数量不等于回收数量,如果标识牌丢失,请在回收误差中登记丢失记录!"; + } + }else{ + var tousseAmount = parseInt($('#recycleAmount'+row).val(),10); + var scannedAmount = parseInt($('#loadedAmount'+row).val(),10); + if(tousseAmount != scannedAmount){ + showMsg = $('#tousseName'+row).val()+"扫描的标识牌数量不等于回收数量,如果标识牌丢失,请在回收误差中登记丢失记录!"; + } + } + + if(showMsg != null){ + alertDiv(showMsg); + return false; + } + } + + var orgUnitName = $('#depart').val(); + if(amount == 0){ + alertDiv('没有可以放入篮筐的器械包。'); + }else{ + var loadedAmount = tousseIntoBasketFunction(tousseDefinitionID,tousseName,amount,isCleanedEntirely,orgUnitName,"",tousseType); + + if(loadedAmount > 0){ + $('#loadedAmount'+row).val(parseInt(loadedAmount,10)+parseInt($('#loadedAmount'+row).val(),10)); + //丢失报损器械 + if(isIDCard == '是'){ + setIdCardErrorIntoBasketAmount(row,loadedAmount); + } + + setTousseItemLoadedAmountCss(row); + + inputSuccess = true; + } + } + }else{ + alertDiv('请先扫描篮筐条码。'); + } + $('#depart').focus(); + + return inputSuccess; +} + +function setTousseItemLoadedAmountCss(row){ + var recycleAmount = parseInt($('#recycleAmount'+row).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+row).val(),10); + if(loadedAmount > 0 && recycleAmount > loadedAmount){ + $("#loadedAmount" + row).css("background","#FFE66F");//黄色 + }else if(recycleAmount == loadedAmount){ + $("#loadedAmount" + row).css("background","#b7d9a5");//绿色 + } +} +/** + * 修改数量的时候,更新绑定物品.调用此方法的时候,回收数量已经更新 + * @param row + */ +function updateBindGoods(row){ + var toussItem = { + tousseDefinitionID: $('#tousseDefinitionID' + row).val(), + tousseName:$('#tousseName' + row).val(), + recycleAmount:$('#recycleAmount' + row).val(), + tousseType:$('#tousseType' + row).val() + }; + addBindGoods(toussItem,sstsConfig.addTousseAtLastForRecycle); +} +/** + * 查找绑定的不回收的器械包。绑定中的包定义id都是祖先id + * @param ancestorTdId + */ +function findBindGoodsItem(ancestorTdId){ + for(var i = 0; i < unrecycleTousseItemArray.length;++i){ + if(unrecycleTousseItemArray[i].id == ancestorTdId){ + return unrecycleTousseItemArray[i]; + } + } + return null; +} +/** + * 添加绑定物品 + * @param toussItem + * @param appendLast + */ +function addBindGoods(toussItem,appendLast){ + var params = { +// settleAccountsDepartCoding: top.Ext4.getCmp('settleAccountsDepartCoding').getValue(),//只有一次性物品才用 +// handleDepartCode: top.Ext4.getCmp('handleDepartCoding').getValue(),//只有一次性物品才用 + goodName: toussItem.tousseName, + bindCount: toussItem.recycleAmount, + goodId: toussItem.tousseDefinitionID, + time: new Date().getTime(),//添加时间参数,避免缓存问题。现场反馈物品绑定偶尔带不出绑定的敷料包 + goodType: toussItem.tousseType + }; + $.ajax({ + type:'POST', + url:WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getBindGoods.do', + data:params, + dataType:'json', + success:function(result){ + if(result && result.success && result.data.length > 0){ + for(var i = 0; i < result.data.length;++i){ + var record = result.data[i]; + if(record.isRecycling != '是' || (record.tousseType != PACKAGE_TYPE_INSIDE && record.tousseType != PACKAGE_TYPE_DISINFECTION)){ + //不回收的器械包、消毒物品、敷料包,放到不回收器械包集合中,传到后台再添加申请(或者修改申请数量) + var existItem = findBindGoodsItem(record.id); + if(existItem){ + existItem.count = record.count; + }else{ + unrecycleTousseItemArray.push(record); + } + }else{ + var row = tousseItemExists(record.id,record.name,record.tousseType); + if(row == -1){ + row = document.getElementById("tousseItemTable").rows.length; + var timeStr = new Date().getTime(); + var errorDamageQmKey = record.id + "_" + timeStr; + var toussItem = { + row: row, + tousseItemId: '', + tousseName: record.name, + tousseDefinitionID: record.id, + applicationAmount: 0, + recycleAmount: 0, + loadedAmount: 0, + isCleanedEntirely: record.isCleanedEntirely, + tousseType: record.tousseType, + isThereIdentificationCard: record.isThereIdentificationCard, + isApplyEntireTousse: record.isApplyEntireTousse, + urgentAmount:0, + errorDamageQmKey:errorDamageQmKey + }; + addToussItem(toussItem,appendLast); + //已删除又添加该物品jsonArray处理 + cleanDeleteTousseItem(record.id); + } + $('#recycleAmount'+row).val(record.count); + setTousseItemLoadedAmountCss(row); + changeRecycleAmount(row); + } + } + } + }, + error:function(XMLHttpRequest, textStatus, errorThrown){ + alertDiv('获取绑定物品失败'); + } + }); +} +/** + * 判断是否存在对应的物品,如果存在,返回对应的行号,否则返回-1; + * @param tousseDefinitionID 包定义id + * @param tousseName 器械包名称,如果是消毒物品,就用名称匹配,因为消毒物品的id可能跟界面上的不一样 + * @param tousseType 器械包类型 + * @returns {Number} + */ +function tousseItemExists(tousseDefinitionID,tousseName,tousseType){ + var row = -1; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if(($('#tousseDefinitionID'+i).val() == tousseDefinitionID)||(tousseType == '消毒物品' && $('#tousseName'+i).val() == tousseName)){ + //显示的列表中是否有该器械包 + if($('#deleted'+i).val() == '0'){ + row = i; + return false; + } + } + }); + return row; +} +function highlightExistTousseItem(row){ + //先滑动到对应的行 + var scrollTop = $("#tousseItemsTr" + row).offset().top-$('#tousseItemTable').offset().top; + $('#tousseItemBox').stop(true, false).animate({ + scrollTop: scrollTop + }, 500); + //闪烁一定的次数 + for(var i = 0; i < 5;++i){ + $("#tousseItemsTr" + row).animate({ + backgroundColor: "#7ABD32" + }, 300 ).animate({ + backgroundColor: "transparent" + }, 300 ) + } +} +/** + * 添加回收记录明细,tousseName为器械包名称,applicationAmount为申请数量,recycleAmount为回收数量,loadedAmount为装载数量 + * @param toussItem 物品明细 + * @param appendLast 是否追加到最后一行 + * @returns {Boolean} + */ +function addToussItem(toussItem,appendLast){ + var row = toussItem.row; + var tousseItemId = toussItem.tousseItemId; + var tousseName = toussItem.tousseName; + var applicationAmount = toussItem.applicationAmount; + var recycleAmount = toussItem.recycleAmount; + var loadedAmount = toussItem.loadedAmount; + var isCleanedEntirely = toussItem.isCleanedEntirely; + var isApplyEntireTousse = toussItem.isApplyEntireTousse; + var tousseType = toussItem.tousseType; + var isThereIdentificationCard = toussItem.isThereIdentificationCard; + var tousseDefinitionID = toussItem.tousseDefinitionID; + var urgentAmount = toussItem.urgentAmount; + var tousseRemark = isUndefinedOrNullOrEmpty(toussItem.tousseRemark)?'':toussItem.tousseRemark; + var urgentLevel = toussItem.urgentLevel?toussItem.urgentLevel:""; + var errorDamageQmKey = toussItem.errorDamageQmKey?toussItem.errorDamageQmKey:""; + //器械包实例或者标识牌实例条码 + var barcode = toussItem.barcode?toussItem.barcode:""; + var b = true; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if(($('#tousseDefinitionID'+i).val() == tousseDefinitionID)||(tousseType == '消毒物品' && $('#tousseName'+i).val() == tousseName)){ + //显示的列表中是否有该器械包 + if($('#deleted'+i).val() == '0'){ + alertDiv(tousseName + ",回收列表已存在!"); + b = false; + highlightExistTousseItem(i); + //删除后再添加该消毒物品,删除的项还原,原因是添加的消毒物品包定义和申请项的包定义不一样 + }else if(tousseType == '消毒物品'){ + $('#deleted'+i).val('0'); + $('#tousseItemsTr'+i).show(); + cleanDeleteTousseItem($('#tousseDefinitionID'+i).val()); + b = false; + } + } + }); + if(b){ + var showTousseName = tousseName; + var addButton = '+'; + var reduceButton = '-'; + var onclickFun = 'onclick="openUpdateAmount(this,'+ row +');"'; + + var urgentAmountElement = ""; + if(!isUndefinedOrNull(urgentAmount) && urgentAmount > 0){ + var msg = urgentAmount; + var fontSize="30px"; + if(sstsConfig.showUrgentLevel){ + msg = urgentLevel; + fontSize = "16px"; + } + urgentAmountElement = '
    '+msg+'
    '; + }else{ + var bgMsg = "background-image:url(unUrgentBg.png);"; + var msg = "+"; + if(!isUndefinedOrNullOrEmpty(tousseItemId)){ + bgMsg = ""; + msg = ""; + } + var fontSize="30px";//如果要显示加急等级,字体就要小 + if(sstsConfig.showUrgentLevel){ + fontSize = "16px"; + } + urgentAmountElement = '
    '+msg+'
    '; + } + var errorRemark =toussItem.errorRemark; //"注备注备注"; + var damageRemark = toussItem.damageRemark;//"备注备注"; + errorRemark = isUndefinedOrNullOrEmpty(errorRemark)?'':errorRemark; + damageRemark = isUndefinedOrNullOrEmpty(damageRemark)?'':damageRemark; + var trStr = ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '+ + ''+ + addButton + + ''+ + reduceButton + + ''+ + ''+ + // ''+ + // ''+ + ''; + trStr += ''; + trStr += ''; + trStr += ''; + trStr += ''; + trStr += ''; + trStr += '
    ' + + urgentAmountElement + '' + + '入筐丢失报损删除
     
     
     
     
     
    '; + var trElement = $(trStr) + if(appendLast){ + trElement.appendTo("#tousseItemTable");//在表格最后一行追加 + }else{ + trElement.prependTo("#tousseItemTable");//在表格第一行追加行 + } + refreshErrorRemarkView(row); + refreshDamageRemarkView(row); + } + return b; +} + +//待装载篮筐视图中的树形菜单伸缩的处理 +function toggleItems(spanElement){ + $(spanElement).toggleClass("minus"); + $(spanElement).nextAll('.sed').toggle(); +} + +function changeRecycleAmount(row){ + var originalValue = $('#originalValue'+row).val() == ''?0:parseInt($('#originalValue'+row).val(),10); + var recycleAmount = $('#recycleAmount'+row).val() == ''?0:parseInt($('#recycleAmount'+row).val(),10); + var originalValue = $('#originalValue'+row).val(); +} + +function setRemarkToRecycleItem(row,remark){ + remark = isUndefinedOrNullOrEmpty(remark)?"":remark; + $('#tousseRemark'+row).val(remark); + $("#dialogConfirm").dialog("close"); +} + +function setTousseRemark(row){ + $.ajax({ + type:'get', + url:encodeURI(WWWROOT + '/disinfectSystem/core/httpOptionAction!getHttpOptionsById.do?time='+new Date()), + data:'optionId=recycleItem_remark', + dataType:'json', + success:function(result){ + if(result.success){ + var htmlCode = ""; + var oldRemark = $('#tousseRemark'+row).val(); + for(var i = 0 ; i < result.data.length ; i++){ + var tmpRemark = result.data[i].value; + var redColor = ""; + if(oldRemark == tmpRemark){ + redColor = "color:red;"; + } + htmlCode += "

    " + result.data[i].value + "

    " + } + if(htmlCode == ""){ + alertDiv("未设置回收物品备注信息!"); + }else{ + $("#dialogConfirm").dialog({ + resizable: false, + height:530, + width:800, + title:'选择器械包备注信息', + modal: true, + open: function() { + $("#confirmMsg").html(htmlCode); + }, + close: function() { + $("#confirmMsg").html(""); + }, + buttons: { + "取消": function() { + $( this ).dialog( "close" ); + } + } + }); + } + } + }, + error:function(XMLHttpRequest, textStatus, errorThrown){ + alertDiv("未知错误,请联系管理员!"); + } + }); +} +var layerIndex; +function closeLayer(){ + layer.close(layerIndex); + layerIndex = null; +} +var qmLayerIndex = null; +function setQmLayerIndex(layerIndex){ + qmLayerIndex = layerIndex; +} +function closeQmLayer(){ + layer.close(qmLayerIndex); + qmLayerIndex = null; +} + +var materialMsg; +function setMaterialMsg(mMsg){ + materialMsg = mMsg; +} +function getMaterialMsg(){ + return materialMsg; +} + +//打开编辑数量页面 +var openElement; +function openUpdateAmount(obj,row){ + var isApplyEntireTousse = $('#isApplyEntireTousse'+row).val(); + var tousseType = $('#tousseType'+row).val(); + + if(tousseType == '外来器械包'){ + alertDiv("外来器械包回收数量修改请使用旁边的按钮操作"); + return; + } + if(tousseType == '消毒物品' && '是' != isApplyEntireTousse){ + alertDiv("拆包的消毒物品回收数量修改请使用旁边的按钮操作"); + return; + } + obj.blur(); + var width = 550; + var height = 300; + if(resolution == '1980'){ + width = 750; + height = 400; + } + openElement = obj; + layerIndex = layer.open({ + type : 2, + title : ['修改数量',true], + content : 'updateAmount.jsp?resolution='+resolution+'&row='+row, + area : [width + 'px' , height + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : ['250px',''] + }); +} + +function openUpdateStuffInTheBasketAmount(obj,tousseName,name,type){ + obj.blur(); + var width = 550; + var height = 300; + if(resolution == '1980'){ + width = 750; + height = 400; + } + openElement = obj; + layerIndex=layer.open({ + type : 2, + title : ['修改数量',true], + content : 'updateAmount.jsp?resolution='+resolution+'&tousseName='+tousseName+'&name='+name+'&type='+type, + area : [width + 'px' , height + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : ['250px',''] + }); + +} + +/** + * 获取回收误差信息,拼成字符串传到后台 + */ +function getMaterialErrorDamageDetail() { + var errorJsonArray = new Array(); + $('#tousseItemTable').children().first().children().each(function(i,element){ + if(!isUndefinedOrNullOrEmpty($('#recyclingError'+i).val())){ + var recyclingItemErrorJsonStr = $('#recyclingError'+i).val(); + if(!isUndefinedOrNullOrEmpty(recyclingItemErrorJsonStr)){ + var jsonArray = JSON.parse(recyclingItemErrorJsonStr); + for(var j = 0;j < jsonArray.length ; j++){ + jsonArray[j].itemType = '回收误差'; + errorJsonArray.push(jsonArray[j]); + } + } + } + var recyclingItemDamageJsonStr = $('#recyclingDamage'+i).val(); + if(!isUndefinedOrNullOrEmpty(recyclingItemDamageJsonStr)){ + var jsonArray = JSON.parse(recyclingItemDamageJsonStr); + for(var j = 0;j < jsonArray.length ; j++){ + jsonArray[j].itemType = '器械报损'; + errorJsonArray.push(jsonArray[j]); + } + } + }); + return errorJsonArray; +} + +/** + * 加急物品 + */ +function getUrgentTousseItems(){ + var urgentItemJsonArray = new Array(); + $('#tousseItemTable').children().first().children().each(function(index,element){ + if($('#deleted'+index).val() == '0'){ + var tousseName = $('#tousseName'+index).val(); + var tousseDefinitionID = $('#tousseDefinitionID'+index).val(); + var originalUrgentAmount = parseInt($('#originalUrgentAmount'+index).val(),10); + var urgentAmount = parseInt($('#urgentAmount'+index).val(),10); + var tousseItemId = $('#tousseItemId'+index).val(); + //已保存的tousseItem不能再修改 + if(tousseItemId == ""){ + urgentItemJsonArray.push({ + tousseName:tousseName, + tousseDefinitionID:tousseDefinitionID, + urgentAmount:urgentAmount + }); + } + } + }); + return urgentItemJsonArray; +} + +/** + * 获取左边的回收的信息. + * @returns {Array} + */ +function getRecyclingItemInfo(){ + var recyclingItemJsonArray = new Array(); + $('#tousseItemTable').children().first().children().each(function(index,element){ + if($('#deleted'+index).val() == '0'){ + var tousseName = $('#tousseName'+index).val(); + var recycleAmount = $('#recycleAmount'+index).val(); + var tousseDefinitionID = $('#tousseDefinitionID'+index).val(); + var tousseRemark = $('#tousseRemark'+index).val(); + var errorRemark = $('#hiddenErrorRemark'+index).val(); + var damageRemark = $('#hiddenDamageRemark'+index).val(); + var urgentLevel = $('#urgentLevel'+index).val(); + var errorDamageQmKey = $('#hiddenErrorDamageQmKey'+index).val(); + var tousseOrIDCardInstanceBarcodes = $('#tousseOrIDCardInstanceBarcodes'+index).val(); + recyclingItemJsonArray.push({ + tousseName:tousseName, + recycleAmount:recycleAmount, + tousseDefinitionID:tousseDefinitionID, + tousseRemark:tousseRemark, + errorRemark:errorRemark, + damageRemark:damageRemark, + urgentLevel:urgentLevel, + errorDamageQmKey:errorDamageQmKey, + tousseOrIDCardInstanceBarcodes:tousseOrIDCardInstanceBarcodes + }); + } + }); + console.log(recyclingItemJsonArray) + return recyclingItemJsonArray; + +} +/** + * 判断tousseItem表是否是空的。删除的项不算在内 + */ +function isTousseItemTableEmpty(){ + var isEmpty = true; + $("#tousseItemTable > tbody > tr").each(function() { + var style = $(this).attr("style"); + if (style != 'display: none;'){ + isEmpty = false; + return false; + } + }); + return isEmpty; +} +function submitCheck(){ + var isThereTousseItems = false; + var isAllTousseInTheBasket = true; + var urgentAmountError = false; + if($('#depart').val()== ''){ + alertDiv('请先扫描科室条码。'); + return false; + } + var recyclingRecordId = $('#recyclingApplicationId').val(); + if (isTousseItemTableEmpty() && recyclingRecordId == ''){ + alert("空白的回收单不能保存!"); + return false; + } + var isEmptyFormSubmit = true; + $('#tousseItemTable').children().first().children().each(function(index,element){ + if($('#deleted'+index).val() == '0'){ + isThereTousseItems = true; + + var tousseType = $('#tousseType'+index).val(); + var recyclingAmount = parseInt($('#recycleAmount'+index).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+index).val(),10); + + if(loadedAmount > 0 && recyclingAmount > loadedAmount){ + isAllTousseInTheBasket = false; + return false; + } + + if(loadedAmount > 0){ + isEmptyFormSubmit = false; + } + if(validateUrgentAmount(index,recyclingAmount)){ + highlightExistTousseItem(index); + urgentAmountError = true; + return false; + } + + //标识牌丢失验证 + var isIDCard = $('#isThereIdentificationCard'+index).val(); + if(isIDCard == '是'){ + var recyclingErrorJsonArrayStr = $('#recyclingError'+index).val(); + if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ + var errorType = recyclingErrorJsonArray[j].errorType; + var errorAmount = recyclingErrorJsonArray[j].amount; + var intoBasketAmount = recyclingErrorJsonArray[j].intoBasketAmount; + if(errorType == '缺失' && errorAmount != intoBasketAmount){ + isAllTousseInTheBasket = false; + } + break; + } + } + } + } + } + }); + + if(!isAllTousseInTheBasket){ + alertDiv('部分器械包回收数量大于装载数量,不能保存。'); + return false; + } + if(urgentAmountError){ + return false; + } + if(isEmptyFormSubmit){ + alertDiv("不能保存空的回收单!"); + return false; + } + + //验证清点人是否为空(前提为配置清点人强制不能为空,默认为允许为空) + if(sstsConfig.recyclePageOperatorNotNull == true && $("#operator").val() == ''){ + alertDiv('清点人不能为空,请扫描清点人条码。'); + return false; + } + + //验证清点人是否为空(前提为配置清点人强制不能为空) + if(sstsConfig.recyclePageRecyclingUserNotNull == true && $("#recyclingUser").val() == ''){ + alertDiv('回收人不能为空,请扫描回收人条码。'); + return false; + } + return true; +} + +/** + * 获取此次回收的数据. + * @param confirmation + * @returns + */ +function getJsonParams(confirmation){ + var paramJson = {}; + paramJson.tousseJson = tousseArray; + paramJson.delToussItems = deleteTousseItemArray; + paramJson.unrecycleTousseItemArray = unrecycleTousseItemArray; + paramJson.tousseIntoBasketInfo = getTousseIntoBasketInfo(); + paramJson.errorDamageDetail = getMaterialErrorDamageDetail(); + paramJson.urgentTousseItems = getUrgentTousseItems(); + paramJson.confirmation = confirmation; + paramJson.recyclingItemArray = getRecyclingItemInfo(); + return JSON.stringify(paramJson); +} + +/** + * 弹出确认提示筐 + * @param text 提示内容 + * @param yesCallback 选择“是”的回调函数 + * @param nocallback 选择“是”的回调函数 + * @param dialogWidth 对话框宽度 + * @param dialogHeight 对话筐高度 + */ +function dialogConfirm(text,yesCallback,nocallback , dialogWidth , dialogHeight){ + $("#dialogConfirm").dialog({ + resizable: false, + height:dialogHeight ? dialogHeight : 310, + width:dialogWidth ? dialogWidth : 600, + modal: true, + open: function() { + $("#confirmMsg").html(text); + }, + close: function() { + $("#confirmMsg").html(""); + }, + buttons: { + "是": function() { + $( this ).dialog( "close" ); + if(yesCallback){ + yesCallback(); + } + + }, + "否": function() { + $( this ).dialog( "close" ); + if(nocallback){ + nocallback(); + } + } + } + }); +} + +/** + * 检查是否有未归还的器械包,如果有,那就提示. + * @param confirmation 确认回收记录操作 + * @param saveAndNew 保存并新建回收记录操作 + * @param print 保存并打印回收记录操作 + */ +function checkAutoReturnBorrowing(confirmation,saveAndNew,print,recyclingAmountConfirm){ + //除申请还物单、自定义器械申请单、外来器械申请单、历史回收记录等可以直接提交外,其它类型的单回收都需要判断是否有物品要归还,包括手动添加回收申请单、科室申领添加的申请单、使用记录转换的申请单等都需要判断是否需要自动归还 + if(!isUndefinedOrNullOrEmpty(params_id)){ + submitFormFunction(confirmation,saveAndNew,false,print,recyclingAmountConfirm); + return; + } + var tousseNames = []; + for(var i = 0; i < tousseArray.length;++i){ + if(parseInt(tousseArray[i].amount) > 0){ + if(tousseArray[i].itemType == '材料'){ + tousseNames.push(tousseArray[i].tousseNameForMaterial); + }else{ + tousseNames.push(tousseArray[i].tousseName); + } + } + } + var departCode = document.getElementById('departCode').value; + var borrowApplicationInfo = null; + DWREngine.setAsync(false); + RecyclingApplicationTableManager.getUnReturnBorrowApplication(params_appId , departCode,tousseNames.join(';'),function(datesOfTousseLease){ + borrowApplicationInfo = datesOfTousseLease; + }); + DWREngine.setAsync(true); + if(borrowApplicationInfo){ + var borrowApplicationInfoJson = JSON.parse(borrowApplicationInfo); + var borrowTimes = borrowApplicationInfoJson.borrowTimes; + var tousseLeaseAmount = borrowTimes.split(';').length; + + var confirmMessage = '您有'+tousseLeaseAmount+'张申请日期为'+borrowTimes+'的借物单的以下物品未归还,是否申请归还?'; + var tdStyle = 'font-size:28px;text-align:center;'; + var nameWidth = '440px;',taskGroupWidth='200px;',amoutWidth='140px;'; + var table = ''; + for(var i = 0; i < borrowApplicationInfoJson.tousseData.length;++i){ + var tousseData = borrowApplicationInfoJson.tousseData[i]; + table += ''; + } + table += '
    '+ confirmMessage +'
    器械包数量
    '+tousseData.tousseName+''+tousseData.amount+'
    '; + var html = '
    '+table+'
    '; + dialogConfirm(html,function(){ + submitFormFunction(confirmation,saveAndNew,true,print,recyclingAmountConfirm); + },function(){ + submitFormFunction(confirmation,saveAndNew,false,print,recyclingAmountConfirm); + },800 , 500); + }else{ + submitFormFunction(confirmation,saveAndNew,false,print,recyclingAmountConfirm); + } +} +/** + * 显示回收物品清单 + */ +function showRecyclingDetail(recyclingItems,confirmCallback){ + if(recyclingItems && recyclingItems.length > 0){ + var tdStyle = 'font-size:28px;text-align:center;'; + var tdLeftStyle = 'font-size:28px;text-align:left;'; + var tdRightStyle = 'font-size:28px;text-align:right;'; + var seqWidth = '70px;', nameWidth = '570px;',amoutWidth='140px;'; + var table = ''; + for(var i = 0; i < recyclingItems.length;++i){ + var recyclingItem = recyclingItems[i]; + table += ''; + } + table += '
    回收物品清单
    序号器械包回收数量
    '+(i+1)+''+recyclingItem.tousseName+''+recyclingItem.recyclingAmount+'
    '; + var html = '
    '+table+'
    '; + $(html).dialog({ + maxHeight: 600, + width: 800, + modal:true, + buttons: { + '保存':function(){ + if(confirmCallback){ + confirmCallback(); + } + $(this).dialog( "close" ); + }, + '取消': function() { + $(this).dialog( "close" ); + } + } + }); + } +} +/** + * 提交回收记录. + * @param confirmation 确认回收记录操作 + * @param saveAndNew 保存并新建回收记录操作 + * @param print 保存并打印回收记录操作 + * @param recyclingAmountConfirm 是否确认回收数量 + */ +function submitFunction(confirmation,saveAndNew,print,recyclingAmountConfirm){ + if(submitCheck()){ + //回收物品清单 + var recyclingTousses = []; + var isPartIntheBasket = false; + $('#tousseItemTable').children().first().children().each(function(index,element){ + if($('#deleted'+index).val() == '0'){ + var tousseName = $('#tousseName'+index).val(); + var recyclingAmount = parseInt($('#recycleAmount'+index).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+index).val(),10); + if(recyclingAmount > 0){ + //有回收,那加入回收物品清单 + recyclingTousses.push({tousseName:tousseName,recyclingAmount:recyclingAmount}); + } + if(recyclingAmount > loadedAmount){ + isPartIntheBasket = true; + return false; + } + } + }); + //部分入筐提示 + if(isPartIntheBasket){ + if(sstsConfig.enablePartRecycle == true){ + dialogConfirm("还有部分器械包未装入篮筐,是否继续保存?",function(){ + if(sstsConfig.showRecyclingDetail && recyclingTousses.length > 0){ + showRecyclingDetail(recyclingTousses,function(){ + checkAutoReturnBorrowing(confirmation,saveAndNew,print,recyclingAmountConfirm); + }); + }else{ + checkAutoReturnBorrowing(confirmation,saveAndNew,print,recyclingAmountConfirm); + } + }); + }else{ + alertDiv('还有部分器械包未装入容器,不能保存。'); + } + }else{ + if(sstsConfig.showRecyclingDetail && recyclingTousses.length > 0){ + showRecyclingDetail(recyclingTousses,function(){ + checkAutoReturnBorrowing(confirmation,saveAndNew,print,recyclingAmountConfirm); + }); + }else{ + checkAutoReturnBorrowing(confirmation,saveAndNew,print,recyclingAmountConfirm); + } + } + } +} + +/** + * 提交回收记录. + * @param confirmation 确认回收记录操作 + * @param saveAndNew 保存并新建回收记录操作 + * @param autoReturnTheBorrowingTousse 自动归还借物单 + * @param print 保存并打印回收记录操作 + */ +function submitFormFunction(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm){ + + alertDiv("保存中,请稍候......", true); + var jsonStr = getJsonParams(confirmation); + var id = document.getElementById('id').value; + var app_id = document.getElementById('recyclingApplicationId').value; + var departCode = document.getElementById('departCode').value; + var recyclingUser = document.getElementById('recyclingUser').value; + var operator = document.getElementById('operator').value; + var depart = document.getElementById('depart').value; + var recyclingTime = document.getElementById('recyclingTime').value; + var recyclingUserDefault = true; + if(sstsConfig.hasOwnProperty('recyclingUserDefault') && !sstsConfig.recyclingUserDefault){ + recyclingUserDefault = false; + } + $.ajax({ + url : WWWROOT + "/disinfectSystem/recyclingRecordAction!saveRecyclingRecord.do", + type : "POST", + timeout : 300000, + dataType :'json', + data : { + jsonParam : "" + jsonStr + "", + id : id, + recyclingApplicationId : app_id, + invoicePlanVersion : $("#invoicePlanVersion").val(), + departCode : departCode, + recyclingUser : recyclingUser, + operator : operator, + depart : depart, + recyclingTime : recyclingTime, + recyclingUserDefault : recyclingUserDefault, + autoReturnTheBorrowingTousse : autoReturnTheBorrowingTousse, + recyclingAmountConfirm:recyclingAmountConfirm, + remark:$('#remarkText').text(), + communicationUserName:$('#communicationUserName').val(), + communicationUserCode:$('#communicationUserCode').val(), + needPrint : print + }, + success : function(result) { + if(result.success){ + if(print && result.recyclingPrintData && result.recyclingPrintData.length > 0){ + printRecyclingDetail(result.recyclingPrintData); + } + alertDiv(result.message, true); + setTimeout("closeDiv()",1200); + + var voluntarilyUrgentItems = result.voluntarilyUrgentItems; + var voluntarilyUrgentItemsString = ''; + if (sstsConfig.enableTousseVoluntarilyUrgent && + voluntarilyUrgentItems && voluntarilyUrgentItems.length > 0) { + voluntarilyUrgentItemsString = JSON.stringify(voluntarilyUrgentItems); + } + if(saveAndNew){ + location.href = "recycleForTouchScreen.jsp?resolution=" + resolution + "&rememberRecycleUser=" + rememberRecycleUser; + }else{ + location.href = "awaitForRecycleList.jsp?resolution=" + resolution + "&voluntarilyUrgentItems=" + voluntarilyUrgentItemsString; + } + }else{ + if(result.versionNotMatch){ + closeDiv(); + layer.open({ + type: 1, + content: '' + result.message + '', //这里content是一个普通的String + btn: ['关闭','关闭并刷新'], + area: ['600px', '400px'], + btnAlign: 'c', + btn2:function(){ + refresh(); + } + }); + }else{ + alertDiv(result.message); + } + + } + }, + error: function(x, t, m) { + closeDiv(); + if(t == "timeout") { + alert("提交超时,请重试"); + } else { + alert(t); + } + } + }); +} + +/** + * 保存回收记录 + */ +function doSaveAction(){ + submitFunction(false,false,false,false); +} + +/** + * 保存并新建回收记录 + */ +function doSaveAndNewAction(){ + submitFunction(false,true,false,false); +} + +/** + * 保存并打印回收记录 + */ +function doSaveAndPrintAction(){ + submitFunction(false,false,true,false); +} + +/** + * 保存并打印并新建回收记录 + */ +function doSaveAndPrintAndNewAction(){ + submitFunction(false,true,true,false); +} + +/** + * 确认回收记录 + */ +function doConfirmAction(){ + submitFunction(true,false,false,false); +} +/** + * 确认回收数量(确认沟通) + */ +function recyclingAmountConfirm(){ + submitFunction(false,false,false,true); +} + +function end(){ + if($("#recyclingApplicationId").val() == ''){ + alertDiv("没有待回收记录,不能终止."); + return; + } + var endCase = openModalWindow(WWWROOT+"/disinfectsystem/recyclingApplication/selectEndCause.jsp?time="+new Date(), "选择终止原因", "760", "400"); + if(endCase != null && endCase != undefined && endCase.length > 0){ + var paramStr = JSON.stringify(canTerminateTousseItemIds); + $.ajax({ + type:'get', + url:WWWROOT + '/disinfectSystem/invoicePlanAction!terminateTousseItems.do', + data:'tousseItemIds=' + encodeURI(paramStr)+'&endCase='+encodeURI(endCase), + dataType:'text', + success:function(resultStr){ + var result = JSON.parse(resultStr); + alertDiv(result.message); + if(result.success){ + location.href = 'awaitForRecycleList.jsp?resolution=' + resolution; + } + }, + error:function(XMLHttpRequest, textStatus, errorThrown){ + } + }); + } +} +//一键入筐 +function allInputBasket(){ + $('#tousseItemTable').children().first().children().each(function(row,element){ + if($('#deleted'+row).val() == '0'){ + var amount = parseInt($('#recycleAmount'+row).val(),10) - parseInt($('#loadedAmount'+row).val(),10); + + if(amount > 0){ + var success = putTousseInTheBasket(row); + if(!success){ + return false; + } + } + } + }); + refreshAllBasketTotalNum(); +} + +function cancel(){ + if (confirm("确认取消吗?")) { + location.href = 'awaitForRecycleList.jsp?resolution=' + resolution; + } +} + +function getUnCleanedEntirelyTousseInfo(){ + var result = new Array(); + $('#tousseItemTable').children().first().children().each(function(i,element){ + var recycleAmount = parseInt($('#recycleAmount'+i).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+i).val(),10); + var unLoadedAmount = recycleAmount - loadedAmount; + if($('#isCleanedEntirely'+i).val() == '否' && unLoadedAmount > 0){ + var isThereIdentificationCard = $('#isThereIdentificationCard'+i).val(); + var tousseId = $('#tousseDefinitionID'+i).val(); + var idCardBarcodes = $('#barcodes'+i).val(); + if(isThereIdentificationCard == '是'){ + var idCardUnLoadedAmount = 0; + if(!isUndefinedOrNullOrEmpty(idCardBarcodes)){ + var jsonArray = JSON.parse(idCardBarcodes); + for(var j = 0;j < jsonArray.length;j++){ + if(jsonArray[j].addSuccess == false){ + addJsonItem(result,tousseId,1,'是',jsonArray[j].barcode); + idCardUnLoadedAmount++; + } + } + } + var recyclingErrorJsonArrayStr = $('#recyclingError' + i).val(); + if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); + for(var j = 0;j < recyclingErrorJsonArray.length;j++) { + if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ + var errorAmount = parseInt(recyclingErrorJsonArray[j].amount); + var intoBasketAmount = parseInt(recyclingErrorJsonArray[j].intoBasketAmount); + if(errorAmount - intoBasketAmount > 0){ + addJsonItem(result,tousseId,errorAmount - intoBasketAmount,'是',''); + } + break; + } + } + } + }else{ + addJsonItem(result,tousseId,unLoadedAmount,'否',''); + } + } + }); + return JSON.stringify(result); +} + +function addJsonItem(result,tousseId,unLoadedAmount,isIdCard,idCardBarcode){ + var obj = {}; + obj.tousseId = tousseId; + obj.recycleAmount = unLoadedAmount; + obj.isThereIdentificationCard = isIdCard; + obj.idCardBarcode = idCardBarcode; + var len = result.length; + result[len] = obj; +} +function getTousseIntoBasketInfo(){ + tousseIntoBasketInfo.clear(); + $("#basketsUl li").each(function(){ + var hide = $(this).find('input:first'); + var basketItem = JSON.parse(hide.val()); + + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var obj = $(this).val(); + var tousseItem = JSON.parse(obj); + tousseIntoBasketInfo.addTousseBasket(tousseItem,basketItem); + } + }); + }); + return tousseIntoBasketInfo.getResult(); +} +function openCustomIntoBasketPage(){ + var data = getUnCleanedEntirelyTousseInfo(); + var tousseIntoBasketInfo = JSON.stringify(getTousseIntoBasketInfo()); + if(data != "[]"){ + var url = encodeURI(WWWROOT+'/disinfectsystem/touchScreen/recycle/customIntoBasket.jsp?data='+data+'&resolution=1980' + + '&tousseIntoBasketInfo=' + tousseIntoBasketInfo + '&recyclingApplicationId=' + $('#recyclingApplicationId').val()); + var style='menubar=no,location=no,directories=no,toolbar=no,statusbar=no,resizable=yes,top=100,left=100,width=1400,height=800,scrollbars=null'; + var popwin=window.open(url,"customIntoBasket",style); + }else{ + alertDiv("没有符合条件待装载的物品!"); + } + +} +//选择器械包 +function openSelectTousse(tousseName){ + + var tousseType = $('#appType').val(); + if(tousseType == TYPE_FOREIGNTOUSSEAPPLIACTION){ + alertDiv("外来器械回收单不能添加器械包!"); + return false; + } + if(!checkSelectDepartBeforeAddTousse()){ + return false; + } + if(!tousseName){ + tousseName = ''; + } + + var width = 780; + var height = 650; + var designedTousseWidth = 1080; + var designedTousseHeight = 770; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 1380; + height = 830; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['添加器械包',true], + content : 'addTousse.jsp?resolution='+resolution+'&width='+width+'&height='+height+'&tousseName='+tousseName, + area : [ width + 'px' , height +heightExtra+ 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} +//输入备注 +function openInputRemark(){ + if(!sstsConfig.modifyRemarkInRecycling){ + return; + } + var width = 780; + var height = 100; + var designedTousseWidth = 1080; + var designedTousseHeight = 100; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 400; + + if(resolution == '1980'){ + width = 1380; + height = 100; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + var width = 980; + var height = 330; + var heightExtra = 10; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['输入备注',true], + content : 'inputRemark.jsp?resolution='+resolution+'&width='+width+'&height='+height+'&remark=' + encodeURIComponent($('#remarkText').text()), + area : [ width + 'px' , height +heightExtra+ 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} +/** + * 设置申请单备注 + * @param remark + */ +function setRemark(remark){ + if(isUndefinedOrNullOrEmpty(remark)){ + remark = ""; + } + $('#remarkText').text(remark); +} +// 添加质量监测记录 +function addQM(){ + + var width = 780; + var height = 650; + var designedTousseWidth = 1080; + var designedTousseHeight = 770; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 1380; + height = 830; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + qmLayerIndex=layer.open({ + type : 2, + title : ['添加质量监测记录',true], + content : 'addQualityMonitoring.jsp?resolution='+resolution+'&width='+width+'&height='+height, + area : [ width + 'px' , height +heightExtra+ 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} +function customIntoBasketFun(data){ + if(data != null){ + for(var j = 0;j < data.length;j++){ + var materials = data[j].materials; + var tousseName = data[j].tousseName; + var recycleAmount = data[j].recycleAmount; + var tousseDefinitionID = data[j].tousseDefinitionID; + var tousseType = data[j].tousseType; + var tousseIdCardBarcode = data[j].idCardBarcode; + var basketGroupBarcodeArray = new Array(); + for(var i = 0;i < materials.length;i++){ + var item = materials[i]; + var sigle = true; + var b_len = basketGroupBarcodeArray.length; + for(var n = 0;n < b_len;n++){ + if(basketGroupBarcodeArray[n] == item.basketBarcode){ + sigle = false; + } + } + if(sigle){ + basketGroupBarcodeArray[b_len] = item.basketBarcode; + //添加篮筐 + var isBasketLoaded = false; + $("#basketsUl li").each(function(){ + var hide = $(this).find('input'); + var oldItem = JSON.parse(hide.val()); + if(oldItem.barcode == item.basketBarcode){ + refreshSequence($(this),item.sequence); + isBasketLoaded = true; + return false; + } + }); + if(!isBasketLoaded){ + createBasketUiElement(item.basketBarcode,item.basketId,item.containerName,item.washClassifyType,item.sequence); + $("#scanContainerBarcodeTipUl").hide(); + } + } + } + basketGroupBarcodeArray.sort(); + var orgUnitName = $('#depart').val(); + for(var i = 0;i < materials.length;i++){ + var item = materials[i]; + var basketItem = { + ci_id: "", + type: '材料', + orgUnitName: orgUnitName, + tousseName: tousseName, + tousseDefinitionID: tousseDefinitionID, + tousseType: tousseType, + materialName: item.materialName, + showName: item.materialName, + amount: item.materialAmount, + tousseAmount: item.tousseAmountForMaterial, + basketBarcode: item.basketBarcode, + idCardBarcode: item.idCardBarcode, + putBasketMaxAmount:item.putBasketMaxAmount, + basketGroupBarcodes:basketGroupBarcodeArray.join(";") + }; + addBasketItemElement(basketItem); + } + + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseDefinitionID'+i).val() == tousseDefinitionID){ + $('#loadedAmount'+i).val(parseInt(recycleAmount,10)+parseInt($('#loadedAmount'+i).val(),10)); + var idCard = $('#isThereIdentificationCard'+i).val(); + if(idCard == '是' && tousseIdCardBarcode == ''){ + setIdCardErrorIntoBasketAmount(i,recycleAmount); + } + setTousseItemLoadedAmountCss(i); + return false; + } + }); + } + refreshAllBasketTotalNum(); + refreshSplitBasketView(); + } +} +/** + * 点击选中回收人员或是清点人员 + * @param currentElementId 当前被点中的元素的id + */ +function selectUserType(currentElementId){ + currentUserType = currentElementId; + $("#" + currentElementId).css("background","#DDDDDD"); + if(currentElementId == userType_recycling){ + $("#operator").css("background","white"); + }else if(currentElementId == userType_operator){ + $("#recyclingUser").css("background","white"); + } +} +//选择科室 +function selectCommunicationUser(currentElementId){ + //只有历史回收记录才能修改沟通确认人 +// if('history' != params_recordType){ +// return; +// } + var width = 780; + var height = 650; + var designedTousseWidth = 1080; + var designedTousseHeight = 830; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 1100; + height = 860; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['选择沟通人',true], + content : 'selectUser.jsp?p=p&searchLoginUserDepart=false&resolution='+resolution+'&width='+width+'&height='+height, + area : [ width + 'px' , height +heightExtra+ 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} +function selectUser(userName,userFullName){ + if(isUndefinedOrNullOrEmpty(userName)){ + alertDiv('请选择沟通人'); + return; + } + if(isUndefinedOrNullOrEmpty(userFullName)){ + alertDiv('所选用户名不能为空'); + return; + } + $('#communicationUserName').val(userFullName); + $('#communicationUserCode').val(userName); +} +//选择科室 +/* +function openSelectDepart(){ + var canChangeDepart = false; + if(isUndefinedOrNullOrEmpty(params_appId)){ + //添加的回收申请单,可以修改科室 + canChangeDepart = true; + }else if(sstsConfig.canChangeDepartInRecyclingForwaitRecycleInvoicePlan){ + canChangeDepart = true; + } + //如果是历史回收记录,不能修改科室 + if('history' == params_recordType){ + canChangeDepart = false; + } + if(!canChangeDepart){ + //不可以修改科室,那就返回喽 + return; + } + var width = 780; + var height = 650; + var designedTousseWidth = 1080; + var designedTousseHeight = 830; + var designedWidth = 1920; + var designedHeight = 1080; + var actualWidth = window.screen.availWidth; + var actualHeight = window.screen.availHeight; + var offsetTop = 100; + var heightExtra = 10; + if(resolution == '1980'){ + width = 1100; + height = 860; + } + var zoomRatio = calculateZoomRatio(designedWidth,designedHeight,actualWidth,actualHeight); + var size = calculateSizeAfterZoom(designedTousseWidth,designedTousseHeight,zoomRatio); + + width = size.width; + height = size.height; + + offsetTop = offsetTop*zoomRatio; + layerIndex=layer.open({ + type : 2, + title : ['选择科室',true], + content : 'addDepart.jsp?resolution='+resolution+'&width='+width+'&height='+height, + area : [ width + 'px' , height +heightExtra+ 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : [offsetTop+'px',''] + }); +} +*/ +/** + * + + * 在清空器械包之前,要选删除篮筐 + */ +function emptyTousseItemTable(){ + $("#tousseItemTable").empty(); + $("#basketsUl").empty(); + tousseArray = []; +} +/** + * 判断是否可以清空器械包列表。如果有丢失报损,需要先删除才能清空。需要先提醒用户做删除操作 + */ +function canEmptyTousseItemTable(){ + var canEmpty = true; + $("#tousseItemTable > tbody > tr").each(function(row) { + var style = $(this).attr("style"); + if (style != 'display: none;'){ + var message = checkHaveErrorDamage(row); + if(!isUndefinedOrNullOrEmpty(message)){ + canEmpty = false; + return false; + } + } + }); + return canEmpty; +} +function selectDepart(departName,departCode){ + var oldValue = document.getElementById('departCode').value; + //加载科室申领模板 + if(params_id == '' && params_appId == '' && sstsConfig.isLoadApplyTemplateForAddRecycleRecord == true){ + if(oldValue != departCode){ + if(!canEmptyTousseItemTable()){ + alertDiv('器械包有登记丢失报损信息,请先删除后再操作!'); + return false; + } + var processFun = function(){ + $.ajax({ + type:'get', + url:WWWROOT + '/disinfectSystem/recyclingRecordAction!loadDepartmentAppTemplateForRecycle.do', + data:'orgUnitCoding=' + encodeURI(departCode), + dataType:'json', + success:function(dataArray){ + document.getElementById('depart').value = departName; + document.getElementById('departCode').value = departCode; + emptyTousseItemTable(); +// $("#tousseItemTable").empty(); + if(dataArray.length > 0){ + for(var i = (dataArray.length -1) ; i >= 0; i--){ + var timeStr = new Date().getTime(); + var errorDamageQmKey = dataArray[i].tousseDefinitionID + "_" + timeStr; + var toussItem = { + row: i, + tousseItemId: '', + tousseName: dataArray[i].tousseName, + tousseDefinitionID: dataArray[i].tousseDefinitionID, + applicationAmount: 0, + recycleAmount: 0, + loadedAmount: 0, + isCleanedEntirely: dataArray[i].isCleanedEntirely, + tousseType: dataArray[i].tousseType, + isThereIdentificationCard: dataArray[i].isThereIdentificationCard, + isApplyEntireTousse: dataArray[i].isApplyEntireTousse, + urgentAmount : 0, + tousseRemark : '', + errorDamageQmKey : errorDamageQmKey + }; + addToussItem(toussItem,false); + } + } + } + }); + } + if(isTousseItemTableEmpty()){ + processFun(); + }else{ + dialogConfirm('切换科室将删除所有器械包,是否继续',processFun); + } + } + }else{ + document.getElementById('depart').value = departName; + document.getElementById('departCode').value = departCode; + } +} +/** + * 可以终止的TousseItem的id.已经回收但是还没有发货的话,也是可以终止的。 + * 目前部分发货不能终止 + */ +var canTerminateTousseItemIds = []; + +function loadItem(){ + //是否开启“一键入筐”的功能 + if(sstsConfig.recycleAllTousseIntoBasket){ + var divElement = document.getElementById('divElement'); + divElement.innerHTML = ''; + } + + selectUserType(currentUserType); + + document.onkeydown = showKeyDown; + var recyclingApplicationId = params_appId; + var barcode = params_barcode; + var recyclingStatus = null; + if(!isUndefinedOrNullOrEmpty(recyclingApplicationId)){ + DWREngine.setAsync(false); + RecyclingApplicationTableManager.getRecyclingApplicationForRecycle(recyclingApplicationId,function(application){ + if(application == null) + return; + recyclingStatus = application.recyclingStatus; + if(application.recyclingRecordId != null && application.type != TYPE_FOREIGNTOUSSEAPPLIACTION){//外来器械申请单二次回收,会有历史回收记录 + loadRecyclingRecordById(application.recyclingRecordId); + }else{ + if (sstsConfig.showSettleAccountsDepartInRecycling){ + $("#depart").val(application.settleAccountsDepart); + $("#departCode").val(application.settleAccountsDepartCoding); + }else{ + $("#depart").val(application.depart); + $("#departCode").val(application.departCoding); + } + $("#invoicePlanVersion").val(application.version); + $("#appType").val(application.type); + $("#applyTime").val(application.submitTime); + $("#remarkText").text($("#remarkText").html() + (application.remark == null ? "" : application.remark)); + //备注添加申请人 + addApplicantToRemark(application); + + $("#recyclingApplicationId").val(application.id); + $("#tousseItemTable").empty(); + $("#basketsUl").empty(); + if(application.type == '自定义器械包申请单'){ + $('#add-bao').hide(); + applicationType = application.type; + } + if(application.applicationItems != null){ + var row = 0; + canTerminateTousseItemIds = []; + for(var i = 0 ; i< application.applicationItems.length ; ++i){ + //申请项 + var item = application.applicationItems[i]; + if(item.diposable == '否' && item.isRecycling != '否' && item.tousseType != '敷料包' && item.tousseType != '自制物品'){ + var recycleAmount = item.prepareRecycleAmount; + if(recycleAmount == null){ + recycleAmount = item.amount; + } + var errorDamageQmKey = item.errorDamageQmKey; + if(isUndefinedOrNullOrEmpty(errorDamageQmKey)){ + var timeStr = new Date().getTime(); + errorDamageQmKey = item.tousseDefinitionId + "_" + timeStr; + } + var toussItem = { + row: row, + tousseItemId: '', + tousseName: item.tousseName, + tousseDefinitionID: item.tousseDefinitionId, + applicationAmount: item.amount, + recycleAmount: recycleAmount, + loadedAmount: 0, + isCleanedEntirely: item.isCleanedEntirely, + tousseType: item.tousseType, + isThereIdentificationCard: item.isThereIdentificationCard, + isApplyEntireTousse: item.isApplyEntireTousse, + urgentAmount : item.urgentAmount, + errorRemark : item.errorRemark, + damageRemark : item.damageRemark, + urgentLevel : item.urgentLevel, + tousseRemark : '', + errorDamageQmKey : errorDamageQmKey + }; + addToussItem(toussItem,false); + canTerminateTousseItemIds.push(item.id); + ++row; + } + } + //是否有丢失报损 + var tousseBarcodes = application.tousseBarcodes; + if(!isUndefinedOrNullOrEmpty(tousseBarcodes)){ + $.ajax({ + type:'get', + url:WWWROOT + '/disinfectSystem/recyclingRecordAction!findMaterialErrorDamageByTousseBarcode.do', + data:'tousseBarcodes=' + encodeURI(tousseBarcodes), + dataType:'json', + success:function(result){ + //result的格式为:[{tousseBarcode:"包条码1",tousseDefinitionId:"包定义1",unSupplementMaterials:[{MaterialErrorDamageDetail对象1},{MaterialErrorDamageDetail对象2}]} + //,{tousseBarcode:"包条码2",tousseDefinitionId:"包定义2",unSupplementMaterials:[{MaterialErrorDamageDetail对象1},{MaterialErrorDamageDetail对象2}]}...{}] + for(var i = 0 ; i < result.length ; i++){ + var item = result[i]; + $('#tousseItemTable').children().first().children().each(function(j,element){ + if($('#tousseDefinitionID' + j).val() == item.tousseDefinitionId){ + loadUnSupplementMaterial(item,j,item.tousseBarcode); + } + }); + } + }, + error:function(msg){ + + } + }); + } + //如果回收数量为0不显示 + if(sstsConfig.hideZeroPrerecycleAmountTousseItem && application.isPrepareRecycled === 1){ + //配置为预回收为0的物品不显示,相当于删除,但是需要是没有丢失报损的 + var rows = $("#tousseItemTable > tbody > tr").length; + for(var index = 0; index < rows;++index){ + var message = checkHaveErrorDamage(index); + if(isUndefinedOrNullOrEmpty(message)){ + var recycleAmountStr = $("#recycleAmount" + index).val(); + var recycleAmount = parseInt(recycleAmountStr); + if(recycleAmount==0){ + deleteTousseItem(index); + } + } + } + } + } + } + }); + DWREngine.setAsync(true); + } + var id = params_id; + if(!isUndefinedOrNullOrEmpty(id)){ + loadRecyclingRecordById(id); + }else{ + $("#recyclingTime").val(today); + + var recyclePageCheckUserDefaultCurrentUser = true; + if(sstsConfig.recyclePageCheckUserDefaultCurrentUser == false){ + recyclePageCheckUserDefaultCurrentUser = false; + } + //如果配置为默认当前登录人为清点人,则赋值 + if(recyclePageCheckUserDefaultCurrentUser != false){ + $("#operator").val(userName); + } + //触摸屏回收回收人设置默认值 (默认值取当前登录用户) + if(sstsConfig.isRecycleUserSetDefaultValue == true){ + $("#recyclingUser").val(userName); + } + + if(rememberRecycleUser == 'true'){ + $("#recyclingUser").val(sessionRecyclingUser); + $("#operator").val(sessionOperator); + }else{ + //回收人使用上一次回收时选的回收人 + if(sstsConfig.recyclePageRecyclingUserDefaultLastRecyclingUser == true){ + $("#recyclingUser").val(sessionRecyclingUser); + } + //清点人使用上一次回收时选的清点人 + if(sstsConfig.recyclePageOperatorDefaultLastOperator == true){ + $("#operator").val(sessionOperator); + } + } + //如果有传递科室参数,那设置回收科室,并加载模板 + if(!isUndefinedOrNullOrEmpty(params_departCoding)){ + selectDepart(params_departName,params_departCoding); + } + } + + if(isSecondSupplyRoom && id == "" && params_appId == ""){ + //二级供应室回收时科室名称与编码改为也不赋值 + //$("#depart").val(secondOrgUnitName); + //$("#departCode").val(secondOrgUnitCoding); + } + + //如果篮筐为空,隐藏扫描篮筐提示 + if($("#basketsUl > li").length == 0){ + $("#scanContainerBarcodeTipUl").show(); + }else{ + $("#scanContainerBarcodeTipUl").hide(); + } + + checkLoadedAmount(); + + //如果是历史回收记录界面进入,则不显示终止按钮 + if(canTerminateTousseItemIds.length == 0){ + //没有可以终止的申请项,那就把终止按钮隐藏 + $('#btn-terminate').hide(); + } + //是否显示保存并打印按钮 + if(sstsConfig.showRecyclingPrintDetail && $("#appType").val() == TYPE_FOREIGNTOUSSEAPPLIACTION){ + $('#saveAndPrintBtnTd').show(); + }else{ + $('#saveAndPrintBtnTd').hide(); + } + //是否显示保存打印并新建按钮 + if(sstsConfig.showRecyclingSaveAndPrintAndNewActionButton){ + $('#saveAndPrintAndNewBtnTd').show(); + }else{ + $('#saveAndPrintAndNewBtnTd').hide(); + } + if(recyclingStatus == '部分回收'){ + $('#saveBtnTd').show(); + } + refreshSplitBasketView(); + refreshAllBasketTotalNum(); + if('history' != params_recordType || !getSystemSetConfig('confirmRecyclingAmount',true)){ + $('div.communicationUserName').hide(); + $('#recyclingAmountConfirm').hide(); + }else{ + $("#remark").css('max-width','582px'); + } + if(ENABLE_SPEECH_RECOGNITION){ + setTousseGrammer(); + } +} + +//装载数量根据其值更新背景色 +function checkLoadedAmount(){ + $('#tousseItemTable').children().first().children().each(function(i,element){ + var recycleAmount = parseInt($('#recycleAmount' + i).val(),10); + var loadedAmount = parseInt($('#loadedAmount' + i).val(),10); + if(loadedAmount > 0 && recycleAmount > loadedAmount){ + $("#loadedAmount" + i).css("background","#FFE66F");//黄色 + }else if(recycleAmount == loadedAmount){ + $("#loadedAmount" + i).css("background","#b7d9a5");//绿色 + }else{ + $("#loadedAmount" + i).css("background","#FFFFFF");//默认白色 + } + }); +} +//备注添加申请人 +function addApplicantToRemark(application){ + var confirmRecyclingAmount = getSystemSetConfig('confirmRecyclingAmount',true); + if(confirmRecyclingAmount){ + var rmk = $("#remarkText").text(); + if(!isUndefinedOrNullOrEmpty(rmk)){ + rmk += ";"; + } + if(!isUndefinedOrNullOrEmpty(application.applicant)){ + rmk += '申请人:' + application.applicant; + } + $("#remarkText").text(rmk); + } +} +/** + * 根据回收记录id加载回收记录的数据. + * @param id + */ +function loadRecyclingRecordById(id){ + DWREngine.setAsync(false); + RecyclingRecordTableManager.getRecyclingRecordById(id,function(record){ + record = eval("("+record+")"); + if(record != null){ + $("#id").val(record.id); + $("#depart").val(record.depart); + $("#recyclingUser").val(record.recyclingUser); + $("#operator").val(record.operator); + $("#departCode").val(record.departCode); + $("#recyclingTime").val(dateObjFormat(record.recyclingTime)); + $("#communicationUserName").val(record.communicationUserName); + $("#communicationUserCode").val(record.communicationUserCode); + var application = record.recyclingApplication; + if(application != null){ + $("#recyclingApplicationId").val(application.id); + $("#invoicePlanVersion").val(application.version); + var recordType = application.type; + if(recordType == '自定义器械包申请单'){ + $('#add-bao').hide(); + applicationType = application.type; + } + + $("#appType").val(application.type); + $("#applyTime").val(dateObjFormat(application.submitTime)); + $("#remarkText").text($("#remarkText").text() + (application.remark == null ? "" : application.remark)); + addApplicantToRemark(application); + } + userName = record.operator; + $("#tousseItemTable").empty(); + $("#basketsUl").empty(); + + if(record.status == '未确认'){ + $('#confirmBtnTd').show(); + }else if(record.status == '已确认'){ + $('#saveBtnTd').hide(); + $('#saveAndNewBtnTd').hide(); + $('#recyclingAmountConfirm').hide(); + } + if(application != null){ + //部分回收需要能够再次保存 + if(application.recyclingStatus == '部分回收'){ + $('#saveBtnTd').show(); + } + } + var row = 0; + //快速回收后未回收的包 + var recyclingApplication = record.recyclingApplication; + if(record.items != null){ + canTerminateTousseItemIds = []; + for(var i = 0 ; i< record.items.length ; i++){ + var tousseItem = record.items[i]; + + var applyAmount = tousseItem.amount; + if(recyclingApplication != null && recyclingApplication.applicationItems != null){ + var applyItems = recyclingApplication.applicationItems; + for(var n = 0;n < applyItems.length;n++){ + if(applyItems[n].tousseDefinitionId == tousseItem.tousseDefinitionId){ + applyAmount = applyItems[n].amount; + break; + } + } + } + var errorDamageQmKey = tousseItem.errorDamageQmKey; + if(isUndefinedOrNullOrEmpty(errorDamageQmKey)){ + var timeStr = new Date().getTime(); + errorDamageQmKey = tousseItem.tousseDefinitionId + "_" + timeStr; + } + var toussItem = { + row: row, + tousseItemId: tousseItem.id, + tousseName: tousseItem.tousseName, + tousseDefinitionID: tousseItem.tousseDefinitionId, + applicationAmount: applyAmount, + recycleAmount: tousseItem.amount, + loadedAmount: tousseItem.amount, + isCleanedEntirely: tousseItem.isCleanedEntirely, + tousseType: tousseItem.tousseType, + isThereIdentificationCard: tousseItem.isThereIdentificationCard, + isApplyEntireTousse: tousseItem.isApplyEntireTousse, + urgentAmount : tousseItem.urgentAmount, + errorRemark : tousseItem.errorRemark, + damageRemark : tousseItem.damageRemark, + urgentLevel : tousseItem.urgentLevel, + tousseRemark : tousseItem.remark, + errorDamageQmKey : errorDamageQmKey + }; + var successAdd = addToussItem(toussItem,false); + if(!successAdd){ + continue; + } + var errorLen = tousseItem.recyclingErrors.length; + if(errorLen > 0){ + var recyclingErrorJsonArray = new Array(); + for(var j = 0;j < errorLen;j++){ + var error = tousseItem.recyclingErrors[j]; + if(error.amount <= 0){ + continue; + } + var errorObj = { + detailId: error.id, + tousseDefinitionID: error.tousseDefinitionId, + materialDefinitionId: error.materialDefinitionId, + materialName: error.materialName, + amount: error.amount, + errorType: error.errorType, + tousseBarcode:error.tousseBarcode, + intoBasketAmount:error.amount, + errorDamageQmKey : error.errorDamageQmKey + }; + recyclingErrorJsonArray.push(errorObj); + } + setTousseItemRecyclingError(row,JSON.stringify(recyclingErrorJsonArray)); + if(recyclingErrorJsonArray.length > 0){ + document.getElementById('showTousseName'+row).className = 'input-a-yellow'; + document.getElementById('recyclingErrorButton'+row).className = 'btn-b-edit'; + } + } + var damageLen = tousseItem.recyclingDamages.length; + if(damageLen > 0){ + var recyclingDamageJsonArray = new Array(); + for(var j = 0;j < damageLen ; j++){ + var damage = tousseItem.recyclingDamages[j]; + if(damage.amount <= 0){ + continue; + } + var item = { + detailId: damage.id, + tousseDefinitionID: damage.tousseDefinitionId, + materialDefinitionId: damage.materialDefinitionId, + materialName: damage.materialName, + tousseBarcode:damage.tousseBarcode, + amount: damage.amount, + errorDamageQmKey : damage.errorDamageQmKey + }; + recyclingDamageJsonArray.push(item); + } + setTousseItemRecyclingDamage(row,JSON.stringify(recyclingDamageJsonArray)); + if(recyclingDamageJsonArray.length > 0){ + document.getElementById('showTousseName'+row).className = 'input-a-yellow'; + document.getElementById('recyclingDamageButton'+row).className = 'btn-c-edit'; + } + } + row++; + } + } + + var applicationitems = null; + var recyclingStatus = null; + var deliverStatus = null; + var endStatus = null; + + if (recyclingApplication != null) { + recyclingStatus = recyclingApplication.recyclingStatus; + applicationitems = recyclingApplication.applicationItems; + deliverStatus = recyclingApplication.deliverStatus; + endStatus = recyclingApplication.endStatus; + } + + if(applicationitems != null){ + for(var i = 0; i < applicationitems.length;i++){ + var tousseDefinitionId = applicationitems[i].tousseDefinitionId; + var recycled = false; + if(record.items != null){ + for(var j = 0 ; j< record.items.length ; j++){ + var tousseDefinitionId2 = record.items[j].tousseDefinitionId; + if(tousseDefinitionId == tousseDefinitionId2){ + recycled = true; + } + } + } + if(!recycled && recyclingStatus != "已回收" && recyclingStatus != '已接收'){ + if(applicationitems[i].diposable == '否' && applicationitems[i].isRecycling == '是' && applicationitems[i].tousseType != '敷料包' && applicationitems[i].tousseType != '自制物品'){ + var errorDamageQmKey = applicationitems[i].errorDamageQmKey; + if(isUndefinedOrNullOrEmpty(errorDamageQmKey)){ + var timeStr = new Date().getTime(); + errorDamageQmKey = applicationitems[i].tousseDefinitionId + "_" + timeStr; + } + var recyclingAmount = applicationitems[i].recyclingTempAmout; + if(!recyclingAmount){ + recyclingAmount = applicationitems[i].amount; + } + var toussItem = { + row: row, + tousseItemId: '', + tousseName: applicationitems[i].tousseName, + tousseDefinitionID: applicationitems[i].tousseDefinitionId, + applicationAmount: applicationitems[i].amount, + recycleAmount: recyclingAmount, + loadedAmount: 0, + isCleanedEntirely: applicationitems[i].isCleanedEntirely, + tousseType: applicationitems[i].tousseType, + isThereIdentificationCard: applicationitems[i].isThereIdentificationCard, + isApplyEntireTousse: applicationitems[i].isApplyEntireTousse, + urgentAmount : applicationitems[i].urgentAmount, + urgentLevel : applicationitems[i].urgentLevel, + tousseRemark : '', + errorDamageQmKey : errorDamageQmKey + }; + addToussItem(toussItem,false); + canTerminateTousseItemIds.push(applicationitems[i].id); + row++; + } + }else if(deliverStatus != '已发货' && deliverStatus != '部分发货' && endStatus != '已终止'){ + //单没有发货,也没有终止那已经回收的物品也是可以终止的 + //如果recycled为true,说明回收项中包含对应的申请项,也就是在界面上是可以看到的 + if(recycled && applicationitems[i].diposable == '否' && applicationitems[i].tousseType != '敷料包' && applicationitems[i].tousseType != '自制物品'){ + if('是' == applicationitems[i].isInvoice){ + canTerminateTousseItemIds.push(applicationitems[i].id); + } + } + } + } + } + if(record.classifyBaskets != null){ + for(var i = 0 ; i< record.classifyBaskets.length ; i++){ + var basket = record.classifyBaskets[i]; + + createBasketUiElement(basket.containerBarcode,basket.id,record.classifyBaskets[i].containerName,basket.washClassifyType,basket.sequence) + + for(var j = 0 ; j < record.classifyBaskets[i].classfiedItems.length ; j++){ + var ci = record.classifyBaskets[i].classfiedItems[j]; + var containerBarcode = record.classifyBaskets[i].containerBarcode; + if(record.id != ci.recyclingRecordId){ + continue; + } + var tousseType = ci.tousseDefinition?ci.tousseDefinition.tousseType:''; + if(ci.itemType == '材料'){ + var materialName = ci.materialDefinition.name; + var putBasketMaxAmount = ci.materialDefinition.intoBasketMaxAmount; + if(putBasketMaxAmount == null){ + putBasketMaxAmount = 0; + } + if(!isUndefinedOrNullOrEmpty(ci.materialDefinition.specification)){ + materialName += '['+ci.materialDefinition.specification+']'; + } + var tousseNameForMaterial = ci.tousseNameForMaterial; + + var showBarcode = ci.idCardBarcode; + if(ci.idCardBarcode == ""){ + showBarcode = tousseNameForMaterial; + } + + var element = ''; + element += '
    '+materialName+'
    '; + element += '
     '+showBarcode+'
    '; + element += '
    '+ci.amount+'
    '; + element += '
    删除
    '; + + $('dl[class="sed clearfix"]:eq(0)').prepend(element); + var json = getBasketItemJSON(ci.id,'材料',ci.orgUnitName,tousseNameForMaterial,materialName,ci.amount,ci.tousseAmountForMaterial,ci.idCardBarcode,ci.tousseDefinitionID,ci.basketGroupBarcodes,putBasketMaxAmount,tousseType); + $('dl[class="sed clearfix"]:eq(0)').find("input:first").val(json); + + $('td[axis="materialName"]').each(function(){ + if($(this).text() == materialName){ + $(this).parent().remove(); + return false; + } + }); + }else{ + var putBasketMaxAmount = ci.tousseDefinition.intoBasketMaxAmount; + if(putBasketMaxAmount == null){ + putBasketMaxAmount = 0; + } + var element = ''; + element += '
    '+ci.tousseDefinition.name+'
    '; + element += '
     '+ci.idCardBarcode+'
    '; + element += '
    '+ci.amount+'
    '; + element += '
    删除
    '; + $('dl[class="sed clearfix"]:eq(0)').prepend(element); + + var json = getBasketItemJSON(ci.id,"器械包",ci.orgUnitName,ci.tousseDefinition.name,"",ci.amount,ci.tousseAmountForMaterial,ci.idCardBarcode,ci.tousseDefinitionID,ci.basketGroupBarcodes,putBasketMaxAmount,tousseType); + $('dl[class="sed clearfix"]:eq(0)').find("input:first").val(json); + } + } + } + } + } + }); + DWREngine.setAsync(true); +} + +function encodeAll(text) { + var encoded = encodeURI(text); + encoded = encoded.replace('#','%23');// 对#号进行转码 + encoded = encoded.replace('+','%2B');// 对+号进行转码 + return encoded; +} + +// 语音识别的处理 +function setTousseGrammer(){ +// var tousses = []; +// $('#tousseItemTable').children().first().children().each( +// function(i, element) { +// var tousseName = $('#tousseName' + i).val(); +// var row = i+''; +// var tousseDefinitionId = $('#tousseDefinitionID' + i).val(); +// var tousse = { +// tousseName : tousseName, +// row : row, +// tousseDefinitionId : tousseDefinitionId +// } +// tousses.push(tousse); +// }); +// if(tousses.length > 0){ +// var g = { +// type: 'tousses_recycle', +// typeInfo: JSON.stringify({ +// tousses: tousses +// }) +// } +// updateGrammer(g); +// startRecognize(); +// } +// var tousseType = $('#appType').val(); +// if(tousseType == TYPE_FOREIGNTOUSSEAPPLIACTION){ +// return false; +// } + /// + DWREngine.setAsync(false); + TousseDefinitionTableManager.getInsideTousseAndDiposableGoods('',1,0,function(result){ + if(result != null && result.length > 0){ + var tousseArray = JSON.parse(result); + if(tousseArray.length > 0){ + var tousses = []; + for(var i=0;i + Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r25147 -r25349 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 25147) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 25349) @@ -2562,11 +2562,13 @@ var damageRemark = $('#hiddenDamageRemark'+index).val(); var urgentLevel = $('#urgentLevel'+index).val(); var errorDamageQmKey = $('#hiddenErrorDamageQmKey'+index).val(); + var loadedAmount =$('#loadedAmount'+index).val(); var tousseOrIDCardInstanceBarcodes = $('#tousseOrIDCardInstanceBarcodes'+index).val(); recyclingItemJsonArray.push({ tousseName:tousseName, recycleAmount:recycleAmount, - tousseDefinitionID:tousseDefinitionID, + loadedAmount:loadedAmount,//Annie + tousseDefinitionID:tousseDefinitionID, tousseRemark:tousseRemark, errorRemark:errorRemark, damageRemark:damageRemark, @@ -2683,13 +2685,14 @@ */ function getJsonParams(confirmation){ var paramJson = {}; - paramJson.tousseJson = tousseArray; + paramJson.tousseJson = tousseArray; paramJson.delToussItems = deleteTousseItemArray; paramJson.unrecycleTousseItemArray = unrecycleTousseItemArray; paramJson.tousseIntoBasketInfo = getTousseIntoBasketInfo(); paramJson.errorDamageDetail = getMaterialErrorDamageDetail(); paramJson.urgentTousseItems = getUrgentTousseItems(); paramJson.confirmation = confirmation; + paramJson.tally = false; paramJson.recyclingItemArray = getRecyclingItemInfo(); return JSON.stringify(paramJson); } @@ -2731,7 +2734,6 @@ } }); } - /** * 检查是否有未归还的器械包,如果有,那就提示. * @param confirmation 确认回收记录操作 @@ -2879,11 +2881,18 @@ * @param saveAndNew 保存并新建回收记录操作 * @param autoReturnTheBorrowingTousse 自动归还借物单 * @param print 保存并打印回收记录操作 + * Annie 如果tally为true是清点确认 否则就是false */ -function submitFormFunction(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm){ +function submitFormFunction(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm,IntheBoxState){ alertDiv("保存中,请稍候......", true); var jsonStr = getJsonParams(confirmation); + var jSONe= JSON.parse(jsonStr) + if(IntheBoxState == true){ + jSONe.tally = true; + }else{ + jSONe.tally = false; + } var id = document.getElementById('id').value; var app_id = document.getElementById('recyclingApplicationId').value; var departCode = document.getElementById('departCode').value; @@ -2901,7 +2910,7 @@ timeout : 300000, dataType :'json', data : { - jsonParam : "" + jsonStr + "", + jsonParam : "" + JSON.stringify(jSONe) + "", id : id, recyclingApplicationId : app_id, invoicePlanVersion : $("#invoicePlanVersion").val(), @@ -2966,14 +2975,139 @@ } }); } - /** * 保存回收记录 */ function doSaveAction(){ submitFunction(false,false,false,false); } +/*Annie 保存清点确认*/ +function submitFunctions(confirmation,saveAndNew,print,recyclingAmountConfirm){ + if(submitChecks()){ + //回收物品清单 + var recyclingTousses = []; + var isPartIntheBasket = false; + $('#tousseItemTable').children().first().children().each(function(index,element){ + if($('#deleted'+index).val() == '0'){ + var tousseName = $('#tousseName'+index).val(); + var recyclingAmount = parseInt($('#recycleAmount'+index).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+index).val(),10); + if(recyclingAmount > 0){ + //有回收,那加入回收物品清单 + recyclingTousses.push({tousseName:tousseName,recyclingAmount:recyclingAmount}); + } + if(recyclingAmount > loadedAmount){ + isPartIntheBasket = true; + return false; + } + } + }); + // console.log(confirmation) + submitFormFunction(confirmation,saveAndNew,false,print,recyclingAmountConfirm,true); + } +} + +function submitChecks() { + var isThereTousseItems = false; + var isAllTousseInTheBasket = true; + var urgentAmountError = false; + var isIdCardItme = true;//是否带有标识牌的器械包没有入框 + var isIdCardFalse =true; + var tousseNames; + if($('#depart').val()== ''){ + alertDiv('请先扫描科室条码。'); + return false; + } + var recyclingRecordId = $('#recyclingApplicationId').val(); + if (isTousseItemTableEmpty() && recyclingRecordId == ''){ + alert("空白的回收单不能保存!"); + return false; + } + var isEmptyFormSubmit = true; + $('#tousseItemTable').children().first().children().each(function(index,element){ + // console.log(element) + if($('#deleted'+index).val() == '0'){ + isThereTousseItems = true; + var tousseType = $('#tousseType'+index).val(); + var recyclingAmount = parseInt($('#recycleAmount'+index).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+index).val(),10); + // console.log(loadedAmount) + if(loadedAmount > 0 && recyclingAmount > loadedAmount){ + isAllTousseInTheBasket = false; + return false; + } + + if(loadedAmount > 0){ + isEmptyFormSubmit = false; + } + if(validateUrgentAmount(index,recyclingAmount)){ + highlightExistTousseItem(index); + urgentAmountError = true; + return false; + } + /* + * Annie + * 回收数量小于0 + * 普通包是否入框 + * 带有标识牌的包是否没有入框 + */ + var tousseName = $('#tousseName'+index).val(); + var isIdCard =$('#isThereIdentificationCard'+index).val(); + if(isIdCard == '是') { + if (loadedAmount <= 0) { + tousseNames = tousseName; + isIdCardItme = false; + return false; + } + } + if(isIdCard == '否' || isIdCard === 'null' ||isIdCard ==='undefined'){ + if(loadedAmount > 0){ + tousseNames = tousseName; + isIdCardFalse = false; + return false; + + } + } + + + } + }); + if(!isIdCardItme){ + alertDiv('带有标识牌的 '+tousseNames+' 器械包还没有入框,不能做清点确认'); + return false; + } + if(!isIdCardFalse){ + alertDiv(tousseNames+' 普通器械包已经入框,不能做清点确认'); + return false; + } + if(!isAllTousseInTheBasket){ + alertDiv('部分器械包回收数量大于装载数量,不能保存。'); + + return false; + } + if(urgentAmountError){ + return false; + } + + //验证清点人是否为空(前提为配置清点人强制不能为空,默认为允许为空) + if(sstsConfig.recyclePageOperatorNotNull == true && $("#operator").val() == ''){ + alertDiv('清点人不能为空,请扫描清点人条码。'); + return false; + } + + //验证清点人是否为空(前提为配置清点人强制不能为空) + if(sstsConfig.recyclePageRecyclingUserNotNull == true && $("#recyclingUser").val() == ''){ + alertDiv('回收人不能为空,请扫描回收人条码。'); + return false; + } + return true; +} + +function IntheBox() { + submitFunctions(false,false,false,false); +} + /** * 保存并新建回收记录 */ Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/style.css =================================================================== diff -u -r24702 -r25349 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/style.css (.../style.css) (revision 24702) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/style.css (.../style.css) (revision 25349) @@ -64,7 +64,11 @@ .data-table .btn-box{ margin-top:6px;} .data-table .btn-box table{ margin:0 auto} +#inventory { + padding: 4px 10px; +} .data-table .btn-box input{ background:url(btn-box.jpg) no-repeat; border:none; line-height:200px; overflow:hidden; text-indent:-9999px} +.data-table .btn-box input.btn-inventory{ width: 202px;height: 64px;border: none; background:url(btn-box_02.png) no-repeat; line-height: 0; border:none; overflow:hidden; text-indent:-9999px} .data-table .btn-box .btn-e{ background:url(btn_save.png) no-repeat; background-position:0 0; width:137px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;} .data-table .btn-box .btn-e:hover{ background:url(btn_save1.png) no-repeat; background-position:0 0; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;} .data-table .btn-box .btn-b{ background-position:-142px 0; width:203px; height:64px;} Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp =================================================================== diff -u -r24790 -r25349 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp (.../awaitForRecycleList.jsp) (revision 24790) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp (.../awaitForRecycleList.jsp) (revision 25349) @@ -13,6 +13,7 @@ <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%----%> @@ -52,7 +53,7 @@ } } %> - + @@ -82,7 +83,7 @@ - + @@ -130,7 +131,9 @@ z-index: 1002; left: 0px; opacity:0.5; -moz-opacity:0.5; } - +#IntheBox{ + margin:24px 0 0 50px; + } + + + + +<% +String orgUnitCoding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); +String orgUnitName = AcegiHelper.getLoginUser().getCurrentOrgUnitName(); +SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager)SpringBeanManger.getBean("supplyRoomConfigManager"); +int supplyRoomType = supplyRoomConfigManager.getSupplyRoomTypeByOrgUnitCoding(orgUnitCoding); +request.setAttribute("supplyRoomType", supplyRoomType); +request.setAttribute("userName",AcegiHelper.getLoginUser().getUserFullName()); +SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); +request.setAttribute("today", dateFormat.format(new Date())); +request.setAttribute("orgUnitCoding",orgUnitCoding); +request.setAttribute("orgUnitName",orgUnitName); + +boolean havePosition = CssdUtils.getSystemSetConfigByNameBool("recycleAddQualityMonitoring"); +if(havePosition == true){ +session.setAttribute("recycleAddQualityMonitoring", "display: block"); +}else{ +session.setAttribute("recycleAddQualityMonitoring", "display: none"); +} + +String v_ENABLE_SPEECH_RECOGNITION = (String)session.getAttribute(WebConstants.KEY_ENABLE_SPEECH_RECOGNITION); +boolean ENABLE_SPEECH_RECOGNITION = WebConstants.VALUE_ENABLE.equals(v_ENABLE_SPEECH_RECOGNITION); + +request.setAttribute("ENABLE_SPEECH_RECOGNITION",ENABLE_SPEECH_RECOGNITION); +%> + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +
    + + + +
    + +
    +
    + + + + + + + <%--
    回收人  
    --%> + <%--
    清点人  
    --%> + <%--
    回收时间  
    --%> +
    选择查看类型: + +
    +
    按科室分组过滤: + +
    +
    按器械包分组过滤: + +
    + <%--
    类  型   
    --%> + <%--
    申请时间  
    --%> + + <%--
    --%> +
    + <%--
    --%> + <%----%> + <%--
    --%> + <%--
    备注:
    --%> + <%--
       沟通人  
    --%> + +
    + +
    + + + +
    +
    +
    +
    + +
    + + + <%----%> + + <%----%> + <%----%> + <%----%> + <%----%> + <%----%> + + <%----%> + +
    +
    + + + +
    +
    +
    • 请扫描篮筐条码
    +
      +
    +
    +
    + + + + + + +