Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/expressIntoBasket.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/expressIntoBasket.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/expressIntoBasket.js (revision 25711) @@ -0,0 +1,1647 @@ +var ab; +var lock = false; +var progressbar = null; +var progressLabel= null; +var tousseArray = new Array(); +var deleteTousseItemArray = new Array(); +var unrecycleTousseItemArray = new Array(); +$(function() { + progressbar = $("#progressbar"); + progressLabel = $(".progress-label"); + progressbar.progressbar({ + value: false, + change: function() { + progressLabel.text( parseInt(progressbar.progressbar("value")) + "%"); + }, + complete: function() { + progressLabel.text( "完成!" ); + } + }); +}); +function progress(i) { + progressbar.progressbar( "option", {value: i }); +} +//是否有外来器械包。如果有外来器械包,就显示拆包信息,否则隐藏 +var hasForeignTousse = false; + +//锁定键盘 +function lockup(e){ e.preventDefault(); } +//高亮层不锁定 +function lockout(e){ e.stopPropagation(); } + +function alertDiv(alertWord, hideCloseButton){ + lock = true; + document.getElementById ("showWord").innerHTML = alertWord; + if(typeof(hideCloseButton) != 'undefined' && hideCloseButton){ + $('#idBoxClose').hide(); + $("#progressbar").show(); + } + else{ + $('#idBoxClose').show(); + $("#progressbar").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(); +} + +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 barcodeTemp = ''; + +//删除整个篮筐 +function deleteBasket(deleteButton){ + 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){ + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('class') == 'delBtn'){ + var deleteButton = $(this).find('a'); + deleteBasketItem(deleteButton); + } + }); + $(this).remove(); + removeLiElement($(this)); + } + }); + refreshBasketStatus(); + refreshAllBasketTotalNum(); +} +function removeImplants(removeBtn){ + var liElement = $(removeBtn).parent().parent(); + liElement.find('dl > input').each(function(i,element){ + var materialJsonStr = $(this).val(); + if(materialJsonStr && materialJsonStr.length > 0){ + var materialJson = JSON.parse(materialJsonStr); + if(materialJson.isImplant == "是"){ + deleteBasketItem($(this).nextAll(".delBtn").children("a.btn").first()); + } + } + }); + refreshBasketStatus(); + refreshAllBasketTotalNum(); +} +//删除篮筐中的物品 + +function deleteBasketItem(deleteButton){ + var hideElement = $(deleteButton).parent().prev().prev().prev().prev(); + var tousseNameElement = $(deleteButton).parent().prev().prev().prev(); + var materialNameElement = $(deleteButton).parent().prev().prev(); + var amountElement = $(deleteButton).parent().prev(); + var delElement = $(deleteButton).parent(); + var basketHideJson = $(deleteButton).parent().parent().prev().prev().prev().prev().prev().val(); + + var item = JSON.parse(hideElement.val()); + var basketItem = basketHideJson?JSON.parse(basketHideJson):{}; + hideElement.remove(); + hideElement.remove(); + tousseNameElement.remove(); + materialNameElement.remove(); + amountElement.remove(); + delElement.remove(); + var intoBasketAmount = item.amount; + var idCardBarcode = item.idCardBarcode; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseDefinitionID'+i).val() == item.tousseDefinitionID && + $('#materialName'+i).val() == item.materialName && + $('#idCardBarcode'+i).val() == idCardBarcode){ + $('#deleted'+i).val('0'); + var loadedAmount = parseInt($('#loadedAmount'+i).val(),10); + $('#loadedAmount'+i).val(loadedAmount - intoBasketAmount ); + } + }); + tousseIntoBasketInfo.remove(item.tousseDefinitionID,basketItem.barcode); +} + + + +//清理视图列表 +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 barcodeTemp = ''; +var basketBarcode = null; +var tempBasketBarcode = ""; +function showKeyDown(){ + if(event.keyCode == 48 || event.keyCode == 96){ + barcodeTemp += '0'; + }else if(event.keyCode == 49 || event.keyCode == 97){ + barcodeTemp += '1'; + }else if(event.keyCode == 50 || event.keyCode == 98){ + barcodeTemp += '2'; + }else if(event.keyCode == 51 || event.keyCode == 99){ + barcodeTemp += '3'; + }else if(event.keyCode == 52 || event.keyCode == 100){ + barcodeTemp += '4'; + }else if(event.keyCode == 53 || event.keyCode == 101){ + barcodeTemp += '5'; + }else if(event.keyCode == 54 || event.keyCode == 102){ + barcodeTemp += '6'; + }else if(event.keyCode == 55 || event.keyCode == 103){ + barcodeTemp += '7'; + }else if(event.keyCode == 56 || event.keyCode == 104){ + barcodeTemp += '8'; + }else if(event.keyCode == 57 || event.keyCode == 105){ + barcodeTemp += '9'; + }else if(event.keyCode == 13){ + loadBarcodeDevice(barcodeTemp); + } + stopBubble(event); + stopDefault(event); +} + +// 扫描第二个篮框时,取消合并提示,默认不合并 +function mergedBasket(){ + return false; +} +function loadBarcodeDevice(barcodeTempParam){ + if(barcodeTemp.length >= 9){ + //var barcode = barcodeTemp.substring(barcodeTemp.length-9,barcodeTemp.length); + //由于条码可能超过9位,所以要取整个条码字符串了 + var barcode = barcodeTempParam; + barcodeTemp = ''; + $.ajax({ + type:'get', + url:encodeURI(WWWROOT + '/disinfectSystem/recyclingRecordAction!getBarcodeInfo.do?time='+new Date()+'&barcode='+barcode), + dataType:'json', + success:function(msg){ + if(msg.errorMessage != null ){ + alertDiv(msg.errorMessage); + }else if(msg.basket != null){ + var isBasketLoaded = false; + var currentNode; + + var basketItem = msg.basket; + $("#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; + } + }); + $("#seleniumResult").val("1"); + if(isBasketLoaded){ + //将篮筐放置在最前面 + $("#basketsUl").prepend(currentNode); + toggleItems(currentNode.find('span')[0]); + }else{ + var basketElement = '
  • '; + basketElement += ''; + basketElement += ''; + basketElement += '删除'; + basketElement += '删除'; + basketElement += ''; + basketElement += ''; + basketElement += '
    '+basketItem.containerName+'
    ' + basketElement += '' + 0 + ''; + basketElement += '
    '; + basketElement += '
  • '; + var obj = $(basketElement); + $("#basketsUl").prepend(obj); + var json = getBasketJSON(basketItem.id,basketItem.containerBarcode,basketItem.containerName,basketItem.washClassifyType); + $("#basketsUl li:first").find('input').val(json); + updateRemoveImplantBtn($("#basketsUl li:first"),false); + toggleItems(obj.find('span')[0]); + } + refreshBasketStatus(); + refreshAllBasketTotalNum(); + }else{ + alertDiv('没有找到该条码所对应的信息。'); + } + $("#codeScan").val(""); + }, + error:function(){} + }); + }else{ + alertDiv('条码长度不符合规范。'); + } +} + +function getBasketJSON(itemId,barcode,containerName,washClassifyType){ + var json = {}; + json.classifyBasketId = itemId; + json.barcode = barcode; + json.containerName = containerName; + json.washClassifyType = washClassifyType; + return JSON.stringify(json); +} + +function getBasketItemJSON(tousseName,materialName,materialAmount,tousseAmount,tousseDefinitionID, + idCardBarcode,putBasketMaxAmount,materialInstanceId,isImplant,tousseType){ + var json = {}; + json.tousseName = tousseName; + json.materialName = materialName; + json.amount = materialAmount;//td显示的数量 + json.tousseAmount = tousseAmount;//材料相对的包数量 + json.tousseDefinitionID = tousseDefinitionID; + json.idCardBarcode = idCardBarcode; + json.putBasketMaxAmount = putBasketMaxAmount; + json.materialInstanceId = materialInstanceId; + json.isImplant = isImplant; + json.tousseType = tousseType; + return JSON.stringify(json); +} +function getFirstBasketScanedGoods(){ + var basketJsonArray = new Array(); + basketJsonArray.push(getBasketScanedGoods($("#basketsUl li:first"))); + return basketJsonArray; +} +function getScanedGoods(){ + var basketJsonArray = new Array(); + $("#basketsUl li").each(function(){ + basketJsonArray.push(getBasketScanedGoods($(this))); + }); + return basketJsonArray; +} +function getBasketScanedGoods(basketElement){ + var hideStr = basketElement.find('input').val(); + var hiddenjson = JSON.parse(hideStr); + + var scanedGoodsArray = new Array(); + + basketElement.find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var itemJson = $(this).val(); + var json = JSON.parse(itemJson); + 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 + }); + } + }); + return { + barcode : hiddenjson.barcode, + classifyBasketId : hiddenjson.classifyBasketId, + name:hiddenjson.containerName, + washClassifyType : hiddenjson.washClassifyType, + scanedGoods : scanedGoodsArray + }; +} +function getBasketElement(basketBarcode){ + var findEl = null; + $("#basketsUl li").each(function(index,element){ + var basketStr = $(this).find('input').val(); + var basket = JSON.parse(basketStr); + if(basket){ + if(basket.barcode == basketBarcode){ + findEl = $(this); + return false; + } + } + }); + return findEl; +} +//添加或删除器械包 +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){ + //需要保证基本信息是有效的 + 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); + } + } +} +/*** 创建物品入筐*/ +function addBasketItemElement(tousseName,materialName,materialAmount,tousseAmount,tousseDefinitionID,idCardBarcode,putBasketMaxAmount, batchToBasket,materialInstanceId,isImplant,tousseType){ + var success = true; + var recyclingApplicationId = param_recyclingApplicationId; + if(batchToBasket && sstsConfig.enableMaterialWashclasifyInCustomRecycle){ + var params = getScanedGoods(); + DWREngine.setAsync(false); + ////Annie 组合数组 + // var putMaterialIntoBasketGood=[{ + // materialInstanceId:materialInstanceId, + // amount:materialAmount, + // scanedBasketAndMaterials:JSON.stringify(params), + // tousseIntoBasketInfo:JSON.stringify(tousseIntoBasketInfo.getResult()), + // recyclingApplicationId:recyclingApplicationId, + // }]; + RecyclingRecordTableManager.putMaterialIntoBasket(materialInstanceId,materialAmount,JSON.stringify(params),JSON.stringify(tousseIntoBasketInfo.getResult()),recyclingApplicationId,function(result){ + var jsonObj = JSON.parse(result); + + if(!jsonObj.success){ + alertDiv(jsonObj.message); + success = false; + }else{ + var materials = jsonObj.materials; + if(materials == null){ + alertDiv("异常数据,请联系管理员!"); + success = false; + }else{ + for(var i = 0;i < materials.length;i++){ + var item = materials[i]; + var basketElement = getBasketElement(item.basketBarcode); + + success = addItemToThisBasket(basketElement,tousseName,item.materialName,item.materialAmount,tousseAmount, + tousseDefinitionID,idCardBarcode,item.putBasketMaxAmount,materialInstanceId,isImplant,tousseType); + if(!success){ + break; + } + } + } + } + }); + DWREngine.setAsync(true); + }else{ + var params = getFirstBasketScanedGoods(); + DWREngine.setAsync(false); + var materialInstanceItme =[{ + materialInstanceId:materialInstanceId, + scanedBasketAndMaterials:params, + tousseIntoBasketInfo:JSON.stringify(tousseIntoBasketInfo.getResult()), + recyclingApplicationId:recyclingApplicationId, + }]; + $.ajax({ + url: WWWROOT + '/disinfectSystem/recyclingRecordAction!canAddThisBasketItem.do', + data:{params:JSON.stringify(materialInstanceItme)}, + type:'get', + success:function(data){ + var jsonObj = JSON.parse(data); + if(jsonObj.success == true){ + success = addItemToThisBasket($("#basketsUl li:first"),tousseName,materialName,materialAmount,tousseAmount, + tousseDefinitionID,idCardBarcode,putBasketMaxAmount,materialInstanceId,isImplant,tousseType); + var tousse = { + basketBarcode:params[0].barcode,//篮筐条码 + basketId: params[0].classifyBasketId,//篮筐ID + classifiedItemId: '', + tousseName:materialName, + tousseDefinitionID: tousseDefinitionID, + amount: tousseAmount, + tousseAmountForMaterial: tousseAmount,//annie + itemType: '材料', + tousseNameForMaterial: tousseName, + idCardBarcode: '', // 如果没有标识牌,要把值设为空字符串 + basketGroupBarcodes:params[0].barcode, + basketSequence:0 + } + addOrDelTousse(tousse) + + }else{ + alertDiv(jsonObj.message); + success = false; + } + refreshAllBasketTotalNum(); + } + }) + } + DWREngine.setAsync(true); + return success; +} +/** + * 将物品添加到篮筐 + * trElement basketsUl中的li元素,通过jquery封装的对象 + */ +function addItemToThisBasket(trElement,tousseName,materialName,materialAmount,tousseAmount,tousseDefinitionID, idCardBarcode,putBasketMaxAmount,materialInstanceId,isImplant,tousseType){ + if(trElement == null){ + //目前不可能会有这种情况 + return false; + } + var basketElement = trElement.find('dl[class="sed clearfix"]:eq(0)'); + var basketHidenValue = trElement.find('input').val(); + var basketBarcode = null; + var basketName = null; + if(basketHidenValue){ + var basketItem = JSON.parse(basketHidenValue); + basketBarcode = basketItem.barcode; + basketName = basketItem.containerName; + } + var showName = tousseName; + if(idCardBarcode != ""){ + showName += "["+idCardBarcode+"]"; + } + + var isExist = false; + + trElement.find('dl > input').each(function(){ + var hideStr = $(this).val(); + var json = hideStr?JSON.parse(hideStr):{}; + if(json.tousseDefinitionID == tousseDefinitionID && json.materialName == materialName && json.idCardBarcode == idCardBarcode){ + isExist = true; + json.amount = (json.amount + materialAmount); + $(this).val(JSON.stringify(json)); + $(this).next().next().next().text(json.amount); + if(json.amount == 0){ + tousseIntoBasketInfo.remove(tousseDefinitionID,basketBarcode); + } + return false; + } + }); + if(!isExist){ + var element =''; + // element += '
    ' + showName + '
    '; + element += '
    '; + element += '
    ' + materialName + '
    '; + element += '
    ' + materialAmount + '
    '; + element += '
    删除
    '; + var json = getBasketItemJSON(tousseName,materialName,materialAmount,tousseAmount,tousseDefinitionID,idCardBarcode, + putBasketMaxAmount,materialInstanceId,isImplant,tousseType); + basketElement.prepend($(element)); + basketElement.find("input:first").val(json); + sortBasketSequence(trElement,tousseDefinitionID,tousseType); + tousseIntoBasketInfo.addTousseBasket({tousseDefinitionID:tousseDefinitionID,tousseName:tousseName, + tousseType:tousseType},{barcode:basketBarcode,basketName:basketName}); + } + return true; + +} +/** + * 记录篮筐的序号,以包定义的id为key,值为一组篮筐的li元素,顺序排列 + */ +var basketSequences = {}; + +/** + * 添加篮筐序号。如果已经有序号了,那就不要再添加了.也不改变 + * @param trElement + * @returns + */ +function sortBasketSequence(trElement,tousseDefinitionID,tousseType){ + if(!trElement){ + return; + } + if(!tousseDefinitionID){ + return; + } + if(tousseType==PACKAGE_TYPE_SPLIT|| tousseType==PACKAGE_TYPE_FOREIGN){ + var sequences = basketSequences[tousseDefinitionID]; + if(!sequences){ + sequences = []; + basketSequences[tousseDefinitionID] = sequences; + } + var find = false; + for(var i = 0; i < sequences.length;++i){ + if(isSameBasket(sequences[i],trElement)){ + find = true; + } + } + if(!find){ + sequences[sequences.length] = trElement; + } + } +} +function removeLiElement(li){ + if(li){ + for(var tdId in basketSequences){ + var sequences = basketSequences[tdId]; + for(var i = 0; i < sequences.length;++i){ + if(isSameBasket(sequences[i],li)){ + find = true; + sequences.splice(i,1); + } + } + } + } +} +//判断两个li中是否是同一个篮筐。如果篮筐条码一样,那就是同一个篮筐,否则 不是 +function isSameBasket(li1,li2){ + if(!li1){ + return false; + } + if(!li2){ + return false; + } + var barcode1 = ''; + var barcode2 = ''; + if(li1){ + var basketHidenValue = li1.find('input:first').val(); + if(basketHidenValue){ + var basketInfo = JSON.parse(basketHidenValue); + barcode1 = basketInfo.barcode; + } + } + if(li2){ + var basketHidenValue = li2.find('input:first').val(); + if(basketHidenValue){ + var basketInfo = JSON.parse(basketHidenValue); + barcode2 = basketInfo.barcode; + } + } + return barcode1 == barcode2; +} + +//将器械包放入篮筐中 +var successBack = false; +function putMaterialInBasket(row,batchToBasket,thisAmount){ + var inputSuccess = false; + if($('#basketsUl').children().length > 0){ + var tousseName = $('#tousseName'+row).val(); + var isCleanedEntirely = $('#isCleanedEntirely'+row).val(); + var materialName = $('#materialName'+row).val(); + var recycleAmount = parseInt($('#recycleAmount'+row).val(),10); + var applicationAmount = parseInt($('#applicationAmount'+row).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+row).val(),10); + var tousseAmount = parseInt(recycleAmount - loadedAmount); + var tousseDefinitionID = $('#tousseDefinitionID'+row).val(); + var idCardBarcode = $('#idCardBarcode'+row).val(); + var putBasketMaxAmount = $('#putBasketMaxAmount'+row).val(); + var washClassifyType = $('#washClassifyType'+row).val(); + var materialInstanceId = $('#materialInstanceId'+row).val(); + var isImplant = $('#isImplant'+row).val(); + var tousseType = $('#tousseType'+row).val(); + + var insertBasketAmount = thisAmount?thisAmount:(recycleAmount - loadedAmount); + if(insertBasketAmount <= 0){ + alertDiv('放入篮筐的数量必须大于0!'); + return false; + } + + var success = addBasketItemElement(tousseName,materialName,insertBasketAmount,tousseAmount,tousseDefinitionID,idCardBarcode, + putBasketMaxAmount,batchToBasket,materialInstanceId,isImplant,tousseType); + if(success){ + $('#loadedAmount'+row).val(loadedAmount + insertBasketAmount) + if(applicationAmount == parseInt($('#loadedAmount'+row).val(),10)){ + // deleteTousseItem(row); + } + inputSuccess = true; + } + }else{ + alertDiv('请先扫描篮筐条码。'); + } + return inputSuccess; +} +function putMaterialInBasketWithAmount(row,amount){ + putMaterialInBasket(row,false,amount); + refreshBasketStatus(); + refreshAllBasketTotalNum(); +} + +function deleteTousseItem(row){ + $('#tousseItemsTr'+row).hide(); + $('#deleted'+row).val('1'); +} + + + +function add(row){ + var recycleAmount = parseInt($('#recycleAmount'+row).val(),10); + var applicationAmount = parseInt($('#applicationAmount'+row).val(),10); + if(recycleAmount >= applicationAmount){ + return; + } + $('#recycleAmount'+row).val(recycleAmount+1); +} + +function reduce(row){ + var recycleAmount = parseInt($('#recycleAmount'+row).val(),10); + if(recycleAmount > 0){ + $('#recycleAmount'+row).val(recycleAmount-1); + } +} +//打开编辑数量页面 +var openElement; +function openUpdateAmount(obj,row){ + 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='+1980+'&row='+row, + area : [width + 'px' , height + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : ['250px',''] + }); +} +//打开输入装载数量页面 +function openUpdateLoadAmount(obj,row){ + if(!sstsConfig.enableCustomIntoBasketWithCustomAmount){ + //没有启用此功能,不处理 + return; + } + var recycleAmount = parseInt($('#recycleAmount'+row).val(),10); + var loadedAmount = parseInt($('#loadedAmount'+row).val(),10); + if(loadedAmount >= recycleAmount){ + alertDiv("已经都装载入筐了"); + return; + } + if($('#basketsUl').children().length <= 0){ + alertDiv('请先扫描篮筐条码。'); + return; + } + obj.blur(); + var width = 550; + var height = 300; + if(resolution == '1980'){ + width = 750; + height = 400; + } + layerIndex = layer.open({ + type : 2, + title : ['装载入筐',true], + content : 'updateAmount.jsp?resolution='+resolution+'&row='+row + '&recycleAmount=' + + recycleAmount + '&loadedAmount=' + loadedAmount + '&from=customLoadedAmount', + area : [width + 'px' , height + 'px'], + border : [5, 0.3, '#fff', true], + closeBtn : [2 , true], + offset : ['250px',''] + }); +} +function changeRecycleAmount(){ + //空实现。主要是updateAmount.jsp中有调用这个方法 +} +var layerIndex; +function closeLayer(){ + layer.close(layerIndex); + layerIndex = null; +} +/** + * 添加待回收的材料项 + */ +function addWaitRecycleMaterialItem(row,materialItem){ + var tousseName = materialItem.tousseName; + var materialName = materialItem.materialName; + var recycleAmount = materialItem.amount; + var tousseDefinitionID = materialItem.tousseDefinitionID; + var tousseAmount = materialItem.tousseAmountForMaterial; + var idCardBarcode = materialItem.idCardBarcode; + var putBasketMaxAmount = materialItem.putBasketMaxAmount; + var washClassifyType = materialItem.washClassifyType; + var materialInstanceId = materialItem.materialInstanceId; + var isImplant = materialItem.isImplant; + var tousseType = materialItem.tousseType; + var urgentAmount = materialItem.urgentAmount; + if(tousseType==PACKAGE_TYPE_SPLIT|| tousseType==PACKAGE_TYPE_FOREIGN){ + hasForeignTousse = true; + } + +//Annie 改 + var trElement = $(''+ + ''+ + ''+ + '' + + ''+ + '' + + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '+'+ + ''+ + '-'+ + ''+ + '入筐'+ + '删除'+ + ''); + $("#tousseItemTable").append(trElement); + return true; +} + +//待装载篮筐视图中的树形菜单伸缩的处理 +function toggleItems(spanElement){ + $(spanElement).toggleClass("minus"); + $(spanElement).nextAll('.sed').toggle(); +} +/** + * 判断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; +} +/** + * 验证加急数量是否大于回收数量。如果加急数量大于回收数量,返回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; +} +/*去除重复材料包名称*/ +function UniquePay(paylist){ + var payArr = [paylist[0]]; + for(var i = 1; i < paylist.length; i++){ + var payItem = paylist[i]; + var repeat = false; + for (var j = 0; j < payArr.length; j++) { + if (payItem.tousseName == payArr[j].tousseName && payItem.recyclingAmount == payArr[j].recyclingAmount) { + payArr[j].recyclingAmount = payArr[j].recyclingAmount + repeat = true; + break; + } + } + if (!repeat) { + payArr.push(payItem); + } + } + return payArr; +} +function UniquePays(paylists){ + var payArr = [paylists[0]]; + for(var i = 1; i < paylists.length; i++){ + var payItem = paylists[i]; + var repeat = false; + for (var j = 0; j < payArr.length; j++) { + if (payItem.tousseName == payArr[j].tousseName) { + payArr[j].recyclingAmount = parseFloat(payArr[j].recyclingAmount)+parseFloat(payItem.recyclingAmount); + repeat = true; + break; + } + } + if (!repeat) { + payArr.push(payItem); + } + } + return payArr; +} +/** + * 显示回收物品清单 + */ +function showRecyclingDetail(recyclingItems,confirmCallback){ + if(recyclingItems && recyclingItems.length > 0){ + var paylists =UniquePay(recyclingItems); + recyclingItems=UniquePays(paylists) + 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" ); + } + } + }); + } +} +function submitCheck(){ + var isThereTousseItems = false; + var isAllTousseInTheBasket = true; + var urgentAmountError = 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; + } + return true; +} +var btSave=false; + +//保存 +/** + * 获取此次回收的数据. + * @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.tally = false; + paramJson.recyclingItemArray = getRecyclingItemInfo(); + return JSON.stringify(paramJson); +} +/** + * 获取左边的回收的信息. + * @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 loadedAmount =$('#loadedAmount'+index).val(); + var tousseOrIDCardInstanceBarcodes = $('#tousseOrIDCardInstanceBarcodes'+index).val(); + recyclingItemJsonArray.push({ + tousseName:tousseName, + recycleAmount:recycleAmount, + loadedAmount:loadedAmount,//Annie + tousseDefinitionID:tousseDefinitionID, + tousseRemark:'', + errorRemark:'', + damageRemark:'', + urgentLevel:'', + errorDamageQmKey:'', + tousseOrIDCardInstanceBarcodes:'' + }); + } + }); + + return recyclingItemJsonArray; +} +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 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(); + if(tousseItemId == undefined){ + urgentItemJsonArray.push({ + tousseName:tousseName, + tousseDefinitionID:tousseDefinitionID, + urgentAmount:urgentAmount + }); + } + } + }); + return urgentItemJsonArray; +} +function doSaveAction(){ + submitFunction(false,false,false,false); +} +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 print 保存并打印回收记录操作 + */ +var params_id; +//添加或删除器械包 +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 departCode = ''; + var borrowApplicationInfo = null; + if(borrowApplicationInfo){ + 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); + } +} +/** + * 提交回收记录. + * @param confirmation 确认回收记录操作 + * @param saveAndNew 保存并新建回收记录操作 + * @param autoReturnTheBorrowingTousse 自动归还借物单 + * @param print 保存并打印回收记录操作 + * Annie 如果tally为true是清点确认 否则就是false + */ +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; + 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 : "" + JSON.stringify(jSONe) + "", + 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 = "expressIntoBasket.jsp?resolution=" + 1908 + "&rememberRecycleUser=" + rememberRecycleUser; + }else{ + location.href = "awaitForRecycleList.jsp?resolution=" + 1908 + "&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 cancel() { + window.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; +} +/*Annie 删除*/ +function deleteTousseItems(row){ + var returnMsg = checkHaveErrorDamage(row); + + if(!isUndefinedOrNullOrEmpty(returnMsg)){ + alertDiv(returnMsg); + return false; + } + + $('#tousseItemsTr'+row).hide(); + $('#deleted'+row).val('1'); + var showTousseName = $('#showTousseName'+row).val(); + var amountLeft = parseInt($('#loadedAmount'+row).val(),10); + var tousseDefinitionID = parseInt($('#tousseDefinitionID'+row).val(),10); + var tousse = { + tousseDefinitionID: tousseDefinitionID, + tousseName: showTousseName, + 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') == 'delBtn'){ + if(jsonObj.materialName == showTousseName){ + 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 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); + deleteTousseItems(row); + }else if(actionFunction == 'deleteBasketItem'){//删篮筐内物品 + // deleteBasketItem(deleteButton); + deleteTousseItems(deleteButton); + }else if(actionFunction == 'deleteBasket'){//删篮筐 + // deleteBasket(deleteButton,basketBarcode,basketId); + deleteTousseItems(deleteButton,basketBarcode,basketId); + } + refreshSplitBasketView(); + refreshAllBasketTotalNum(); + $(this).dialog("close"); + },"否": function() { + $(this).dialog("close"); + } + } + }); +} +/** + * 刷新拆包器械拆分篮筐数量的显示界面。如果没有启用拆分篮筐显示功能,或者没有报损备注,那么隐藏整行 + * @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(); + } + }); + } +} +//一键入筐 +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){ + putMaterialInBasket(row,true); + } + } + }); + refreshBasketStatus(); + refreshAllBasketTotalNum(); + sortBasket(); +} +/** + * 根据配置初始化控件 + */ +function initConfigControl(){ + var divElement = document.getElementById('divElement'); + if(sstsConfig.recycleAllMaterialIntoBasket){ + $('#allIntoBasket').css('visibility','visible'); + }else{ + $("#allIntoBasket").css('visibility','hidden');//元素隐藏,需要显示,否则拆分信息显示的位置会不对 + } +} + +function encodeAll(text) { + var encoded = encodeURI(text); + encoded = encoded.replace('#', '%23');// 对#号进行转码 + return encoded; +} +/** + * 根据篮筐的当前状态,更新拆分篮筐数 + */ +function updateSplitInfo(){ + if(sstsConfig.showSplitInfoInCustomIntoBasket&&hasForeignTousse){ + $('.splitInfo').show(); + $('#spanToolsInfo').html("工具拆分篮筐数:" + toolsSplitBasketAmount); + $('#spanImplantInfo').html("植入物拆分篮筐数:" + implantSplitBasketAmount); + }else{ + $('.splitInfo').hide(); + } +} +function sortBasket(){ + $("#basketsUl").prepend($("#basketsUl li.containImplantBasket")); + $("#basketsUl").prepend($("#basketsUl li.emptyBasket")); +} +//工具拆分篮筐数 +var toolsSplitBasketAmount = 0; +//植入物拆分篮筐数 +var implantSplitBasketAmount = 0; +/** + * 刷新篮筐的状态。如果是外来器械,并且配置的显示拆分信息的,需要显示拆分篮筐数及是否包含植入物。 + * 如果有篮筐序号,就在篮筐名称前面显示篮筐序号 + * @returns + */ +function refreshBasketStatus(){ + toolsSplitBasketAmount = 0; + implantSplitBasketAmount = 0; + $("#basketsUl > li").each(function(){ + $(this).removeClass('emptyBasket containImplantBasket');//用于排序篮筐的css类 + var count = $(this).find('dl[class="sed clearfix"]').children().length; + if(count == 0){ + $(this).addClass('emptyBasket'); + $(this).find('div').addClass('status-empty-yellow'); + }else{ + $(this).find('div').removeClass('status-empty-yellow'); + } + refreshSequence($(this),0); + if(sstsConfig.showSplitInfoInCustomIntoBasket){ + var containImplant = '否'; + var containTools = '否'; + var haveForeignTousse = false;//是否有外来器械 + //遍历是否有植入物,然后存到 li 的hidden里(存了篮筐信息的) + $(this).find('dl[class="sed clearfix"] > input').each(function(){ + var jsonStr = $(this).val(); + var materialInfo = JSON.parse(jsonStr); + if(materialInfo.tousseType == PACKAGE_TYPE_SPLIT || materialInfo.tousseType==PACKAGE_TYPE_FOREIGN){ + if(materialInfo.isImplant == '是'){ + containImplant = "是"; + $(this).next().next().addClass('status-implant-green'); + }else{ + containTools = '是'; + $(this).next().next().removeClass('status-implant-green'); + } + } + }); + + var el = $(this).find('.containImplant'); + if(containImplant == '是'){ + $(this).addClass('containImplantBasket'); + implantSplitBasketAmount++; + el.html("含有植入物"); + updateRemoveImplantBtn($(this),true); + }else{ + el.html(""); + updateRemoveImplantBtn($(this),false); + } + if(containTools == '是'){ + toolsSplitBasketAmount++; + } + } + }); + updateSplitInfo(); + updateClassifyBasketSequence(); +} +/** + * 刷新篮筐材料总数量 + * @param liElement + * @returns + */ +function refreshBasketTotalNum(liElement){ + if(liElement){ + var total = 0; + liElement.find('dd.materialNum').each(function(){ + var num = parseInt($(this).html()); + if(num){ + total += num; + } + }); + liElement.find('font.totalnum').html(total); + } +} +/** + * 刷新所有篮筐的器械总数 + * @returns + */ +function refreshAllBasketTotalNum(){ + $("#basketsUl li").each(function(){ + refreshBasketTotalNum($(this)); + }); +} +/** + * 更新移除植入物按钮。如果有配置,则显示移除植入物按钮,否则隐藏起来并调整样式 + * @param liElement + * @param hasImplant + * @returns + */ +function updateRemoveImplantBtn(liElement,hasImplant){ + if(sstsConfig.showSplitInfoInCustomIntoBasket){ + liElement.find('.btn-removeImplant').show(); + liElement.find('.totalnum').hide(); + liElement.find('i').css("text-align","right"); + liElement.find('i').css("width","223px"); + }else{ + liElement.find('.btn-removeImplant').hide(); + liElement.find('.totalnum').show(); + liElement.find('i').css("text-align","center"); + liElement.find('i').css("width","129px"); + } +} +/** + * 更新篮筐序号 + * @returns + */ +function updateClassifyBasketSequence(){ + if(sstsConfig.enableClassifyBasketSequence){ + for(var tdid in basketSequences){ + var sequences = basketSequences[tdid]; + for(var i = 0; i < sequences.length;++i){ + var liElement = sequences[i]; + refreshSequence(liElement,i+1); + } + } + } +} +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.containerName):basketInfo.containerName; + liElement.find('div.basketName div:last').html(showName); + } + } +} Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/expressIntoBasket.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/expressIntoBasket.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/expressIntoBasket.jsp (revision 25711) @@ -0,0 +1,241 @@ + <%@page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> + <%@page import="com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError"%> + <%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance"%> + <%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition"%> + <%@ page contentType="text/html; charset=UTF-8"%> + <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + <%@page import="java.util.Date"%> + <%@page import="java.text.SimpleDateFormat"%> + <%@page import="com.forgon.tools.SpringBeanManger"%> + <%@page import="com.forgon.directory.acegi.tools.AcegiHelper"%> + + + + + + + + + 消毒供应中心质量追溯管理系统 + + + + + + + + + + + + + + + + + + + + + + +<%----%> + + + + +
    +

    +
    + + + +
    + +
    +
    + + + + + + + + + + + + + + + + +
    +
    + +
    + +
    + +
    + +
    +
    + + +<%--
    --%> + <%----%> + +<%--
    --%> + +
    +
    + +
    +
    +
    + + + + + +
    +
    +
    + + +
    +
    +
      +
    +
    +
    + +
    + + +