LIJU hace 4 meses
padre
commit
a6c437b91d
Se han modificado 1 ficheros con 157 adiciones y 58 borrados
  1. 157 58
      src/main/resources/static/js/mz/toll_administration.js

+ 157 - 58
src/main/resources/static/js/mz/toll_administration.js

@@ -3195,10 +3195,96 @@ function siReadCard(params) {
 /**
  * 读卡类型改变事件
  */
+// function mztczfSiReadCardTypeChange() {
+//     var grzhzf = $("#grzhzf").val();
+//     if (grzhzf == null || grzhzf == "") {
+//         errorMesageSimaple("请先选择是否使用个人账户余额支付剩余门诊费用!")
+//         $('#mztczfSiReadCardType').selectpicker('val', null);
+//         $('#mztczfSiReadCardType').selectpicker('refresh');
+//         return;
+//     }
+//     var mztczfSiReadCardType = $("#mztczfSiReadCardType").val();
+//     if (mztczfSiReadCardType == null || mztczfSiReadCardType == "") {
+//         return;
+//     }
+//     let admdvs =  $('#mztczfAdvmCity').val()
+//     if(!stringNotBlank(admdvs)){
+//         errorMesageSimaple("请选择参保地!")
+//         $('#mztczfSiReadCardType').selectpicker('val', null);
+//         $('#mztczfSiReadCardType').selectpicker('refresh');
+//         return;
+//     }
+
+//     postAjaxJsonHttpRequst("/thmz/queryNewInsuinfo",{
+//         patientId :readPatientId,
+//         times :readTimes,
+//         admdvs:admdvs
+//     },true,function (sfzRes) {
+//         if (sfzRes == '401' || sfzRes == 401) {
+//             window.location.href = '/thmz/login/view'
+//             return;
+//         }
+//         if(sfzRes.code == 0){
+//             var url = "http://localhost:8321/readcard/entry?param=";
+//             if (mztczfSiReadCardType == "03") {
+//                 // url += 'sicard_01101';
+//                 url = "http://localhost:8321/readcard/jiangsu/readcard_auto";
+//                 // url += 'readcard_auto';
+//             } else if (mztczfSiReadCardType == "01") {
+//                 // url += 'qrcode_01101';
+//                 url = "http://localhost:8321/api/entry?param=";
+//                 url += 'jiangsu_qrcode_01101';
+//             } else if (mztczfSiReadCardType == "02") {
+//                 // url += 'idcard_01101';
+//                 url += 'huashi_readcard';
+//             }else if (mztczfSiReadCardType == "04") {
+//                 url += 'face_01101';
+//             }
+//             $.ajax({
+//                 type: "GET",
+//                 url: url,
+//                 contentType: "application/json;charset=UTF-8",
+//                 dataType: "json",
+//                 headers: {
+//                     'Accept': 'application/json',
+//                     'Authorization': 'Bearer ' + localStorage.getItem("token")
+//                 },
+//                 success: function (res) {
+//                     if (res == '401' || res == 401) {
+//                         window.location.href = '/thmz/login/view'
+//                         return;
+//                     }
+//                     if (res.code == 200) {
+//                         if (mztczfSiReadCardType == "03") {
+//                             var data = JSON.parse(res.data);
+//                             $("#readCardResult").val(JSON.stringify(data.rawCardData));
+//                         } else if (mztczfSiReadCardType == "01") {
+//                             var data = JSON.parse(res.data);
+//                             $("#readCardResult").val(JSON.stringify(data.data));
+//                         } else {
+//                             $("#readCardResult").val(res.data);
+//                         }
+//                         successMesageSimaple("读卡成功,可以进行医保结算操作。");
+//                         $("#mztczfSiReadCardModal").modal("hide");
+//                     } else {
+//                         warningMesageSimaple("读卡失败,可以稍后重试或者自费结算(不享受门诊统筹)!")
+//                         console.log(res);
+//                     }
+//                 },
+//                 error: function (XMLHttpRequest, textStatus, errorThrown) {
+//                     warningMesageSimaple("读卡异常,可以稍后重试或者自费结算(不享受门诊统筹)!")
+//                 }
+//             });
+
+//         }else {
+//             errorMesage(sfzRes)
+//         }
+//     })
+// }
 function mztczfSiReadCardTypeChange() {
     var grzhzf = $("#grzhzf").val();
     if (grzhzf == null || grzhzf == "") {
-        errorMesageSimaple("请先选择是否使用个人账户余额支付剩余门诊费用!")
+        errorMesageSimaple("请先选择是否使用个人账户余额支付剩余门诊费用!");
         $('#mztczfSiReadCardType').selectpicker('val', null);
         $('#mztczfSiReadCardType').selectpicker('refresh');
         return;
@@ -3207,79 +3293,92 @@ function mztczfSiReadCardTypeChange() {
     if (mztczfSiReadCardType == null || mztczfSiReadCardType == "") {
         return;
     }
-    let admdvs =  $('#mztczfAdvmCity').val()
-    if(!stringNotBlank(admdvs)){
-        errorMesageSimaple("请选择参保地!")
+    let admdvs = $('#mztczfAdvmCity').val();
+    if (!stringNotBlank(admdvs)) {
+        errorMesageSimaple("请选择参保地!");
         $('#mztczfSiReadCardType').selectpicker('val', null);
         $('#mztczfSiReadCardType').selectpicker('refresh');
         return;
     }
 
-    postAjaxJsonHttpRequst("/thmz/queryNewInsuinfo",{
-        patientId :readPatientId,
-        times :readTimes,
-        admdvs:admdvs
-    },true,function (sfzRes) {
+    postAjaxJsonHttpRequst("/thmz/queryNewInsuinfo", {
+        patientId: readPatientId,
+        times: readTimes,
+        admdvs: admdvs
+    }, true, function (sfzRes) {
         if (sfzRes == '401' || sfzRes == 401) {
-            window.location.href = '/thmz/login/view'
+            window.location.href = '/thmz/login/view';
             return;
         }
-        if(sfzRes.code == 0){
-            var url = "http://localhost:8321/readcard/entry?param=";
+        if (sfzRes.code == 0) {
+            var url = "";
             if (mztczfSiReadCardType == "03") {
-                // url += 'sicard_01101';
                 url = "http://localhost:8321/readcard/jiangsu/readcard_auto";
-                // url += 'readcard_auto';
             } else if (mztczfSiReadCardType == "01") {
-                // url += 'qrcode_01101';
-                url = "http://localhost:8321/api/entry?param=";
-                url += 'jiangsu_qrcode_01101';
+                url = "http://localhost:8321/api/entry?param=jiangsu_qrcode_01101";
             } else if (mztczfSiReadCardType == "02") {
-                // url += 'idcard_01101';
-                url += 'huashi_readcard';
-            }else if (mztczfSiReadCardType == "04") {
-                url += 'face_01101';
-            }
-            $.ajax({
-                type: "GET",
-                url: url,
-                contentType: "application/json;charset=UTF-8",
-                dataType: "json",
-                headers: {
-                    'Accept': 'application/json',
-                    'Authorization': 'Bearer ' + localStorage.getItem("token")
-                },
-                success: function (res) {
-                    if (res == '401' || res == 401) {
-                        window.location.href = '/thmz/login/view'
-                        return;
-                    }
-                    if (res.code == 200) {
-                        if (mztczfSiReadCardType == "03") {
-                            var data = JSON.parse(res.data);
-                            $("#readCardResult").val(JSON.stringify(data.rawCardData));
-                        } else if (mztczfSiReadCardType == "01") {
-                            var data = JSON.parse(res.data);
-                            $("#readCardResult").val(JSON.stringify(data.data));
-                        } else {
-                            $("#readCardResult").val(res.data);
-                        }
-                        successMesageSimaple("读卡成功,可以进行医保结算操作。");
-                        $("#mztczfSiReadCardModal").modal("hide");
-                    } else {
-                        warningMesageSimaple("读卡失败,可以稍后重试或者自费结算(不享受门诊统筹)!")
-                        console.log(res);
-                    }
-                },
-                error: function (XMLHttpRequest, textStatus, errorThrown) {
-                    warningMesageSimaple("读卡异常,可以稍后重试或者自费结算(不享受门诊统筹)!")
+                url = "http://localhost:8321/readcard/entry?param=huashi_readcard";
+            } else if (mztczfSiReadCardType == "04") {
+                url = "http://localhost:8321/readcard/entry?param=face_01101";
+            }
+
+            // 自动重试机制
+            callReadCardWithRetry(url, 1, 500, function (res) {
+                // 成功回调
+                if (mztczfSiReadCardType == "03") {
+                    var data = JSON.parse(res.data);
+                    $("#readCardResult").val(JSON.stringify(data.rawCardData));
+                } else if (mztczfSiReadCardType == "01") {
+                    var data = JSON.parse(res.data);
+                    $("#readCardResult").val(JSON.stringify(data.data));
+                } else {
+                    $("#readCardResult").val(res.data);
                 }
+                successMesageSimaple("读卡成功,可以进行医保结算操作。");
+                $("#mztczfSiReadCardModal").modal("hide");
+            }, function (err) {
+                warningMesageSimaple("读卡失败,可以稍后重试或者自费结算(不享受门诊统筹)!");
+                console.log(err);
             });
 
-        }else {
-            errorMesage(sfzRes)
+        } else {
+            errorMesage(sfzRes);
         }
-    })
+    });
+}
+
+// 自动重试的通用函数
+function callReadCardWithRetry(url, retryCount, retryDelay, successCallback, errorCallback) {
+    $.ajax({
+        type: "GET",
+        url: url,
+        contentType: "application/json;charset=UTF-8",
+        dataType: "json",
+        headers: {
+            'Accept': 'application/json',
+            'Authorization': 'Bearer ' + localStorage.getItem("token")
+        },
+        success: function (res) {
+            if (res.code == 200) {
+                successCallback(res);
+            } else if (retryCount > 0) {
+                setTimeout(function () {
+                    callReadCardWithRetry(url, retryCount - 1, retryDelay, successCallback, errorCallback);
+                }, retryDelay);
+            } else {
+                errorCallback(res);
+            }
+        },
+        error: function (XMLHttpRequest, textStatus, errorThrown) {
+            if (retryCount > 0) {
+                setTimeout(function () {
+                    callReadCardWithRetry(url, retryCount - 1, retryDelay, successCallback, errorCallback);
+                }, retryDelay);
+            } else {
+                errorCallback({ message: "读卡异常" });
+            }
+        }
+    });
 }