-
admin
2024-06-06 019f1c8bac7e8986d299aff70c123dedc1747d72
jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -85,19 +85,21 @@
           </el-col>
         </el-row>
<!--         <el-row style="margin-top: 20px">-->
<!--           <el-col :span="12">-->
<!--             <el-input v-model="serialPortContent" style="width: 150px;" placeholder="请输入内容"></el-input>-->
<!--           </el-col>-->
<!--           <el-col :span="12">-->
<!--             <el-button @click="serialPortMethod" type="primary">串口获取数据</el-button>-->
<!--           </el-col>-->
<!--         </el-row>-->
         <el-row style="margin-top: 20px">
             <el-button @click="Release" type="primary">放行</el-button>
         <el-row v-show="showInput" style="margin-top: 20px">
           <el-col></el-col>
             <span style="width: 130px;" class="head-font">预装总成号 : {{headContent.yzSfcCode}}</span>
         </el-row>
<!--         <el-row v-show="showInput" style="margin-top: 20px">-->
<!--           <el-button @click="bindYzSfc" type="primary">绑定</el-button>-->
<!--         </el-row>-->
         <el-row v-show="onLineBinDing" style="margin-top: 20px">
           <el-col></el-col>
           <span style="width: 130px;" class="head-font">小车码 : {{headContent.cardCode}}</span>
         </el-row>
<!--         <el-row v-show="onLineBinDing" style="margin-top: 20px">-->
<!--           <el-button @click="bindcardCode" type="primary">绑定</el-button>-->
<!--         </el-row>-->
       </el-card>
     </el-col>
@@ -112,6 +114,8 @@
               <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="materialCode">
               </el-table-column>
               <el-table-column label="采集值" align="center" prop="collectData">
               </el-table-column>
@@ -293,6 +297,7 @@
import {listWorkReport} from "@/api/main/om/workReport/workReport";
import {listStationConf,getIpv4} from "@/api/main/sc/stationConf";
import {
  fistSetpNumber,
  listFormulaChild,
  noPageListFormulaChild,
  releaseCheck,
@@ -302,19 +307,31 @@
} 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 {
  bindYzSfcFlag,
  checkCarCode, checkYzSfcCode,
  findBytrolleyYardGetOne,
  listProductionOrde,
  receivingWorkOrders,
  trolleyYardBinDing
} from "@/api/main/om/productionOrde/productionOrde";
import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection";
import {
  addBasicParameters,
  addParamCollection,
  addTighteningParameters,
  saveCampaignTimeParameters
  saveCampaignTimeParameters,
  replaceAssemblyCode, checkRecordDataDone,
} from "@/api/main/da/paramCollection/paramCollection";
export default {
  name: "stationTerminal",
  data() {
    return {
      carCode: '',
      showInput: false,
      onLineBinDing: false,
      serialPortContent: '',
      // 查询参数
      formulaChildParams: {
@@ -331,6 +348,8 @@
        processesCode: 'OP1010',
        processesName: '贴标机-贴码',
        sfcCode: '',
        yzSfcCode: '',
        cardCode: '',
      },
      workpieceInformation: {
        workOrderNo: null,
@@ -361,7 +380,7 @@
      },
      content: '',
      activeName: 'first',
      url: "ws://192.168.1.100:8080/websocket/message/",
      url: "ws://192.168.2.76:8080/websocket/message/",
      message: "",
      text_content: "",
      ws: null,
@@ -390,6 +409,7 @@
      passingStationForm: {},
      originalArray: [],
      yzSfcFlag: 1,
    }
  },
  beforeDestroy() {
@@ -426,8 +446,36 @@
    },
  },
  methods: {
    bindcardCode(){
      this.$message('绑定成功!');
      let param = {
        productNum: this.headContent.sfcCode,
        trolleyYard: this.headContent.cardCode,
      }
      trolleyYardBinDing(param).then(response => {
      });
    },
    serialLink() {
      this.open1 = true
    },
    bindYzSfc(){
      if(this.headContent.sfcCode!==""&&this.headContent.yzSfcCode!==""){
        let param = {
          sfcCode: this.headContent.sfcCode,
          locationCode: this.headContent.processesCode,
          yzSfcCode: this.headContent.yzSfcCode
        }
        const orderParam = {
          productNum: this.headContent.sfcCode,
        }
        replaceAssemblyCode(param).then(response => {
          this.$message('绑定成功!');
          bindYzSfcFlag(orderParam).then(response => {
            this.yzSfcFlag = 1
          });
        });
      }
    },
    Release(){
      // this.$message('portsList!'+this.portsList.length);
@@ -438,38 +486,8 @@
        this.$message('mei连接了!');
      }
      // //判断是否可以释放
      // 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代替break
      //   }
      // });
      // console.log(formulaChilds)
      let formulaChildParams = {
        scanBarcode: value,
        sfcBarcode: this.headContent.sfcCode,
@@ -502,6 +520,26 @@
      console.log(this.formulaChildParams)
      noPageListFormulaChild(this.formulaChildParams).then(response => {
        this.formulaChildList = response.rows;
        if (this.formulaChildList.length >0){
          let pos = 0
          const tempArr = this.formulaChildList.filter(x=> 'OK' === x.results)
          if (tempArr.length>0){
            pos = tempArr.length
            this.$nextTick(() => {
              let temp33 = document.getElementsByClassName('el-table__row')
              console.log('temp33',temp33)
              console.log('len',temp33.item(pos))
              if (temp33.length > 0){
                console.log('1111111111111111')
                let arr = temp33[pos-1]
                console.log('srr',arr)
                arr.scrollIntoView({ block: 'center' })
              }
            })
          }
        }
      });
    },
    endClear(){
@@ -511,11 +549,13 @@
      this.cakeLamp.release= 0 //允许放行
      this.formulaChildList = []
      this.headContent.sfcCode = null
      this.workpieceInformation.productCode = null;
      this.workpieceInformation.workOrderNo = null;
      this.workpieceInformation.productModel = null;
      this.workpieceInformation.productName = null;
      this.headContent.sfcCode = '';
      this.headContent.yzSfcCode = '';
      this.headContent.cardCode = '';
    },
    changeMenu(tab, event) {
      console.log(tab, event);
@@ -543,9 +583,9 @@
        this.workpieceInformation.productCode = rowsData.productCode;
        this.workpieceInformation.productModel = rowsData.productModel;
        this.workpieceInformation.productName = rowsData.productName;
        this.timer = setInterval(() => {
          this.workpieceInformation.beat++;
        }, 1000);
        // this.timer = setInterval(() => {
        //   this.workpieceInformation.beat++;
        // }, 1000);
      });
      this.getListFormulaChild()
      this.addOverStationCollection()
@@ -564,7 +604,7 @@
        inboundTime: new Date()
      }
      addPassingStationCollection(this.passingStationForm).then(response => {});
      addBasicParameters(this.passingStationForm).then(response => {});
      // addBasicParameters(this.passingStationForm).then(response => {});
    },
    exit() {
      if (this.ws) {
@@ -593,6 +633,13 @@
        }
        this.headContent.processesName = rows.processesName
        this.headContent.processesCode = rows.processesCode
        if(this.headContent.processesCode === 'OP240'){
          this.onLineBinDing = true
        }
        if(this.headContent.processesCode === 'OP260'){
          this.showInput = true
        }
        console.log('设置工位编码' + this.headContent.processesCode)
      });
@@ -603,10 +650,16 @@
      const self = this;
      this.ws.onopen = function (event) {
        this.$message('websocket连接成功!');
      };
      this.ws.onmessage = function (event) {
        if (event.data === "IN") {
          self.cakeLamp.InPlace = 1;
          console.log(self.headContent.processesCode);
          const param = {
            processesCode: self.headContent.processesCode,
          }
          fistSetpNumber(param).then(response => {});
        } else if (event.data === "IN0") {
          self.cakeLamp.InPlace = 0;
        } else if (event.data === "OUT") {
@@ -618,10 +671,54 @@
            locationCode: self.headContent.processesCode,
            productBarcode: self.headContent.sfcCode,
          }
          saveCampaignTimeParameters(param).then(response => {});
          self.cakeLamp.release = 1;
          self.endClear()
          const orderParam = {
            productNum: self.headContent.sfcCode,
          }
          if(self.headContent.sfcCode=== ''||self.headContent.sfcCode=== null){
            self.$message('总成码为空,请检查!')
            return
          }
          checkCarCode(orderParam).then(response => {
            console.log(response.data)
            if(response.data === 1){
              if(self.headContent.processesCode === "OP260"){
                checkYzSfcCode(orderParam).then(response => {
                  if(response.data === 1){
                    saveCampaignTimeParameters(param).then(response => {
                      checkRecordDataDone(param).then(response => {
                        if(response.msg === "21"){
                          self.cakeLamp.release = 1;
                          self.endClear()
                          workpieceRelease(param).then(response => {});
                        }else {
                          self.$message('未做完工序禁止放行');
                        }
                      });
                    });
                  }else {
                    self.$message('请先绑定预装总成');
                  }
                });
              }else {
                saveCampaignTimeParameters(param).then(response => {
                  checkRecordDataDone(param).then(response => {
                    if(response.msg === "21"){
                      self.cakeLamp.release = 1;
                      self.endClear()
                      workpieceRelease(param).then(response => {});
                    }else {
                      self.$message('未做完工序禁止放行');
                    }
                  });
                });
              }
            }else {
              self.$message('未绑定小车码禁止放行');
            }
          });
        } else if (event.data.includes("[")) {
          let formulaChilds = "";
          self.formulaChildList.sort((a, b) => a.stepSort - b.stepSort);
@@ -643,12 +740,18 @@
            locationCode: self.headContent.processesCode,
            productBarcode: self.headContent.sfcCode,
          }
          addTighteningParameters(param).then(response => {});
          updateTighteningFormula(param).then(response => {
            self.getListFormulaChild()
          }).catch(error =>{
            self.getListFormulaChild()
          });
          if(formulaChilds.paramCode === null||formulaChilds.paramCode ===''){
            self.$message('未找到参数码,请检查参数码是否正确');
            return;
          }
          if(self.headContent.sfcCode!==null||self.headContent.sfcCode!==''){
            addTighteningParameters(param).then(response => {});
            updateTighteningFormula(param).then(response => {
              self.getListFormulaChild()
            }).catch(error =>{
              self.getListFormulaChild()
            });
          }
        }
      };
    },
@@ -661,23 +764,49 @@
      else {
        const scanValue = this.myserialport.hex2atostr(value).replace(/[\r\n]/g, '');
        console.log("串口收到数据-------------------"+scanValue)
        // if(this.cakeLamp.InPlace=== 1){
          if(this.headContent.sfcCode !== ''){
            this.$message('扫描物料编码'+scanValue);
        if(this.headContent.sfcCode !== ''){
          if(scanValue.includes("P9900173252")){
            this.headContent.yzSfcCode = scanValue
            this.bindYzSfc();
          }else if(scanValue.includes("0RSP1TE")){
            this.headContent.cardCode = scanValue
            this.bindcardCode();
          }else {
            this.$message('工位终端扫描物料编码'+scanValue);
            console.log(scanValue)
            this.serialPortMethod(scanValue)
          }else {
            this.$message('扫码识别产品序列号'+scanValue);
          }
        } else {
          if(this.headContent.processesCode === 'OP240'){
            this.headContent.sfcCode = scanValue;
            this.queryParams.productNum = scanValue;
            this.getList()
            // this.getListFormulaChild()
            this.cakeLamp.scanFinish = 1
            this.cakeLamp.startWork = 1
          }else {
            let param = {
              trolleyYard: scanValue
            }
            findBytrolleyYardGetOne(param).then(response => {
              if(response.msg !== '2'){
                this.headContent.sfcCode = response.msg;
                this.queryParams.productNum = response.msg;
                this.$message('扫码识别产品序列号'+scanValue);
                // this.headContent.sfcCode = scanValue;
                // this.queryParams.productNum = scanValue;
                this.getList()
                this.cakeLamp.scanFinish = 1
                this.cakeLamp.startWork = 1
              }else {
                this.$message('没有序列号'+scanValue);
                return
              }
            });
          }
        // }else {
        //   this.$message('工件未到位禁止扫码!');
        // }
        }
      }
    },
    clearHistory() {