|  | @@ -3411,48 +3411,92 @@ function callYbReturnGoodsItem(realNo, orderNo, receiptNo, times, patientId, nam
 | 
	
		
			
				|  |  |              drugtracinfo: []
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -        // 直接从退药表格获取追溯码(与发药接口保持一致)
 | 
	
		
			
				|  |  | -        if (item.drugTracCodg && item.drugTracCodg.trim() !== '') {
 | 
	
		
			
				|  |  | -            let tracCodes = item.drugTracCodg.split('<br>').filter(code => code.trim() !== '');
 | 
	
		
			
				|  |  | -            for (let j = 0; j < tracCodes.length; j++) {
 | 
	
		
			
				|  |  | -                ybData.drugtracinfo.push({
 | 
	
		
			
				|  |  | -                    drugTracCodg: tracCodes[j].trim()
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            console.log('从退药表格获取追溯码:', tracCodes);
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            console.log('退药表格中没有追溯码信息');
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | -        // 如果没有追溯码,添加空数组(保持数据结构一致)
 | 
	
		
			
				|  |  | -        if (ybData.drugtracinfo.length === 0) {
 | 
	
		
			
				|  |  | -            ybData.drugtracinfo = [];
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | -        console.log('调用医保退药接口,药品:', item.drugname, '参数:', ybData);
 | 
	
		
			
				|  |  | +        // 主动获取追溯码信息(因为退药表格不包含追溯码)
 | 
	
		
			
				|  |  | +        let tracCodgParams = {
 | 
	
		
			
				|  |  | +            patientId: patientId,
 | 
	
		
			
				|  |  | +            times: times,
 | 
	
		
			
				|  |  | +            receiptNo: receiptNo,
 | 
	
		
			
				|  |  | +            orderNo: orderNo,
 | 
	
		
			
				|  |  | +            chargeItemCode: item.charge_item_code,
 | 
	
		
			
				|  |  | +            serial: item.serial,
 | 
	
		
			
				|  |  | +            itemNo: item.item_no,
 | 
	
		
			
				|  |  | +            groupNo: item.group_no || groupNo
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -        // 调用医保接口
 | 
	
		
			
				|  |  | +        // 调用追溯码查询接口(异步方式)
 | 
	
		
			
				|  |  |          $.ajax({
 | 
	
		
			
				|  |  |              type: "POST",
 | 
	
		
			
				|  |  | -            url: '/thmz/Yb/returnGoodsItem',
 | 
	
		
			
				|  |  | +            url: '/thmz/getMzDrugTracCodgData',
 | 
	
		
			
				|  |  |              contentType: "application/json;charset=UTF-8",
 | 
	
		
			
				|  |  |              dataType: "json",
 | 
	
		
			
				|  |  |              headers: {
 | 
	
		
			
				|  |  |                  'Accept': 'application/json',
 | 
	
		
			
				|  |  |                  'Authorization': 'Bearer ' + localStorage.getItem("token")
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  | -            data: JSON.stringify(ybData),
 | 
	
		
			
				|  |  | -            success: function (res) {
 | 
	
		
			
				|  |  | -                console.log('医保退药接口调用成功:', res);
 | 
	
		
			
				|  |  | -                if (res.code !== 0) {
 | 
	
		
			
				|  |  | -                    console.error('医保退药接口调用失败:', res.message);
 | 
	
		
			
				|  |  | -                    // 医保接口失败不影响退药流程,只记录日志
 | 
	
		
			
				|  |  | +            data: JSON.stringify(tracCodgParams),
 | 
	
		
			
				|  |  | +            success: function (tracRes) {
 | 
	
		
			
				|  |  | +                console.log('追溯码查询结果:', tracRes);
 | 
	
		
			
				|  |  | +                if (tracRes.code === 0 && tracRes.data && tracRes.data.length > 0) {
 | 
	
		
			
				|  |  | +                    // 将追溯码添加到医保接口参数中
 | 
	
		
			
				|  |  | +                    for (let k = 0; k < tracRes.data.length; k++) {
 | 
	
		
			
				|  |  | +                        let tracItem = tracRes.data[k];
 | 
	
		
			
				|  |  | +                        if (tracItem.drugTracCodg && tracItem.drugTracCodg.trim() !== '') {
 | 
	
		
			
				|  |  | +                            ybData.drugtracinfo.push({
 | 
	
		
			
				|  |  | +                                drugTracCodg: tracItem.drugTracCodg.trim()
 | 
	
		
			
				|  |  | +                            });
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    console.log('成功获取追溯码:', ybData.drugtracinfo);
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    console.log('未找到追溯码信息');
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +                // 追溯码查询完成后,调用医保接口
 | 
	
		
			
				|  |  | +                callYbReturnGoodsItemWithData(ybData, item);
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              error: function (xhr, status, error) {
 | 
	
		
			
				|  |  | -                console.error('医保退药接口调用失败:', error);
 | 
	
		
			
				|  |  | -                // 医保接口失败不影响退药流程,只记录日志
 | 
	
		
			
				|  |  | +                console.error('追溯码查询失败:', error);
 | 
	
		
			
				|  |  | +                // 即使追溯码查询失败,也要调用医保接口
 | 
	
		
			
				|  |  | +                callYbReturnGoodsItemWithData(ybData, item);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 调用医保退药接口(带追溯码数据)
 | 
	
		
			
				|  |  | + * @param ybData 医保接口参数
 | 
	
		
			
				|  |  | + * @param item 退药药品信息
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +function callYbReturnGoodsItemWithData(ybData, item) {
 | 
	
		
			
				|  |  | +    // 如果没有追溯码,添加空数组(保持数据结构一致)
 | 
	
		
			
				|  |  | +    if (ybData.drugtracinfo.length === 0) {
 | 
	
		
			
				|  |  | +        ybData.drugtracinfo = [];
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    console.log('调用医保退药接口,药品:', item.drugname, '参数:', ybData);
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    // 调用医保接口
 | 
	
		
			
				|  |  | +    $.ajax({
 | 
	
		
			
				|  |  | +        type: "POST",
 | 
	
		
			
				|  |  | +        url: '/thmz/Yb/returnGoodsItem',
 | 
	
		
			
				|  |  | +        contentType: "application/json;charset=UTF-8",
 | 
	
		
			
				|  |  | +        dataType: "json",
 | 
	
		
			
				|  |  | +        headers: {
 | 
	
		
			
				|  |  | +            'Accept': 'application/json',
 | 
	
		
			
				|  |  | +            'Authorization': 'Bearer ' + localStorage.getItem("token")
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        data: JSON.stringify(ybData),
 | 
	
		
			
				|  |  | +        success: function (res) {
 | 
	
		
			
				|  |  | +            console.log('医保退药接口调用成功:', res);
 | 
	
		
			
				|  |  | +            if (res.code !== 0) {
 | 
	
		
			
				|  |  | +                console.error('医保退药接口调用失败:', res.message);
 | 
	
		
			
				|  |  | +                // 医保接口失败不影响退药流程,只记录日志
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        error: function (xhr, status, error) {
 | 
	
		
			
				|  |  | +            console.error('医保退药接口调用失败:', error);
 | 
	
		
			
				|  |  | +            // 医保接口失败不影响退药流程,只记录日志
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  |  }
 |