From 505237e928b3518483f3a49080a4e0b266bd7e7d Mon Sep 17 00:00:00 2001 From: 懒羊羊 <15939171744@163.com> Date: 星期四, 11 四月 2024 14:01:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- jcdm-ui/src/views/main/kb/stationTerminal/index.vue | 327 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 199 insertions(+), 128 deletions(-) diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue index 9a779c4..3d695cd 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> @@ -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.1.102:8080/websocket/message/", message: "", text_content: "", ws: null, @@ -350,7 +371,7 @@ input: "", keepReading: true, form1: { - baudRate: "9600", + baudRate: "115200", dataBits: "8", stopBits: "1", parity: "none", @@ -366,6 +387,9 @@ isShowSendArea: false, readType: 1, title: "", + + passingStationForm: {}, + originalArray: [], } }, beforeDestroy() { @@ -435,8 +459,24 @@ // }); }, 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() @@ -452,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); @@ -475,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; @@ -489,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(); @@ -544,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; @@ -569,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() + }); } }; }, + //鎺ュ彈鏁版嵁鐨勫洖璋� @@ -602,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() { @@ -665,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") { @@ -675,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