懒羊羊
2024-01-08 49ac5ceb9f6b2e065e5d1c61aad2de63399304e1
工位终端优化
已修改5个文件
224 ■■■■ 文件已修改
jcdm-main/src/main/java/com/jcdm/main/sc/stationConf/controller/ScStationConfController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/sc/stationConf/service/IScStationConfService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/sc/stationConf/service/impl/ScStationConfServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/sc/stationConf.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/kb/stationTerminal/index.vue 191 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/sc/stationConf/controller/ScStationConfController.java
@@ -101,4 +101,14 @@
    {
        return toAjax(scStationConfService.deleteScStationConfByIds(ids));
    }
    /**
     * 获取工位终端配置详细信息
     */
    @GetMapping(value = "/getIpv4")
    public AjaxResult getIpv4()
    {
        return success(scStationConfService.getIpv4());
    }
}
jcdm-main/src/main/java/com/jcdm/main/sc/stationConf/service/IScStationConfService.java
@@ -58,4 +58,6 @@
     * @return 结果
     */
    public int deleteScStationConfById(Long id);
    String getIpv4();
}
jcdm-main/src/main/java/com/jcdm/main/sc/stationConf/service/impl/ScStationConfServiceImpl.java
@@ -1,5 +1,6 @@
package com.jcdm.main.sc.stationConf.service.impl;
import java.net.InetAddress;
import java.util.List;
import com.jcdm.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -93,4 +94,16 @@
    {
        return scStationConfMapper.deleteScStationConfById(id);
    }
    @Override
    public String getIpv4() {
        String ipv4 = "";
        try {
            InetAddress localhost = InetAddress.getLocalHost();
            ipv4 = localhost.getHostAddress();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return ipv4;
    }
}
jcdm-ui/src/api/main/sc/stationConf.js
@@ -9,6 +9,14 @@
  })
}
// 查询IP
export function getIpv4() {
  return request({
    url: '/sc/stationConf/getIpv4',
    method: 'get',
  })
}
// 查询工位终端配置详细
export function getStationConf(id) {
  return request({
jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -2,18 +2,21 @@
  <div class="app-container">
   <el-row :gutter="5">
     <el-col :span="6">
       <el-card shadow="hover">
         工位编号 : OP1010
       <el-card shadow="never">
         <span class="head-font">工位编号 : {{headContent.processesCode}}</span>
       </el-card>
     </el-col>
     <el-col :span="6">
       <el-card shadow="hover">
         工位名称 : 贴标机-贴码
       <el-card shadow="never">
         <span class="head-font">工位名称 : {{headContent.processesName}}</span>
       </el-card>
     </el-col>
     <el-col :span="12">
       <el-card shadow="hover">
         总成编码 : 1000000000000001
       <el-card shadow="never">
         <span class="head-font">总成编码 : {{headContent.sfcCode}}</span>
         <el-input v-model="input" style="float: right;width: 150px;" placeholder="请输入内容"></el-input>
         <el-button @click="scanCompleted" style="float: right" type="primary">扫码完成</el-button>
         <el-button @click="clearClick" style="float: right" type="danger">清除</el-button>
       </el-card>
     </el-col>
@@ -22,68 +25,60 @@
     <el-col :span="6" >
       <el-card class="bottom-card">
         <div slot="header" class="clearfix">
           <span>当前工件信息</span>
           <i class="el-icon-tickets"></i>
           <span style="font-weight: bold">当前工件信息</span>
         </div>
         <el-descriptions :column="1" border>
           <el-descriptions-item>
             <template slot="label">
               <span>工单编号</span>
             </template>
               <span>test00000001</span>
         <el-descriptions :column="1" :label-style="{'font-size': '15px'}" border :content-style="{'min-width': '150px'}">
           <el-descriptions-item label="工单编号">
               <span>{{workpieceInformation.workOrderCode}}</span>
           </el-descriptions-item>
           <el-descriptions-item>
             <template slot="label">
               <span>产品编号</span>
             </template>
             <span>test00000001</span>
           <el-descriptions-item label="产品编号">
             <span>{{workpieceInformation.productCode}}</span>
           </el-descriptions-item>
           <el-descriptions-item>
             <template slot="label">
               <span>产品型号</span>
             </template>
             <span>test00000001</span>
           <el-descriptions-item label="产品型号">
             <span>{{workpieceInformation.productModel}}</span>
           </el-descriptions-item>
           <el-descriptions-item>
             <template slot="label">
               <span>产品名称</span>
             </template>
             <span>test00000001</span>
           <el-descriptions-item label="产品名称">
             <span>{{workpieceInformation.productName}}</span>
           </el-descriptions-item>
           <el-descriptions-item>
             <template slot="label">
               <span>节拍</span>
             </template>
             <span>江苏省苏州市吴中区吴中</span>
           <el-descriptions-item label="节拍">
             <span>{{workpieceInformation.beat}}</span>
           </el-descriptions-item>
         </el-descriptions>
         <el-divider></el-divider>
         <el-row>
           <el-col :span="12">
             <el-button class="circle-button" circle></el-button>
             <el-button class="circle-button" :class="cakeLamp.plcState ? 'circle-green-animate':'circle-red'" circle></el-button>
             <span style="display: none">{{cakeLamp.plcState}}</span>
             <span>&nbsp;PLC状态</span>
           </el-col>
           <el-col :span="12">
             <el-button class="circle-button" circle></el-button>
             <el-button class="circle-button" :class="cakeLamp.scannerState ? 'circle-green-animate':'circle-red'" circle></el-button>
             <span style="display: none">{{cakeLamp.scannerState}}</span>
             <span>&nbsp;扫码枪状态</span>
           </el-col>
         </el-row>
         <el-row style="margin-top: 20px">
           <el-col :span="12">
             <el-button class="circle-button" circle></el-button>
             <el-button class="circle-button" :class="cakeLamp.InPlace ? 'circle-green':'circle-red'" circle></el-button>
             <span style="display: none">{{cakeLamp.InPlace}}</span>
             <span>&nbsp;工件到位</span>
           </el-col>
           <el-col :span="12">
             <el-button class="circle-button" circle></el-button>
             <el-button class="circle-button" :class="cakeLamp.scanFinish ? 'circle-green':'circle-red'" circle></el-button>
             <span style="display: none">{{cakeLamp.scanFinish}}</span>
             <span>&nbsp;扫码完成</span>
           </el-col>
         </el-row>
         <el-row style="margin-top: 20px">
           <el-col :span="12">
             <el-button class="circle-button" circle></el-button>
             <el-button class="circle-button" :class="cakeLamp.startWork ? 'circle-green':'circle-red'" circle></el-button>
             <span style="display: none">{{cakeLamp.startWork}}</span>
             <span>&nbsp;开始作业</span>
           </el-col>
           <el-col :span="12">
             <el-button class="circle-button" circle></el-button>
             <el-button class="circle-button" :class="cakeLamp.release ? 'circle-green':'circle-red'" circle></el-button>
             <span style="display: none">{{cakeLamp.release}}</span>
             <span>&nbsp;允许放行</span>
           </el-col>
         </el-row>
@@ -131,24 +126,98 @@
       </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";
export default {
  components: {},
  props: [],
  name: "stationTerminal",
  data() {
    return {
      ipAddress: '',
      input: null,
      imgSrc: '',
      headContent: {
        processesCode: 'OP1010',
        processesName: '贴标机-贴码',
        sfcCode: '1000000000000001',
      },
      workpieceInformation: {
        workOrderCode: null,
        productCode: null,
        productModel: null,
        productName: null,
        beat: null,
      },
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sfcCode: null,
      },
      cakeLamp: {
        plcState: 1, //plc
        scannerState: 1, //扫码枪
        InPlace: 0, //工件到位
        scanFinish: 0,
        startWork: 0,
        release: 0 //允许放行
      }
    }
  },
  computed: {},
  watch: {},
  created() {},
  mounted() {},
  methods: {}
  created() {
    this.getIPAddress();
    this.getStationConfList();
  },
  methods: {
    clearClick(){
      this.$message('这是一条清除消息提示');
      this.headContent.sfcCode = null
    },
    scanCompleted(){
      this.$message('扫码完成'+this.input);
      this.headContent.sfcCode = this.input
      this.queryParams.sfcCode = this.input
      this.getList()
      this.cakeLamp.scanFinish = 1
    },
    /** 查询报工记录 表列表 */
    getList() {
      listWorkReport(this.queryParams).then(response => {
        let rowsData = response.rows[0];
        this.workpieceInformation.workOrderCode = rowsData.workOrderCode;
        this.workpieceInformation.productCode = rowsData.productCode;
        this.workpieceInformation.productModel = rowsData.productModel;
        this.workpieceInformation.productName = rowsData.productName;
        this.timer = setInterval(() => {
          this.workpieceInformation.beat++;
        }, 1000);
      });
    },
    allowRelease(){
      clearInterval(this.timer);
      this.$message('保存节拍为'+this.workpieceInformation.beat+'秒');
    },
    getIPAddress() {
      this.ipAddress = window.location.hostname;
    },
    /** 查询工位终端配置列表 */
    getStationConfList() {
      let queryParams = {
        ipAddress: null,
      }
      getIpv4().then(response => {
        queryParams.ipAddress = response.msg
      });
      listStationConf(queryParams).then(response => {
        let rows = response.rows[0]
        this.headContent.processesName = rows.processesName
        this.headContent.processesCode = rows.processesCode
      });
    },
  }
}
</script>
@@ -159,11 +228,29 @@
.circle-button{
  height: 30px;
  width: 30px;
  //background-color: #ce0b0b;
  //background-color: #00afff;
  background-color: #13ce66;
}
.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;
}