Browse Source

高龄津贴mqtt采集照片

sunkuosheng 1 week ago
parent
commit
341d78a070
2 changed files with 222 additions and 27 deletions
  1. 5 1
      ruoyi-ui-gljt/src/utils/constant.js
  2. 217 26
      ruoyi-ui-gljt/src/views/gljt/gljtSq/index.vue

+ 5 - 1
ruoyi-ui-gljt/src/utils/constant.js

@@ -14,6 +14,10 @@ export const Constant = {
   // 吉林省code
   'jlCode':'220000000000',
   //打印调整URL
-  'DY_URL':'https://jdgl.ccsckj.com/printsvr' //测试
+  'DY_URL':'https://jdgl.ccsckj.com/printsvr', //测试
   // 'DY_URL':'https://info.windd.cn/printsvr' //正式
+
+  //mqtt上传的图片地址是否是正式
+  'IS_ZS':"0" //测试
+  //'IS_ZS':"1" //正式
 };

+ 217 - 26
ruoyi-ui-gljt/src/views/gljt/gljtSq/index.vue

@@ -366,6 +366,7 @@
                       ocrType="front"
                     ></image-upload-gljt>
                     <span>证件人像面</span>
+                    <i class="el-icon-camera-solid" @click="QRSFZ('sfz','sfz')"></i>
                   </el-form-item>
                 </div>
                 <div class="flexCount">
@@ -384,6 +385,7 @@
                       :accessToken="accessToken"
                     ></image-upload-gljt>
                     <span>户口首页</span>
+                    <i class="el-icon-camera-solid" @click="QRSFZ('hk','hk')"></i>
                   </el-form-item>
                 </div>
               </div>
@@ -405,6 +407,7 @@
                       ocrType="back"
                     ></image-upload-gljt>
                     <span>证件国徽面</span>
+                    <i class="el-icon-camera-solid" @click="QRSFZ('sfz','sfz')"></i>
                   </el-form-item>
                 </div>
                 <div class="flexCount">
@@ -426,6 +429,7 @@
                       @clear="clearHkb"
                     ></image-upload-gljt>
                     <span>户口本人页</span>
+                    <i class="el-icon-camera-solid" @click="QRSFZ('hk','hk')"></i>
                   </el-form-item>
                 </div>
               </div>
@@ -442,7 +446,7 @@
                     v-model="form.tx"
                   />
                   <span> 老人照片 </span>
-                  <!--<i class="el-icon-upload" @click="QRSFZ('tx')"></i>-->
+                  <i class="el-icon-camera-solid" @click="QRSFZ('rx','rx')"></i>
                 </el-form-item>
               </div>
             </div>
@@ -622,6 +626,9 @@
                   prop="yhzjz"
                   class="uploadStyle"
                 >
+                  <label slot="label"
+                  ><span>银行卡正面照</span><i class="el-icon-camera-solid" @click="QRSFZ('yhk','yhk')"></i></label
+                  >
                   <image-upload-gljt
                     :isShowTip="false"
                     v-model="form.yhzjz"
@@ -674,6 +681,9 @@
                   label-width="98"
                   class="uploadStyle"
                 >
+                  <label slot="label"
+                  ><span>证件人像面</span><i class="el-icon-camera-solid" @click="QRSFZ('sfz','jhr')"></i></label
+                  >
                   <image-upload-gljt
                     :isShowTip="false"
                     v-model="form.jhrZjzm"
@@ -692,6 +702,9 @@
                   label-width="98"
                   class="uploadStyle"
                 >
+                  <label slot="label"
+                  ><span>证件国徽面</span><i class="el-icon-camera-solid" @click="QRSFZ('sfz','jhr')"></i></label
+                  >
                   <image-upload-gljt
                     :isShowTip="false"
                     v-model="form.jhrZjbm"
@@ -763,6 +776,9 @@
                   prop="dbrZjzm"
                   :rules="form.gx ? itemRules.dbrZjzm : []"
                 >
+                  <label slot="label"
+                  ><span>证件人像面</span><i class="el-icon-camera-solid" @click="QRSFZ('sfz','dbr')"></i></label
+                  >
                   <image-upload-gljt
                     :isShowTip="false"
                     v-model="form.dbrZjzm"
@@ -782,6 +798,9 @@
                   prop="dbrZjbm"
                   :rules="form.gx ? itemRules.dbrZjbm : []"
                 >
+                  <label slot="label"
+                  ><span>证件国徽面</span><i class="el-icon-camera-solid" @click="QRSFZ('sfz','dbr')"></i></label
+                  >
                   <image-upload-gljt
                     :isShowTip="false"
                     v-model="form.dbrZjbm"
@@ -1290,6 +1309,7 @@ import mqtt from "mqtt";
 import { getUuid } from "@/utils";
 import QRCode from "qrcodejs2";
 import { Constant } from "@/utils/constant";
+import axios from 'axios'
 export default {
   name: "GljtSq",
   dicts: [
@@ -1942,7 +1962,7 @@ export default {
         }
       });
     },
-    message_str(topic, message) {
+    async message_str(topic, message) {
       //监听消息函数
       console.log("收到来自主题:" + topic + "的消息:" + message.toString());
       // var messageTextArea = document.getElementById("messageTextArea");					//获取textarea元素
@@ -1950,33 +1970,140 @@ export default {
       if (topic.includes("sys/property/post")) {
         let msgobj = JSON.parse(message.toString());
         if (msgobj.params.picadata1) {
+          this.clearTime();
+          console.log(msgobj.params.ywlx,'msgobj.params.ywlx');
           if (msgobj.params.lx === "sfz") {
+             //身份证正面
+             if(msgobj.params.picadata1) {
+               let qur = await this.idCardIdentify(msgobj.params.picadata1, 'front')
+               if (!qur.image_status || qur.image_status != 'normal' || qur.idcard_number_type != '1') {
+                 this.$modal.msgError(`请上传正确的身份证正面照片`);
+                 return;
+               }
+
+               if (msgobj.params.ywlx === "sfz") {
+                 if (this.cardNo && (qur.words_result['公民身份号码'].words != this.cardNo)) {
+                   this.$modal.msgError(`申请人证件信息与户口本信息不一致`);
+                   return;
+                 }
+
+               }
+
+               let formCard = {
+                 sqrZjhm: qur.words_result['公民身份号码'].words,
+                 csrq: qur.words_result['出生'].words,
+                 xb: qur.words_result['性别'].words,
+                 mz: qur.words_result['民族'].words,
+                 sqrXm: qur.words_result['姓名'].words,
+                 hjdz: qur.words_result['住址'].words,
+               }
+               if (msgobj.params.ywlx === "sfz") {
+                 this.form.sqrZjzm = msgobj.params.picadata2;
+                 this.getCard(formCard)
+               }
+               // console.log(qur, '身份证正面')
+               if(msgobj.params.ywlx === "dbr"){
+                 this.form.dbrZjzm = msgobj.params.picadata2;
+                 this.getCard2(formCard)
+               }
+               if(msgobj.params.ywlx === "jhr"){
+                 this.form.jhrZjzm = msgobj.params.picadata2;
+                 this.getCardJh(formCard)
+               }
+             }
+             //身份证背面
+            if(msgobj.params.picbdata1)
+            {
+              let data2=  await this.idCardIdentify(msgobj.params.picbdata1,'back')
+              if (!data2.image_status || data2.image_status != 'normal') {
+                this.$modal.msgError(`请上传正确的身份证反面照片`);
+                return;
+              }
+              if (msgobj.params.ywlx === "sfz") {
+                this.form.sqrZjbm = msgobj.params.picbdata2;
+                let formCard2 = {
+                  fzjg: data2.words_result['签发机关'].words,
+                  qfrq: data2.words_result['签发日期'].words,
+                }
+                this.getBack(formCard2)
+              }
+              if(msgobj.params.ywlx === "dbr"){
+                this.form.dbrZjbm = msgobj.params.picbdata2;
+
+              }
+              if(msgobj.params.ywlx === "jhr"){
+                this.form.jhrZjbm = msgobj.params.picbdata2;
+              }
+              // console.log(data2,'身份证反面')
+            }
+            // "picadata1":"https://jdgl.ccsckj.com/gljtUploadPath/2025/04/01/47b485800e9e11f08b479343e1_20250401100901A108.png",
+            //   "picbdata1":"https://jdgl.ccsckj.com/gljtUploadPath/2025/04/01/47bbd8800e9e11f08b479343e1_20250401100901A109.png","lx":"sfz"}}
           }
-          if (msgobj.params.lx === "tx") {
-            this.form.tx = msgobj.params.picadata1;
+          if (msgobj.params.lx === "rx") {
+            this.form.tx = msgobj.params.picadata2;
             console.log(this.form, "<-----我是form");
             // this.form.tx='/gljtUploadPath/2025/02/17/43d9cbd0ecfe11efa4fd03c1431ab362_20250217151027A056.png';
-            this.clearTime();
-          }
-          // var canvas = document.getElementById('SFZA');
-          // if (msgobj.params.lx=="hk") canvas = document.getElementById('HKA');
-          // if (msgobj.params.lx=="tx") canvas = document.getElementById('TX');
-          // if (msgobj.params.lx=="yhk") canvas = document.getElementById('YHK');
-          // canvas.src ="https://jdgl.ccsckj.com/resfile/"+ msgobj.params.picadata;
-          // closePopup();
-        }
 
-        if (msgobj.params.picbdata) {
-          if (msgobj.params.lx === "sfz") {
           }
-          // var canvas = document.getElementById('SFZB');
-          // if (msgobj.params.lx=="hk") canvas = document.getElementById('HKB');
-          // if (msgobj.params.lx=="tx") canvas = document.getElementById('TX');
-          // if (msgobj.params.lx=="yhk") canvas = document.getElementById('YHK');
-          // canvas.src ="https://jdgl.ccsckj.com/resfile/"+ msgobj.params.picbdata;
-          //
-          // closePopup();
+          if(msgobj.params.lx === "hk"){
+            //户口本首页
+            if(msgobj.params.picadata1){
+             let data=await this.household_registerIdentify(msgobj.params.picadata1,'homepage')
+              console.log(data,'户口本首页');
+              if(!data.words_result){
+                this.$modal.msgError(`请上传正确的户口本首页`);
+                return;
+              }
+              this.form.hkbzm=msgobj.params.picadata2;
+            }
+            //户口本本人页
+            if(msgobj.params.picbdata1){
+              let qur=await this.household_registerIdentify(msgobj.params.picbdata1,'subpage')
+              console.log(qur,'户口本本人页');
+              if(qur.words_result&&qur.words_result['CardNo']&&qur.words_result['Name']){
+                if(this.form.sqrZjhm&&(this.form.sqrZjhm!= qur.words_result['CardNo'].words)){
+                  // if(this.opt&&this.opt.sqrZjhm&&this.opt.sqrXm&&(this.opt.sqrZjhm!= qur.words_result['CardNo'].words||this.opt.sqrXm!=qur.words_result['Name'].words)){
+                  this.$modal.msgError(`申请人证件信息与户口本信息不一致`);
+                  return;
+                }
+                let formCard={
+                  cardNo:qur.words_result['CardNo'].words,
+                  name:qur.words_result['Name'].words,
+                }
+                this.form.hkbbm=msgobj.params.picbdata2;
+                this.getSubpage(formCard)
+              }else{
+                this.$modal.msgError(`请上传正确的户口本本人页`);
+                return;
+              }
+            }
+          }
+          if(msgobj.params.lx === "yhk"){
+            let qur=await this.bankcardIdentify(msgobj.params.picadata1);
+            if(qur.result&&qur.result.bank_card_number&&qur.result.bank_card_type!='0'){
+             let formCard={
+                yhzh:qur.result.bank_card_number.replace(/\s*/g,'')
+              };
+              this.form.yhzjz=msgobj.params.picadata2;
+              this.getCardYhk(formCard)
+            }else{
+              this.$modal.msgError(`请上传正确的银行卡照片`);
+              return ;
+            }
+          }
         }
+
+        // if (msgobj.params.picbdata) {
+        //   if (msgobj.params.lx === "sfz") {
+        //   }
+        //   var canvas = document.getElementById('SFZB');
+        //   if (msgobj.params.lx=="hk") canvas = document.getElementById('HKB');
+        //   if (msgobj.params.lx=="tx") canvas = document.getElementById('TX');
+        //   if (msgobj.params.lx=="yhk") canvas = document.getElementById('YHK');
+        //   canvas.src ="https://jdgl.ccsckj.com/resfile/"+ msgobj.params.picbdata;
+        //
+        //   closePopup();
+        // }
         if (msgobj.params.msg) {
           this.divmsgfoot = msgobj.params.msg;
           if (msgobj.params.msg) {
@@ -1991,6 +2118,55 @@ export default {
         }
       }
     },
+    // 身份证文字识别
+    idCardIdentify(url,type) {
+      return new Promise((resolve, reject) => {
+        var params = new FormData()
+        params.append('url', url)//转Base64后的编码
+        params.append('id\_card\_side', type)//身份证正反面参数,正:,反:back
+        params.append('access\_token', this.accessToken);
+        // params.append('detect_card', true);//身份证是否进行裁剪
+
+        axios.post(
+          '/baiduApi/rest/2.0/ocr/v1/idcard?', params,
+          {headers: {'Content-Type': 'application/x-www-form-urlencoded'}}
+        ).then((res) => {
+          resolve(res.data)
+          // resolve(res.data.words_result)
+        })
+      })
+    },
+    //户口本文字识别
+    household_registerIdentify(household_registerImg,ocrType){
+      return new Promise((resolve, reject) => {
+        var params = new FormData()
+        params.append('url', household_registerImg)//转Base64后的编码
+        params.append('access\_token', this.accessToken);
+        params.append('household\_register\_side', ocrType)
+        axios.post(
+          '/baiduApi/rest/2.0/ocr/v1/household_register?', params,
+          {headers: {'Content-Type': 'application/x-www-form-urlencoded'}}
+        ).then((res) => {
+          resolve(res.data)
+          // resolve(res.data.words_result)
+        })
+      })
+    },
+    //银行卡文字识别
+    bankcardIdentify(bankCardImg){
+      return new Promise((resolve, reject) => {
+        var params = new FormData()
+        params.append('url', bankCardImg)//转Base64后的编码
+        params.append('access\_token', this.accessToken);
+        axios.post(
+          '/baiduApi/rest/2.0/ocr/v1/bankcard?', params,
+          {headers: {'Content-Type': 'application/x-www-form-urlencoded'}}
+        ).then((res) => {
+          resolve(res.data)
+          // resolve(res.data.words_result)
+        })
+      })
+    },
     toGrayScale(canvasId) {
       const canvas = document.getElementById(canvasId);
       const ctx = canvas.getContext("2d");
@@ -2019,30 +2195,43 @@ export default {
       this.divmsgtime = null; // 更新页面上的显示为结束信息
       console.log("清空");
     },
-    QRSFZ(lx) {
+    QRSFZ(lx,ywlx) {
       this.openRwm = true;
       let starttime = new Date().valueOf();
       let tj = {
         lx: lx,
+        ywlx:ywlx,
         kssj: starttime,
         jssj: starttime + 60000,
         czsc: 60000,
         clientid: this.options.clientId,
         rad: Math.random().toString(16).substr(2, 8),
+        iszs:Constant.IS_ZS
       };
       let destj = encrypt_ECBdef(JSON.stringify(tj));
       const text =
         "https://jdgl.ccsckj.com/resfile/card/card2.html?tj=" +
         encodeURIComponent(destj);
-      switch (lx) {
+      switch (ywlx) {
         case "sfz":
           this.titleRwm = "身份证图片采集";
           break;
+        case "dbr":
+          this.titleRwm = "代办人身份证图片采集";
+          break;
+        case "jhr":
+          this.titleRwm = "监护人身份证图片采集";
+          break;
         case "tx":
           this.titleRwm = "面部图片采集";
           break;
+        case "hk":
+          this.titleRwm = "户口本图片采集";
+          break;
+        case "yhk":
+          this.titleRwm = "银行卡图片采集";
+          break;
       }
-
       this.$nextTick(() => {
         this.$refs.qrcode.innerHTML = "";
         let qrcode = new QRCode(this.$refs.qrcode, {
@@ -2477,12 +2666,13 @@ export default {
         this.form.xzqh = [this.user.userData.dept.locationCode];
       }
       this.getAccessToken();
-      // this.createConnection();
+
       // if(this.saveSpr();)
       this.getSqShrxm();
       this.status = null;
       this.open = true;
       this.title = "添加高龄津贴申请信息";
+      this.createConnection();
     },
     getSqShrxm(){
       if(localStorage.getItem('sqShrxm')&&!this.form.sqShrxm){
@@ -2551,6 +2741,7 @@ export default {
             this.getAccessToken();
             this.getQxBfPz('true');
             this.getBfys();
+            this.createConnection();
           }
           //街道审核
           if(this.status == "1"){