ZengTao
2024-05-06 dae61fa269844f76ccc9edf9eb316ef5c3dd0798
根据客户需求修改复位倒计时,修改手动页面英文显示
39个文件已修改
870 ■■■■ 已修改文件
CanadaMes-ui/src/lang/locales/en-US.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/layout/index.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Action.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/InteractionState.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Parameter1.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Parameter2.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Positioning1.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Positioning2.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ServoManualone.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Servomanual.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Sign.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/State.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/alarm.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcInteractionState.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcLayout.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/en-US.json
@@ -1,6 +1,7 @@
{
  "Clear":"Clear",
  "ip":"localhost",
  "Remaining width:":"Remaining width:",
  "systemTitle": "Login System",
  "usernamePlaceholder": "Please enter username",
  "passwordPlaceholder": "Please enter password",
@@ -173,6 +174,7 @@
  },
  "Electrical": "Electrical",
  "Parameter": "Parameter",
  "Manual/Automatic": "手动/自动",
  "Action": "Action",
  "Sign": "Sign",
  "State": "State",
@@ -300,8 +302,10 @@
  "Scan Code Point":"Scan Code Point",
  "Upper film position":"Upper film position",
  "Glass Information":"Glass Information",
  "current Information":"current information",
  "Modify Information":"Modify information",
  "D01 Current Information": "D01 Current Information",
  "D02 Current Information": "D02 Current Information",
  "D01 Modify Information": "D01 Modify Information",
  "Scan Code Information":"Scan Code Information",
  "Clear Current":"Clear Current",
  "Confirm":"Confirm",
  "The glass ID already exists in the loading queue":"The glass ID already exists in the loading queue",
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -1,6 +1,7 @@
{
  "Clear":"清除",
  "ip":"localhost",
  "Remaining width:":"剩余宽度:",
  "systemTitle": "登录系统",
  "usernamePlaceholder": "请输入用户名",
  "passwordPlaceholder": "请输入密码",
@@ -171,6 +172,7 @@
  },
  "Electrical": "设备管理",
  "Parameter": "参数设置",
  "Manual/Automatic": "手动/自动",
  "Action": "开关控制",
  "Sign": "IO状态",
  "State": "状态",
@@ -291,8 +293,10 @@
  "Scan Code Point": "扫码位",
  "Upper film position": "上片位",
  "Glass Information": "玻璃信息",
  "current Information": "当前信息",
  "Modify Information": "修改信息",
  "D01 Current Information": "D01当前信息",
  "D02 Current Information": "D02当前信息",
  "D01 Modify Information": "D01待确认",
  "Scan Code Information":"扫码信息",
  "Clear Current": "清除当前",
  "Confirm": "确认",
  "The glass ID already exists in the loading queue": "上片队列已存在此玻璃id",
CanadaMes-ui/src/layout/index.vue
@@ -253,37 +253,40 @@
          let obj = JSON.parse(msg.data);
          if (obj.alarmmg) {
            if (obj.alarmmg[0].length > 0) {
              if (this.alarm.length > 0) {
                if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
                  this.alarm = obj.alarmmg[0];
                  this.dialogFormVisible2 = true;
                }
              } else {
                this.alarm = obj.alarmmg[0];
                this.dialogFormVisible2 = true;
              }
            } else {
            if( obj.alarmmg!=null){
              this.alarm = obj.alarmmg[0];
              this.dialogFormVisible2 = false;
            }
            //是否急停
            if (obj.emergencystop != null) {
              this.EmergencyStop = obj.emergencystop[0];
            }
            // if (obj.alarmmg[0].length > 0) {
            //   if (this.alarm.length > 0) {
            //     if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
            //       this.alarm = obj.alarmmg[0];
            //       this.dialogFormVisible2 = true;
            //     }
            //   } else {
            //     this.alarm = obj.alarmmg[0];
            //     this.dialogFormVisible2 = true;
            //   }
            // } else {
            //   this.alarm = obj.alarmmg[0];
            //   this.dialogFormVisible2 = false;
            // }
            // //是否急停
            // if (obj.emergencystop != null) {
            //   this.EmergencyStop = obj.emergencystop[0];
            // }
            //复位倒计时
            if (obj.countdown != null) {
              if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                this.CountDown();
              }
            }
            // //复位倒计时
            // if (obj.countdown != null) {
            //   if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
            //     this.CountDown();
            //   }
            // }
            //复位完成信号
            if (obj.reset != null) {
              this.reset = obj.reset[0];
            }
            // //复位完成信号
            // if (obj.reset != null) {
            //   this.reset = obj.reset[0];
            // }
          }
@@ -398,7 +401,7 @@
        '用户列表': 'UserList',
        '设备管理': 'DeviceManagement',
        '报警信息': 'Alarm',
        '参数下发': 'Parameter',
        '手动/自动': 'Manual/Automatic',
        '开关控制': 'Action',
        'IO状态': 'Sign',
        '权限管理': 'PermissionManagement',
CanadaMes-ui/src/views/Electrical/Action.vue
@@ -12,7 +12,7 @@
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic')
      }}</router-link>
    </el-breadcrumb>
    
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -12,7 +12,7 @@
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
        $t('Manual/Automatic')
      }}</router-link>
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/InteractionState.vue
@@ -36,7 +36,7 @@
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Parameter") }}</router-link
        >{{ $t("Manual/Automatic") }}</router-link
      >
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -12,7 +12,7 @@
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
        $t('Manual/Automatic')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -12,7 +12,7 @@
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
        $t('Manual/Automatic')
      }}</router-link>
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -36,7 +36,7 @@
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Parameter") }}</router-link
        >{{ $t("Manual/Automatic") }}</router-link
      >
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -36,7 +36,7 @@
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Parameter") }}</router-link
        >{{ $t("Manual/Automatic") }}</router-link
      >
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -12,7 +12,7 @@
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
        $t('Manual/Automatic')
      }}</router-link>
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -31,7 +31,7 @@
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Parameter") }}</router-link
        >{{ $t("Manual/Automatic") }}</router-link
      >
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/Servomanual.vue
@@ -12,7 +12,7 @@
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
        $t('Manual/Automatic')
      }}</router-link>
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -13,7 +13,7 @@
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
 <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
 <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic')
        }}</router-link>
    </el-breadcrumb>
CanadaMes-ui/src/views/Electrical/State.vue
@@ -13,7 +13,7 @@
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
 <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
 <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic')
        }}</router-link>
    </el-breadcrumb>
    <div>{{ $t('State') }}</div>
CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -8,7 +8,7 @@
      <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link> -->
      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link> -->
    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
    <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
    <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic')
        }}</router-link>
    </el-breadcrumb>
    <div>{{ $t('Alarm') }}</div>
CanadaMes-ui/src/views/home/index.vue
@@ -344,6 +344,9 @@
        </el-main>
        <el-footer>
            <div class="blocks" style="position: relative;">
                <div :style="'position:absolute;width:40px;height:40px;top:40px;left:50px;background-Color:'+StateColor+';font-size:30px;text-align:center;border-radius: 50%;'">
                    {{ CountDowns }}
                </div>
                <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:237px;">
                    <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist1" :key="item['date']"
                        :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }"
@@ -416,7 +419,7 @@
                </div>
                <div class="glass D02" style="top: 117px;left: 1055px;position: absolute;">{{ ShowGlassIdList(1) }}
                    <br />
                    <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.2', 1)">
                    <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.3', 1)">
                        {{ $t('Clear') }}</el-button>
                </div>
                <div class="glass B01" style="top: 270px;left: 640px;position: absolute;">
@@ -615,7 +618,6 @@
                :page-sizes="[42, 84, 126, 420]" :page-size="pagesizes" layout="total, sizes, prev, pager, next, jumper"
                :total="cageinfo.length > 0 ? cageinfo.length : null" background style="float: right; margin-top: 20px">
            </el-pagination>
        </el-dialog>
        <el-dialog :visible.sync="dialogFormVisible4" :title="$t('Order Info')" top="5vh">
@@ -641,11 +643,11 @@
        <el-dialog :visible.sync="dialogFormVisible5" :title="$t('Please confirm the glass information')">
            <el-form :model="form" label-width="100px" style="padding-right: 30px">
                <div style="display: flex;justify-content: center;">
                    <el-form-item>
                    <!-- <el-form-item>
                        {{ $t('Confirm State') }}:{{ this.isConfirm == true ? $t('Allow') : $t('Not Allow') }}
                        <el-button type="primary" @click="isConfirmState()">
                            {{ this.isConfirm == true ? $t('Not Allow') : $t('Allow') }}</el-button>
                    </el-form-item>
                    </el-form-item> -->
                    <el-form-item>
                        {{ $t('Current State') }}:{{ this.Scanningmethod == false ? $t('Automatic') :
                $t('Hand Movement') }}
@@ -653,7 +655,7 @@
                            }}</el-button>
                    </el-form-item>
                    <el-form-item>
                        <el-input style="width:70%;" maxlength="13" :placeholder="$t('Enter the glass barcode')"
                        <el-input style="width:70%;" maxlength="14" :placeholder="$t('Enter the glass barcode')"
                            v-model="glassid1"></el-input>
                        <el-button type="primary" :disabled="!Scanningmethod" @click="WriteGlassID()">{{ $t('Add')
                            }}</el-button>
@@ -664,106 +666,112 @@
                            v-model="CurrrentGlassId"></el-input>
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                <!-- <div style="display: flex;justify-content: space-around;">
                    <label for="">{{ $t('Upper film position') }}</label>
                    <label for="">{{ $t('Scan Code Point') }}</label>
                </div>
                </div> -->
                <div style="display: flex;justify-content: space-around;height: 40px;">
                    <label for="">{{ $t('current Information') }}</label>
                    <label for="">{{ $t('Modify Information') }}</label>
                    <label for="">{{ $t('current Information') }}</label>
                    <label for="">{{ $t('Modify Information') }}</label>
                    <label for="">{{ $t('D02 Current Information') }}</label>
                    <!-- <label for="">{{ $t('D01 Current Information') }}</label> -->
                    <label for="">{{ $t('D01 Modify Information') }}</label>
                    <label for="">{{ $t('Scan Code Information') }}</label>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Barcode')">
                    <el-form-item :label="$t('Barcode')" >
                        <el-input v-model="form2.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form4.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Barcode')">
                    <!-- <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form3.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    </el-form-item> -->
                    <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form5.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Barcode')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'">
                        <el-input v-model="form6.barcode" readonly autocomplete="off"  />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form2.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form4.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form3.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <!-- <el-form-item :label="$t('Order No')">
                        <el-input v-model="form3.orderId" readonly autocomplete="off" />
                    </el-form-item>-->
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form5.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Order No')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'">
                        <el-input v-model="form6.ordernumber" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form2.listId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form4.listId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('List No')">
                    <!-- <el-form-item :label="$t('List No')">
                        <el-input v-model="form3.listId" readonly autocomplete="off" />
                    </el-form-item>
                    </el-form-item> -->
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form5.listId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('List No')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'">
                        <el-input v-model="form6.listnumber" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form2.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form4.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Box No')">
                    <!-- <el-form-item :label="$t('Box No')">
                        <el-input v-model="form3.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    </el-form-item> -->
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form5.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Box No')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'">
                        <el-input v-model="form6.boxnumber" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form2.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form4.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Length')">
                    <!-- <el-form-item :label="$t('Length')">
                        <el-input v-model="form3.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    </el-form-item> -->
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form5.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Length')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'">
                        <el-input v-model="form6.glasslength" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form2.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form4.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Width')">
                    <!-- <el-form-item :label="$t('Width')">
                        <el-input v-model="form3.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    </el-form-item> -->
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form5.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Width')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'">
                        <el-input v-model="form6.glassheight" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: right;">
                    <el-button @click="InsertQueueGlass(1)" style="margin-right: 100px;" type="primary"
                    <el-button @click="InsertQueueGlass(1)" style="margin-right: 28%;" type="primary"
                        :disabled="disabled1">
                        {{ $t('Confirm') }}</el-button>
                    <span style="margin-right: 12%;">
                        {{ $t('Remaining width:') }}
                        {{ (108.27 - (Object.keys(this.form6).length === 0 ? 0 : (form6.glassheight > form6.glasslength ?
                form6.glassheight : form6.glasslength))).toFixed(2) }}
                    </span>
                </div>
            </el-form>
        </el-dialog>
@@ -790,18 +798,18 @@
                        <el-table-column :min-width="70" prop="orderId" :label="$t('Order No')"></el-table-column>
                        <el-table-column :min-width="70" prop="listId" :label="$t('List No')"></el-table-column>
                        <el-table-column :min-width="70" prop="boxId" :label="$t('Box No')"></el-table-column>
                        <el-table-column :min-width="70" prop="cell" :label="$t('Slot No')"></el-table-column>
                        <el-table-column :min-width="100" prop="glasswidthmm" :label="$t('Length')"></el-table-column>
                        <el-table-column :min-width="100" prop="glassheightmm" :label="$t('Width')"></el-table-column>
                        <el-table-column :min-width="90" prop="state" :label="$t('Glass State')">
                            <template slot-scope='scope'>
                                {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') :
                scope.row.state
                    == 2
                    ? $t('Outed') : scope.row.state == 3 ? $t('Absent') : $t('Completed') }}
                                {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ?
                $t('Outing') : scope.row.state == 2 ? $t('Outed') : scope.row.state == 3 ? $t('Absent')
                    : $t('Completed') }}
                            </template>
                        </el-table-column>
                        <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
                        <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')">
                        <!-- <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')">
                            <template slot-scope='scope' style="height:100px;height:100px;">
                                <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                    :disabled="!(!isAllowQueue && scope.row.state != 1 && scope.row.state != 2)"
@@ -809,7 +817,7 @@
                $t('Complete')
            }}</el-button>
                            </template>
                        </el-table-column>
                        </el-table-column> -->
                        <el-table-column :width="100" :label="$t('Operate')">
                            <template slot-scope='scope'>
@@ -904,6 +912,7 @@
import LanguageMixin from '../../lang/LanguageMixin'
let socket;
let timer;
export default {
    name: "Home",
    data() {
@@ -935,6 +944,7 @@
            form3: {},
            form4: {},
            form5: {},
            form6: {},
            alarm: [],
            tableData: [],
            cagelist1: [],
@@ -987,7 +997,7 @@
            ClearGlassID: true,
            StopTask: true,
            SoftEmergencyStopState: true,
            CountDowns: "0",
            CountDowns: "",
            D01RequestState: false,
            EmergencyStop: false,
            PromptSize: 250,
@@ -998,9 +1008,12 @@
            GlassIdList: [],
            Scanningmethod: true,
            CurrrentGlassId: "",
            feedglassid:"",
            count1:0,
            count2:1
            feedglassid: "",
            count1: 0,
            count2: 1,
            loadname: "",
            form6state:0,
            StateColor:"green"
        };
    },
    created() {
@@ -1039,7 +1052,7 @@
                };
                //  浏览器端收消息,获得从服务端发送过来的文本消息
                socket.onmessage = function (msg) {
                    this.count2=this.count2+1;
                    this.count2 = this.count2 + 1;
                    //console.log("收到数据====" + msg.data);
                    let obj = JSON.parse(msg.data);
                    if (obj.params != null) {
@@ -1083,7 +1096,7 @@
                    }
                    //获取待确认的铝框玻璃信息
                    if (obj.AluminumFrame != null) {
                        this.AluminumFrame = obj.AluminumFrame[0];
                        if (this.dialogFormVisible6 == true) {
                            this.dialogFormVisible7 = true;
@@ -1097,8 +1110,8 @@
                        }
                    }
                    if(obj.feedglassid!=null){
                        this.feedglassid=obj.feedglassid[0];
                    if (obj.feedglassid != null) {
                        this.feedglassid = obj.feedglassid[0];
                    }
                    // if (obj.alarmmg[0].length > 0) {
@@ -1112,28 +1125,47 @@
                    //         this.dialogFormVisible2 = true;
                    //     }
                    // }
                    // //是否急停
                    // if (obj.emergencystop != null) {
                    //     this.EmergencyStop = obj.emergencystop[0];
                    // }
                    //是否急停
                    if (obj.emergencystop != null) {
                        this.EmergencyStop = obj.emergencystop[0];
                    }
                    //复位倒计时
                    if (obj.countdown != null) {
                        if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                            this.CountDown();
                        }
                    }
                    // //复位倒计时
                    // if (obj.countdown != null) {
                    //     if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                    //         this.CountDown();
                    //     }
                    // }
                    // //复位完成信号
                    // if (obj.reset != null) {
                    //     this.reset = obj.reset[0];
                    // }
                    //复位完成信号
                    if (obj.reset != null) {
                        this.reset = obj.reset[0];
                    }
                    //是否有进片请求
                    if (obj.D01RequestState != null) {
                        this.D01RequestState = obj.D01RequestState[0];
                    }
                    // this.D01RequestState=true;
                    if (obj.zhi != null) {
                        if (obj.zhi[0] != 0) {
                            if (obj.zhi[0] == 200) {
                                this.form5 = {};
                                this.$message.success(this.$t('Operation successful'));
                            }
                            else if (obj.zhi[0] == 300) {
                                this.$message.error(this.$t('There is no such glass'));
                            }
                            else if (obj.zhi[0] == 400) {
                                this.$message.error(this.$t('There is no such slot'));
                            } else if(obj.zhi[0] == 500) {
                                this.$message.error(this.$t('This glass ID already exists in the sorting cage'));
                            } else if(obj.zhi[0] == 600) {
                                this.$message.error(this.$t('The glass size is not within the range'));
                            }
                        }
                    }
                    //是否允许出片
                    this.isAllowQueue = obj.isAllowQueue[0];
@@ -1173,8 +1205,9 @@
                    if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 0) {
                        this.loadglassheight1 = 70;
                        if (this.form5.glassId != obj.form3[0].glassId && this.ManuallyInfeedGlass == false) {
                            this.showform3();
                            if (this.loadname == "Buffer") {
                                this.showform3();
                            }
                        }
                        this.form5 = obj.form3[0];
                        this.glassid1 = "";
@@ -1187,6 +1220,17 @@
                        if (this.glassid1 == "") {
                            this.DeleteBarcodeGlass();
                        }
                    }
                    if (obj.form6 != null) {
                        this.form6state=1;
                        this.form6 = obj.form6[0];
                        if(this.form6.glassheight=="0"){
                            this.form6.glassheight="";
                            this.form6.glasslength="";
                        }
                    } else {
                        this.form6 = {};
                        this.form6state=0;
                    }
                    //数据库连接是否正常
                    if (obj.dbconnected == "false") {
@@ -1218,6 +1262,7 @@
        load() {
            //加载用户权限
            currentUsername().then(res => {
                this.loadname = res.data;
                SelectPermissionByUserName(res.data).then(res => {
                    res.data.permission.forEach(item => {
                        if (item.permissionId == "32" && item.state == 1) {
@@ -1306,14 +1351,14 @@
        //手动上片
        sbumitglassid() {
            if (this.form.order != "") {
                let width=0;
                let height=0;
                if(this.form.glassheight<this.form.glasswidth){
                    width=this.form.glasswidth;
                    height=this.form.glassheight;
                }else{
                    height=this.form.glasswidth;
                    width=this.form.glassheight;
                let width = 0;
                let height = 0;
                if (this.form.glassheight < this.form.glasswidth) {
                    width = this.form.glasswidth;
                    height = this.form.glassheight;
                } else {
                    height = this.form.glasswidth;
                    width = this.form.glassheight;
                }
                if (height < 380 || width < 380 || height > 1810 || width > 2760) {
                    this.$message.error(this.$t('The glass size is not within the range'));
@@ -1674,9 +1719,12 @@
                                this.form5 = {};
                                this.$message.success(this.$t('Operation successful'));
                            }
                            else if (res.data.message == 300) {
                                this.$message.error(this.$t('There is no such glass'));
                            }
                            else if (res.data.message == 400) {
                                this.$message.error(this.$t('There is no such slot'));
                            } else {
                            }else if (res.data.message == 500) {
                                this.$message.error(this.$t('This glass ID already exists in the sorting cage'));
                            }
                        });
@@ -1948,14 +1996,14 @@
        Sizerange(Glass, position) {
            console.log(position);
            if (this.ManuallyInfeedGlass == false) {
                let width=0;
                let height=0;
                if(Glass.glassheight<Glass.glasswidth){
                    width=Glass.glasswidth;
                    height=Glass.glassheight;
                }else{
                    height=Glass.glasswidth;
                    width=Glass.glassheight;
                let width = 0;
                let height = 0;
                if (Glass.glassheight < Glass.glasswidth) {
                    width = Glass.glasswidth;
                    height = Glass.glassheight;
                } else {
                    height = Glass.glasswidth;
                    width = Glass.glassheight;
                }
                if (height < 380 || width < 380 || height > 1810 || width > 2760) {
                    this.$alert(this.$t('The glass size is not within the range'), this.$t('confirm'), {
@@ -2001,34 +2049,34 @@
        },
        //60秒复位倒数计时
        CountDown() {
            clearInterval(timer);
            let count = 60;
            let timer = setInterval(
            timer = setInterval(
                () => {
                    if (this.EmergencyStop == true) {
                        this.dialogFormCountDown = false;
                        clearInterval(timer);
                        this.CountDowns = "0";
                        this.StateColor="red";
                        this.CountDowns = "";
                    } else {
                        if (count > 0) {
                            this.PromptSize = 500;
                            count--;
                            this.CountDowns = count;
                            this.dialogFormCountDown = true;
                        this.StateColor="yellow";
                        this.PromptSize = 500;
                        this.CountDowns = count;
                        count--;
                        }
                        else {
                            this.PromptSize = 200;
                            this.CountDowns = "Waiting for reset";
                            if (this.reset == true) {
                                clearInterval(timer);
                                this.dialogFormCountDown = false;
                            }
                        this.PromptSize = 200;
                        this.CountDowns = "";
                        this.StateColor="green";
                        if (this.reset == true) {
                            clearInterval(timer);
                        }
                        }
                    }
                },
                1000
            );
        },
            },
        //更换当前铝框
        FrameStateUpdate(frameno) {
            FrameStateUpdate(frameno).then(res => {
@@ -2099,28 +2147,28 @@
            if (this.ClearGlassID == false) {
                console.log(this.DeviceList, num);
                if (this.DeviceList[num] == 0) {
                    if (this.GlassIdList[num].length <= 14) {
                        this.$confirm(this.$t('Are you sure to clear this barcode ?'), this.$t('confirm'), {
                            confirmButtonText: this.$t('Yes'),
                            cancelButtonText: this.$t('No'),
                            type: 'warning'
                        }).then(() => {
                            ClearGlassId(position, this.GlassIdList[num]).then(res => {
                                if (res.data.message == 200) {
                                    this.$message.success(this.$t('Operation successful'));
                                } else {
                                    this.$message.success(this.$t('operation failed'));
                                }
                            });
                        }).catch(() => {
                            this.$message({
                                type: 'info',
                                message: this.$t('Operation canceled')
                            });
                    // if (this.GlassIdList[num].length <= 14) {
                    this.$confirm(this.$t('Are you sure to clear this barcode ?'), this.$t('confirm'), {
                        confirmButtonText: this.$t('Yes'),
                        cancelButtonText: this.$t('No'),
                        type: 'warning'
                    }).then(() => {
                        ClearGlassId(position, this.GlassIdList[num]).then(res => {
                            if (res.data.message == 200) {
                                this.$message.success(this.$t('Operation successful'));
                            } else {
                                this.$message.success(this.$t('operation failed'));
                            }
                        });
                    } else {
                        this.$message.error(this.$t('There is no glass ID here'));
                    }
                    }).catch(() => {
                        this.$message({
                            type: 'info',
                            message: this.$t('Operation canceled')
                        });
                    });
                    // } else {
                    //     this.$message.error(this.$t('There is no glass ID here'));
                    // }
                } else {
                    //自动状态不能清除玻璃id
                    this.$message.error(this.$t('Unable to clear glass ID in automatic mode'));
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
@@ -2,6 +2,8 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import java.io.*;
@@ -9,6 +11,7 @@
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PLCAutomaticParameterSetting extends Thread {
  // 用于存储应用程序的配置信息
@@ -70,11 +73,12 @@
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting");
        if (sendwServer != null) {
          for (WebSocketServer webserver : sendwServer) {
            webserver.sendMessage(jsonObject.toString());
            // WebSocketServer webSocketServer =
            // WebSocketServer.sessionMap.get("AutomaticParameterSetting");
            if (webserver != null) {
            if (webserver != null&&webserver.session.isOpen()) {
              webserver.sendMessage(jsonObject.toString());
              List<String> messages = webserver.getMessages();
              String addressList1 = "DB100.120";
              String addressList2 = "DB100.18";
@@ -156,7 +160,9 @@
                }
              }
            }
            else{
              log.info("AutomaticParameterSetting is closed");
            }
          }
        }
springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
@@ -2,13 +2,15 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PLCManualJog extends Thread {
@@ -51,12 +53,12 @@
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualJog");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
//      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog");
                    if (webserver != null) {
                    if (webserver != null&&webserver.session.isOpen()) {
                        webserver.sendMessage(jsonObject.toString());
                        List<String> messages = webserver.getMessages();
                        if (!messages.isEmpty()) {
@@ -101,6 +103,8 @@
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("ManualJog is closed");
                    }
                }
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -36,8 +36,9 @@
      // 根据玻璃id获取订单号,单独数据源
      
      // try {
      //   spianService.selectAll(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("X12345610102GV","",""));
      //   //spianService.selectAll(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("X12345610102GV","",""));
      //   north_glass_buffer1 aa=jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("X12345610102GV","","");
      //   spianMapper.UpdataAddCage2("123", "123", aa, 5, 1, 9, 2,2000.00);
      // } catch (SQLException e) {
      //   // TODO Auto-generated catch block
      //   e.printStackTrace();
@@ -204,7 +205,7 @@
        }
      }
      System.out.println(spianService.result);
      // System.out.println(spianService.result);
      // 查询数据库
      // 推送到前端
springboot-vue3/src/main/java/com/example/springboot/component/PlcInteractionState.java
@@ -2,12 +2,13 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PlcInteractionState extends Thread {
    private Configuration config;
@@ -89,7 +90,12 @@
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("InteractionState");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if(webserver!=null&&webserver.session.isOpen()){
                            webserver.sendMessage(jsonObject.toString());
                        }else{
                            log.info("InteractionState is closed");
                        }
                    }
                }
springboot-vue3/src/main/java/com/example/springboot/component/PlcLayout.java
@@ -2,6 +2,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.sql.SQLException;
@@ -20,6 +21,7 @@
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.SpianMapper;
@Slf4j
public class PlcLayout extends Thread {
    @Autowired
@@ -89,17 +91,18 @@
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Layout");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if (webserver != null) {
                        if (webserver != null&& webserver.session.isOpen()) {
                            webserver.sendMessage(jsonObject.toString());
                            List<String> messages = webserver.getMessages();
                            if (!messages.isEmpty()) {
                                // // 将最后一个消息转换为整数类型的列表
                                webserver.clearMessages();
                            }
                        }else{
                            log.info("Layout is closed");
                        }
                    }
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -2,13 +2,15 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PlcManualonePosition extends Thread {
    private Configuration config;
@@ -184,10 +186,11 @@
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
//      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition");
                    if (webserver != null) {
                    if (webserver != null&&webserver.session.isOpen()) {
                        webserver.sendMessage(jsonObject.toString());
                        List<String> messages = webserver.getMessages();
@@ -238,6 +241,8 @@
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("ManualonePosition is closed");
                    }
                }
            }
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
@@ -2,13 +2,15 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PlcManualonePosition2 extends Thread {
    private Configuration config;
@@ -165,10 +167,11 @@
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
//      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
                    if (webserver != null) {
                    if (webserver != null&&webserver.session.isOpen()) {
                        webserver.sendMessage(jsonObject.toString());
                        List<String> messages = webserver.getMessages();
                        List<String> waddresses1 = new ArrayList<>();
                        waddresses1.add("DB100.116");
@@ -208,6 +211,8 @@
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("ManualonePosition2 is closed");
                    }
                }
            }
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -2,6 +2,8 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import com.example.springboot.controller.HomeController;
import com.example.springboot.mapper.HomeMapper;
import org.apache.commons.io.FileUtils;
@@ -14,6 +16,7 @@
import java.util.Collections;
import java.util.List;
@Slf4j
public class PlcParameter2 extends Thread {
    @Autowired
    StorageCageService storageCageService;
@@ -115,10 +118,10 @@
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if (webserver != null) {
                        if (webserver != null&&webserver.session.isOpen()) {
                            webserver.sendMessage(jsonObject.toString());
                            List<String> messages = webserver.getMessages();
                            if (!messages.isEmpty()) {
@@ -269,6 +272,8 @@
                                // 清空消息列表
                                webserver.clearMessages();
                            }
                        }else{
                            log.info("Parameter2 is closed");
                        }
                    }
                }
springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
@@ -2,6 +2,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@@ -15,6 +16,8 @@
import java.io.UnsupportedEncodingException;
import org.apache.commons.io.FileUtils;
@Slf4j
public class PlcPositioning1 extends Thread {
@@ -65,9 +68,10 @@
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Positioning1");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
                    if (webserver != null) {
                    if (webserver != null&&webserver.session.isOpen()) {
                        webserver.sendMessage(jsonObject.toString());
                        List<String> messages = webserver.getMessages();
                        // 存片格 出片格地址
@@ -106,6 +110,8 @@
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("Positioning1 is closed");
                    }
                }
springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
@@ -2,6 +2,8 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import com.google.common.primitives.Bytes;
import org.apache.commons.io.FileUtils;
@@ -9,7 +11,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PlcServoManualone extends Thread {
    // 用于存储应用程序的配置信息
@@ -230,9 +232,10 @@
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if (webserver != null) {
                        if (webserver != null&&webserver.session.isOpen()) {
                            webserver.sendMessage(jsonObject.toString());
                            List<String> messages = webserver.getMessages();
                            if (!messages.isEmpty()) {
@@ -270,6 +273,8 @@
                                // 清空消息列表
                                webserver.clearMessages();
                            }
                        }else{
                            log.info("ServoManualone is closed");
                        }
                    }
                }
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -2,6 +2,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.FileInputStream;
@@ -15,6 +16,7 @@
import com.example.springboot.mapper.AlarmMapper;
@Slf4j
public class Plcalarm extends Thread {
  private AlarmMapper alarmMapper;
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,31 +1,25 @@
package com.example.springboot.component;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.example.springboot.service.*;
import org.apache.ibatis.annotations.Result;
import org.springframework.beans.factory.annotation.Autowired;
import com.example.springboot.entity.Glass;
import com.example.springboot.entity.Out_slice;
import com.example.springboot.entity.Queue;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.entity.device.PlcParameterObject;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.SpianMapper;
@Slf4j
public class Plchome extends Thread {
    @Autowired
@@ -39,11 +33,11 @@
    public static Boolean isAllowQueue = true;
    public static Boolean isAllowReordering = true;
    // 出片队列警告
    public static Boolean isQueueWarning = true;
    public static Boolean isQueueWarning = false;
    // 铝框id
    public static String FrameNo = "";
    // 是否需要手动确认玻璃
    public static Boolean isConfirm = false;
    public static Boolean isConfirm = true;
    // 待确认的出片队列
    public static List<north_glass_buffer1> AluminumFrame;
@@ -64,6 +58,7 @@
    @Override
    public void run() {
        while (this != null) {
            Short zhi = 0;
            JSONObject jsonObject = new JSONObject();
            jsonObject.append("feedglassid", feedglassid);
            try {
@@ -77,6 +72,41 @@
                        .getBean(North_Glass_Buffer1Service.class);
                storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
                dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
                boolean dbconnected = false;
                try {
                    dbserve.getConn();
                    dbconnected = true;
                } catch (Exception e) {
                    e.printStackTrace();
                    dbconnected = false;
                }
                log.info("dbconnected:"+dbconnected);
                jsonObject.append("dbconnected", dbconnected);
                // // 获取当前扫码枪玻璃id
                // String CurrrentGlassId = "X22595911002GV";
                // if (CurrrentGlassId.toString() != "" && CurrrentGlassId.toString() != null) {
                // north_glass_buffer1 form6 =
                // dbserve.SelectGlassByGlassIdOrderIdFrameIdouts(CurrrentGlassId, "",
                // "");
                // if (form6.getbarcode() != null) {
                // jsonObject.append("form6", form6);
                // double width = 0;
                // double height = 0;
                // if (form6.getglassheightmm() < form6.getglasslengthmm()) {
                // height = form6.getglassheightmm();
                // width = form6.getglasslengthmm();
                // } else {
                // height = form6.getglasslengthmm();
                // width = form6.getglassheightmm();
                // }
                // if (height < 380 || width < 380 || height > 1810 || width > 2760) {
                // zhi = 600;
                // } else {
                // zhi = spianService.selectAlls(form6);
                // }
                // }
                // }
                // 笼子使用情况
                List<StorageCage> tableData = homeMapper.selectAll();
@@ -134,16 +164,18 @@
                if (S7control.getinstance().CheckConnected() == true) {
                    // 铝框线交互
                    if (S7controlLK.getinstance().CheckConnected() == true) {
                        if (CurrentFrame != null) {
                    // if (S7controlLK.getinstance().CheckConnected() == true) {
                        // E02玻璃id
                        String E02id = S7controlLK.getinstance().readStrings("DB17.40");
                        // log.info("E02id"+E02id);
                        outSliceServive.FrameStateUpdate(E02id);
                        if (CurrentFrame.getBarCode() != null) {
                            S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0");
                        }
                        String E01id = S7controlLK.getinstance().readStrings("DB17.0");
                        String J01id = S7controlLK.getinstance().readStrings("DB17.22");
                        List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1);
                        List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1);
                        Short framerequest = liststate.get(0);
                        // log.info("liststate:" + liststate);
                        if (framerequest == 1) {
                            // 铝框id
                            String position;
@@ -156,13 +188,25 @@
                            }
                            Short send;
                            if (position.equals("0")) {
                                send = 0;
                                send = 2;
                            } else {
                                send = 1;
                            }
                            if (J01id != null) {
                                int barcodeState = spianMapper.SelectOverState(J01id);// 获取该铝框的状态
                                if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
                                    spianMapper.DeleteQueue(J01id);
                                    // log.info("deleteoutslice:" + J01id);
                                }
                            }
                            S7controlLK.getinstance().WriteWord("DB17.38", (short) send);
                        }
                    }
                        String E01id = S7controlLK.getinstance().readStrings("DB17.0");
                        // log.info("frameno:" + E01id);
                        List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1);
                        // log.info("frameflip:" + liststates);
                    // }
                    // 获取当前扫码方式
                    List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1);
@@ -173,6 +217,28 @@
                    }
                    // 获取当前扫码枪玻璃id
                    String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString();
                    if (CurrrentGlassId.toString() != "" && CurrrentGlassId.toString() != null) {
                        north_glass_buffer1 form6 = dbserve.SelectGlassByGlassIdOrderIdFrameIdouts(CurrrentGlassId, "",
                                "");
                        if (form6.getbarcode() != null) {
                            jsonObject.append("form6", form6);
                            double width = 0;
                            double height = 0;
                            if (form6.getglassheightmm() < form6.getglasslengthmm()) {
                                height = form6.getglassheightmm();
                                width = form6.getglasslengthmm();
                            } else {
                                height = form6.getglasslengthmm();
                                width = form6.getglassheightmm();
                            }
                            if (height < 380 || width < 380 || height > 1810 || width > 2760) {
                                zhi = 600;
                            } else {
                                zhi = spianService.selectAlls(form6);
                            }
                        }
                    }
                    jsonObject.append("CurrrentGlassId", CurrrentGlassId);
                    // 获取D01-D06,A01,A02,B01,B02状态
@@ -287,42 +353,30 @@
                            width = form3.getglassheight();
                        }
                        if (height < 380 || width < 380 || height > 1810 || width > 2760) {
                            FeedState = true;
                            jsonObject.append("FeedState", FeedState);
                            FeedState = false;
                            zhi = 600;
                        } else {
                            if (D01RequestState == true && D01ResponseState != true) {
                                storageCageService.InsertQueueGlassId((short) 1, form3);
                                zhi = storageCageService.InsertQueueGlassIds((short) 1, form3);
                            }
                        }
                    }
                }
                boolean dbconnected = false;
                try {
                    dbserve.getConn();
                    dbconnected = true;
                } catch (Exception e) {
                    // TODO: handle exception
                    dbconnected = false;
                }
                jsonObject.append("dbconnected", dbconnected);
                jsonObject.append("zhi", zhi);
                // jsonObject.append("params", new short[] { 30, 40, });
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if (webserver != null) {
                        if (webserver != null && webserver.session.isOpen()) {
                            webserver.sendMessage(jsonObject.toString());
                            List<String> messages = webserver.getMessages();
                            if (!messages.isEmpty()) {
                                // // 将最后一个消息转换为整数类型的列表
                                webserver.clearMessages();
                            }
                        } else {
                            log.info("Home is closed");
                        }
                    }
                }
            } catch (InterruptedException | SQLException e) {
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -2,6 +2,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.FileInputStream;
@@ -13,6 +14,7 @@
import java.util.List;
import java.util.Arrays;
@Slf4j
public class Plcsign extends Thread {
  String name = "";
  Integer count = 0;
@@ -100,7 +102,12 @@
          ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Sign");
          if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
              webserver.sendMessage(jsonObject.toString());
              if (webserver != null && webserver.session.isOpen()) {
                webserver.sendMessage(jsonObject.toString());
              }else{
                log.info("Sign is closed");
              }
            }
          }
        }
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
@@ -2,6 +2,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.FileInputStream;
@@ -13,6 +14,7 @@
import java.util.List;
import java.util.Arrays;
@Slf4j
public class Plcstate extends Thread {
  String name = "";
  Integer count = 0;
@@ -87,7 +89,11 @@
          ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("State");
          if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
              webserver.sendMessage(jsonObject.toString());
              if (webserver != null && webserver.session.isOpen()) {
                webserver.sendMessage(jsonObject.toString());
              }else{
                log.info("State连接已关闭");
              }
            }
          }
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -31,5 +31,6 @@
         new PlcServoManualone().start();
         new PLCManualJog().start();
         new PlcInteractionState().start();
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -178,7 +178,7 @@
    Map<String, Object> map = new HashMap<>();
    Out_slice result = homeMapper.SelectQueueByglassid(glassid);
    if (result == null) {
      north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(glassid, "", "");
      north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdout(glassid, "", "");
      String flip = jdbcConnections.SelectFlipByFrameBarcode(north_glass_buffer1.getFrameBarcode());
      if (flip != null&&flip != "") {
springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java
@@ -20,6 +20,7 @@
    private int framestate;//铝框状态
    private double framewidthmm;
    private double frameheightmm;
    private String cell;//格子号
    public String getPosition() {
        return position;
@@ -197,4 +198,12 @@
        this.frameheightmm = frameheightmm;
    }
    public String getCell() {
        return cell;
    }
    public void setCell(String cell) {
        this.cell = cell;
    }
}
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -139,7 +139,7 @@
  north_glass_buffer1 SelectBoxNo(String glassid);
  //查询出片队列信息
  @Select("select * from out_slice order by sequence")
  @Select("select a.*,b.cell from out_slice a left join storage_cage b on a.glassId=b.glass_id order by sequence")
  List<Out_slice> SelectProductionqueue();
  //根据玻璃id查询笼内玻璃信息
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -55,7 +55,7 @@
    // desc,tier desc,cell desc LIMIT 1")
    // StorageCage selectOut(String orderId);
    // 按玻璃ID出片任务查询
    @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcId,id from storage_cage as a where a.glass_id=#{glassid} and state=1 and disabled=0 order by cage desc,tier desc,cell desc LIMIT 1")
    @Select("select cage,cell,tier,glasswidth,glassheight,ROUND(id/2)as prcId,id from storage_cage as a where a.glass_id=#{glassid} and state=1 and disabled=0 order by cage desc,tier desc,cell desc LIMIT 1")
    StorageCage selectOut2(String glassid);
    // 判断出片为1时,是否可直接出片
@@ -78,7 +78,7 @@
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where id=#{id};")
    void UpdataAddCage(String orderid, String glassid, double width, int cage, int cell, int id, int state);
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.frameBarcode} where id=#{id};")
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{widths},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.frameBarcode} where id=#{id};")
    void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,int state,Double widths);
    // 修改笼子信息(多片进片)
@@ -216,7 +216,7 @@
    String SelectBarcode(String glassId);
    // 获取出片队列的铝框是否全部完成
    @Select("select count(*) from out_slice where barcode=#{barcode} and (state=1 or state=0 or state=3);")
    @Select("select count(*) from out_slice where barcode=#{barcode} and (state=1 or state=0);")
    int SelectOverState(String barcode);
    // 删除出片队列该铝框的id
springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -18,7 +18,7 @@
     * 数据库连接参数
     * driver,url,username,password
     */
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/canadames";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "beibo.123/";
@@ -42,6 +42,64 @@
    }
    public  north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameId(String glassid,String orderid,String frameid) throws SQLException {
        Connection conn = getConn();
        north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1();
        String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?";
         ps = conn.prepareStatement(sql);
         ps.setString(1, glassid);
         ps.setString(2, orderid);
         ps.setString(3, frameid);
         ResultSet rs= ps.executeQuery();
         while (rs.next()) {
            north_glass_buffer1s.setId(rs.getInt("Id"));
            north_glass_buffer1s.setordernumber(rs.getString("ordernumber"));
            north_glass_buffer1s.setlistnumber(rs.getString("listnumber"));
            north_glass_buffer1s.setboxnumber(rs.getString("boxnumber"));
            north_glass_buffer1s.setbarcode(rs.getString("barcode"));
            north_glass_buffer1s.setglasslength(rs.getDouble("glasslength"));
            north_glass_buffer1s.setglassheight(rs.getDouble("glassheight"));
            north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm"));
            north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm"));
            north_glass_buffer1s.setitemtype(rs.getString("itemtype"));
            north_glass_buffer1s.setslotnumber(rs.getString("slotnumber"));
            north_glass_buffer1s.setdatemodified(rs.getString("datemodified"));
            north_glass_buffer1s.setdatecreated(rs.getString("datecreated"));
            north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode"));
         }
         conn.close();
         return north_glass_buffer1s;
    }
    public  north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdout(String glassid,String orderid,String frameid) throws SQLException {
        Connection conn = getConn();
        north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1();
        String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?";
         ps = conn.prepareStatement(sql);
         ps.setString(1, glassid);
         ps.setString(2, orderid);
         ps.setString(3, frameid);
         ResultSet rs= ps.executeQuery();
         while (rs.next()) {
            north_glass_buffer1s.setId(rs.getInt("Id"));
            north_glass_buffer1s.setordernumber(rs.getString("ordernumber"));
            north_glass_buffer1s.setlistnumber(rs.getString("listnumber"));
            north_glass_buffer1s.setboxnumber(rs.getString("boxnumber"));
            north_glass_buffer1s.setbarcode(rs.getString("barcode"));
            north_glass_buffer1s.setglasslength(rs.getDouble("glasslength"));
            north_glass_buffer1s.setglassheight(rs.getDouble("glassheight"));
            north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm"));
            north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm"));
            north_glass_buffer1s.setitemtype(rs.getString("itemtype"));
            north_glass_buffer1s.setslotnumber(rs.getString("slotnumber"));
            north_glass_buffer1s.setdatemodified(rs.getString("datemodified"));
            north_glass_buffer1s.setdatecreated(rs.getString("datecreated"));
            north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode"));
         }
         conn.close();
         return north_glass_buffer1s;
    }
    public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdouts(String glassid,String orderid,String frameid) throws SQLException {
        Connection conn = getConn();
        north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1();
        String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?";
@@ -286,8 +344,8 @@
     */
    public static Connection getConn() throws SQLException {
        Connection conn = null;
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", "root", "beibo.123/");
        // conn = DriverManager.getConnection("jdbc:mysql://192.168.102.9:3306/production?serverTimezone=GMT%2B8&characterEncoding=utf-8", "northglass", "n0rthgla55");
        // conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", "root", "beibo.123/");
        conn = DriverManager.getConnection("jdbc:mysql://192.168.102.9:3306/production?serverTimezone=GMT%2B8&characterEncoding=utf-8&usessl=false", "northglass", "n0rthgla55");
        return conn;
    }
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -15,6 +15,7 @@
import com.example.springboot.component.S7control;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.SpianMapper;
import com.google.common.primitives.Bytes;
@@ -22,6 +23,8 @@
public class SpianService {
    @Autowired
    private SpianMapper spianMapper;
    @Autowired
    private HomeMapper homeMapper;
    public static List<String> result=new ArrayList<String>();
    // @GetMapping("/all")
    public Short selectAll(north_glass_buffer1 glasslist) {
@@ -195,7 +198,7 @@
        int cages;
        int cells;
        double glasswidth = cageout.getGlassWidth();
        // 判断玻璃内外片
        if (tier == 2) {
            int state = spianMapper.selectGlassState(cage, cell);// 获取格子数量
@@ -411,13 +414,94 @@
        spianMapper.UpdateCageadd(glassid.toString(), 1);// 更改笼子表进片状态
        String barcode = spianMapper.SelectBarcode(glassid.toString());// 获取该玻璃的铝框id
        spianMapper.UpdateAddQueue(glassid.toString());// 把进片的玻璃更新到出片队列中
        // if (barcode != null) {
        // int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态
        // if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
        // spianMapper.DeleteQueue(barcode);
        // }
        // }
    }
    public Short selectAlls(north_glass_buffer1 glasslist) {
        try {
            int cage1 = 0;
            int cells;
            int ids;
            int prcid;
            int tiers;
            int prctier;
            double width;
            double minwidth = 0;
            double widths;
            // north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 获取玻璃参数
            // 如果没有此id时
            if (glasslist == null) {
                return (300);
            }
            //判断是否存在笼子里
            short result = homeMapper.SelectStorageByGlassId(glasslist.getbarcode());
            if (result > 0) {
                return (500);
            }
            if(glasslist.getglasslengthmm()>glasslist.getglassheightmm()) {
                widths= glasslist.getglasslengthmm();
            }else{
                widths= glasslist.getglassheightmm();
            }
            // Map result=new HashMap();
            String orderids = glasslist.getordernumber();
            String FrameBarcode = glasslist.getFrameBarcode();
            String glassid = glasslist.getbarcode();
            // String orderid="A001";
            // 获取铝框相关度最高的笼子排序
            List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode, widths, 400);
            // 判断铝框指定空格是否需要间隔空间
            if (storageCage.size() == 0) {
                storageCage = spianMapper.selectAll(orderids, FrameBarcode);
            }
            if (storageCage == null) {
                return (400);
            }
            for (StorageCage storageCage2 : storageCage) {
                // 保存订单优先顺序笼子号
                cage1 = storageCage2.getCage();
                // 判断该笼子号相邻最大的空格数
                StorageCage cages = spianMapper.selectCage(cage1);
                // 如果相邻笼子没有空格,或者有正在执行的出片任务时返回400
                if (cages == null) {
                    return (400);
                }
                StorageCage cages1;
                // 判断是否是第二片需要加间隔物
                prctier = spianMapper.selectsum(cage1, storageCage2.getCell());// 传给prc的格子内玻璃数
                if (prctier > 0) {
                    cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths + 400);
                } else {
                    cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths);
                }
                // 判断选中笼子是否有合适宽度空格
                // 有合适空格时进片
                if (cages1 != null && cages.getCell() >= 1 && storageCage2.getDisabled() == 0) {
                    return (0);
                }
            }
            return (400);
        } catch (Exception e) {
            e.printStackTrace();
            return (500);
            // TODO: handle exception
        }
        }
}
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -18,6 +18,8 @@
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.mapper.HomeMapper;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
public class StorageCageService {
    @Autowired
@@ -57,6 +59,7 @@
                    ClearGlassId("DB101.10.3");
                    outSliceServive.StopTask(storageTask.getGlassId(), types);
                }
                log.info("stopfeedid:"+storageTask.getGlassId()+"D02id:"+D02glassid+"devicestate:"+DeviceList.get(1));
                if (storageTask.getGlassId().equals(D02glassid) && DeviceList.get(1) == 0) {
                    ClearGlassId("DB101.9.3");
                    outSliceServive.StopTask(storageTask.getGlassId(), types);
@@ -195,7 +198,7 @@
        Short zhi = 200;
        short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
        if (result > 0) {
            map.put("message", "300");
            map.put("message", "500");
        } else {
            if (id == 1) {
                // 调用伍存储过程
@@ -213,4 +216,29 @@
        return Result.success(map);
    }
    public Short InsertQueueGlassIds(Short id, Queue queue) throws SQLException {
        Map<String, Object> map = new HashMap<>();
        Short zhi = 0;
        short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
        if (result > 0) {
            zhi=500;
            map.put("message", "500");
        } else {
            if (id == 1) {
                // 调用伍存储过程
                north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queue.getglassId(), "", "");
                zhi = spianService.selectAll(north_glass_buffer1);
                if (zhi == 200) {
                    homeMapper.InsertQueueGlassId(queue, id);
                }
            }
            map.put("message", zhi);
        }
        if (zhi != 200) {
            Plchome.FeedState = true;
        }
        return zhi;
    }
}