From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001
From: 吴健 <14790700720@163.com>
Date: 星期二, 15 四月 2025 08:54:08 +0800
Subject: [PATCH] add-415

---
 jcdm-ui/src/views/main/kb/engineCheck/index.vue |  324 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 254 insertions(+), 70 deletions(-)

diff --git a/jcdm-ui/src/views/main/kb/engineCheck/index.vue b/jcdm-ui/src/views/main/kb/engineCheck/index.vue
index 67deef1..198a131 100644
--- a/jcdm-ui/src/views/main/kb/engineCheck/index.vue
+++ b/jcdm-ui/src/views/main/kb/engineCheck/index.vue
@@ -1,94 +1,117 @@
 <template>
   <div class="app-container">
-    <el-card  style="height: 70px;margin-bottom: 10px" class="box-card" >
+    <el-card   class="box-card"  style="height: 60px" >
       <template>
-        <div class="container">
-          <el-row type="flex" justify="center"  style="text-align: center" >
-            <el-col :span="12">
-              <span style="fontSize:30px;color:black">--------------------鍙戝姩鏈烘暟鎹鏌�--------------------</span>
-            </el-col>
-          </el-row>
+        <div class="container" type="flex" justify="center" style="text-align:center">
+<!--          <el-row   type="flex" justify="center" style="text-align:center;height: 12px" >-->
+<!--            <el-col  type="flex" justify="center"  :span="14" style="text-align:center">-->
+          <el-divider><span style="font-size:22px;color:black"><strong>鍙戝姩鏈烘暟鎹鏌�</strong></span></el-divider>
+<!--            </el-col>-->
+<!--          </el-row>-->
         </div>
       </template>
     </el-card>
-   <el-row :gutter="5"  style="margin-top: 10px">
-     <el-col :span="10" >
-       <el-card class="bottom-card">
-         <el-descriptions :column="1" >
-           <el-descriptions-item>
-             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
-               <el-form-item prop="engineNo" >
-      	     <span slot="label" style="font-size:45px;color:black"><strong>鍙戝姩鏈哄彿</strong></span>
-                 <el-input style="font-size:30px" v-model="form.engineNo" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍙�" >
-                   <el-button slot="append" @click="EngineNohandleChange" icon="el-icon-search"></el-button>
+   <el-row :gutter="0"  >
+     <el-col :span="14">
+       <el-card   class="box-card" style="margin-top: 5px" >
+             <el-form ref="form" :model="form"  label-width="25%"   >
+               <el-form-item prop="engineNo" style="margin-top: 16px">
+      	     <span slot="label" style="font-size:22px;color:black;"><strong>鍙戝姩鏈哄彿</strong></span>
+                 <el-input style="font-size:20px" v-model="form.engineNo" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍙�" clearable  @keyup.space.native="EngineNohandleChange" >
+                   <el-button slot="append" plain type="info" @click="EngineNohandleChange(form.engineNo)" icon="el-icon-search"></el-button>
                  </el-input>
                </el-form-item>
              </el-form>
-           </el-descriptions-item>
-           <el-descriptions-item>
-             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
-               <el-form-item   prop="productType" >
-      	     <span slot="label" style="font-size:45px;color:black"><strong>鏈哄瀷</strong></span>
-                 <el-input disabled style="font-size:30px" value="form.productType" v-model="form.productType" placeholder="" />
+             <el-form ref="form" :model="form"  label-width="25%"  >
+               <el-form-item   prop="productType"style="margin-top: 30px" >
+      	        <span slot="label" style="font-size:22px;color:black"><strong>鏈哄瀷</strong></span>
+                 <el-input disabled style="font-size:20px"  value="form.productType" v-model="form.productType" placeholder="" />
                </el-form-item>
              </el-form>
-           </el-descriptions-item>
-           <el-descriptions-item>
-             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
-               <el-form-item   prop="orderNo" >
-      	     <span  slot="label" style="font-size:45px;color:black"><strong>宸ュ崟缂栧彿</strong></span>
-                 <el-input disabled style="font-size:30px" v-model="form.orderNo" placeholder="" />
+             <el-form ref="form" :model="form"  label-width="25%"  >
+               <el-form-item   prop="orderNo" style="margin-top: 30px">
+      	     <span  slot="label" style="font-size:22px;color:black"><strong>宸ュ崟缂栧彿</strong></span>
+                 <el-input disabled style="font-size:20px" v-model="form.orderNo" placeholder="" />
                </el-form-item>
              </el-form>
-           </el-descriptions-item>
-           <el-descriptions-item>
-             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
-               <el-form-item   prop="qualityStatus" >
-      	     <span slot="label" style="font-size:45px;color:black"><strong>璐ㄩ噺鐘舵��</strong></span>
-                 <el-input disabled style="font-size:30px" v-model="form.qualityStatus" placeholder="" />
+             <el-form ref="form" :model="form"  label-width="25%"  >
+               <el-form-item   prop="currentWorkstation" style="margin-top: 30px">
+      	     <span slot="label" style="font-size:22px;color:black"><strong>璐ㄩ噺鐘舵��</strong></span>
+                 <el-input disabled style="font-size:20px" v-model:value="form.add" placeholder="" />
                </el-form-item>
              </el-form>
-           </el-descriptions-item>
-         </el-descriptions>
          <el-divider></el-divider>
+
          <el-row :gutter="10" class="mb8" type="flex" justify="center"  style="text-align: center">
            <el-col :span="1.5">
-             <el-button plain  style="width:400px;height:160px" v-hasPermi="['bs:formula:add']">
-               <span   class="el-icon-thumb"   style="font-size:45px;color:black"></span>
-               <span style="font-size:45px;color:black"><strong>寮哄埗涓婄嚎</strong></span>
+             <el-button plain  type="primary" style="width:400px;height:160px" v-hasPermi="['bs:formula:add']" @click="forceUpload">
+               <span   class="el-icon-thumb"   style="font-size:40px;color:black"></span>
+               <span style="font-size:45px;color:black" ><strong>寮哄埗涓婄嚎</strong></span>
              </el-button>
-             <el-button @click="scanCompleted" style="float: right" type="primary">鎵爜瀹屾垚</el-button>
-
            </el-col>
          </el-row>
        </el-card>
      </el-col>
 
-
-     <el-col :span="14"  inline style="height:600px;width:850px  ">
-       <el-tabs type="border-card"  >
-         <el-card>
-         <el-col :span="14"style="height: 270px;width:800px  ">
+     <el-col :span="10"  inline style="margin-top: 5px">
+         <el-card class="custom-content"  style="height: 264px">
+         <el-col :span="14">
            <span style="font-size:25px"><strong>璐ㄩ噺鐘舵��</strong></span>
            <el-divider></el-divider>
-           {{queryParams.productType}}
+           {{this.form.engineCheckList}}
          </el-col>
          </el-card>
-         <el-card style="margin-top: 10px" >
-         <el-col :span="14"style="height: 270px;width:800px  ">
+         <el-card class="custom-content" style="height: 264px" >
+         <el-col :span="14"style="  ">
            <span style="font-size:25px"><strong>鏈�缁堢粨鏋�</strong></span>
            <el-divider></el-divider>
            {{queryParams.productType}}
          </el-col>
          </el-card>
-       </el-tabs>
      </el-col>
    </el-row>
   </div>
 </template>
 <script>
 
-import {listOrderScheduling} from "@/api/main/bs/orderScheduling/orderScheduling";
+import { listOrderScheduling, forceUploadMethod, getUrl, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling } from "@/api/main/bs/orderScheduling/orderScheduling";
+import { listPassingStationCollection, getPassingStationCollection, delPassingStationCollection, addPassingStationCollection, updatePassingStationCollection } from "@/api/main/da/passingStationCollection/passingStationCollection";
+import {listLineInfo} from "@/api/main/bs/lineInfo/lineInfo";
+import WebSocketReconnect from "@/utils/WebsocketTool";
+
+// let websocket = null
+// //鍒ゆ柇褰撳墠娴忚鍣ㄦ槸鍚︽敮鎸乄ebSocket
+// if ('WebSocket' in window) {
+//   //杩炴帴WebSocket鑺傜偣
+//   websocket = new WebSocketReconnect('ws://127.0.0.1:8086/websocket/111122')
+// } else {
+//   alert('娴忚鍣ㄤ笉鏀寔webSocket')
+// }
+// //鎺ユ敹鍒版秷鎭殑鍥炶皟鏂规硶
+// websocket.socket.onmessage = function (event) {
+//   let data = event.data
+//   console.log('鍚庣浼犻�掔殑鏁版嵁:' + data)
+//   if (data != null && data !== ''){
+//     this.result = JSON.parse(data)
+//     console.log('this.result',this.result)
+//     // this.form.engineNo = this.result.server_message
+//     this.transEngineNo = this.result.server_message
+//     console.log('this.transEngineNo11111111111',this.transEngineNo)
+//   }
+//
+// }
+// //鐩戝惉绐楀彛鍏抽棴浜嬩欢锛屽綋绐楀彛鍏抽棴鏃讹紝涓诲姩鍘诲叧闂瓀ebsocket杩炴帴锛岄槻姝㈣繛鎺ヨ繕娌℃柇寮�灏卞叧闂獥鍙o紝server绔細鎶涘紓甯搞��
+// window.onbeforeunload = function () {
+//   websocket.close()
+// }
+// //鍏抽棴杩炴帴
+// function closeWebSocket() {
+//   websocket.close()
+// }
+// //鍙戦�佹秷鎭�
+// function send() {
+//   websocket.socket.send({ kk: 123 })
+// }
 
 export default {
   components: { },
@@ -96,45 +119,206 @@
   props: [],
   data() {
     return {
+      websocketUrl: '',
+      websocket: null,
+      result: {},
+      transEngineNo: '',
+      options: [],
+      total: 0,
+      engineCheckList:[],
       showFlag:false,
+      buttondisabled:true,
+      mess:'',
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         engineNo: null,
+        productType:null,
+        orderNo:null,
+        qualityStatus:null,
+        currentWorkstation: null,
+        add: null,
+        engineCheckList:'鏆傛棤鏁版嵁',
       },
-
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        engineNo: null,
+        productType:null,
+        orderNo:null,
+        qualityStatus:null,
+        currentWorkstation: null,
+        add: null,
+        engineCheckList:'鏆傛棤鏁版嵁',
+      },
+      add: null,
     };
   },
-
   computed: {},
-  watch: {},
-  created() {
+  watch: {
+    // transEngineNo:{
+    //   handler(newVal,oldVal) {
+    //     console.log('newVal',newVal)
+    //     console.log('oldVal',oldVal)
+    //     this.form.engineNo = newVal
+    //     console.log('11111111111111')
+    //     console.log('this.form.engineNo',this.form.engineNo)
+    //   },
+    //   immediate:true
+    // }
   },
-  mounted() {},
-  methods: {
-    scanCompleted(){
+  created() {
 
+  },
+  mounted() {
+    this.getWebUrl()
+
+  },
+  methods: {
+    getWebUrl(){
+      console.log("1111")
+      getUrl().then(res=>{
+        console.log("res",res)
+        this.websocketUrl = res+"OP120"
+        this.initWebSocket()
+      })
+    },
+    forceUpload() {
+      console.log('0000', this.form.engineNo)
+      if (this.form.engineNo !== null) {
+        forceUploadMethod(this.form.engineNo).then(res => {
+
+        })
+      } else {
+        this.$message({
+          message: '璇疯緭鍏ュ彂鍔ㄦ満鏉$爜',
+          type: 'error',
+          offset: 300
+        })
+      }
+    },
+    initWebSocket: function (){
+      //鍒ゆ柇褰撳墠娴忚鍣ㄦ槸鍚︽敮鎸乄ebSocket
+      if ('WebSocket' in window) {
+        //杩炴帴WebSocket鑺傜偣
+        console.log("9999",this.websocketUrl)
+        this.websocket = new WebSocketReconnect(this.websocketUrl)
+
+        //鎺ユ敹鍒版秷鎭殑鍥炶皟鏂规硶
+        this.websocket.socket.onmessage = (event) => {
+          let data = event.data
+          console.log('鍚庣浼犻�掔殑鏁版嵁:' + data)
+          if (data != null && data !== ''){
+            this.result = JSON.parse(data)
+            console.log('this.result',this.result)
+            this.form.engineNo = this.result.server_message
+            // this.transEngineNo = this.result.server_message
+            console.log('this.transEngineNo11111111111',this.form.engineNo)
+            if (this.form.engineNo !== null && this.form.engineNo !== ''){
+              this.EngineNohandleChange()
+            }
+          }
+        }
+//鐩戝惉绐楀彛鍏抽棴浜嬩欢锛屽綋绐楀彛鍏抽棴鏃讹紝涓诲姩鍘诲叧闂瓀ebsocket杩炴帴锛岄槻姝㈣繛鎺ヨ繕娌℃柇寮�灏卞叧闂獥鍙o紝server绔細鎶涘紓甯搞��
+        window.onbeforeunload = function () {
+          this.websocket.close()
+        }
+//鍏抽棴杩炴帴
+        function closeWebSocket() {
+          this.websocket.close()
+        }
+//鍙戦�佹秷鎭�
+        function send() {
+          this.websocket.socket.send({ kk: 123 })
+        }
+      } else {
+        alert('娴忚鍣ㄤ笉鏀寔webSocket')
+      }
+    },
+    reset() {
+      this.form = {
+        engineNo:null,
+        productType:null,
+        orderNo:null,
+        qualityStatus:null,
+        currentWorkstation: null,
+        add: null,
+        engineCheckList:'鏆傛棤鏁版嵁',
+      };
+      this.resetForm("form");
     },
     EngineNohandleChange(){
+      console.log("EngineNohandleChange")
       if(this.form.engineNo !== null && this.form.engineNo !== undefined){
-        this.queryParams.engineNo = this.form.engineNo;
-        listOrderScheduling(this.queryParams).then(response => {
-          this.$message('鎵爜瀹屾垚'+response.rows[0].model);
-          console.log("--------------------"+response.rows[0])
-          this.form.productType = response.rows[0].model
-          this.form.orderNo = response.rows[0].orderNo
-          this.form.qualityStatus = response.rows[0].qualityStatus
+        let OrderSchedulingParam = {engineNo: null}
+        OrderSchedulingParam.engineNo = this.form.engineNo;
+        listOrderScheduling(OrderSchedulingParam).then(response => {
+          console.log(response)
+          if(response.total === 1 ){
+            this.form.productType = response.rows[0].model
+            this.form.orderNo = response.rows[0].orderNo
+            this.form.qualityStatus = response.rows[0].qualityStatus
+            this.form.currentWorkstation = response.rows[0].currentWorkstation
+            this.form.add= response.rows[0].currentWorkstation+ response.rows[0].qualityStatus
+            if(this.form.qualityStatus ==='涓嶅悎鏍�'){
+              this.buttondisabled = false;
+            }
+            else{
+              this.buttondisabled = true;
+            }
+          }
+          else{
+            this.reset();
+            this.buttondisabled = true
+            const h = this.$createElement;
+            this.$message({
+              message: h('p',null, [
+                       h('span', null, '璀﹀憡 '),
+                       h('i', { style: 'color: black' }, '杈撳叆鐨勫彂鍔ㄦ満鍙锋湁璇�'),
+                       h()]),
+              type: 'error',
+              center: true,
+              offset:300
+            });
+          }
+        });
+        let PassingStationCollectionParam = {sfcCode: null}
+        PassingStationCollectionParam.sfcCode = this.form.engineNo;
+        listPassingStationCollection(PassingStationCollectionParam).then(ponse =>{
+          this.engineCheckList = ponse.rows.locationCode ;
+          if(ponse.rows.length >= 1 && this.form.engineNo !== undefined){
+            this.form.engineCheckList = ''
+            for (let i = 0; i < ponse.rows.length; i++) {
+              this.form.engineCheckList += '   宸ヤ綅:'+ ponse.rows[i].locationCode+'['+ponse.rows[i].outRsSign+']'
+            }
+          }
+          else{
+            this.form.engineCheckList = '鏆傛棤鏁版嵁'
+          }
         });
       }
     },
+
+
   },
-
-
   }
 
 
 </script>
-
+<style scoped>
+::v-deep .el-input__inner{
+  height: 40px;
+}
+::v-deep .el-form-item__label {
+  line-height: 40px;
+}
+.custom-content {
+  height: 50%; /* 璁剧疆楂樺害涓�50% */
+}
+/*.my-custom-modal .el-dialog__wrapper {*/
+/*  width: 400px; !* 璁剧疆瀹藉害 *!*/
+/*  height: 200px; !* 璁剧疆楂樺害 *!*/
+/*  top: 50px; !* 璁剧疆璺濈椤甸潰椤堕儴鐨勪綅缃� *!*/
+/*  left: 50px; !* 璁剧疆璺濈椤甸潰宸︿晶鐨勪綅缃� *!*/
+/*}*/
+</style>

--
Gitblit v1.9.3