admin
2024-08-01 002c0ac4c04ea51dd3fd96def3c1f62c8bade624
jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -34,18 +34,21 @@
           <el-descriptions-item label="工单编号">
               <span>{{workpieceInformation.workOrderNo}}</span>
           </el-descriptions-item>
           <el-descriptions-item label="产品编号">
           <el-descriptions-item label="产品型号">
             <span>{{workpieceInformation.productCode}}</span>
           </el-descriptions-item>
           <el-descriptions-item label="产品型号">
             <span>{{workpieceInformation.productModel}}</span>
           <el-descriptions-item label="小车码">
             <span>{{headContent.cardCode}}</span>
           </el-descriptions-item>
           <el-descriptions-item label="产品名称">
             <span>{{workpieceInformation.productName}}</span>
           </el-descriptions-item>
<!--           <el-descriptions-item label="节拍">-->
<!--             <span>{{workpieceInformation.beat}}</span>-->
<!--           <el-descriptions-item label="产品型号">-->
<!--             <span>{{workpieceInformation.productModel}}</span>-->
<!--           </el-descriptions-item>-->
<!--           <el-descriptions-item label="产品名称">-->
<!--             <span>{{workpieceInformation.productName}}</span>-->
<!--           </el-descriptions-item>-->
           <el-descriptions-item label="开始时间">
             <span>{{workpieceInformation.inboundTime}}</span>
           </el-descriptions-item>
         </el-descriptions>
         <el-divider></el-divider>
         <el-row>
@@ -93,10 +96,10 @@
<!--           <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-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>-->
@@ -111,18 +114,21 @@
             <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="拧紧步号" align="center" prop="stepSort">
               <el-table-column label="拧紧步号" width="80" align="center" prop="stepSort">
               </el-table-column>
<!--               <el-table-column label="操作内容" :show-overflow-tooltip='true' align="center" prop="operationSteps">-->
               <el-table-column label="操作内容" align="center" prop="operationSteps">
               </el-table-column>
               <el-table-column label="产品编号" align="center" prop="productCode">
<!--               <el-table-column label="上限" width="60" align="center" prop="spareField3">-->
<!--               </el-table-column>-->
<!--               <el-table-column label="下限" width="60" align="center" prop="spareField4">-->
<!--               </el-table-column>-->
               <el-table-column label="产品编号" width="80" align="center" prop="productCode">
               </el-table-column>
               <el-table-column label="物料编码" align="center" prop="materialCode">
               <el-table-column label="物料编码" width="140" align="center" prop="materialCode">
               </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 label="结果" width="60" align="center" prop="results">
               </el-table-column>
             </el-table>
@@ -302,10 +308,10 @@
import {listStationConf,getIpv4} from "@/api/main/sc/stationConf";
import {
  clearWorkpieceRelease,
  fistSetpNumber,
  listFormulaChild,
  fistSetpNumber, inPlaceInspection,
  listFormulaChild, manualNgOffline,
  noPageListFormulaChild,
  releaseCheck,
  releaseCheck, unfinishedProcess,
  updateResults,
  updateTighteningFormula,
  workpieceRelease
@@ -326,7 +332,7 @@
  addParamCollection,
  addTighteningParameters,
  saveCampaignTimeParameters,
  replaceAssemblyCode, checkRecordDataDone,
  replaceAssemblyCode, checkRecordDataDone, enterWeighing,
} from "@/api/main/da/paramCollection/paramCollection";
export default {
@@ -344,6 +350,8 @@
        pageSize: 10,
        productCode: null,
        processesCode: null,
        artificialNgFlag: null,
        sfcBarcode: null,
      },
      // 配方配置子信息表格数据
      formulaChildList: [],
@@ -361,7 +369,7 @@
        productCode: null,
        productModel: null,
        productName: null,
        beat: null,
        inboundTime: null,
      },
      // 查询参数
      queryParams: {
@@ -385,6 +393,8 @@
      },
      content: '',
      activeName: 'first',
      // url: "ws://192.168.2.248:8080/websocket/message/",
      // url: "ws://10.103.210.248:8080/websocket/message/",
      url: "ws://192.168.2.76:8080/websocket/message/",
      message: "",
      text_content: "",
@@ -415,6 +425,7 @@
      passingStationForm: {},
      originalArray: [],
      yzSfcFlag: 1,
      endYz: false,
    }
  },
  beforeDestroy() {
@@ -451,11 +462,11 @@
    },
  },
  methods: {
    bindcardCode(){
      this.$message('绑定成功!');
    bindcardCode(scanValue){
      // this.$message('绑定成功!');
      let param = {
        productNum: this.headContent.sfcCode,
        trolleyYard: this.headContent.cardCode,
        trolleyYard: scanValue,
      }
      trolleyYardBinDing(param).then(response => {
      });
@@ -524,7 +535,10 @@
      // this.formulaChildList = []
      this.formulaChildParams.productCode = this.workpieceInformation.productCode
      this.formulaChildParams.processesCode = this.headContent.processesCode
      console.log(this.formulaChildParams)
      if(this.formulaChildParams.artificialNgFlag !== null){
        this.formulaChildParams.sfcBarcode = this.headContent.sfcCode
      }
      console.log("getListFormulaChild"+this.formulaChildParams.artificialNgFlag)
      noPageListFormulaChild(this.formulaChildParams).then(response => {
        this.formulaChildList = response.rows;
        if (this.formulaChildList.length >0){
@@ -560,9 +574,12 @@
      this.workpieceInformation.workOrderNo = null;
      this.workpieceInformation.productModel = null;
      this.workpieceInformation.productName = null;
      this.workpieceInformation.inboundTime = null;
      this.headContent.sfcCode = '';
      this.headContent.yzSfcCode = '';
      this.headContent.cardCode = '';
      this.formulaChildParams.artificialNgFlag = null
      this.formulaChildParams.sfcBarcode = null
    },
    changeMenu(tab, event) {
      console.log(tab, event);
@@ -598,20 +615,34 @@
        this.workpieceInformation.productCode = rowsData.productCode;
        this.workpieceInformation.productModel = rowsData.productModel;
        this.workpieceInformation.productName = rowsData.productName;
        // this.timer = setInterval(() => {
        //   this.workpieceInformation.beat++;
        // }, 1000);
        this.headContent.cardCode = rowsData.trolleyYard;
        this.formulaChildParams.artificialNgFlag = rowsData.artificialNgFlag;
      });
      this.getListFormulaChild()
      this.addOverStationCollection()
      // this.addOverStationCollection()
      this.workpieceInformation.inboundTime = this.getCurrentTime()
      const param = {
        processesCode: this.headContent.processesCode,
        productCode: this.workpieceInformation.productCode
      }
      fistSetpNumber(param).then(response => {
        console.log("fistSetpNumber------"+response.msg)
      });
    },
    getCurrentTime() {
      const now = new Date();
      const year = now.getFullYear();
      const month = this.padTimeUnit(now.getMonth() + 1); // 月份是从0开始的
      const day = this.padTimeUnit(now.getDate());
      const hours = this.padTimeUnit(now.getHours());
      const minutes = this.padTimeUnit(now.getMinutes());
      const seconds = this.padTimeUnit(now.getSeconds());
      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    },
    padTimeUnit(value) {
      return value.toString().padStart(2, '0');
    },
    addBaseData(){
      addBasicParameters(this.passingStationForm).then(response => {});
    },
@@ -658,14 +689,11 @@
        }
        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)
        inPlaceInspection({processesCode: this.headContent.processesCode}).then(response => {
          console.log(response)
          this.cakeLamp.InPlace = response.data
        });
      });
      this.conCom()
@@ -680,72 +708,59 @@
      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 === "NG") {
          //给plc发下线信号
          //清除数据
          self.$confirm('拧紧三次NG,请确认下线!!!', '消息', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            showCancelButton: false,
            type: 'warning'
          }).then(() => {
            self.ngFunction();
            this.$message({
              type: 'success',
              message: '确认成功!'
            });
          });
        } else if (event.data === "OUT") {
          self.cakeLamp.release = 1;
        } else if (event.data === "END") {
          const formulaChildIndex = self.formulaChildList.length-1
          if(self.headContent.sfcCode=== ''||self.headContent.sfcCode=== null){
            unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 26}).then(response => {});
            self.$message('总成码为空,请扫码!')
            return;
          }
          if(self.formulaChildList[formulaChildIndex].results !== 'OK'){
            self.$message('未做完工序禁止放行');
            unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 25}).then(response => {});
            return;
          }
          const param = {
            workOrderNo: self.workpieceInformation.workOrderNo,
            productCode: self.workpieceInformation.productCode,
            locationCode: self.headContent.processesCode,
            productBarcode: self.headContent.sfcCode,
            inboundTime: self.workpieceInformation.inboundTime,
            formulaChildEntity: self.formulaChildList[formulaChildIndex]
          }
          const orderParam = {
            productNum: self.headContent.sfcCode,
          }
          // if(param.locationCode === 'POP430'){
          //   let enterWeighingparam = {
          //     sfcCode: param.productBarcode,
          //   }
          //   enterWeighing(enterWeighingparam).then(response => {
          //   });
          // }
          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.$alert('<strong style="color: red;font-size: 30px">未扫描小车码禁止放行</strong>', '提示', {
                dangerouslyUseHTMLString: true
              });
            }
          });
          console.log("进入最终方法")
          self.endSaveData(param)
        } else if (event.data.includes("[")) {
          let formulaChilds = "";
          self.formulaChildList.sort((a, b) => a.stepSort - b.stepSort);
@@ -776,12 +791,15 @@
            spareField2: formulaChilds.spareField2,
            spareField3: formulaChilds.spareField3,
            spareField4: formulaChilds.spareField4,
            stepSort: formulaChilds.stepSort
            stepSort: formulaChilds.stepSort,
            ngTimes: formulaChilds.ngTimes,
          }
          if(formulaChilds.paramCode === null||formulaChilds.paramCode ===''){
            self.$message('未找到参数码,请检查参数码是否正确');
            return;
          }
          self.formulaChildParams.artificialNgFlag = null
          console.log("self.formulaChildParams.artificialNgFlag"+self.formulaChildParams.artificialNgFlag)
          if(self.headContent.sfcCode!==null||self.headContent.sfcCode!==''){
            updateTighteningFormula(param).then(response => {
              //addTighteningParameters(param).then(response => {});
@@ -794,7 +812,24 @@
      };
    },
    endSaveData(param){
      saveCampaignTimeParameters(param).then(response => {
      this.cakeLamp.release = 1;
      this.endClear()
      workpieceRelease(param).then(response => {});
      });
    },
    ngFunction(){
      const param = {
        locationCode: this.headContent.processesCode,
        sfcBarcode: this.headContent.sfcCode,
        productCode: this.workpieceInformation.productCode,
      }
      manualNgOffline(param).then(response => {});
      clearWorkpieceRelease(param).then(releaseCheck =>{});
      this.endClear()
    },
    //接受数据的回调
    callBack(value) {
@@ -805,19 +840,21 @@
        console.log("sfc=--"+this.headContent.sfcCode+"--")
        if(this.headContent.sfcCode !== '' && this.headContent.sfcCode !== null
          && this.headContent.sfcCode !== undefined){
          if(scanValue.includes("P9900173252")){
            this.headContent.yzSfcCode = scanValue
            this.bindYzSfc();
          }else if(scanValue.includes("0RSP1TE") && this.headContent.processesCode === 'OP240'){
          // if(scanValue.includes("P9900173252")){
          //   this.headContent.yzSfcCode = scanValue
          //   this.bindYzSfc();
          // }else
          if(scanValue.includes("0RSP1TE") && this.headContent.processesCode === 'POP230'){
            this.headContent.cardCode = scanValue
            this.bindcardCode();
            this.bindcardCode(scanValue);
            this.serialPortMethod(scanValue)
          }else {
            this.$message('工位终端扫描物料编码'+scanValue);
            console.log(scanValue)
            this.serialPortMethod(scanValue)
          }
        } else {
          if(this.headContent.processesCode === 'OP240'){
          if(this.headContent.processesCode === 'POP230'){
            this.headContent.sfcCode = scanValue;
            this.queryParams.productNum = scanValue;
            this.getList()