LIJU 2 달 전
부모
커밋
547b6f7b01
1개의 변경된 파일118개의 추가작업 그리고 0개의 파일을 삭제
  1. 118 0
      src/main/resources/static/js/mz/west_pharmacy_send.js

+ 118 - 0
src/main/resources/static/js/mz/west_pharmacy_send.js

@@ -309,6 +309,9 @@ function sendMedicineProcessing(realNo, orderNo, receiptNo, times, patientId, na
                 return;
             }
             if (res.code == 0) {
+                // 发药成功后,调用医保接口
+                callYbSaleGoodsItem(realNo, orderNo, receiptNo, times, patientId, name);
+                
                 successMesage(res);
                 $('#cfxxModal').modal('hide');
                 $("#patientId").val('');
@@ -3050,4 +3053,119 @@ function addTracCodgToCell(tracCodg, $element) {
     }
     
     console.log('addTracCodgToCell 结束,最终单元格内容:', $element.html());
+}
+
+/**
+ * 调用医保商品销售接口
+ * @param realNo 流水号
+ * @param orderNo 处方号
+ * @param receiptNo 发票分票号
+ * @param times 次数
+ * @param patientId 病人ID
+ * @param name 病人姓名
+ */
+function callYbSaleGoodsItem(realNo, orderNo, receiptNo, times, patientId, name) {
+    // 获取处方明细数据
+    let tableData = $("#tb_table_right").bootstrapTable('getData');
+    
+    if (!tableData || tableData.length === 0) {
+        console.log('没有处方明细数据,跳过医保接口调用');
+        return;
+    }
+    
+    // 获取当前用户信息(药师信息)
+    let currentUserName = localStorage.getItem('userName') || '';
+    let currentUserId = localStorage.getItem('userID') || '';
+    
+    // 获取当前时间
+    let currentTime = new Date();
+    let selRetnTime = currentTime.getFullYear() + '-' + 
+                     String(currentTime.getMonth() + 1).padStart(2, '0') + '-' + 
+                     String(currentTime.getDate()).padStart(2, '0') + ' ' +
+                     String(currentTime.getHours()).padStart(2, '0') + ':' + 
+                     String(currentTime.getMinutes()).padStart(2, '0') + ':' + 
+                     String(currentTime.getSeconds()).padStart(2, '0');
+    
+    // 为每个药品调用一次医保接口
+    for (let i = 0; i < tableData.length; i++) {
+        let item = tableData[i];
+        
+        // 参数验证
+        let doctorName = $("#employeeNameLabel").val() || '';
+        if (!doctorName) {
+            console.warn('开方医师姓名为空,使用默认值');
+            doctorName = '未知医师';
+        }
+        
+        if (!currentUserName) {
+            console.warn('药师姓名为空,使用默认值');
+            currentUserName = '未知药师';
+        }
+        
+        // 构建医保接口参数(只传递必需参数)
+        let ybData = {
+            // 医疗目录编码(医保编码)
+            medListCodg: item.nationalCode || 'NMLC999',
+            
+            // 开方医师姓名
+            prscDrName: doctorName,
+            
+            // 药师姓名
+            pharName: currentUserName,
+            
+            // 药师执业资格证号(暂时为空,需要从用户信息中获取)
+            pharPracCertNo: '',
+            
+            // 销售/退货经办人姓名
+            selRetnOpterName: currentUserName,
+            
+            // 就诊结算类型(1-医保结算 2-自费结算)
+            mdtrtSetlType: '1',
+            
+            // 处方药标志
+            rxFlag: '1',
+            
+            // 拆零标志(0-否;1-是)
+            trdnFlag: '0',
+            
+            // 追溯码信息
+            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('调用医保接口,药品:', item.drugname, '参数:', ybData);
+        
+        // 调用医保接口
+        $.ajax({
+            type: "POST",
+            url: '/Yb/saleGoodsItem',
+            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);
+                // 医保接口失败不影响发药流程,只记录日志
+            }
+        });
+    }
 }