admin
2024-10-21 be6499e18276bdd96f0b7b078910f75d0885d514
优化
已添加3个文件
已修改6个文件
1500 ■■■■■ 文件已修改
jcdm-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/testDeviceInterface/DaTestDeviceInterfaceMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/components/packReport.vue 526 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/cfkb/labelReplacement/index.vue 819 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/testDeviceInterface/index.vue 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/supplementaryReportingWork/index.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application.yml
@@ -59,7 +59,7 @@
  servlet:
    multipart:
      # å•个文件大小
      max-file-size: 10MB
      max-file-size: 20MB
      # è®¾ç½®æ€»ä¸Šä¼ çš„æ–‡ä»¶å¤§å°
      max-request-size: 20MB
  # æœåŠ¡æ¨¡å—
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -223,6 +223,13 @@
        return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id));
    }
    @PostMapping("/supplementaryReportingWork")
    public AjaxResult supplementaryReportingWork(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
    {
        String workReportResultFeedback = RestfulService.getWorkReportResultFeedback(omProductionOrdeInfo.getProductNum(), omProductionOrdeInfo.getStationCode(), omProductionOrdeInfo.getConfirmTime());
        return AjaxResult.success(workReportResultFeedback);
    }
    /**
     * æ–°å¢žç”Ÿäº§å·¥å•
     */
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java
@@ -205,6 +205,8 @@
    @TableField(exist = false)
    private String flag;
    @TableField(exist = false)
    private String confirmTime;
    @Override
    public Date getCreateTime() {
jcdm-main/src/main/resources/mapper/da/testDeviceInterface/DaTestDeviceInterfaceMapper.xml
@@ -42,6 +42,7 @@
            <if test="supplierType != null  and supplierType != ''"> and supplier_type = #{supplierType}</if>
            <if test="resultCode != null  and resultCode != ''"> and result_code = #{resultCode}</if>
        </where>
        order by create_time desc
    </select>
    
    <select id="selectDaTestDeviceInterfaceById" parameterType="Long" resultMap="DaTestDeviceInterfaceResult">
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
@@ -98,6 +98,14 @@
  })
}
export function supplementaryReportingWork(data) {
  return request({
    url: '/om/productionOrde/supplementaryReportingWork',
    method: 'post',
    data: data
  })
}
// æ–°å¢žç”Ÿäº§å·¥å•
export function addProductionOrde(data) {
  return request({
jcdm-ui/src/views/components/packReport.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,526 @@
<template>
  <table class="yk-table" border="1px" cellspacing="0" align="center" width="900px" style="font-size: 12px;font-family: SimSun;word-wrap:break-word;word-break:break-all;border-collapse: collapse;border-color: #000">
    <tr>
      <td colspan="15" style="padding-top: 6px;">
        <img style="width: 140px;height: 20px;margin-left: 15px;" :src="require('@/assets/images/a8963a24920640508e96150a053fc41.png')">
        <span style="text-decoration: underline;margin-left: 23%;font-size: 15px;">湖州智芯动力系统发展有限公司</span>
        <div style="border-bottom: 1px solid #181818;margin: 5px 10px 2px 6px;"></div>
        <div style="border-bottom: 1px solid #181818;margin: 0 10px 2px 6px;"></div>
      </td>
    </tr>
    <tr align="center">
      <td colspan="15" style="padding: 2px 0;">
        <span style="font-size: 15px;font-weight: bold;">出货检查报告</span>
      </td>
    </tr>
    <tr>
      <td colspan="3">
        <span>电池包型号:PE01B</span>
      </td>
      <td colspan="1">
        <span>产品名称:动力电池系统</span>
      </td>
      <td colspan="5">
        <span>零部件号:9900200136</span>
      </td>
      <td colspan="6">
        <span>检验日期: 2024.10.12</span>
      </td>
    </tr>
    <tr align="center">
      <td width="35">序号</td>
      <td width="60">检验项目</td>
      <td width="100">检验内容</td>
      <td width="200">检验要求</td>
      <td >E9S026</td>
      <td >E9S036</td>
      <td >E9S025</td>
      <td >E9S028</td>
      <td >E9S027</td>
      <td >E9S033</td>
      <td >E9S032</td>
      <td >E9S031</td>
      <td >E9S030</td>
      <td >E9S029</td>
      <td width="30">检验判定</td>
    </tr>
    <tr align="center">
      <td rowspan="5">1</td>
      <td rowspan="5">外观</td>
      <td>电池箱</td>
      <td >1.箱体平整,焊缝平滑无缺陷,表面成型均匀、美观,不得有磕碰、划伤、锈斑等缺陷;
        2.外表喷塑涂层牢固,均匀,色泽纯正,不得有暗痕、开裂现象。定扭画线状态符合要求。
        3.所有器件完好无损,无明显划痕,挫伤等缺陷,标牌完好、牢固、字迹清晰;</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>接插件部分</td>
      <td>1.接插件型号正确,安装位置正确,装配牢固
        2.接插件方向与图纸吻合
        3.接插件PIN针无歪斜</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>标识铭牌</td>
      <td>1、标识清晰、正确、完整
        2、铭牌字迹清晰,粘贴平整,</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>正负极性</td>
      <td>电池包正负极性与标识一致</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>电池包尺寸</td>
      <td>电池包尺寸满足图纸要求
        é•¿ï¼š1567±8 å®½ï¼š748±2 é«˜ï¼š205±5</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td rowspan="2">2</td>
      <td rowspan="2">结构装配</td>
      <td>装配螺丝连接</td>
      <td>1、螺丝型号正确,无漏装,螺栓扭力符合要求
        2、支架安装螺母数量正确,无缺失</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>信号线束</td>
      <td>1.无绝缘层破裂、挤压、线束断线、短路现象、裸露须有绝缘套保护
        2.线束按走线标准布线,线缆卡入线槽,无盘结,无压损隐患
        3.信号线束接插后画线确认</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td rowspan="7">3</td>
      <td rowspan="7">EOL测试</td>
      <td>BMS版本</td>
      <td>版本号</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>1.1</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>耐压测试</td>
      <td>≤1mA</td>
      <td>0.01</td>
      <td>0.29</td>
      <td>0.01</td>
      <td>0.38</td>
      <td>0.03</td>
      <td>0.03</td>
      <td>0.25</td>
      <td>0.18</td>
      <td>0.33</td>
      <td>0.03</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>绝缘测试</td>
      <td>≥20MΩ</td>
      <td>120.61</td>
      <td>48.98</td>
      <td>115.71</td>
      <td>46.47</td>
      <td>134.87</td>
      <td>47.91</td>
      <td>50.52</td>
      <td>50.02</td>
      <td>50.71</td>
      <td>48.1</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>等电位测试</td>
      <td>≤100mΩ</td>
      <td>120.61</td>
      <td>48.98</td>
      <td>115.71</td>
      <td>46.47</td>
      <td>134.87</td>
      <td>47.91</td>
      <td>50.52</td>
      <td>50.02</td>
      <td>50.71</td>
      <td>48.1</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>加热膜阻值</td>
      <td>71.6±3.58</td>
      <td>120.61</td>
      <td>48.98</td>
      <td>115.71</td>
      <td>46.47</td>
      <td>134.87</td>
      <td>47.91</td>
      <td>50.52</td>
      <td>50.02</td>
      <td>50.71</td>
      <td>48.1</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>整包温差</td>
      <td>≤3℃</td>
      <td>120.61</td>
      <td>48.98</td>
      <td>115.71</td>
      <td>46.47</td>
      <td>134.87</td>
      <td>47.91</td>
      <td>50.52</td>
      <td>50.02</td>
      <td>50.71</td>
      <td>48.1</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>整包压差</td>
      <td><8mV</td>
      <td>120.61</td>
      <td>48.98</td>
      <td>115.71</td>
      <td>46.47</td>
      <td>134.87</td>
      <td>47.91</td>
      <td>50.52</td>
      <td>50.02</td>
      <td>50.71</td>
      <td>48.1</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>4</td>
      <td>DCR测试</td>
      <td>DCR数值</td>
      <td>DCR≤140mΩ(10℃~28℃)@20%SOC;
        DCR≤130mΩ(10℃~28℃)@20%SOC;</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>放电:95.57
        å……电:105.15</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td rowspan="4">5</td>
      <td rowspan="4">电性能测试</td>
      <td>容量</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>充电动态压差</td>
      <td>≤200mV</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>≥125Ah</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>放电动态压差</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>≤250mV</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>荷电状态</td>
      <td>50%±5%</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>50</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>6</td>
      <td>气密性测试</td>
      <td>充气压力3.5±0.1kpa,充气时间300s,保压时间60s,检测时间60s</td>
      <td> -30pa/min≤气密泄漏值≤30pa/min</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>15.73</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>7</td>
      <td>重量</td>
      <td>电池包重量</td>
      <td>313±9kg</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>309.3</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td>8</td>
      <td>包装</td>
      <td>产品包装效果良好,保证在正常运输下不致因震动、受潮等因素使产品受到损伤</td>
      <td>目视</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>OK</td>
      <td>√</td>
    </tr>
    <tr align="center">
      <td colspan="2">检验结果判定</td>
      <td colspan="13">1、检验结果按照实际测试数值填写,检验判定合格打“√”,检验判定不合格打“×”。
        2、如果检测过程中出现不合格项,电池包维修后应重新进行检测。
      </td>
    </tr>
    <tr>
      <td colspan="15">
        <span style="margin-left: 70px">编制:张爱星</span>
        <span style="margin-left: 100px">审核:李帅帅</span>
        <span style="margin-left: 100px">质量部:</span>
      </td>
    </tr>
    <!--        <tr>-->
    <!--          <td colspan="2">-->
    <!--            å•项判定-->
    <!--          </td>-->
    <!--          <td colspan="2">-->
    <!--            åœ¨å¯¹åº”的栏打“√”-->
    <!--          </td>-->
    <!--          <td>-->
    <!--            æœ€ç»ˆåˆ¤æ–­-->
    <!--          </td>-->
    <!--          <td colspan="6">-->
    <!--            <span>合格</span>-->
    <!--            <span style="margin-left: 100px">不合格</span>-->
    <!--          </td>-->
    <!--        </tr>-->
    <!--        <tr>-->
    <!--          <td colspan="4">-->
    <!--            æ£€éªŒå‘˜/日期:程林波/20240904-->
    <!--          </td>-->
    <!--          <td colspan="7">-->
    <!--            å®¡æ ¸äºº/日期:崔海胜/20240904-->
    <!--          </td>-->
    <!--        </tr>-->
  </table>
</template>
<script>
export default {
  name: "packReport",
  props: ['printParam'],
  data() {
    return {
    }
  },
  mounted() {
  },
  methods: {
  }
}
</script>
<<style scoped>
header {
  line-height: 1.5;
}
.logo {
  display: block;
  margin: 0 auto 2rem;
}
@media (min-width: 1024px) {
  header {
    display: flex;
    place-items: center;
    padding-right: calc(var(--section-gap) / 2);
  }
  .logo {
    margin: 0 2rem 0 0;
  }
  header .wrapper {
    display: flex;
    place-items: flex-start;
    flex-wrap: wrap;
  }
}
</style>
jcdm-ui/src/views/main/cfkb/labelReplacement/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,819 @@
<template>
  <div class="app-container">
   <el-row :gutter="5">
     <el-col :span="7">
       <el-card style="height: 71px;padding-top: 6px" shadow="never">
          <span class="head-font">工位编号 : {{headContent.processesCode}}</span>
       </el-card>
     </el-col>
     <el-col :span="17">
       <el-card shadow="never">
         <span class="head-font">产品序列号 : </span>
         <el-input style="width: 50%" ref="inputData" v-model="productNum" @change="handleEnter" placeholder="请扫描物料编码"></el-input>
         <el-button @click="clearClick" style="float: right" type="danger" >清除</el-button>
       </el-card>
     </el-col>
   </el-row>
   <el-row :gutter="5" style="margin-top: 5px">
     <el-col :span="7" >
       <el-card class="bottom-card">
         <div slot="header" class="clearfix">
           <i class="el-icon-tickets"></i>
           <span style="font-weight: bold">当前工件信息</span>
         </div>
         <el-descriptions :column="1" border :content-style="{'min-width': '140px'}">
           <el-descriptions-item label="产品序列号">
             <span>{{headContent.sfcCode}}</span>
           </el-descriptions-item>
           <el-descriptions-item label="工单编号">
               <span>{{workpieceInformation.workOrderNo}}</span>
           </el-descriptions-item>
           <el-descriptions-item label="产品编码">
             <span>{{workpieceInformation.productCode}}</span>
           </el-descriptions-item>
           <el-descriptions-item label="计划数量">
             <span>{{workpieceInformation.planQty}}</span>
           </el-descriptions-item>
         </el-descriptions>
         <el-divider></el-divider>
         <el-row v-show="printFlag" style="margin-top: 20px">
           <el-button id="print" v-print="'#printMe'" type="primary">打印</el-button>
           <div style="display: none">
             <div id="printMe">
               <div style="text-align: center;margin-top: 70px">
                 <span style="font-size: 29px;">电驱系统总成</span>
               </div>
               <div style="display: flex;margin-top: 2px;margin-left: 39px;font-size: 15px">
                 <div class="div1">
                   <div >
                     <span>电机型号:</span><span>TZ180XSDSZX01</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>额定功率:</span><span>30kW</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>额定转矩:</span><span>70N.m</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>额定电压:</span><span>336VDC</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>工作制:</span><span>S9</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>持续工作电流:</span><span>115A</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>相数:</span><span style="vertical-align: -0.5px;">3</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>零件号:</span><span>{{printMaterialCode}}</span><br>
                   </div>
                 </div>
                 <div class="div2" style="font-size: 15px;margin-left: 4px">
                   <div>
                     <span>控制器型号:</span><span>KTZ34X23SZX07</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>峰值功率:</span><span>60kW</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>峰值转矩:</span><span>175N.m</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>最高转速:</span><span>12000rpm</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>防护等级:</span><span style="vertical-align: -0.5px;">I</span><span>P67</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>峰值工作电流:</span><span>230A</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>绝缘等级:</span><span style="vertical-align: -0.5px;">H</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>出厂编号:</span><span>{{headContent.sfcCode}}</span><br>
                   </div>
                 </div>
               </div>
               <div style="margin-top: 2px;margin-left: 70px">
                 <span style="font-size: 26px;">湖州智芯动力系统发展有限公司</span>
               </div>
               <div style="text-align: center;margin-top: 101px;font-size: 20px">
                 <div style="margin-top: 12px">
                   <span style="font-size: 22px">TZ180XSDSZX01</span><br>
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">KTZ34X23SZX07</span><br>
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">993983</span><br>
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">{{printMaterialCode}}</span><br>
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">{{headContent.sfcCode}}</span>
                 </div>
               </div>
               <div style="margin-top: 57px;display: flex;margin-left: 40px">
                 <div style="width: 30%;flex: 1">
                   <VueQr :size='80' :margin='0' :text='this.text'></VueQr>
                 </div>
                 <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 29px">
                  <span style="margin-left: -122px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     P{{printMaterialCode}}
                   </span>
                   <span style="margin-left: -5px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     T{{headContent.sfcCode}}
                   </span><br>
                   <span style="margin-left: -122px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     V993983
                   </span>
                   <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -10px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     SSW001.001
                   </span>
                   <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     HHW001.001
                   </span>
                   <span style="margin-left: -6px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     NMCU
                   </span>
<!--                   <span style="margin-left: -80px;font-size: 19px;font-family: FZYaoti;letter-spacing: -0.8px;font-weight: 100">-->
<!--                     #V993983#SSW002.005#HHW001.001#NMCU-->
<!--                   </span>-->
                 </div>
               </div>
               <div style="margin-top: 44px;display: flex;margin-left: 40px">
                 <div style="width: 30%;flex: 1">
                   <VueQr :size='80' :margin='0' :text='this.text'></VueQr>
                 </div>
                 <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 29px">
<!--                        <span style="margin-left: -80px;font-size: 19px;font-family: FZYaoti;letter-spacing: -0.8px;font-weight: 100">-->
<!--                          P9900200461#T{{headContent.sfcCode}}-->
<!--                        </span><br>-->
<!--                   <span style="margin-left: -80px;font-size: 19px;font-family: FZYaoti ;letter-spacing: -0.8px;font-weight: 100">-->
<!--                          #V993983#SSW002.005#HHW001.001#NMCU-->
<!--                        </span>-->
                   <span style="margin-left: -122px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     P{{printMaterialCode}}
                   </span>
                   <span style="margin-left: -5px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     T{{headContent.sfcCode}}
                   </span><br>
                   <span style="margin-left: -122px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     V993983
                   </span>
                   <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -10px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     SSW001.001
                   </span>
                   <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     HHW001.001
                   </span>
                   <span style="margin-left: -6px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px">
                     #
                   </span>
                   <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px">
                     NMCU
                   </span>
                 </div>
               </div>
               <div style="text-align: center;margin-left: -190px;margin-top: 31px">
                 <div style="margin-top: 4px">
                   <span>{{printMaterialCode}}</span><br>
                 </div>
                 <div style="margin-top: 8px">
                   <span>MCU</span><br>
                 </div>
                 <div style="margin-top: 8px">
                   <span>HW 001.001</span><br>
                 </div>
                 <div style="margin-top: 8px">
                   <span>SW 001.001</span><br>
                 </div>
               </div>
             </div>
           </div>
         </el-row>
         <el-row v-show="orderFlag" style="margin-top: 20px">
<!--           <el-button @click="getWorkOrders" type="warning" size="mini">接收工单</el-button>-->
         </el-row>
       </el-card>
     </el-col>
     <el-col :span="17">
       <el-tabs type="border-card"  style="height: 600px" v-model="activeName">
         <el-tab-pane name="first">
           <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="80" align="center" prop="stepSort">
               </el-table-column>
               <el-table-column label="操作内容" align="center" prop="operationSteps">
               </el-table-column>
               <el-table-column label="产品编号" width="80" align="center" prop="productCode">
               </el-table-column>
               <el-table-column label="物料编码" width="110" align="center" prop="materialCode">
               </el-table-column>
               <el-table-column label="采集值" align="center" prop="collectData">
               </el-table-column>
               <el-table-column label="结果" width="60" align="center" prop="results">
               </el-table-column>
             </el-table>
           </el-col>
         </el-tab-pane>
       </el-tabs>
     </el-col>
   </el-row>
  </div>
</template>
<script>
import {listWorkReport} from "@/api/main/om/workReport/workReport";
import {listStationConf,getIpv4} from "@/api/main/sc/stationConf";
import {
  clearWorkpieceRelease,
  fistSetpNumber, initializedData,
  listFormulaChild,
  noPageListFormulaChild,
  releaseCheck, unfinishedProcess,
  updateResults,
  updateTighteningFormula,
  workpieceRelease
} from "@/api/main/bs/formulaChild/formulaChild";
import MySerialPort from "@/utils/MySerialPort";
import USBDevice from "@/utils/usb.json";
import {
  bindYzSfcFlag,
  checkCarCode, checkYzSfcCode,
  findBytrolleyYardGetOne,
  listProductionOrde, listProductionOrdeLoopLine, mozuReceivingWorkOrders,
  receivingWorkOrders,
  trolleyYardBinDing
} from "@/api/main/om/productionOrde/productionOrde";
import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection";
import {
  addBasicParameters,
  addParamCollection,
  addTighteningParameters,
  saveCampaignTimeParameters,
  replaceAssemblyCode, checkRecordDataDone,
} from "@/api/main/da/paramCollection/paramCollection";
import {addFormula} from "@/api/main/bs/formula/formula";
import QRCode from "qrcodejs2";
import VueQr from "vue-qr";
export default {
  components: {
    VueQr
  },
  name: "stationTerminal",
  data() {
    return {
      productNum: '',
      text: 'P9900200461#T2408170000004#V993983#SSW001.001#HHW001.001#NMCU',
      materialCode: '', // ç‰©æ–™ç¼–码
      carCode: '',
      showInput: false,
      onLineBinDing: false,
      serialPortContent: '',
      // æŸ¥è¯¢å‚æ•°
      formulaChildParams: {
        pageNum: 1,
        pageSize: 10,
        productCode: null,
        processesCode: null,
      },
      // é…æ–¹é…ç½®å­ä¿¡æ¯è¡¨æ ¼æ•°æ®
      formulaChildList: [],
      ipAddress: '',
      imgSrc: '',
      headContent: {
        processesCode: 'OP1010',
        processesName: '贴标机-贴码',
        sfcCode: '',
        yzSfcCode: '',
        cardCode: '',
      },
      workpieceInformation: {
        workOrderNo: null,
        productCode: null,
        productModel: null,
        productName: null,
        inboundTime: null,
        materialCode: null,
        planQty: null,
      },
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sfcCode: null,
        productNum: '',
      },
      // æŸ¥è¯¢å‚æ•°
      StationConfQueryParams: {
        pageNum: 1,
        pageSize: 10,
        ipAddress: null,
      },
      cakeLamp: {
        plcState: 1, //plc
        scannerState: 1, //扫码枪
        InPlace: 0, //工件到位
        scanFinish: 0,
        startWork: 0,
        release: 0 //允许放行
      },
      content: '',
      // url: "ws://10.103.214.26:8080/websocket/message/",
      url: "ws://192.168.20.250:8080/websocket/message/",
      passingStationForm: {},
      originalArray: [],
      orderFlag: true,
      printFlag: true,
      activeName: 'first',
      printMaterialCode : '',
    }
  },
  mounted() {
    this.setFocus()
  },
  beforeDestroy() {
    this.exit();
  },
  created() {
    // this.initStation();
  },
  computed: {
    isDisable() {
      return this.btnType === "danger";
    },
  },
  methods: {
    setFocus(){
      this.$nextTick(()=>{
        this.$refs.inputData.focus()
      })
    },
    changeMenu(tab, event) {
      console.log(tab, event);
    },
    handleEnter() {
      let code = this.productNum.substring(13,26);
      this.queryParams.productNum = this.productNum;
      this.getList();
    },
    serialLink() {
      this.open1 = true
    },
    serialPortMethod(value){
      let formulaChildParams = {
        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 => {
        console.log(response)
        if(response.msg === "3"){
          this.cakeLamp.release= 1 //允许放行
        }else if(response.msg === "2"){
          this.$message.error('扫码重复请重新扫码!');
        }
        this.getListFormulaChild()
      });
    },
    rowStyle({ row }) {
      if (row.results === 'OK') {
        return 'background-color: PaleGreen';
      } else if (row.results === 'NG') {
        return 'background-color: LightSalmon';
      }
      return '';
    },
    /** æŸ¥è¯¢é…æ–¹é…ç½®å­ä¿¡æ¯åˆ—表 */
    getListFormulaChild() {
      // this.formulaChildList = []
      this.formulaChildParams.productCode = this.workpieceInformation.productCode
      this.formulaChildParams.processesCode = this.headContent.processesCode
      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(){
      this.cakeLamp.InPlace= 0 //工件到位
      this.cakeLamp.scanFinish= 0
      this.cakeLamp.startWork= 0
      this.cakeLamp.release= 0 //允许放行
      this.formulaChildList = []
      this.workpieceInformation.productCode = null;
      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.workpieceInformation.planQty = ''
    },
    clearClick(){
      const param = {
        workOrderNo: this.workpieceInformation.workOrderNo,
        productCode: this.workpieceInformation.productCode,
        locationCode: this.headContent.processesCode,
        productBarcode: this.headContent.sfcCode,
      }
      // this.endClear()
      clearWorkpieceRelease(param).then(response => {});
      // this.headContent.sfcCode = ''
      this.$message('清除成功!');
      this.setFocus();
      this.getList()
    },
    /** æŸ¥è¯¢å·¥å•列表 */
    async getList() {
      await listProductionOrdeLoopLine(this.queryParams).then(response => {
        console.log('进入初始化加载list方法')
        let rowsData = response.rows[0];
        if(rowsData){
          console.log('进入初始化加载list方法'+response.rows[0])
          this.headContent.sfcCode = rowsData.productNum.substring(13,26)
          this.workpieceInformation.workOrderNo = rowsData.workOrderNo;
          this.workpieceInformation.productCode = rowsData.productCode;
          this.workpieceInformation.materialCode = rowsData.materialCode;
          this.workpieceInformation.planQty = rowsData.planQty;
          this.printMaterialCode = rowsData.productCode
          this.text = 'P'+this.printMaterialCode+'#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU'
        }else {
          this.$message.error('系统没有此工单,请重新扫码!');
        }
      });
    },
    initializedData(){
      const param = {
        locationCode: this.headContent.processesCode,
      }
      initializedData(param).then(response => {
        if(response.msg !== ''){
          if(this.headContent.processesCode === 'OP165'){
            this.headContent.sfcCode = response.msg.substring(13,26)
            this.queryParams.productNum = response.msg.substring(13,26);
          }else {
            this.headContent.sfcCode = response.msg;
            this.queryParams.productNum = response.msg;
          }
          this.getList()
          this.cakeLamp.scanFinish = 1
          this.cakeLamp.startWork = 1
          this.cakeLamp.InPlace = 1
          // this.text = 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU'
        }
      });
    },
    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');
    },
    exit() {
      if (this.ws) {
        this.ws.close();
        this.ws = null;
      }
    },
    test1(){
      document.getElementById('canvasWrapper1').innerHTML = '';
      this.$nextTick(() => {
          let qrCode = new QRCode('canvasWrapper1',{
            width: 83,
            height: 83,
            text: 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU',
            colorDark: '#000',
            colorLight: '#fff'
          })
        }
      )
    },
    test2(){
      document.getElementById('canvasWrapper2').innerHTML = '';
      this.$nextTick(() => {
          let qrCode = new QRCode('canvasWrapper2',{
            width: 83,
            height: 83,
            text: 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU',
            colorDark: '#000',
            colorLight: '#fff'
          })
        }
      )
    },
    send() {
      if (this.ws) {
        this.ws.send(this.message);
      } else {
        alert("未连接到服务器");
      }
    },
    initStation: async function () {
      await getIpv4().then(response => {
        this.StationConfQueryParams.ipAddress = response.msg
        console.log('查询到本工位IP为' + this.StationConfQueryParams.ipAddress)
      });
      await listStationConf(this.StationConfQueryParams).then(response => {
        let rows = response.rows[0]
        if (response.rows.length === 0) {
          this.$message('该工位没有配置IP,请联系管理员配置IP');
          return
        }
        this.headContent.processesName = rows.processesName
        this.headContent.processesCode = rows.processesCode
        this.initializedData()
        if(this.headContent.processesCode === 'OP165'){
          this.printFlag = true
        }
        if(this.headContent.processesCode === 'OP250'){
          this.printFlag = true
        }
      });
      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.$message('websocket连接成功!');
      };
      //socket从后台向前台推送数据
      this.ws.onmessage = function (event) {
        if (event.data === "print") {
          document.getElementById('print').click();
          unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 21}).then(response => {});
        }else if (event.data === "IN") {
          self.cakeLamp.InPlace = 1;
        }else if(event.data === "twoHundredAndThirtyEND"){
          self.endClear()
        } else if (event.data === "OUT") {
          self.cakeLamp.release = 1;
        } else if (event.data === "END") {
          const formulaChildIndex = self.formulaChildList.length-1
          const orderParam = {
            productNum: self.headContent.sfcCode,
          }
          if(self.headContent.sfcCode=== ''||self.headContent.sfcCode=== null){
            self.$message('总成码为空,请扫码!')
            unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 26}).then(response => {});
            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]
          }
          console.log("进入最终方法")
          self.endSaveData(param)
        } else if(event.data.includes("productNum")){//产品序列号
          let productNum = event.data.split(',')[1];
          if(self.headContent.processesCode === 'OP165'){
            console.log("进去截取总成码方法165工站原始值是"+productNum+"截取之后的是"+productNum.substring(13,26))
            self.headContent.sfcCode = productNum.substring(13,26)
            console.log("self.headContent.sfcCode"+self.headContent.sfcCode)
          }else {
            self.headContent.sfcCode = productNum;
          }
          self.queryParams.productNum = productNum;
          self.getList()
          self.cakeLamp.scanFinish = 1
          self.cakeLamp.startWork = 1
          self.cakeLamp.InPlace = 1
          const param = {
            processesCode: self.headContent.processesCode,
            productCode: self.workpieceInformation.productCode
          }
          fistSetpNumber(param).then(response => {
            console.log("fistSetpNumber------"+response.msg)
          });
          //打印
          if(self.headContent.processesCode === "OP165"){
            // self.test1()
            // self.test2()
            self.text = 'P9900200461#T'+self.headContent.sfcCode+'#V993983#SSW002.005#HHW001.001#NMCU#'
          }
        }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;
            }
          }
          if(formulaChilds === ""){
            self.$message.error('本工位已工作完成!');
            return;
          }
          const param = {
            id: formulaChilds.id,
            tightenTheArray: event.data,
            paramCode: formulaChilds.paramCode,
            workOrderNo: self.workpieceInformation.workOrderNo,
            productCode: self.workpieceInformation.productCode,
            locationCode: self.headContent.processesCode,
            productBarcode: self.headContent.sfcCode,
            spareField1: formulaChilds.spareField1,
            spareField2: formulaChilds.spareField2,
            spareField3: formulaChilds.spareField3,
            spareField4: formulaChilds.spareField4,
            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 => {});
              self.getListFormulaChild()
            }).catch(error =>{
              self.getListFormulaChild()
            });
          }
        }
      };
    },
    endSaveData(param){
      saveCampaignTimeParameters(param).then(response => {
      this.cakeLamp.release = 1;
      this.endClear()
      workpieceRelease(param).then(response => {});
      });
    },
  }
}
</script>
<style scoped>
.div1, .div2 {
  flex: 1; /* ä¸¤ä¸ªdiv平分容器宽度 */
}
.span{
  font-family: 'Microsoft YaHei', sans-serif;
}
.div2{
  margin-left: 30px;
}
.bottom-card{
  height: 600px;
}
.circle-button{
  height: 30px;
  width: 30px;
}
.circle-red {
  background-color: #e01a4f;
}
.circle-green {
  background-color: green;
}
.circle-green-animate {
  background-color: green;
  animation: circle-green-animate 2s infinite;
}
  @keyframes circle-green-animate {
    50% {
      opacity: 0.6;
    }
    0% {
      opacity: 0.2;
    }
  }
.head-font{
  /*font-weight: bold;*/
  /*font-size: 25px;*/
}
span{
  font-size: 15px;
}
.el-table .warning-row {
  background: oldlace;
}
.el-table .success-row {
  background: #f0f9eb;
}
</style>
jcdm-ui/src/views/main/da/testDeviceInterface/index.vue
@@ -116,19 +116,20 @@
        <el-table border v-loading="loading" :data="testDeviceInterfaceList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="检验记录编号" width="100" :show-overflow-tooltip='true' align="center" prop="recordId">
<!--          <el-table-column label="检验记录编号" width="140" :show-overflow-tooltip='true' align="center" prop="recordId">-->
<!--          </el-table-column>-->
          <el-table-column label="pack码" width="240" :show-overflow-tooltip='true' align="center" prop="productNum">
          </el-table-column>
          <el-table-column label="站点编号" width="100" align="center" prop="stationCode">
          </el-table-column>
          <el-table-column label="pack码" width="230" :show-overflow-tooltip='true' align="center" prop="productNum">
          </el-table-column>
          <el-table-column label="整体结果" width="100" align="center" prop="totalResult">
          </el-table-column>
          <el-table-column label="工单号" width="100" align="center" prop="workOrderNo">
          </el-table-column>
<!--          <el-table-column label="工单号" width="100" align="center" prop="workOrderNo">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="供应商类型" align="center" prop="supplierType">-->
<!--          </el-table-column>-->
          <el-table-column label="入参" width="300" :show-overflow-tooltip='true' align="center" prop="checkList">
          <el-table-column label="入参" :show-overflow-tooltip='true' align="center" prop="checkList">
          </el-table-column>
<!--          <el-table-column label="状态编码" width="100" align="center" prop="resultCode">-->
<!--          </el-table-column>-->
@@ -136,14 +137,14 @@
<!--          </el-table-column>-->
<!--          <el-table-column label="出参" width="100" align="center" prop="resultData">-->
<!--          </el-table-column>-->
          <el-table-column label="创建用户" align="center" prop="createUser">
          </el-table-column>
<!--          <el-table-column label="创建用户" align="center" prop="createUser">-->
<!--          </el-table-column>-->
          <el-table-column label="创建时间" width="160" align="center" prop="createTime">
          </el-table-column>
          <el-table-column label="更改用户" align="center" prop="updateUser">
          </el-table-column>
          <el-table-column label="更改时间" width="160" align="center" prop="updateTime">
          </el-table-column>
<!--          <el-table-column label="更改用户" align="center" prop="updateUser">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="更改时间" width="160" align="center" prop="updateTime">-->
<!--          </el-table-column>-->
<!--          <el-table-column fixed="right" width="200" label="操作" align="center" class-name="small-padding fixed-width">-->
<!--            <template slot-scope="scope">-->
<!--              <el-button-->
jcdm-ui/src/views/main/om/supplementaryReportingWork/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
<template>
  <div class="app-container">
   <el-row :gutter="5">
     <el-col :span="12">
       <el-card shadow="never">
         <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
           <el-form-item label="工位" prop="stationCode">
             <el-input v-model="ruleForm.stationCode" placeholder="示例:M2P100"></el-input>
           </el-form-item>
           <el-form-item label="产品序列号" prop="productNum">
             <el-input v-model="ruleForm.productNum" placeholder="示例:0RSMB01A134E3AEAA0000067"></el-input>
           </el-form-item>
           <el-form-item label="报工时间" prop="confirmTime">
             <el-input v-model="ruleForm.confirmTime"placeholder="示例:2024-10-12 13:35:00"></el-input>
           </el-form-item>
           <el-form-item>
             <el-button type="primary" @click="submitForm('ruleForm')">报工</el-button>
           </el-form-item>
         </el-form>
       </el-card>
     </el-col>
   </el-row>
  </div>
</template>
<script>
import {listWorkReport} from "@/api/main/om/workReport/workReport";
import {listStationConf,getIpv4} from "@/api/main/sc/stationConf";
import {
  clearWorkpieceRelease,
  fistSetpNumber, initializedData,
  listFormulaChild,
  noPageListFormulaChild,
  releaseCheck, unfinishedProcess,
  updateResults,
  updateTighteningFormula,
  workpieceRelease, writeRepairInformationIntoPlc
} from "@/api/main/bs/formulaChild/formulaChild";
import MySerialPort from "@/utils/MySerialPort";
import USBDevice from "@/utils/usb.json";
import {
  addProductionOrde,
  bindYzSfcFlag,
  checkCarCode, checkYzSfcCode,
  findBytrolleyYardGetOne,
  listProductionOrde, listProductionOrdeLoopLine, mozuReceivingWorkOrders,
  receivingWorkOrders, supplementaryReportingWork,
  trolleyYardBinDing
} from "@/api/main/om/productionOrde/productionOrde";
import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection";
import {
  addBasicParameters,
  addParamCollection,
  addTighteningParameters,
  saveCampaignTimeParameters,
  replaceAssemblyCode, checkRecordDataDone,
} from "@/api/main/da/paramCollection/paramCollection";
import {addFormula} from "@/api/main/bs/formula/formula";
import QRCode from "qrcodejs2";
import VueQr from "vue-qr";
import {listProcesses, listProcessesNoPage} from "@/api/main/bs/processes/processes";
export default {
  components: {
    VueQr
  },
  name: "stationTerminal",
  data() {
    return {
      ruleForm: {
        productNum: 'TZ180XSDSZX012409200000015',
        confirmTime: '2024-10-12 13:35:00',
        stationCode: 'OP010',
      },
      rules: {
        productNum: [
          { required: true, message: '请输入序列号', trigger: 'blur' },
        ],
        confirmTime: [
          { required: true, message: '请输入报工时间', trigger: 'blur' },
        ],
        stationCode: [
          { required: true, message: '请输入工位', trigger: 'blur' },
        ],
      },
      confirmTime: '',
      productNum: '',
      stationCode: '',
    }
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          supplementaryReportingWork(this.ruleForm).then(response => {
            this.$message(response.msg);
          });
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
  }
}
</script>