严智鑫
2024-03-19 eb87cabfb1b88e0c1bd7ebf091eef5369c7729ad
文件导入功能+页面
7个文件已修改
437 ■■■■ 已修改文件
Albania_Mes-ui/package-lock.json 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/package.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/home/index.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/package-lock.json
@@ -19,7 +19,8 @@
        "moment": "^2.29.4",
        "vue": "^2.6.11",
        "vue-i18n": "^8.26.5",
        "vue-router": "^3.3.4"
        "vue-router": "^3.3.4",
        "xlsx": "^0.18.5"
      },
      "devDependencies": {
        "@vue/cli-plugin-babel": "~4.5.0",
@@ -2599,6 +2600,14 @@
        "node": ">= 0.12.0"
      }
    },
    "node_modules/adler-32": {
      "version": "1.3.1",
      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/aggregate-error": {
      "version": "3.1.0",
      "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz",
@@ -3681,6 +3690,18 @@
      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
      "dev": true
    },
    "node_modules/cfb": {
      "version": "1.2.2",
      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
      "dependencies": {
        "adler-32": "~1.3.0",
        "crc-32": "~1.2.0"
      },
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/chalk": {
      "version": "2.4.2",
      "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
@@ -4076,6 +4097,14 @@
      },
      "engines": {
        "node": ">= 4.0"
      }
    },
    "node_modules/codepage": {
      "version": "1.15.0",
      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/collection-visit": {
@@ -4574,6 +4603,17 @@
      },
      "engines": {
        "node": ">=4"
      }
    },
    "node_modules/crc-32": {
      "version": "1.2.2",
      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
      "bin": {
        "crc32": "bin/crc32.njs"
      },
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/create-ecdh": {
@@ -6639,6 +6679,14 @@
      "dev": true,
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/frac": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/fragment-cache": {
@@ -12023,6 +12071,17 @@
      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
      "dev": true
    },
    "node_modules/ssf": {
      "version": "0.11.2",
      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
      "dependencies": {
        "frac": "~1.1.2"
      },
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/sshpk": {
      "version": "1.16.1",
      "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -14148,6 +14207,22 @@
      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
      "dev": true
    },
    "node_modules/wmf": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/word": {
      "version": "0.3.0",
      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/word-wrap": {
      "version": "1.2.3",
      "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
@@ -14233,6 +14308,26 @@
      "dev": true,
      "dependencies": {
        "async-limiter": "~1.0.0"
      }
    },
    "node_modules/xlsx": {
      "version": "0.18.5",
      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
      "dependencies": {
        "adler-32": "~1.3.0",
        "cfb": "~1.2.1",
        "codepage": "~1.15.0",
        "crc-32": "~1.2.1",
        "ssf": "~0.11.2",
        "wmf": "~1.0.1",
        "word": "~0.3.0"
      },
      "bin": {
        "xlsx": "bin/xlsx.njs"
      },
      "engines": {
        "node": ">=0.8"
      }
    },
    "node_modules/xtend": {
@@ -16544,6 +16639,11 @@
      "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
      "dev": true
    },
    "adler-32": {
      "version": "1.3.1",
      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
    },
    "aggregate-error": {
      "version": "3.1.0",
      "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz",
@@ -17474,6 +17574,15 @@
      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
      "dev": true
    },
    "cfb": {
      "version": "1.2.2",
      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
      "requires": {
        "adler-32": "~1.3.0",
        "crc-32": "~1.2.0"
      }
    },
    "chalk": {
      "version": "2.4.2",
      "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
@@ -17792,6 +17901,11 @@
        "chalk": "^2.4.1",
        "q": "^1.1.2"
      }
    },
    "codepage": {
      "version": "1.15.0",
      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
    },
    "collection-visit": {
      "version": "1.0.0",
@@ -18210,6 +18324,11 @@
          }
        }
      }
    },
    "crc-32": {
      "version": "1.2.2",
      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
    },
    "create-ecdh": {
      "version": "4.0.4",
@@ -19903,6 +20022,11 @@
      "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
      "dev": true
    },
    "frac": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
    },
    "fragment-cache": {
      "version": "0.2.1",
@@ -24371,6 +24495,14 @@
      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
      "dev": true
    },
    "ssf": {
      "version": "0.11.2",
      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
      "requires": {
        "frac": "~1.1.2"
      }
    },
    "sshpk": {
      "version": "1.16.1",
      "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -26092,6 +26224,16 @@
      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
      "dev": true
    },
    "wmf": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
    },
    "word": {
      "version": "0.3.0",
      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
    },
    "word-wrap": {
      "version": "1.2.3",
      "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
@@ -26166,6 +26308,20 @@
        "async-limiter": "~1.0.0"
      }
    },
    "xlsx": {
      "version": "0.18.5",
      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
      "requires": {
        "adler-32": "~1.3.0",
        "cfb": "~1.2.1",
        "codepage": "~1.15.0",
        "crc-32": "~1.2.1",
        "ssf": "~0.11.2",
        "wmf": "~1.0.1",
        "word": "~0.3.0"
      }
    },
    "xtend": {
      "version": "4.0.2",
      "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
Albania_Mes-ui/package.json
@@ -19,7 +19,8 @@
    "moment": "^2.29.4",
    "vue": "^2.6.11",
    "vue-i18n": "^8.26.5",
    "vue-router": "^3.3.4"
    "vue-router": "^3.3.4",
    "xlsx": "^0.18.5"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
@@ -49,4 +50,4 @@
    "last 2 versions",
    "not dead"
  ]
}
}
Albania_Mes-ui/src/views/home/index.vue
@@ -237,6 +237,74 @@
    height: 15px;
    position: absolute;
}
/*
*/
#fileinput .container {
  width: 800px;
  margin: 0 auto;
}
#fileinput .header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}
#fileinput table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid;
}
#fileinput tr,
#fileinput th,
#fileinput td {
  border: 1px solid #000;
  padding: 5px;
}
#fileinput button {
  border: none;
  padding: 5px;
  background-color: #00a297;
  color: #fff;
  border-radius: 5px;
  cursor: pointer;
  margin: 0 5px;
}
#fileinput tr:nth-child(2n) {
  background-color: #dcdcdc;
}
#fileinput .hide {
  display: none;
}
#fileinput .c1 {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, .5);
  z-index: 2;
}
#fileinput .c2 {
  background-color: white;
  position: fixed;
  width: 400px;
  height: 300px;
  top: 50%;
  left: 50%;
  z-index: 3;
  margin-top: -150px;
  margin-left: -200px;
}
</style>
<template>
    <el-container>
@@ -253,20 +321,20 @@
            </div>
            <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
                <el-button type="primary" @click="showform(1)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                    {{ $t('Import order') }}</el-button>
                <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                    {{ $t('Measure') }}</el-button>
                <el-button type="primary" @click="showform(3)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                    {{ $t('StorageCage') }}</el-button>
                <el-button type="primary" @click="showform(4)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
                    :class="SoftEmergencyStopState == true ? 'hide' : ''" style="z-index: 999;">
                    :class="SoftEmergencyStopState == true ? 'hide' : ''">
                    {{ $t('Task queue') }}</el-button>
            </div>
            <div style="display: flex;align-items: center;">
                <div class="blocks" style="position: relative;width: 100%;">
@@ -325,6 +393,60 @@
        </el-main>
        <el-dialog :visible.sync="Importorder" :title="$t('Import order')" top="5vh">
            <!--文件导入数据页面-->
            <div id="fileinput" class="container">
                <div class="header">
                    <div class="btn">
                        <button @click="AllAdd">保存</button>
                    </div>
                    <div class="inp">
                        <input type="file" id="uploadExcel" multiple @change="Change" />
                    </div>
                </div>
                <table id="table">
                    <thead>
                        <tr>
                            <th>Customer</th>
                            <th>order</th>
                            <th>base</th>
                            <th>height</th>
                            <th>thickness</th>
                            <th>films</th>
                            <th>quantity</th>
                            <th>tier</th>
                            <th>matching</th>
                            <th>glasstype</th>
                            <th>productname</th>
                        </tr>
                    </thead>
                    <tbody style="text-align: center">
                        <tr v-for="item in dataList" :key="item.id">
                            <!-- <td>{{ item[0] }}</td>
                            <td>{{ item[1] }}</td>
                            <td>{{ item[2] }}</td>
                            <td>{{ item[3] }}</td>
                            <td>{{ item[4] }}</td>
                            <td>{{ item[5] }}</td>
                            <td>{{ item[6] }}</td>
                            <td>{{ item[7] }}</td>
                            <td>{{ item[8] }}</td>
                            <td>{{ item[9] }}</td>
                            <td>{{ item[10] }}</td> -->
                            <td>{{ item.Customer }}</td>
                            <td>{{ item.order }}</td>
                            <td>{{ item.base }}</td>
                            <td>{{ item.height }}</td>
                            <td>{{ item.thickness }}</td>
                            <td>{{ item.films }}</td>
                            <td>{{ item.quantity }}</td>
                            <td>{{ item.tier }}</td>
                            <td>{{ item.matching}}</td>
                            <td>{{ item.glasstype }}</td>
                            <td>{{ item.productname }}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </el-dialog>
        <el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--测量页面-->
@@ -332,16 +454,19 @@
            <div>
                <!--功能-->
                <div>
                        <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState" style="z-index: 999;">
                    人工匹配</el-button>
                    <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">人工匹配</el-button>
                    <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">人工匹配</el-button>
                </div>
                <!--显示-->
                <div style="width:100%;height: 600px;border: 1px solid black;">
                    <!--玻璃图-->
                    <div
                        style="top:0;bottom: 0;left: 0;right: 0;margin: auto;position:absolute;width: 100px;height: 200px;background-color: aqua;line-height: 200px;text-align: center;">
                        100*200
                <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;margin: auto auto;">
                    <!--玻璃图  #81b337-->
                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin: auto;position:absolute;width:'
                + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
                + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
                + (this.LastQueue.glassheight / 25 * 7) + 'px;background-color: #93d2f3;text-align: center;'">
                        {{ this.LastQueue.glasswidth }}*{{ this.LastQueue.glassheight }}
                    </div>
                </div>
@@ -410,7 +535,7 @@
                </el-table-column>
                <el-table-column prop="state" :label="$t('Task State')">
                    <template slot-scope='scope'>
                        {{ scope.row.state >= 0?scope.row.state == 0 ? $t('Start') : $t('Stop'):"" }}
                        {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Start') : $t('Stop') : "" }}
                    </template>
                </el-table-column>
                <el-table-column prop="method" :label="$t('Task Method')">
@@ -476,12 +601,14 @@
} from "../../api/home";
import LanguageMixin from '../../lang/LanguageMixin'
import LanguageMixin from '../../lang/LanguageMixin';
import * as XLSX from "../../../node_modules/xlsx/xlsx.mjs";
let socket;
export default {
    name: "Home",
    data() {
        return {
            dataList: [],
            tableData1: [],
            Measuermode: false,
            confirm1: false,
@@ -576,7 +703,8 @@
            DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            GlassIdList: [],
            Scanningmethod: true,
            CurrrentGlassId: ""
            CurrrentGlassId: "",
            LastQueue: {}
        };
    },
    created() {
@@ -639,6 +767,7 @@
                    this.alarm = obj.alarmmg[0];
                    this.tableData1 = obj.OrderTask[0];
                    this.LastQueue = obj.LastQueue[0];
                    //是否允许出片
@@ -736,7 +865,7 @@
                UpdateQueue(this.StorageCageAddInfo[index]).then(res => {
                    if (res.data.message == 200) {
                        this.$message.success(this.$t('Operation successful'));
                    }else{
                    } else {
                        this.$message.error(this.$t('Operation failed'));
                    }
                });
@@ -854,9 +983,53 @@
        },
        //人工匹配
        ManualMatching() {
            this.StorageCageAdd=true;
            this.StorageCageAdd = true;
        },
        //人工拿走
        ManualTake() {
        },
        Change(event) {
            // 获取到文件夹
            let fileList = event.target.files;
            // 如果数据不为空
            if (fileList) {
                // FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件。
                let reader = new FileReader();
                let file = fileList[0]; //拿到第一条数据
                reader.readAsBinaryString(file)// 将文件以二进制形式读入页面
                let _this = this //把data里的数据赋值给新的变量
                // wb:wordbook 工作表
                reader.addEventListener("load", function (e) {
                    var data = e.target.result; //读取成功后result中的数据
                    var wb = XLSX.read(data, { type: "binary" });
                    let sheetName = wb.SheetNames[0]; //是获取Sheets中第一个Sheet的名字
                    let sheets = wb.Sheets[sheetName];
                    let dataList2 = JSON.stringify(XLSX.utils.sheet_to_json(sheets));
                    let dataList3 = (JSON.parse(dataList2));
                    _this.dataList = dataList3;//赋值
                    //console.log(dataList2);
                    console.log(dataList3);
                })
            }
        },
        Add() {
        },
        Hide() {
        },
        AllAdd() {
            //添加数据进后台
            console.log(this.dataList);
        },
        del() {
        }
    }
}
</script>
springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
@@ -1,7 +1,5 @@
package com.example.springboot;
import com.example.springboot.common.MessageSender;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -120,20 +120,11 @@
                //double width=plcmes.getPlcParameter("Height").getValue();//宽
                //double height=plcmes.getPlcParameter("width").getValue();//高
                //获取测量的长,宽
                String url="C:\\Users\\SNG-ZDH-012\\Desktop\\阿尔巴尼亚数据要求.xlsx";
                //List typecount= HomeService.ReadExecl2(s);
                // List xiaopian=HomeService.ReadExecl2(s);
                // //xiaopian   NG1{A:10,B20}   NG2{A:5,B5}
                // for(Object C:xiaopian){
                //     //看层数
                // }
                // for(int i=0;i<result.size();i++){
                //     System.out.println(result.get(i));
                // }
                //List result= HomeService.ReadExecl(url);
                //String url="C:\\Users\\SNG-ZDH-012\\Desktop\\阿尔巴尼亚数据要求.xlsx";E:\
                //String url="E:\\阿尔巴尼亚数据要求.xlsx";
                // List result= HomeService.ReadExecl(url);
                // for(int i=0;i<result.size();i++){
                //     System.out.println(result.get(i));
                // }
@@ -146,12 +137,15 @@
                
                //匹配
                if ("1".equals(PlcRequest)) {
                    boolean Result=HomeService.Normal(width, height, "1");
                    GlassInfo MesureGlassinfo=HomeService.Normal(width, height, "1");
                }
                Queue LastQueue= QueueMapper.selectLastQueue();
                // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
                jsonObject.append("LastQueue", LastQueue);
                //查询理片笼信息
                List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                jsonObject.append("StorageCageInfo", StorageCageInfo);
springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
@@ -17,6 +17,12 @@
    @Select("SELECT * FROM queue where glassid=#{glassid}")
    List<Queue> selectQueues(@Param("glassid") int glassid);
    @Select("SELECT * FROM queue order by time asc limit 1")
    Queue selectLastQueue();
    @Select("SELECT * FROM queue where state<=0")
    List<Queue> selectErrorQueues();
    // @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
    // boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
@@ -27,9 +33,9 @@
    @Insert("insert into queue (glassid,flowcard,listid,boxid,glasswidth,glassheight,glasswidthmm,glassheightmm,glasstype,state,time) "+
                        "select glassid,flowcard,null,null,width,height,#{glasswidthmm},#{glassheightmm},glasstype,#{state},NOW() from glassinfo where glassid=#{glassid}")
    void insert(@Param("glassid") String glassid, @Param("glasswidthmm") double glasswidthmm, @Param("glassheightmm") double glassheightmm,@Param("state") int state);
    @Insert("insert into queue (glassid,flowcard,listid,boxid,glasswidth,glassheight,glasswidthmm,glassheightmm,glasstype,state,time) "+
                        "values (null,null,null,null,null,null,#{glasswidthmm},#{glassheightmm},null,null,NOW())")
    void insertMatchFailure(@Param("glasswidthmm") double glasswidthmm, @Param("glassheightmm") double glassheightmm);
                        "values (null,null,null,null,null,null,#{glasswidthmm},#{glassheightmm},null,#{state},NOW())")
    void insertMatchFailure(@Param("glasswidthmm") double glasswidthmm, @Param("glassheightmm") double glassheightmm,@Param("state") int state);
}
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
@@ -21,6 +21,7 @@
import com.example.springboot.entity.GlassInfo;
import com.example.springboot.entity.MeasureSetting;
import com.example.springboot.entity.Queue;
import com.example.springboot.mapper.GlassInfoMapper;
import com.example.springboot.mapper.MeasureSettingMapper;
import com.example.springboot.mapper.QueueMapper;
@@ -62,7 +63,12 @@
    }
    // 匹配逻辑
    public boolean Normal(double width, double height, String line) {
    public GlassInfo Normal(double width, double height, String line) {
        List<Queue> ErrowQueues= QueueMapper.selectErrorQueues();
        if (ErrowQueues.size()>0) {
            //System.out.println("有匹配失败数据未去除");
            return new GlassInfo();
        }
        List<GlassInfo> Result = NormalGlassInfo(width, height, "1");
        if (Result.size() == 1) {
            // 匹配成功 就一种类型 添加数据
@@ -70,22 +76,19 @@
            QueueMapper.insert(GlassInfo.getGlassid(), width, height, 1);
            GlassInfoMapper.updatemeasurenumber(GlassInfo.getId());
            System.out.println("匹配成功");
            // S7control.getinstance().WriteWord(plcmes.getPlcParameter("GaToMES").getAddress(),
            // (short) 1);
            System.out.println(GlassInfo.getGlassid());
            return true;
            return GlassInfo;
        } else if (Result.size() > 1) {
            // 匹配失败 匹配到多条符合的数据 添加数据
            QueueMapper.insert(null, width, height, 2);
            QueueMapper.insertMatchFailure(width, height, 0);
            System.out.println("匹配失败");
            return false;
        } else {
            // 匹配失败 未找到符合的数据 添加数据
            QueueMapper.insert(null, width, height, 3);
            QueueMapper.insertMatchFailure(width, height, -1);
            System.out.println("未找到符合的数据");
            return false;
        }
        return new GlassInfo();
    }
    // Execl表格 传入文件路径
@@ -93,6 +96,10 @@
        try {
            // 创建文件对象
            File file = new File(filename);
            if (!file.exists()) {
                System.out.println("文件不存在! "+filename);
                return new ArrayList<>();
            }
            // 创建文件输入流对象
            FileInputStream inputStream = new FileInputStream(file);
            // 创建工作簿对象