|
@@ -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();
|
|
|
+});
|