Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes
# Conflicts:
# Albania_Mes-ui/src/views/home/index.vue
# springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
# springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
# springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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": { |
| | |
| | | }, |
| | | "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": { |
| | |
| | | "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": { |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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": { |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "last 2 versions", |
| | | "not dead" |
| | | ] |
| | | } |
| | | } |
| | |
| | | { |
| | | |
| | | "All Out":"All Out", |
| | | "Operation failed":"Operation canceled", |
| | | "Flowcard":"Flowcard", |
| | | "Glasstype":"Glasstype", |
| | |
| | | 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> |
| | |
| | | </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' : ''"> |
| | | {{ $t('Import order') }}</el-button> |
| | | |
| | | <el-button type="primary" @click="showform(2)" :disabled="SoftEmergencyStopState" 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' : ''"> |
| | | {{ $t('StorageCage') }}</el-button> |
| | | <el-button type="primary" @click="showform(4)" :disabled="SoftEmergencyStopState" 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%;"> |
| | |
| | | |
| | | </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"><!--测量页面--> |
| | |
| | | <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> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="number" :label="$t('Order No')"> |
| | | </el-table-column> |
| | | <el-table-column prop="" :label="$t('No Of Cage')"> |
| | | <el-table-column prop="cageno" :label="$t('No Of Cage')"> |
| | | </el-table-column> |
| | | <el-table-column prop="finishnumber" :label="$t('Finish No')"> |
| | | </el-table-column> |
| | |
| | | </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')"> |
| | | <template slot-scope='scope'> |
| | | {{ scope.row.state >= 0 ? scope.row.method == 0 ? $t('Out') : $t('All Out') : "" }} |
| | | </template> |
| | | |
| | | </el-table-column> |
| | | <el-table-column prop="line" :label="$t('Task Line')"> |
| | | </el-table-column> |
| | |
| | | } 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, |
| | |
| | | DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], |
| | | GlassIdList: [], |
| | | Scanningmethod: true, |
| | | CurrrentGlassId: "" |
| | | CurrrentGlassId: "", |
| | | LastQueue: {} |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | this.alarm = obj.alarmmg[0]; |
| | | |
| | | this.tableData1 = obj.OrderTask[0]; |
| | | this.LastQueue = obj.LastQueue[0]; |
| | | |
| | | |
| | | //是否允许出片 |
| | |
| | | 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')); |
| | | } |
| | | }); |
| | |
| | | }, |
| | | //人工匹配 |
| | | 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() { |
| | | |
| | | this.StorageCageAdd = true; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!-- ====================================================================== --> |
| | | <!-- --> |
| | | <!-- Generated by Maven Help Plugin on 2024-03-07T14:06:55+08:00 --> |
| | | <!-- Generated by Maven Help Plugin on 2024-03-19T08:09:38+08:00 --> |
| | | <!-- See: http://maven.apache.org/plugins/maven-help-plugin/ --> |
| | | <!-- --> |
| | | <!-- ====================================================================== --> |
| | |
| | | <scope>compile</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.apache.poi</groupId> |
| | | <artifactId>poi</artifactId> |
| | | <version>4.1.2</version> |
| | | <scope>compile</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.apache.poi</groupId> |
| | | <artifactId>poi-ooxml</artifactId> |
| | | <version>4.1.2</version> |
| | | <scope>compile</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.apache.poi</groupId> |
| | | <artifactId>poi-ooxml-schemas</artifactId> |
| | | <version>4.1.2</version> |
| | | <scope>compile</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-amqp</artifactId> |
| | | <version>2.3.2.RELEASE</version> |
| | |
| | | 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; |
| | |
| | | SpringApplication springApplication = new SpringApplication(AuthorityApplication.class); |
| | | ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args); |
| | | WebSocketServer.setApplicationContext(configurableApplicationContext); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | //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)); |
| | | // } |
| | |
| | | |
| | | //匹配 |
| | | 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); |
| | |
| | | } |
| | | return addresslist; |
| | | } |
| | | |
| | | public String readStrings(String addr) { |
| | | return s7PLC.readString(addr); |
| | | } |
| | | } |
| | |
| | | // TODO Auto-generated method stub |
| | | // |
| | | System.out.println("启动完成"); |
| | | |
| | | // new PlcHold().start(); |
| | | new PlcHoldNew().start(); |
| | | // new PLCAutoMes().start(); |
| | | // new PlcHold().start(); |
| | | // new PlcHoldNew().start(); |
| | | |
| | | |
| | | new Plchome().start(); |
| | | new Plchome().start(); |
| | | // new PlcLayout().start(); |
| | | // new Plcalarm().start(); |
| | | |
| | | // new Plcsign().start(); |
| | | |
| | | // new Plcstate().start(); |
| | | // new PlcPositioning1().start(); |
| | | |
| | | // new PlcParameter2().start(); |
| | | // new PLCAutomaticParameterSetting().start(); |
| | | |
| | |
| | | private Integer state;// 状态 |
| | | private Integer method;// 出片方式 |
| | | private Date starttime;// 任务领取时间 |
| | | |
| | | |
| | | public List<GlassInfo> glassinfo;// 玻璃信息 |
| | | |
| | |
| | | private Integer number;// 数量 |
| | | private Integer finishnumber;// 完成数量 |
| | | private Integer measurenumber;// 测量完成数量 |
| | | private Integer cageno;//笼内数量 |
| | | } |
| | |
| | | private Integer state;// 状态 |
| | | private Integer method;// 出片方式 |
| | | private Date starttime;// 任务领取时间 |
| | | |
| | | |
| | | public List<GlassInfo> glassinfo;// 玻璃信息 |
| | | |
| | |
| | | private Integer number;// 数量 |
| | | private Integer finishnumber;// 完成数量 |
| | | private Integer measurenumber;// 测量完成数量 |
| | | private Integer cageno;//笼内数量 |
| | | } |
| | |
| | | |
| | | public StorageCage storageCage; |
| | | |
| | | |
| | | |
| | | public void setstorageCage(StorageCage storageCage) { |
| | | this.storageCage = storageCage; |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.example.springboot.entity.GlassInfo; |
| | | import com.example.springboot.entity.RolePermission; |
| | | |
| | | |
| | | import org.apache.ibatis.annotations.*; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Mapper |
| | | @Repository |
| | |
| | | void DeleteStroageCageByCell(Integer cell); |
| | | |
| | | //修改格子玻璃数量 |
| | | @Update("update storage_cage set number=number+#{num} where cell=#{cell}") |
| | | @Update("update storage_cage set number=ifnull(number,0)+#{num} where cell=#{cell}") |
| | | void updateStroageCageByCell(Integer cell, Integer num); |
| | | |
| | | //计算格子内剩余宽度 |
| | |
| | | @Select("select * from flowcard where state!=2") |
| | | List<FlowCard> SelectOrderTask(); |
| | | |
| | | @Select("select * from glassinfo where flowcard=#{flowcard} order by mateid,tier") |
| | | @Select("select gi.*,sum(sc.number) as cageno from glassinfo gi left join storage_cage sc on gi.glasstype=sc.glasstype where gi.flowcard=#{flowcard} group by gi.id order by gi.mateid,gi.tier") |
| | | List<GlassInfo> SelectOrderView(String flowcard); |
| | | |
| | | @Update("update flowcard set state=#{state} where flowcard=#{flowcard}") |
| | |
| | | @Update("update flowcard set method=#{method} where flowcard=#{flowcard}") |
| | | void ModeChange(String flowcard, int method); |
| | | |
| | | @Update("update queue set flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},state=1 where state=0") |
| | | @Update("update queue set flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},state=1 where state<=0") |
| | | void UpdateQueue(String flowcard,double width,double height,Integer glasstype); |
| | | |
| | | @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}") |
| | |
| | | @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); |
| | | |
| | |
| | | @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); |
| | | |
| | | } |
| | |
| | | |
| | | 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; |
| | |
| | | } |
| | | |
| | | // 匹配逻辑 |
| | | 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) { |
| | | // 匹配成功 就一种类型 添加数据 |
| | |
| | | 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); |
| | | //System.out.println("未找到符合的数据"); |
| | | return false; |
| | | QueueMapper.insertMatchFailure(width, height, -1); |
| | | System.out.println("未找到符合的数据"); |
| | | } |
| | | return new GlassInfo(); |
| | | } |
| | | |
| | | // Execl表格 传入文件路径 |
| | |
| | | try { |
| | | // 创建文件对象 |
| | | File file = new File(filename); |
| | | if (!file.exists()) { |
| | | System.out.println("文件不存在! "+filename); |
| | | return new ArrayList<>(); |
| | | } |
| | | // 创建文件输入流对象 |
| | | FileInputStream inputStream = new FileInputStream(file); |
| | | // 创建工作簿对象 |
| | |
| | | * driver,url,username,password |
| | | */ |
| | | private static final String DRIVER = "com.mysql.jdbc.Driver"; |
| | | private static final String URL = "jdbc:mysql://localhost:3306/canadames"; |
| | | private static final String URL = "jdbc:mysql://10.153.19.150:3306/canadames"; |
| | | private static final String USERNAME = "root"; |
| | | private static final String PASSWORD = "beibo.123/"; |
| | | |
| | |
| | | */ |
| | | 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://10.153.19.150:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", "root", "beibo.123/"); |
| | | return conn; |
| | | } |
| | | |
| | |
| | | { |
| | | "plcAddressBegin":"DB14.0", |
| | | "plcAddressLenght":"210", |
| | | "plcAddressLenght":"208", |
| | | "dataType":"word", |
| | | "parameteInfor":[ |
| | | { |
| | |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | },{ |
| | | "codeId": "MainControl", |
| | | "addressIndex":"208", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | ] |
| | | } |
| | |
| | | spring.jackson.date-format=yyyy-MM-dd HH:mm:ss |
| | | spring.jackson.time-zone=GMT+8 |
| | | |
| | | spring.rabbitmq.host=10.153.19.150 |
| | | spring.rabbitmq.port=5672 |
| | | spring.rabbitmq.username=guest |
| | | spring.rabbitmq.password=guest |
| | | |
| | | |
| | | |