| 
					
				 | 
			
			
				@@ -1639,9 +1639,74 @@ function fitfymx(patientId, times, receiptNo, orderNo, groupNoOut) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function saveRefundMedicine() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let zt = $("#confirmFlagSearch").val() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(!isTyOk && zt === '2'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return errorMesageSimaple('请匹配退药药品追溯码是否一致!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 检查是否需要进行追溯码匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (zt === '2') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 检查是否已经完成匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!isTyOk) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return errorMesageSimaple('请先匹配退药药品追溯码!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 获取退药表格数据,检查是否所有需要退药的药品都已匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let tyTable = $('#ty_table_detail').bootstrapTable("getData"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let refundData = window.currentRefundData || $table.bootstrapTable('getData'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // ========== 调试日志开始 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('=== saveRefundMedicine 调试信息 ==='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('refundData 样本:', refundData.length > 0 ? refundData[0] : '空数组'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('tyTable 样本:', tyTable.length > 0 ? tyTable[0] : '空数组'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('refundData 总数量:', refundData.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('tyTable 总数量:', tyTable.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // ========== 调试日志结束 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let needRefundItems = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 找出需要退药的药品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        refundData.forEach(function (item, index, arr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (item.dec_amount != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                needRefundItems.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    chargeItemCode: item.charge_item_code, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    serial: item.serial, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    itemNo: item.item_no 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // ========== 调试日志开始 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('needRefundItems:', needRefundItems); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('第一个需要退药的药品字段信息:'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (needRefundItems.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.log('- chargeItemCode:', needRefundItems[0].chargeItemCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.log('- serial:', needRefundItems[0].serial); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.log('- itemNo:', needRefundItems[0].itemNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // ========== 调试日志结束 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 检查每个需要退药的药品是否都已匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let allMatched = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let unmatchedItems = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i = 0; i < tyTable.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let item = tyTable[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 检查这个药品是否需要退药 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let needRefund = needRefundItems.some(function(refundItem) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return refundItem.chargeItemCode === item.chargeItemCode &&  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       refundItem.serial === item.serial &&  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       refundItem.itemNo === item.itemNo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (needRefund) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 检查是否已匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (isEmpty(item.matchOk) || item.matchOk.indexOf('已匹配') === -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    allMatched = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    unmatchedItems.push(item.drugName || '未知药品'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!allMatched) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return errorMesageSimaple('还有药品未匹配追溯码:' + unmatchedItems.join('、') + ',请完成匹配后再退药!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var row = $("#tb_table").bootstrapTable('getSelections'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (row.length != 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return errorMesageSimaple('请选择一条处方数据'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1694,6 +1759,9 @@ function saveRefundMedicine() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (res.code == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 successMesage(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 退药成功后重置匹配状态和全局数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                isTyOk = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                window.currentRefundData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 initTbTable(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 errorMesage(res); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2184,6 +2252,10 @@ function matchingDrugCodg(patientId, times, receiptNo, orderNo, realNo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         realNo: realNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         groupNo: groupNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 保存当前退药数据到全局变量,供匹配检查使用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    window.currentRefundData = $table.bootstrapTable('getData'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $('#ty_table_detail').bootstrapTable("destroy"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $('#ty_table_detail').bootstrapTable({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         url: '/thmz/getMzDrugTracCodgData',         //请求后台的URL(*) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2396,6 +2468,71 @@ function matchDrugCodg(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 确认匹配之后可以退药了 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function matchTp(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 获取退药表格数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let tyTable = $('#ty_table_detail').bootstrapTable("getData"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let refundData = window.currentRefundData || $table.bootstrapTable('getData'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // ========== 调试日志开始 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log('=== matchTp 调试信息 ==='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log('refundData 样本:', refundData.length > 0 ? refundData[0] : '空数组'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log('tyTable 样本:', tyTable.length > 0 ? tyTable[0] : '空数组'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // ========== 调试日志结束 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let needRefundItems = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 找出需要退药的药品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refundData.forEach(function (item, index, arr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (item.dec_amount != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            needRefundItems.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                chargeItemCode: item.charge_item_code, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                serial: item.serial, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemNo: item.item_no 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 检查每个需要退药的药品是否都已匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let allMatched = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let unmatchedItems = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for (let i = 0; i < tyTable.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let item = tyTable[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 检查这个药品是否需要退药 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let needRefund = needRefundItems.some(function(refundItem) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let matchResult = refundItem.chargeItemCode === item.chargeItemCode &&  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   refundItem.serial === item.serial &&  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   refundItem.itemNo === item.itemNo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // ========== 调试日志开始 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (i === 0) { // 只打印第一个匹配的调试信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('=== 匹配检查调试 ==='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('tyTable item 字段信息:'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- item.chargeItemCode:', item.chargeItemCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- item.serial:', item.serial); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- item.itemNo:', item.itemNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- item.drugName:', item.drugName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- item.matchOk:', item.matchOk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('refundItem 字段信息:'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- refundItem.chargeItemCode:', refundItem.chargeItemCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- refundItem.serial:', refundItem.serial); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('- refundItem.itemNo:', refundItem.itemNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log('匹配结果:', matchResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // ========== 调试日志结束 ========== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return matchResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        });     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (needRefund) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 检查是否已匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (isEmpty(item.matchOk) || item.matchOk.indexOf('已匹配') === -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                allMatched = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                unmatchedItems.push(item.drugName || '未知药品'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!allMatched) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return errorMesageSimaple('还有药品未匹配追溯码:' + unmatchedItems.join('、') + ',请完成所有匹配后再确认!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!confirm("确定对当前处方所有退药的药品匹配成功?")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2683,4 +2820,12 @@ function saveCellData(table, index, field, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         field: field, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         value: value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 初始化全局变量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    window.currentRefundData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isTyOk = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initTbTable(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}); 
			 |