From a04453432c9898df83961eaea26dd97b65537f02 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期三, 03 十二月 2025 09:56:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fzzy-igdss-web/src/main/resources/static/inout/out-register.js |  591 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 591 insertions(+), 0 deletions(-)

diff --git a/fzzy-igdss-web/src/main/resources/static/inout/out-register.js b/fzzy-igdss-web/src/main/resources/static/inout/out-register.js
new file mode 100644
index 0000000..b0acf49
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/out-register.js
@@ -0,0 +1,591 @@
+var layer;
+var form;
+var snapData;//鐧昏鐓х墖
+
+$(function () {
+    layui.use(['layer', 'laydate', 'form', 'util'], function () {
+        var util = layui.util;
+        var laydate = layui.laydate;
+        layer = layui.layer;
+        form = layui.form;
+        laydate.render({
+            elem: '#userBirthday'
+        });
+    });
+
+    showProgress();
+
+    var rightH = $(".rkbk-left-wrap").height();
+    $(".rkbk-right-wrap").height(rightH);
+
+    $(window).resize(function () {
+        var rightH = $(".rkbk-left-wrap").height();
+        $(".rkbk-right-wrap").height(rightH);
+    });
+
+    // 鍒濆鍖朩ebSocket
+    // initWS(deptId, bizType, progress, userId);
+});
+
+window.onload = function () {
+    // 鍔犺浇瑙嗛
+    initVideo(lprDto, null, null);
+};
+
+
+//鎺у埗娴佺▼鐜妭鏄剧ず
+function showProgress() {
+    if (!inoutProgress) {
+        return;
+    }
+    if (inoutProgress.indexOf("REGISTER") == -1) {
+        $("#progress-register").css("display", "none");
+    }
+    if (inoutProgress.indexOf("WEIGHT_FULL") == -1) {
+        $("#progress-fullWeight").css("display", "none");
+    }
+    if (inoutProgress.indexOf("HANDLE") == -1) {
+        $("#progress-hand").css("display", "none");
+    }
+    if (inoutProgress.indexOf("WEIGHT_EMPTY") == -1) {
+        $("#progress-emptyWeight").css("display", "none");
+    }
+    if (inoutProgress.indexOf("CARD_BACK") == -1) {
+        $("#progress-cardBack").css("display", "none");
+    }
+}
+
+// socket淇℃伅杩斿洖铏曠悊
+function socketOnMessage(packet) {
+
+};
+
+//浣跨敤鎻掍欢璇诲彇韬唤璇�
+function flushIdCard() {
+    var index = layer.load();
+    $.ajax({
+        type: "GET",
+        async: true,
+        url: "http://127.0.0.1:9111/IDCARD",
+        data: {},
+        dataType: "json",
+        success: function (json) {
+            layer.close(index);
+            var data = json;
+            if (data.code === "200" || data.code == 200) {
+                // 涓存椂璧嬪��
+                $("#userName").val(data.cnName);
+                $("#userSex").val(data.sex);
+                $("#userNation").val(data.nation);
+                $("#userAddress").val(data.address);
+                //$("#id_img_pers").attr("src",data.Image);
+                var time = data.birthdate;
+                if (time.length == 8) {
+                    time = time.substring(0, 4) + "-" + time.substring(4, 6) + "-" + time.substring(6);
+                }
+                $("#userBirthday").val(time);
+                $("#userId").val(data.idNum);
+                if (data.Image) {
+                    $("#id_img_pers").attr("src", data.Image);
+                }
+                getPhone();
+            }else{
+                alertError("娌℃湁鑾峰彇鍒拌韩浠借瘉淇℃伅锛�");
+                return;
+            }
+
+        },
+        error: function () {
+            layer.alert("韬唤璇佽鍙栧け璐ワ紒", {
+                offset: ['300px', '300px']
+            });
+            layer.close(index);
+        }
+    });
+}
+
+
+//浣跨敤鎻掍欢璇诲彇鏅烘収鍗″彿
+function flushICCard() {
+    $("#intelCard").val(null);
+    $.ajax({
+        type: "GET",
+        async: true,
+        url: "http://127.0.0.1:9111/ICCARD",
+        data: {},
+        dataType: "json",
+        // jsonp: "callback",
+        // jsonpCallback: "jsonpCallback",
+        success: function (json) {
+            //console.log(json);
+            var data = json;
+            //console.log(data);
+            if (data.code === "200" || data.code == 200) {
+                $("#intelCard").val(data.no);
+            } else {
+                layer.alert("璇烽噸鏂拌鍗★紒", {offset: ['300px', '300px']});
+            }
+        },
+        error: function () {
+            layer.alert("IC鍗¤鍙栧嚭閿欙紒", {offset: ['300px', '300px']});
+        }
+    });
+}
+
+
+//鑾峰彇鑱旂郴鏂瑰紡
+function getPhone() {
+    var userId = $("#userId").val();
+    var data = {
+        userId: userId
+    };
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/driver-phone",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(data),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg("鏈幏鍙栧埌鍙告満淇℃伅锛岃濉啓鑱旂郴鏂瑰紡");
+            } else {
+                $("#userContact").val(result.data.mobile);
+            }
+        },
+        error: function () {
+            layer.msg("鏈幏鍙栧埌鍙告満淇℃伅锛岃濉啓鑱旂郴鏂瑰紡");
+        }
+    });
+}
+
+
+//璇诲彇杞︾墝鍙�
+function flushPlateNum() {
+    var param = JSON.stringify(lprDto);
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../inout/api/get-plateNum",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: param,
+        success: function (result) {
+            if (result.code != "0000") {
+                alertError(result.msg);
+            } else {
+                $("#plateNum").val(result.data.plateNum);
+                $("#plateNum2").val(result.data.plateNum);
+                if (plateTag === "Y") {
+                    plateNumImg(result.data.plateNum, result.data.platePath);
+                }
+            }
+            layer.close(index);
+            getPlateNumAfter()
+        },
+        error: function () {
+            layer.close(index);
+            alertError("杞︾墝璇嗗埆澶辫触锛�");
+        }
+    });
+}
+
+
+//鑾峰彇鎸傝溅鍙�
+function getPlateNumAfter() {
+    var plateNum = $("#plateNum").val();
+    var data = {
+        plateNum: plateNum
+    };
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/plate-num",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(data),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg("鏈幏鍙栧埌杞︾墝淇℃伅锛岃濉啓鎸傝溅鍙�");
+            } else {
+                $("#plateNumAfter").val(result.data.plateNumAfter);
+            }
+        },
+        error: function () {
+            layer.msg("鏈幏鍙栧埌杞︾墝淇℃伅锛岃濉啓鎸傝溅鍙�");
+        }
+    });
+}
+
+///閲嶇疆杞︾墝璇嗗埆淇℃伅
+function resetPlateNum() {
+    var index = layer.load();
+    var param = JSON.stringify(lprDto);
+    $.ajax({
+        type: "POST",
+        url: "../../inout/api/reset-lpr",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: param,
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.alert(result.msg, {
+                    offset: ['300px', '300px']
+                });
+            } else {
+                layer.alert("閲嶇疆鎴愬姛锛岃閲嶆柊鑾峰彇杞︾墝淇℃伅", {
+                    offset: ['300px', '300px']
+                });
+            }
+            layer.close(index);
+        },
+        error: function () {
+            layer.close(index);
+            layer.alert("閲嶇疆鎵ц澶辫触", {
+                offset: ['300px', '300px']
+            });
+        }
+    });
+}
+
+// 琛ㄥ崟娓呯┖
+function resetForm() {
+    $("#form-data")[0].reset();
+    form.render();
+    // 韬唤璇侀噸缃�
+    $("#id_img_pers").attr("src", "../../static/images/rkbk-photo_03.png");
+    $("#pz-img").removeClass("kccz-r-img-red");
+    $("#pz-text").text("鑷姩鎶撴媿");
+}
+
+// 褰撳墠瀹屾垚
+function submit() {
+    var data = form.val("form-data");
+    if (!data.plateNum) {
+        alertError("鎵胯繍浜鸿溅鐗屽彿涓嶈兘涓虹┖");
+        return;
+    }
+    if (!data.userName) {
+        alertError("鎵胯繍浜哄鍚嶄笉鑳戒负绌�");
+        return;
+    }
+    if (!data.userId) {
+        alertError("鎵胯繍浜鸿韩浠借瘉鍙蜂笉鑳戒负绌�");
+        return;
+    }
+    if (!data.userContact) {
+        alertError("鎵胯繍浜鸿仈绯绘柟寮忎笉鑳戒负绌�");
+        return;
+    }
+    var isPhone = checkPhone(data.userContact);
+    if (!isPhone) {
+        alertError("鎵嬫満鍙锋牸寮忎笉瀵癸紝璇锋鏌ヤ竴涓嬫墜鏈哄彿");
+        return;
+    }
+    var isUserId = checkPsidno(data.userId);
+    if (!isUserId) {
+        alertError("韬唤璇佸彿鏍煎紡涓嶅锛岃妫�鏌ヤ竴涓嬭韩浠借瘉鍙�");
+        return;
+    }
+    var isPlateNum = checkPlateNum(data.plateNum);
+    if (!isPlateNum) {
+        alertError("杞︾墝鍙锋牸寮忎笉瀵癸紝璇锋鏌ヤ竴涓嬭溅鐗屽彿");
+        return;
+    }
+
+    //绯荤粺鎶撴媿
+    layer.msg("绯荤粺鑷姩鎶撴媿璁板綍鈥︹��");
+    snapData = {
+        companyId: companyId,
+        deptId: deptId,
+        progress: progress,
+        bizType: type,
+        plateNum: data.plateNum,
+        id1: (null != lprDto) ? lprDto.id : null,
+        id2: (null != lprDto) ? lprDto.id : null,
+    };
+    $.ajax({
+        sync: false,
+        type: "POST",
+        url: "../../inout/api/snap-img",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(snapData),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.alert(result.msg);
+                submitData(data);
+            } else {
+                snapData = result.data;
+
+                $("#pz-img").addClass("kccz-r-img-red");
+                $("#pz-text").text("宸叉媿鐓�");
+
+                submitData(data);
+            }
+        },
+        error: function () {
+            layer.msg("鍚庡彴璋冪敤鎴浘澶辫触锛岃閲嶆柊灏濊瘯锛侊紒");
+            submitData(data);
+        }
+    });
+}
+
+//鎵ц淇濆瓨鏁版嵁
+function submitData(data) {
+    var index = layer.load();
+
+    var files = [{
+        fileName: snapData.fileName1
+    },{
+        fileName: snapData.fileName2
+    }];
+    data.files = files;
+
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/submit-register",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(data),
+        success: function (result) {
+            layer.close(index);
+            if (result.code != "0000") {
+                notify(result.msg, result.data);
+            } else {
+                notify("鏁版嵁鎻愪氦鎴愬姛", result.data);
+                // 閲嶇疆椤甸潰
+                resetForm();
+            }
+        },
+        error: function () {
+            layer.close(index);
+            layer.alert("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯锛侊紒");
+        }
+    });
+}
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @param msg 鎻愰啋淇℃伅
+ * @param data 鏁版嵁淇℃伅锛屽彲鑳戒负绌�
+ */
+function notify(msg, data) {
+    if (data) {
+        //璧嬪��
+        $("#resultMsg").text(msg);
+        $("#resultUserName").text(data.userName);
+        $("#resultPlateNum").text(data.plateNum);
+        if ("IN" == data.type) {
+            $("#resultType").text("鍏ュ簱-" + INOUT_PROGRESS_MSG(data.progress));
+        } else {
+            $("#resultType").text("鍑哄簱-" + INOUT_PROGRESS_MSG(data.progress));
+        }
+        $("#resultIntelCard").text(data.intelCard);
+
+        layer.open({
+            type: 1,
+            offset: ['150px', '200px'],
+            area: '450px;',
+            shade: 0.8,
+            id: 'dialog_notify_info',
+            btn: ['纭畾'],
+            content: $('#dialog-from-notify'),
+            yes: function (index) {
+                layer.closeAll();
+            }
+        });
+    } else {
+        layer.alert(msg, {offset: ['300px', '300px']});
+    }
+}
+
+function checkPhone(str) {
+    var reg = /^1[3456789]\d{9}$/;
+    // ^1  浠�1寮�澶�
+    // [3456789] 绗�2浣嶏紝浣跨敤鍘熷瓙琛ㄩ噷鐨勪换鎰忎竴涓師瀛愰兘鍙互
+    // \d{9}$  绗笁浣�  鏈濆悗鍙互鏄换鎰忔暟瀛�  骞朵笖鏈�鍚庣粨灏惧繀椤绘槸鏁板瓧
+
+    if (reg.test(str)) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+/**
+ * @description : 鏍¢獙韬唤璇佸彿鏄惁鍚堣锛�18浣嶃��15浣嶏級
+ * @param        value
+ * @return       {Boolean} true-鍚堣 false-涓嶅悎瑙�
+ */
+function checkPsidno(value) {
+    var psidno = String(value)
+    // 1.鏍¢獙韬唤璇佸彿鏍煎紡鍜岄暱搴�
+    var regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
+    if (!regPsidno.test(psidno)) {
+        return false;
+    }
+    // 2.鏍¢獙鍓嶄袱浣嶇殑鐪佷唤缂栫爜鏄惁姝g‘
+    var province = {
+        11: '鍖椾含',
+        12: '澶╂触',
+        13: '娌冲寳',
+        14: '灞辫タ',
+        15: '鍐呰挋鍙�',
+        21: '杈藉畞',
+        22: '鍚夋灄',
+        23: '榛戦緳姹� ',
+        31: '涓婃捣',
+        32: '姹熻嫃',
+        33: '娴欐睙',
+        34: '瀹夊窘',
+        35: '绂忓缓',
+        36: '姹熻タ',
+        37: '灞变笢',
+        41: '娌冲崡',
+        42: '婀栧寳 ',
+        43: '婀栧崡',
+        44: '骞夸笢',
+        45: '骞胯タ',
+        46: '娴峰崡',
+        50: '閲嶅簡',
+        51: '鍥涘窛',
+        52: '璐靛窞',
+        53: '浜戝崡',
+        54: '瑗胯棌 ',
+        61: '闄曡タ',
+        62: '鐢樿們',
+        63: '闈掓捣',
+        64: '瀹佸',
+        65: '鏂扮枂',
+        71: '鍙版咕',
+        81: '棣欐腐',
+        82: '婢抽棬',
+        91: '鍥藉'
+    }
+    if (!province[Number(psidno.slice(0, 2))]) {
+        return false;
+    }
+    var reg;
+    var arrSplit;
+    var year;
+    var month;
+    var day;
+    // 3.鏍¢獙鍑虹敓鏃ユ湡
+    if (psidno.length === 15) {
+        // 15浣嶅彿鐮� 鐪侊紙2浣嶏級甯傦紙2浣嶏級鍘匡紙2浣嶏級骞达紙2浣嶏級鏈堬紙2浣嶏級鏃ワ紙2浣嶏級鏍¢獙鐮侊紙3浣嶏級
+        reg = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/)
+        arrSplit = psidno.match(reg)
+        // 15浣嶅彿鐮佸湪骞翠唤鍓嶈ˉ 19 鎴� 20
+        year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
+        month = arrSplit[3]
+        day = arrSplit[4]
+        if (!validateBirthday(year, month, day)) {
+            return false;
+        }
+    } else if (psidno.length === 18) {
+        // 18浣嶅彿鐮� 鐪侊紙2浣嶏級甯傦紙2浣嶏級鍘匡紙2浣嶏級骞达紙4浣嶏級鏈堬紙2浣嶏級鏃ワ紙2浣嶏級鏍¢獙鐮侊紙4浣嶏級
+        reg = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/)
+        arrSplit = psidno.match(reg)
+        year = arrSplit[2]
+        month = arrSplit[3]
+        day = arrSplit[4]
+        if (!validateBirthday(year, month, day)) {
+            return false;
+        }
+    } else {
+        return false;
+    }
+    // 4.18浣嶅彿鐮佹牎楠岀敓鎴愮殑鏍¢獙鐮�
+    if (psidno.length === 18) {
+        var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 鍔犳潈鍥犲瓙
+        var parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 鏍¢獙鐮�
+        var sum = 0;
+        for (var i = 0; i < 17; i++) {
+            sum += Number(psidno.charAt(i)) * Wi[i];
+        }
+        if (parity[sum % 11] !== psidno[17]) {
+            return false;
+        }
+    }
+    return true;
+}
+
+// 鏍¢獙鍑虹敓鏃ユ湡鏄惁鍚堢悊
+function validateBirthday(year, month, day) {
+    year = Number(year) // 骞�
+    month = Number(month) // 鏈�
+    day = Number(day) // 鏃�
+    var nowTime = new Date().getTime() // 褰撳墠鏃堕棿鎴�
+    var birthTime = new Date(year, month, day).getTime() // 鑾峰彇鍑虹敓鏃ユ湡鐨勬椂闂存埑
+    // 涓嶈兘鏄槑澶╁嚭鐢熺殑鍚�
+    if (birthTime > nowTime) {
+        return false;
+    }
+    // 涓�鑸汉娲讳笉鍒�150宀佸惂
+    var nowYear = new Date().getFullYear()
+    if ((nowYear - year) > 150) {
+        return false;
+    }
+    // 涓嶈兘鏄�13鏈堝嚭鐢熺殑鍚�
+    if (month < 1 || month > 12) {
+        return false;
+    }
+    // 涓嶈兘鏄�2鏈�30鍙枫��4鏈�31鍙枫��5鏈�32鍙峰嚭鐢熺殑鍚�
+    var date = new Date(year, month, 0) // 鑾峰彇褰撴湀鐨勬渶鍚庝竴澶�
+    if (day < 1 || day > date.getDate()) {
+        return false;
+    }
+    return true;
+}
+
+//杞︾墝鍙烽獙璇佹柟娉�
+
+function checkPlateNum(plateNum) {
+
+    var xreg = /^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
+
+    var creg = /^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9鎸傚璀︽腐婢砞{1}$/;
+
+    if (plateNum.length === 7) {
+        return creg.test(plateNum);
+    } else if (plateNum.length === 8) {
+        return xreg.test(plateNum);
+    } else {
+        return false;
+    }
+}
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @param plateNum 鎻愰啋淇℃伅
+ * @param platePath 鏁版嵁淇℃伅锛屽彲鑳戒负绌�
+ */
+plateNumImg = function (plateNum, platePath) {
+    var mainDiv = $("#plateNumId");
+    mainDiv.empty();
+    var html = ""
+    if (!plateNum) {
+        console.log("1")
+        html += "<div style=\"color: red; font-size: 50px; text-align: center;\"><span>鏈鍙栧埌杞︾墝鍙�</span></div>";
+    } else {
+        console.log(plateNum)
+        html += "<div style=\"color: red; font-size: 50px; text-align: center;\"><span>" + plateNum + "</span></div>";
+    }
+
+    html += "<div style=\"text-align: center\"><img class ='cut-img' src='../../basic/common/getImg?filePath=" + platePath + "' /></div>";
+
+    mainDiv.html(html);
+
+    layer.open({
+        type: 1,
+        title: "杞︾墝鍙峰姣�",
+        offset: 'l',
+        shade: 0.8,
+        area: ['55%', '90%'],
+        id: 'dialog_plate_img',
+        btn: ['纭畾'],
+        content: $('#plateNumImg'),
+        yes: function (index) {
+            layer.closeAll();
+        }
+    });
+};

--
Gitblit v1.9.3