From 8f0f8d2d5e5492b1db16d5166a5e053511844522 Mon Sep 17 00:00:00 2001
From: 懒羊羊 <15939171744@163.com>
Date: 星期二, 02 四月 2024 10:24:14 +0800
Subject: [PATCH] -

---
 jcdm-ui/src/views/main/kb/stationTerminal/index.vue |  374 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 227 insertions(+), 147 deletions(-)

diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue
index cca0c2a..b3cd5fa 100644
--- a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue
+++ b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -13,7 +13,7 @@
      </el-col>
      <el-col :span="10">
        <el-card shadow="never">
-         <span class="head-font">鎬绘垚缂栫爜 : {{headContent.sfcCode}}</span>
+         <span class="head-font">浜у搧搴忓垪鍙� : {{headContent.sfcCode}}</span>
 <!--         <el-input v-model="content" style="float: right;width: 150px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>-->
 <!--         <el-button @click="scanCompleted" style="float: right" type="primary">鎵爜瀹屾垚</el-button>-->
          <el-button type="primary" style="float: right" icon="el-icon-search" size="mini" @click="serialLink">涓插彛杩炴帴</el-button>
@@ -32,7 +32,7 @@
          <el-descriptions :column="1" border :content-style="{'min-width': '140px'}">
 <!--         <el-descriptions :column="1" :label-style="{'font-size': '15px'}" border :content-style="{'min-width': '150px'}">-->
            <el-descriptions-item label="宸ュ崟缂栧彿">
-               <span>{{workpieceInformation.workOrderCode}}</span>
+               <span>{{workpieceInformation.workOrderNo}}</span>
            </el-descriptions-item>
            <el-descriptions-item label="浜у搧缂栧彿">
              <span>{{workpieceInformation.productCode}}</span>
@@ -43,9 +43,9 @@
            <el-descriptions-item label="浜у搧鍚嶇О">
              <span>{{workpieceInformation.productName}}</span>
            </el-descriptions-item>
-           <el-descriptions-item label="鑺傛媿">
-             <span>{{workpieceInformation.beat}}</span>
-           </el-descriptions-item>
+<!--           <el-descriptions-item label="鑺傛媿">-->
+<!--             <span>{{workpieceInformation.beat}}</span>-->
+<!--           </el-descriptions-item>-->
          </el-descriptions>
          <el-divider></el-divider>
          <el-row>
@@ -95,9 +95,9 @@
 
 <!--           </el-col>-->
 <!--         </el-row>-->
-<!--         <el-row style="margin-top: 20px">-->
-<!--             <el-button @click="Release" type="primary">鏀捐</el-button>-->
-<!--         </el-row>-->
+         <el-row style="margin-top: 20px">
+             <el-button @click="Release" type="primary">鏀捐</el-button>
+         </el-row>
        </el-card>
 
      </el-col>
@@ -105,42 +105,48 @@
        <el-tabs type="border-card"  style="height: 600px" v-model="activeName" @tab-click="changeMenu">
          <el-tab-pane name="first">
            <span slot="label"> <a class="el-icon-date"></a>棣栭〉</span>
-           <el-col :span="10">
-             <el-table :cell-style="rowStyle" :data="formulaChildList">
-               <el-table-column label="鎺掑簭" width="60" align="center" prop="stepSort">
+           <el-col :span="24">
+             <el-table height="500" :cell-style="rowStyle" :data="formulaChildList">
+               <el-table-column label="鎺掑簭" width="60" align="center" type="index">
                </el-table-column>
                <el-table-column label="鎿嶄綔鍐呭" :show-overflow-tooltip='true' align="center" prop="operationSteps">
                </el-table-column>
+               <el-table-column label="浜у搧缂栧彿" align="center" prop="productCode">
+               </el-table-column>
+               <el-table-column label="閲囬泦鍊�" align="center" prop="collectData">
+               </el-table-column>
+               <el-table-column label="缁撴灉" align="center" prop="results">
+               </el-table-column>
              </el-table>
            </el-col>
-           <el-col :span="14">
-             <el-image style="height: 520px;width: 100%" :src="imgSrc"></el-image>
-           </el-col>
+<!--           <el-col :span="14">-->
+<!--             <el-image style="height: 520px;width: 100%" :src="imgSrc"></el-image>-->
+<!--           </el-col>-->
          </el-tab-pane>
-         <el-tab-pane name="second">
-           <span slot="label"> <b class="el-icon-date"></b>鐗╂枡BOM</span>
-           <el-empty>
-             <span slot="description">鏆傛棤鏁版嵁</span>
-           </el-empty>
-         </el-tab-pane>
-         <el-tab-pane name="third">
-           <span slot="label"> <b class="el-icon-date"></b>閲囬泦娓呭崟</span>
-           <el-empty>
-             <span slot="description">鏆傛棤鏁版嵁</span>
-           </el-empty>
-         </el-tab-pane>
-         <el-tab-pane name="fourth">
-           <span slot="label"> <b class="el-icon-date"></b>瀹夌伅鐘舵��</span>
-           <el-empty>
-             <span slot="description">鏆傛棤鏁版嵁</span>
-           </el-empty>
-         </el-tab-pane>
-         <el-tab-pane name="fifth">
-           <span slot="label"> <b class="el-icon-date"></b>宸ヨ壓閰嶆柟</span>
-           <el-empty>
-             <span slot="description">鏆傛棤鏁版嵁</span>
-           </el-empty>
-         </el-tab-pane>
+<!--         <el-tab-pane name="second">-->
+<!--           <span slot="label"> <b class="el-icon-date"></b>鐗╂枡BOM</span>-->
+<!--           <el-empty>-->
+<!--             <span slot="description">鏆傛棤鏁版嵁</span>-->
+<!--           </el-empty>-->
+<!--         </el-tab-pane>-->
+<!--         <el-tab-pane name="third">-->
+<!--           <span slot="label"> <b class="el-icon-date"></b>閲囬泦娓呭崟</span>-->
+<!--           <el-empty>-->
+<!--             <span slot="description">鏆傛棤鏁版嵁</span>-->
+<!--           </el-empty>-->
+<!--         </el-tab-pane>-->
+<!--         <el-tab-pane name="fourth">-->
+<!--           <span slot="label"> <b class="el-icon-date"></b>瀹夌伅鐘舵��</span>-->
+<!--           <el-empty>-->
+<!--             <span slot="description">鏆傛棤鏁版嵁</span>-->
+<!--           </el-empty>-->
+<!--         </el-tab-pane>-->
+<!--         <el-tab-pane name="fifth">-->
+<!--           <span slot="label"> <b class="el-icon-date"></b>宸ヨ壓閰嶆柟</span>-->
+<!--           <el-empty>-->
+<!--             <span slot="description">鏆傛棤鏁版嵁</span>-->
+<!--           </el-empty>-->
+<!--         </el-tab-pane>-->
        </el-tabs>
      </el-col>
    </el-row>
@@ -286,9 +292,24 @@
 <script>
 import {listWorkReport} from "@/api/main/om/workReport/workReport";
 import {listStationConf,getIpv4} from "@/api/main/sc/stationConf";
-import {listFormulaChild, releaseCheck, updateResults, workpieceRelease} from "@/api/main/bs/formulaChild/formulaChild";
+import {
+  listFormulaChild,
+  noPageListFormulaChild,
+  releaseCheck,
+  updateResults,
+  updateTighteningFormula,
+  workpieceRelease
+} from "@/api/main/bs/formulaChild/formulaChild";
 import MySerialPort from "@/utils/MySerialPort";
 import USBDevice from "@/utils/usb.json";
+import {listProductionOrde} from "@/api/main/om/productionOrde/productionOrde";
+import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection";
+import {
+  addBasicParameters,
+  addParamCollection,
+  addTighteningParameters,
+  saveCampaignTimeParameters
+} from "@/api/main/da/paramCollection/paramCollection";
 
 export default {
   name: "stationTerminal",
@@ -309,10 +330,10 @@
       headContent: {
         processesCode: 'OP1010',
         processesName: '璐存爣鏈�-璐寸爜',
-        sfcCode: '10',
+        sfcCode: '',
       },
       workpieceInformation: {
-        workOrderCode: null,
+        workOrderNo: null,
         productCode: null,
         productModel: null,
         productName: null,
@@ -340,7 +361,7 @@
       },
       content: '',
       activeName: 'first',
-      url: "ws://192.168.11.134:8080/websocket/message/",
+      url: "ws://192.168.10.40:8080/websocket/message/",
       message: "",
       text_content: "",
       ws: null,
@@ -366,6 +387,9 @@
       isShowSendArea: false,
       readType: 1,
       title: "",
+
+      passingStationForm: {},
+      originalArray: [],
     }
   },
   beforeDestroy() {
@@ -406,28 +430,53 @@
       this.open1 = true
     },
     Release(){
-      //鍒ゆ柇鏄惁鍙互閲婃斁
-      let formulaChildParams = {
-        productCode: this.workpieceInformation.productCode,
-        processesCode: this.headContent.processesCode
+      // this.$message('portsList锛�'+this.portsList.length);
+      if(this.btnType === "danger"){
+        this.$message('杩炴帴浜嗭紒');
+
+      }else {
+        this.$message('mei杩炴帴浜嗭紒');
+
       }
-      releaseCheck(formulaChildParams).then(response => {
-        if(response.data === 0){
-          //鏀瑰彉鐘舵��
-          workpieceRelease(formulaChildParams).then(response => {
-          });
-          this.$message('鏀捐鎴愬姛锛�');
-          this.formulaChildList = []
-          this.getListFormulaChild()
-          // this.resetting()
-        }else {
-          this.$message('姝ラ鏈畬鎴愪笉璁告斁琛岋紒');
-        }
-      });
+
+      // //鍒ゆ柇鏄惁鍙互閲婃斁
+      // let formulaChildParams = {
+      //   productCode: this.workpieceInformation.productCode,
+      //   processesCode: this.headContent.processesCode
+      // }
+      // releaseCheck(formulaChildParams).then(response => {
+      //   if(response.data === 0){
+      //     //鏀瑰彉鐘舵��
+      //     workpieceRelease(formulaChildParams).then(response => {
+      //     });
+      //     this.$message('鏀捐鎴愬姛锛�');
+      //     this.formulaChildList = []
+      //     this.getListFormulaChild()
+      //     // this.resetting()
+      //   }else {
+      //     this.$message('姝ラ鏈畬鎴愪笉璁告斁琛岋紒');
+      //   }
+      // });
     },
     serialPortMethod(value){
+      // let formulaChilds = "";
+      // this.formulaChildList.forEach((formulaChild) => {
+      //   let operationType = formulaChild.operationType;
+      //   let results = formulaChild.results;
+      //   let materialCode = formulaChild.materialCode;
+      //   if(operationType === '2' && value.includes(materialCode) && (results === "" || results === null || results === 'NG')){
+      //     formulaChilds = formulaChild;
+      //     return; // 浣跨敤return浠f浛break
+      //   }
+      // });
+      // console.log(formulaChilds)
       let formulaChildParams = {
-        materialCode: value
+        scanBarcode: value,
+        sfcBarcode: this.headContent.sfcCode,
+        workOrderNo: this.workpieceInformation.workOrderNo,
+        productCode: this.workpieceInformation.productCode,
+        locationCode: this.headContent.processesCode,
+        collectionTime: new Date()
       }
       updateResults(formulaChildParams).then(response => {
         this.getListFormulaChild()
@@ -443,11 +492,22 @@
     },
     /** 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� */
     getListFormulaChild() {
+      // this.formulaChildList = []
       this.formulaChildParams.productCode = this.workpieceInformation.productCode
       this.formulaChildParams.processesCode = this.headContent.processesCode
-      listFormulaChild(this.formulaChildParams).then(response => {
+      console.log(this.formulaChildParams)
+      noPageListFormulaChild(this.formulaChildParams).then(response => {
         this.formulaChildList = response.rows;
       });
+    },
+    endClear(){
+      this.cakeLamp.InPlace= 0 //宸ヤ欢鍒颁綅
+      this.cakeLamp.scanFinish= 0
+      this.cakeLamp.startWork= 0
+      this.cakeLamp.release= 0 //鍏佽鏀捐
+
+      this.formulaChildList = []
+      this.headContent.sfcCode = null
     },
     changeMenu(tab, event) {
       console.log(tab, event);
@@ -466,12 +526,12 @@
       this.cakeLamp.startWork = 1
 
     },
-    /** 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛� */
+    /** 鏌ヨ宸ュ崟鍒楄〃 */
     async getList() {
-      await listWorkReport(this.queryParams).then(response => {
+      await listProductionOrde(this.queryParams).then(response => {
         let rowsData = response.rows[0];
         console.log(rowsData)
-        this.workpieceInformation.workOrderCode = rowsData.workOrderCode;
+        this.workpieceInformation.workOrderNo = rowsData.workOrderNo;
         this.workpieceInformation.productCode = rowsData.productCode;
         this.workpieceInformation.productModel = rowsData.productModel;
         this.workpieceInformation.productName = rowsData.productName;
@@ -480,48 +540,24 @@
         }, 1000);
       });
       this.getListFormulaChild()
+      this.addOverStationCollection()
     },
-    allowRelease(){
-      clearInterval(this.timer);
-      this.$message('淇濆瓨鑺傛媿涓�'+this.workpieceInformation.beat+'绉�');
+
+    /** 鍏ョ珯澧炲姞杩囩珯閲囬泦璁板綍 **/
+    addOverStationCollection(){
+      this.passingStationForm = {
+        id: null,
+        workOrderNo: this.workpieceInformation.workOrderNo,
+        productCode: this.workpieceInformation.productCode,
+        locationCode: this.headContent.processesCode,
+        model: this.workpieceInformation.productModel,
+        productBarcode: this.headContent.sfcCode,
+        sfcCode: this.headContent.sfcCode,
+        inboundTime: new Date()
+      }
+      addPassingStationCollection(this.passingStationForm).then(response => {});
+      addBasicParameters(this.passingStationForm).then(response => {});
     },
-    /** 鏌ヨ宸ヤ綅缁堢閰嶇疆鍒楄〃 */
-    // async getStationConfList() {
-    //   await getIpv4().then(response => {
-    //     this.StationConfQueryParams.ipAddress = response.msg
-    //     console.log('鏌ヨ鍒版湰宸ヤ綅IP涓�'+this.StationConfQueryParams.ipAddress)
-    //   });
-    //   listStationConf(this.StationConfQueryParams).then(response => {
-    //     let rows = response.rows[0]
-    //     if(response.rows.length===0){
-    //       this.$message('璇ュ伐浣嶆病鏈夐厤缃甀P锛岃鑱旂郴绠$悊鍛橀厤缃甀P');
-    //       return
-    //     }
-    //     this.headContent.processesName = rows.processesName
-    //     this.headContent.processesCode = rows.processesCode
-    //     console.log('璁剧疆宸ヤ綅缂栫爜'+this.headContent.processesCode)
-    //
-    //   });
-    // },
-    // connectWebsocket() {
-    //   console.log('websocket杩炴帴宸ヤ綅涓�'+this.headContent.processesCode)
-    //   const wsuri = this.url + this.headContent.processesCode;
-    //   this.ws = new WebSocket(wsuri);
-    //   const self = this;
-    //   this.ws.onopen = function (event) {
-    //     // self.text_content = self.text_content + "宸茬粡鎵撳紑杩炴帴!" + "\n";
-    //     this.$message('websocket杩炴帴鎴愬姛锛�');
-    //   };
-    //   this.ws.onmessage = function (event) {
-    //     self.text_content = event.data + "\n";
-    //     console.log(event.data)
-    //     if(event.data === "IN"){
-    //       self.cakeLamp.InPlace = "1"
-    //     }else if(event.data === "OUT"){
-    //       self.cakeLamp.outRsSign = "1"
-    //     }
-    //   };
-    // },
     exit() {
       if (this.ws) {
         this.ws.close();
@@ -535,23 +571,25 @@
         alert("鏈繛鎺ュ埌鏈嶅姟鍣�");
       }
     },
-    async initStation(){
+
+    initStation: async function () {
       await getIpv4().then(response => {
         this.StationConfQueryParams.ipAddress = response.msg
-        console.log('鏌ヨ鍒版湰宸ヤ綅IP涓�'+this.StationConfQueryParams.ipAddress)
+        console.log('鏌ヨ鍒版湰宸ヤ綅IP涓�' + this.StationConfQueryParams.ipAddress)
       });
       await listStationConf(this.StationConfQueryParams).then(response => {
         let rows = response.rows[0]
-        if(response.rows.length===0){
+        if (response.rows.length === 0) {
           this.$message('璇ュ伐浣嶆病鏈夐厤缃甀P锛岃鑱旂郴绠$悊鍛橀厤缃甀P');
           return
         }
         this.headContent.processesName = rows.processesName
         this.headContent.processesCode = rows.processesCode
-        console.log('璁剧疆宸ヤ綅缂栫爜'+this.headContent.processesCode)
+        console.log('璁剧疆宸ヤ綅缂栫爜' + this.headContent.processesCode)
 
       });
-      console.log('websocket杩炴帴宸ヤ綅涓�'+this.headContent.processesCode)
+      this.conCom()
+      console.log('websocket杩炴帴宸ヤ綅涓�' + this.headContent.processesCode)
       const wsuri = this.url + this.headContent.processesCode;
       this.ws = new WebSocket(wsuri);
       const self = this;
@@ -560,32 +598,54 @@
       };
       this.ws.onmessage = function (event) {
         const DELAY_TIME = 2000;
-        switch (event.data) {
-          case "IN":
-            self.cakeLamp.InPlace = 1;
-            break;
-          case "IN0":
-            self.cakeLamp.InPlace = 0;
-            break;
-          case "OUT":
-            self.cakeLamp.release = 1;
-            setTimeout(() => {
-              self.cakeLamp.InPlace = 0;
-              self.cakeLamp.release = 0;
-              self.cakeLamp.startWork = 0;
-              self.cakeLamp.scanFinish = 0;
-              self.Release();
-            }, DELAY_TIME);
-            break;
-          case "TIGHTEN":
-            this.formulaChildList = [];
-            self.getListFormulaChild();
-            break;
-          default:
-            break;
+        if (event.data === "IN") {
+          self.cakeLamp.InPlace = 1;
+        } else if (event.data === "IN0") {
+          self.cakeLamp.InPlace = 0;
+        } else if (event.data === "OUT") {
+          self.cakeLamp.release = 1;
+        } else if (event.data === "END") {
+          const param = {
+            workOrderNo: self.workpieceInformation.workOrderNo,
+            productCode: self.workpieceInformation.productCode,
+            locationCode: self.headContent.processesCode,
+            productBarcode: self.headContent.sfcCode,
+          }
+          saveCampaignTimeParameters(param).then(response => {});
+          self.cakeLamp.release = 1;
+          self.endClear()
+
+        } else if (event.data.includes("[")) {
+          let formulaChilds = "";
+          self.formulaChildList.sort((a, b) => a.stepSort - b.stepSort);
+          self.formulaChildList
+            .filter((formulaChild) => formulaChild.operationType === '1');
+          for (let i = 0; i < self.formulaChildList.length; i++) {
+            let formulaChild = self.formulaChildList[i];
+            let results = formulaChild.results;
+            if (results === '' || results === null || results === 'NG') {
+              formulaChilds = formulaChild;
+              break;
+            }
+          }
+          const param = {
+            tightenTheArray: event.data,
+            paramCode: formulaChilds.paramCode,
+            workOrderNo: self.workpieceInformation.workOrderNo,
+            productCode: self.workpieceInformation.productCode,
+            locationCode: self.headContent.processesCode,
+            productBarcode: self.headContent.sfcCode,
+          }
+          addTighteningParameters(param).then(response => {});
+          updateTighteningFormula(param).then(response => {
+            self.getListFormulaChild()
+          }).catch(error =>{
+            self.getListFormulaChild()
+          });
         }
       };
     },
+
 
 
     //鎺ュ彈鏁版嵁鐨勫洖璋�
@@ -593,21 +653,24 @@
       if (this.form1.isShowHistory) this.form1.desc = this.readLi().join("");
       else {
         const scanValue = this.myserialport.hex2atostr(value).replace(/[\r\n]/g, '');
-        // if (value.length > 0)
-          // this.form1.desc = this.myserialport.hex2atostr(value);
-        this.$message('鎵爜瀹屾垚'+this.content);
-        if (/T/.test(scanValue)) {
-          console.log('瀛楃涓插寘鍚瓧姣�"T"');
-          this.serialPortMethod(scanValue)
-        } else {
-          console.log('瀛楃涓蹭笉鍖呭惈瀛楁瘝"T"');
-          this.headContent.sfcCode = scanValue;
-          this.queryParams.sfcCode = scanValue;
-          this.getList()
-          // this.getListFormulaChild()
-          this.cakeLamp.scanFinish = 1
-          this.cakeLamp.startWork = 1
-        }
+        console.log("涓插彛鏀跺埌鏁版嵁-------------------"+scanValue)
+        // if(this.cakeLamp.InPlace=== 1){
+          if(this.headContent.sfcCode !== ''){
+            this.$message('鎵弿鐗╂枡缂栫爜'+scanValue);
+            console.log(scanValue)
+            this.serialPortMethod(scanValue)
+          }else {
+            this.$message('鎵爜璇嗗埆浜у搧搴忓垪鍙�'+scanValue);
+            this.headContent.sfcCode = scanValue;
+            this.queryParams.productNum = scanValue;
+            this.getList()
+            // this.getListFormulaChild()
+            this.cakeLamp.scanFinish = 1
+            this.cakeLamp.startWork = 1
+          }
+        // }else {
+        //   this.$message('宸ヤ欢鏈埌浣嶇姝㈡壂鐮侊紒');
+        // }
       }
     },
     clearHistory() {
@@ -656,6 +719,22 @@
         return body;
       });
     },
+    conCom(){
+      try {
+        this.myserialport.state.baudRate = this.form1.baudRate;
+        this.myserialport.state.dataBits = this.form1.dataBits;
+        this.myserialport.state.stopBits = this.form1.stopBits;
+        this.myserialport.state.parity = this.form1.parity;
+        this.myserialport.state.flowControl = this.form1.flowControl;
+        this.myserialport.openPort(0, true, this.callBack);
+        console.log(this.form1.port)
+      } catch (error) {
+        this.$message.error("涓插彛杩炴帴澶辫触锛佽妫�鏌ヤ覆鍙f槸鍚﹀凡琚崰鐢�");
+      }
+      if (this.myserialport.state.isOpen) {
+        this.$message.success("涓插彛杩炴帴鎴愬姛");
+      }
+    },
     //杩炴帴
     async connectBtn() {
       if (this.btnType === "primary") {
@@ -666,6 +745,7 @@
           this.myserialport.state.parity = this.form1.parity;
           this.myserialport.state.flowControl = this.form1.flowControl;
           await this.myserialport.openPort(this.form1.port, true, this.callBack);
+          console.log(this.form1.port)
         } catch (error) {
           this.$message.error("涓插彛杩炴帴澶辫触锛佽妫�鏌ヤ覆鍙f槸鍚﹀凡琚崰鐢�");
         }

--
Gitblit v1.9.3