admin
2024-08-08 682919cdb4229973a4917bdb3cb876ec6d5b574a
jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -40,12 +40,6 @@
           <el-descriptions-item label="小车码">
             <span>{{headContent.cardCode}}</span>
           </el-descriptions-item>
<!--           <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>
@@ -88,21 +82,56 @@
           </el-col>
         </el-row>
         <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-row v-show="goOnlineFlag" style="margin-top: 20px">
           <el-button @click="getWorkOrders" type="primary">接收工单</el-button>
           <div style="display: none">
             <div id="getWorkOrdersPrintPrintMe" style="width: 500px;">
               <div ref="canvasWrapper" id="canvasWrapper3" style="display: flex;justify-content: center;"></div>
               <p style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;">{{packCode}}</p>
             </div>
<!--             <el-button @click="print">打印</el-button>-->
             <el-button @click="test1">生成二维码</el-button>
           </div>
         </el-row>
         <el-row v-show="offlineFlag" style="margin-top: 20px">
           <el-button id="print" v-print="'#printMe'" type="primary">打印三联码</el-button>
           <el-button style="display: none" @click="test1">生成二维码</el-button>
           <el-button style="display: none" @click="test2">生成
             <span style="font-size: 10px;margin-left: 52px">MADE IN CHINA</span><br>
             <br>
             <br>二维码</el-button>
           <div style="display: none">
             <div  id="printMe">
               <br>
               <p style="margin-left: 53px">{{printInfoData.partNumber}}</p>
               <p style="margin-left: 53px">{{printInfoData.hardwareVersion}}</p>
               <p style="margin-left: 53px">{{printInfoData.softwareVersion}}</p>
               <br>
               <br>
               <br>
               <br>
               <img style="width: 140px;height: 20px;margin-left: 30px" :src="require('@/assets/images/a8963a24920640508e96150a053fc41.png')"/>
               <span style="margin-left: 72px">{{printInfoData.printModel}}</span><br>
               <span style="margin-left: 73px">{{printInfoData.supplierCode}}</span><br>
               <span style="margin-left: 55px">{{printInfoData.partNumber}}</span><br>
               <span style="font-size: 10px;margin-left: 28px;">{{headContent.sfcCode}}</span><br>
               <span style="font-size: 10px;margin-left: 60px">MADE IN CHINA</span><br>
               <br>
               <br>
               <br>
               <div ref="canvasWrapper" id="canvasWrapper1" style="display: flex;justify-content: center;margin-top: -27px;"></div>
               <span style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;width: 155px;margin-left: 20px;margin-top: 3px">P{{printInfoData.partNumber}}#T{{headContent.sfcCode}}#V{{printInfoData.supplierCode}}#S{{printInfoData.softwareVersion}}#H{{printInfoData.hardwareVersion}}#NBMS#</span>
               <br>
               <br>
               <div ref="canvasWrapper" id="canvasWrapper2" style="display: flex;justify-content: center;margin-top: -27px"></div>
               <span style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;width: 155px;margin-left: 20px;margin-top: 3px">P{{printInfoData.partNumber}}#T{{headContent.sfcCode}}#V{{printInfoData.supplierCode}}#S{{printInfoData.softwareVersion}}#H{{printInfoData.hardwareVersion}}#NBMS#</span>
             </div>
           </div>
         </el-row>
       </el-card>
     </el-col>
@@ -112,16 +141,10 @@
           <span slot="label"> <a class="el-icon-date"></a>首页</span>
           <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="拧紧步号" width="80" align="center" prop="stepSort">
               </el-table-column>
               <el-table-column label="操作内容" align="center" prop="operationSteps">
               </el-table-column>
<!--               <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="物料编码" width="140" align="center" prop="materialCode">
@@ -133,34 +156,7 @@
             </el-table>
           </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-tabs>
     </el-col>
   </el-row>
@@ -334,14 +330,24 @@
  saveCampaignTimeParameters,
  replaceAssemblyCode, checkRecordDataDone, enterWeighing,
} from "@/api/main/da/paramCollection/paramCollection";
import QRCode from "qrcodejs2";
import {listEquipmentArchives} from "@/api/main/em/equipmentArchives/equipmentArchives";
export default {
  name: "stationTerminal",
  data() {
    return {
      printInfoData: {
        softwareVersion: 'SW001.001', //软件版本号
        hardwareVersion: 'HW001.001', //硬件版本号
        printModel: 'H2155D', //型号
        partNumber: '9900200136', //零部件号
        supplierCode: '993983', //供应商编码
      },
      carCode: '',
      showInput: false,
      onLineBinDing: false,
      goOnlineFlag: false,
      offlineFlag: false,
      serialPortContent: '',
      // 查询参数
@@ -394,8 +400,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/",
      // url: "ws://10.103.210.248:8080/websocket/message/",
      url: "ws://192.168.2.76:8080/websocket/message/",
      message: "",
      text_content: "",
      ws: null,
@@ -426,7 +432,7 @@
      originalArray: [],
      yzSfcFlag: 1,
      endYz: false,
      artificialNgFlag: null,
      packCode: 'test111'
    }
  },
  beforeDestroy() {
@@ -460,9 +466,111 @@
  computed: {
    isDisable() {
      return this.btnType === "danger";
    },
    }
  },
  methods: {
    //接收工单-------开始
    getWorkOrdersPrint() {
      let newStr = document.getElementById('getWorkOrdersPrintPrintMe').innerHTML;
      const printFrame = document.createElement('iframe');
      printFrame.style.display = 'none';
      document.body.appendChild(printFrame);
      const content = document.getElementById('getWorkOrdersPrintPrintMe').innerHTML;
      printFrame.contentDocument.write(content);
      printFrame.contentWindow.print();
      document.body.removeChild(printFrame);
      return false;
    },
    async getWorkOrders(){
      await receivingWorkOrders().then(response => {
        this.packCode = response.msg;
        this.getWorkOrdersTest1()
      });
      setTimeout(() => {
        this.getWorkOrdersPrint()
      },50)
    },
    getWorkOrdersTest1(){
      document.getElementById('canvasWrapper3').innerHTML = ''
      this.$nextTick(() => {
        let qrCode = new QRCode('canvasWrapper3',{
          width: 80,
          height: 80,
          padding: 0,
          margin: 0,
          text: this.packCode,
          colorDark: '#000',
          colorLight: '#fff'
        })
      })
    },
    //接收工单-------结束
    //下线打印-------开始
    initializePrintInfoData(){
      listEquipmentArchives().then(response => {
        this.printInfoData.softwareVersion = response.rows[0].equipmentCode
        this.printInfoData.hardwareVersion = response.rows[0].equipmentName
        this.printInfoData.supplierCode = response.rows[0].equipmentSpec
        this.printInfoData.printModel = response.rows[0].equipmentBrand
        this.printInfoData.partNumber = response.rows[0].equipmentTypeName
        console.log(response.rows[0])
      });
    },
    test1(){
      document.getElementById('canvasWrapper1').innerHTML = '';
      this.$nextTick(() => {
          let qrCode = new QRCode('canvasWrapper1',{
            width: 120,
            height: 120,
            text: 'P'+this.printInfoData.partNumber+'#T'+ this.headContent.sfcCode +'#V'+this.printInfoData.supplierCode+'#S'+this.printInfoData.softwareVersion+'#H'+this.printInfoData.hardwareVersion+'#NBMS#',
            colorDark: '#000',
            colorLight: '#fff'
          })
        }
      )
    },
    test2(){
      document.getElementById('canvasWrapper2').innerHTML = '';
      this.$nextTick(() => {
          let qrCode = new QRCode('canvasWrapper2',{
            width: 120,
            height: 120,
            text: 'P'+this.printInfoData.partNumber+'#T'+ this.headContent.sfcCode +'#V'+this.printInfoData.supplierCode+'#S'+this.printInfoData.softwareVersion+'#H'+this.printInfoData.hardwareVersion+'#NBMS#',
            colorDark: '#000',
            colorLight: '#fff'
          })
        }
      )
    },
    print1() {
      // 使用插件打印方式
      // this.$print(this.$refs.printMe)
      // this.initializePrintInfoData()
      // if(this.headContent.sfcCode){
      //   //新页面打印
      //   // let newStr = document.getElementById('printMe').innerHTML;
      //   // let newWin = window.open('', '_blank',st);
      //   // newWin.document.body.innerHTML = newStr;
      //   // newWin.print();
      //   // 本页面打印
      //   let newStr = document.getElementById('printMe').innerHTML;
      //   const printFrame = document.createElement('iframe');
      //   printFrame.style.display = 'none';
      //   document.body.appendChild(printFrame);
      //   const content = document.getElementById('printMe').innerHTML;
      //   printFrame.contentDocument.write(content);
      //   printFrame.contentWindow.print();
      //   console.log(printFrame)
      //   // document.body.removeChild(printFrame);
      //   console.log(printFrame)
      //   return false;
      // }else {
      //   this.$message.error('未扫描总成码禁止打印!');
      // }
    },
    //下线打印-------截止
    bindcardCode(scanValue){
      // this.$message('绑定成功!');
      let param = {
@@ -536,12 +644,10 @@
      // this.formulaChildList = []
      this.formulaChildParams.productCode = this.workpieceInformation.productCode
      this.formulaChildParams.processesCode = this.headContent.processesCode
      console.log(this.artificialNgFlag)
      if(this.artificialNgFlag !== null){
        this.formulaChildParams.artificialNgFlag = this.artificialNgFlag
      if(this.formulaChildParams.artificialNgFlag !== null){
        this.formulaChildParams.sfcBarcode = this.headContent.sfcCode
      }
      console.log(this.formulaChildParams)
      console.log("getListFormulaChild"+this.formulaChildParams.artificialNgFlag)
      noPageListFormulaChild(this.formulaChildParams).then(response => {
        this.formulaChildList = response.rows;
        if (this.formulaChildList.length >0){
@@ -611,6 +717,7 @@
    },
    /** 查询工单列表 */
    async getList() {
      this.initializePrintInfoData()
      await listProductionOrde(this.queryParams).then(response => {
        let rowsData = response.rows[0];
        console.log(rowsData)
@@ -619,13 +726,18 @@
        this.workpieceInformation.productModel = rowsData.productModel;
        this.workpieceInformation.productName = rowsData.productName;
        this.headContent.cardCode = rowsData.trolleyYard;
        this.artificialNgFlag = rowsData.artificialNgFlag;
        this.formulaChildParams.artificialNgFlag = rowsData.artificialNgFlag;
      });
      if(this.headContent.processesCode === 'POP430'){
        this.test1()
        this.test2()
      }
      this.getListFormulaChild()
      // 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)
@@ -697,6 +809,13 @@
          this.cakeLamp.InPlace = response.data
        });
        if(this.headContent.processesCode === 'POP230'){
          this.goOnlineFlag = true
        }
        if(this.headContent.processesCode === 'POP430'){
          this.offlineFlag = true
        }
      });
      this.conCom()
      console.log('websocket连接工位为' + this.headContent.processesCode)
@@ -704,11 +823,15 @@
      this.ws = new WebSocket(wsuri);
      const self = this;
      this.ws.onopen = function (event) {
        this.$message('websocket连接成功!');
        self.$message('websocket连接成功!');
      };
      this.ws.onmessage = function (event) {
        if (event.data === "IN") {
        if (event.data === "print") {
          self.$message('postman调用打印方法打印!');
          // self.print1()
          document.getElementById('print').click();
        }else if (event.data === "IN") {
          self.cakeLamp.InPlace = 1;
        } else if (event.data === "NG") {
          //给plc发下线信号
@@ -753,14 +876,6 @@
            formulaChildEntity: self.formulaChildList[formulaChildIndex]
          }
          // if(param.locationCode === 'POP430'){
          //   let enterWeighingparam = {
          //     sfcCode: param.productBarcode,
          //   }
          //   enterWeighing(enterWeighingparam).then(response => {
          //   });
          // }
          console.log("进入最终方法")
          self.endSaveData(param)
        } else if (event.data.includes("[")) {
@@ -800,6 +915,8 @@
            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 => {});
@@ -840,10 +957,6 @@
        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 === 'POP230'){
            this.headContent.cardCode = scanValue
            this.bindcardCode(scanValue);