Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu
| | |
| | | "fastq": "^1.6.0" |
| | | } |
| | | }, |
| | | "@popperjs/core": { |
| | | "version": "npm:@sxzz/popperjs-es@2.11.7", |
| | | "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", |
| | | "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" |
| | | }, |
| | | "@soda/friendly-errors-webpack-plugin": { |
| | | "version": "1.8.0", |
| | | "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz?cache=0&sync_timestamp=1607927406873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Ffriendly-errors-webpack-plugin%2Fdownload%2F%40soda%2Ffriendly-errors-webpack-plugin-1.8.0.tgz", |
| | |
| | | "webpack-chain": "^6.4.0", |
| | | "webpack-dev-server": "^3.11.0", |
| | | "webpack-merge": "^4.2.2" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "@vue/cli-shared-utils": { |
| | |
| | | "lodash-unified": "^1.0.2", |
| | | "memoize-one": "^6.0.0", |
| | | "normalize-wheel-es": "^1.2.0" |
| | | }, |
| | | "dependencies": { |
| | | "@popperjs/core": { |
| | | "version": "npm:@sxzz/popperjs-es@2.11.7", |
| | | "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", |
| | | "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" |
| | | } |
| | | } |
| | | }, |
| | | "elliptic": { |
| | |
| | | } |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "vue-router": { |
| | | "version": "4.0.10", |
| | | "resolved": "https://registry.nlark.com/vue-router/download/vue-router-4.0.10.tgz?cache=0&sync_timestamp=1624286995690&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-4.0.10.tgz", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | window.webConfig = { |
| | | "webApiDevelopment": "http://localhost:9291/", |
| | | "webApiProduction": "http://localhost:9291/", |
| | | "webApiDebug": "http://localhost:9291/", |
| | | "webSocketUrl": "ws://localhost:9260/", |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ref, reactive } from 'vue'; |
| | | |
| | | export const useWebSocket = (protocols) => { |
| | | const ws = new WebSocket("ws://localhost:9260/", protocols); |
| | | const messages = ref([]); |
| | | const status = reactive({ |
| | | isConnected: false, |
| | | error: null |
| | | }); |
| | | |
| | | // äºä»¶çå¬ |
| | | const connect = () => { |
| | | ws.onopen = () => { |
| | | status.isConnected = true; |
| | | console.log('WebSocket è¿æ¥æå'); |
| | | }; |
| | | |
| | | ws.onmessage = (event) => { |
| | | try { |
| | | const data = JSON.parse(event.data); |
| | | messages.value.push(data); |
| | | } catch (e) { |
| | | console.error('æ¶æ¯è§£æå¤±è´¥', e); |
| | | } |
| | | }; |
| | | |
| | | ws.onclose = (event) => { |
| | | status.isConnected = false; |
| | | console.log('è¿æ¥å
³éï¼åå¤éè¿...'); |
| | | setTimeout(connect, 3000); // 3ç§åéè¿ |
| | | }; |
| | | |
| | | ws.onerror = (error) => { |
| | | status.error = error; |
| | | console.error('WebSocket é误:', error); |
| | | }; |
| | | }; |
| | | |
| | | // åå§åè¿æ¥ |
| | | connect(); |
| | | |
| | | // åéæ¶æ¯æ¹æ³ |
| | | const send = (data) => { |
| | | if (status.isConnected) { |
| | | ws.send(JSON.stringify(data)); |
| | | } |
| | | }; |
| | | |
| | | return { |
| | | ws, |
| | | messages, |
| | | status, |
| | | send, |
| | | close: () => ws.close() |
| | | }; |
| | | }; |
| | |
| | | <template> |
| | | <div class="title"></div> |
| | | <div class="title"> |
| | | <el-row :gutter="20" style="height:85%"> |
| | | <el-col :span="8"> |
| | | <span style="position: relative; top: 100px;left: 30px;"> |
| | | <h4>䏿¥¼è®¾å¤çæ§</h4> |
| | | </span> |
| | | <el-row :gutter="20" style="height:1000px"> |
| | | <el-col :span="8"> |
| | | <div> |
| | | <div v-for="(group, index) in groupedLines(linescopy7)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 118px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy8)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 115px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy9)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 112px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy10)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 109px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy11)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 107px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy12)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="8"> |
| | | <div> |
| | | <div v-for="(group, index) in groupedLines(linescopy1)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 108px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy2)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 58px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy3)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 58px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy4)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 115px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy5)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 115px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy6)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <!-- å åæº --> |
| | | <div style="position: relative; top: 50px;"> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">ä¸å·å åæº</div> |
| | | <LineComponent :x="xValue1" ref="stacker1" :equipNo="SC01"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">äºå·å åæº</div> |
| | | <LineComponent :x="xValue2" ref="stacker2" :equipNo="SC02"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">ä¸å·å åæº</div> |
| | | <LineComponent :x="xValue3" ref="stacker3" :equipNo="SC03"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">åå·å åæº</div> |
| | | <LineComponent :x="xValue4" ref="stacker4" :equipNo="SC04"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">äºå·å åæº</div> |
| | | <LineComponent :x="xValue5" ref="stacker5" :equipNo="SC05"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">å
å·å åæº</div> |
| | | <LineComponent :x="xValue6" ref="stacker6" :equipNo="SC06"></LineComponent> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import { ref, reactive } from 'vue' |
| | | import { onMounted, ref, reactive } from "vue"; |
| | | import LineInfo from "./LineInfo.vue"; |
| | | import LineInfoCopy from "./LineInfocopy.vue"; |
| | | import LineComponent from './LineComponent.vue'; |
| | | import JElDescription from "./JElDescription"; |
| | | import { useWebSocket } from '@/uitils/websocket'; |
| | | |
| | | export default { |
| | | setup() { |
| | | return { |
| | | data() { |
| | | return { |
| | | ws: null, // WebSocketå®ä¾ |
| | | messages: [], // æ¶æ¯å表 |
| | | status: { // è¿æ¥ç¶æ |
| | | isConnected: false, |
| | | error: null |
| | | }, |
| | | linescopy1: [ |
| | | { |
| | | equipNo: "1005", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1006", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | } |
| | | } |
| | | } |
| | | { |
| | | equipNo: "1007", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1008", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy2: [ |
| | | { |
| | | equipNo: "1009", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1010", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1011", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1025", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 21, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1012", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy3: [ |
| | | { |
| | | equipNo: "1017", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1018", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1019", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1026", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 21, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1020", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy4: [ |
| | | { |
| | | equipNo: "1021", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1022", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1023", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1024", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy5: [ |
| | | { |
| | | equipNo: "1031", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1032", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1033", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1034", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy6: [ |
| | | { |
| | | equipNo: "1035", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1036", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1037", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1038", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy7: [ |
| | | { |
| | | equipNo: "1001", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1002", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1003", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1004", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopy8: [ |
| | | { |
| | | equipNo: "1039", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1040", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopy9: [ |
| | | { |
| | | equipNo: "1013", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1014", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopy10: [ |
| | | { |
| | | equipNo: "1015", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1016", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopy11: [ |
| | | { |
| | | equipNo: "1027", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1028", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | |
| | | ], |
| | | linescopy12: [ |
| | | { |
| | | equipNo: "1029", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1030", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | |
| | | StackerCrane: { |
| | | Automatic: "", |
| | | Fault: "", |
| | | CurrentLayer: "", |
| | | CurrentRow: "1", |
| | | CurrentColumn: "", |
| | | CurrentTaskNum: "", |
| | | Running: "", |
| | | DeviceName: "", |
| | | DeviceCOde: "", |
| | | StackerAlarm: "", |
| | | }, |
| | | RGVFirst: false, |
| | | RGVSecond: false, |
| | | RGVThird: false, |
| | | xValue1: 0, |
| | | xValue2: 0, |
| | | xValue3: 0, |
| | | xValue4: 0, |
| | | xValue5: 0, |
| | | xValue6: 0, |
| | | timer1: null, // 宿¶å¨åé |
| | | timer2: null, // 宿¶å¨åé |
| | | RGV01: { |
| | | Automatic: "", |
| | | Fault: "", |
| | | LevelPoint: 0, |
| | | CurrentTaskNum: "", |
| | | Running: "", |
| | | DeviceName: "", |
| | | DeviceCode: "RGV01", |
| | | Alarm: "", |
| | | }, |
| | | RGV02: { |
| | | Automatic: "", |
| | | Fault: "", |
| | | LevelPoint: 1280, |
| | | CurrentTaskNum: "", |
| | | Running: "", |
| | | DeviceName: "", |
| | | DeviceCode: "RGV02", |
| | | Alarm: "", |
| | | }, |
| | | RGV03: { |
| | | Automatic: "", |
| | | Fault: "", |
| | | LevelPoint: 0, |
| | | CurrentTaskNum: "", |
| | | Running: "", |
| | | DeviceName: "", |
| | | DeviceCode: "RGV03", |
| | | Alarm: "", |
| | | }, |
| | | formRGV: { |
| | | TaskType: "", |
| | | SourceAddress: "", |
| | | TargetAddress: "", |
| | | DeviceCode: "", |
| | | }, |
| | | }; |
| | | }, |
| | | components: { |
| | | LineInfoCopy, |
| | | LineInfo, |
| | | LineComponent, |
| | | JElDescription, |
| | | }, |
| | | methods: { |
| | | groupedLines(linescopy) { |
| | | const groups = {}; |
| | | linescopy.forEach((line) => { |
| | | const positionY = line.positionY; |
| | | if (!groups[positionY]) { |
| | | groups[positionY] = { |
| | | positionY, |
| | | lines: [], |
| | | }; |
| | | } |
| | | groups[positionY].lines.push(line); |
| | | }); |
| | | return Object.values(groups); |
| | | }, |
| | | mouseClickRGVFirst() { |
| | | this.fullscreenLoading = true; |
| | | this.RGVFirst = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | mouseClickSecond() { |
| | | this.fullscreenLoading = true; |
| | | this.RGVSecond = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | mouseClickThird() { |
| | | this.fullscreenLoading = true; |
| | | this.RGVThird = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | SendCommand(x) { |
| | | this.fullscreenLoading = true; |
| | | this.formRGV.DeviceCode = x; |
| | | this.http.post("api/DeviceInfo/RGVHandTask", this.formRGV) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | $vue.refresh(); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | RGVReset(x) { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/RGVReset?DeviceCode=" + x, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | RGVemergencyStop(x) { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/RGVemergencyStop?DeviceCode=" + x, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | RGVPause(x) { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/RGVPause?DeviceCode=" + x, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | RGVCancel(x) { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/RGVCancel?DeviceCode=" + x, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | RGVInitialize(x) { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/RGVInitialize?DeviceCode=" + x, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | |
| | | }, |
| | | mounted() { |
| | | }, |
| | | created() { |
| | | |
| | | this.ws = new WebSocket('ws://localhost:9260/'); |
| | | |
| | | this.ws.onmessage = (event) => { |
| | | try { |
| | | const data = JSON.parse(event.data); |
| | | console.log('æ¶å°æ¶æ¯:', data); |
| | | // å¤çæ¶æ¯... |
| | | } catch (e) { |
| | | console.error('æ¶æ¯è§£æå¤±è´¥', e); |
| | | } |
| | | }; |
| | | const stackerComponentsMap = { |
| | | "SC01": 'stacker1', |
| | | "SC02": 'stacker2', |
| | | "SC03": 'stacker3', |
| | | "SC04": 'stacker4', |
| | | "SC05": 'stacker5', |
| | | "SC06": 'stacker6', |
| | | }; |
| | | // const componentKey = stackerComponentsMap[data.R_PP_Status]; |
| | | // if (componentKey) { |
| | | // this.StackerCrane.Automatic = data; |
| | | // this.StackerCrane.Fault = data; |
| | | // this.StackerCrane.Running = data; |
| | | // this.StackerCrane.CurrentColumn = data; |
| | | // this.StackerCrane.CurrentLayer = data; |
| | | // this.StackerCrane.LevelPoint = data; |
| | | // this.StackerCrane.DeviceName = data; |
| | | // this.StackerCrane.DeviceCode = data; |
| | | // this.StackerCrane.CurrentTaskNum = data; |
| | | // this.StackerCrane.StackerAlarm = data; |
| | | |
| | | // this.$nextTick(() => { |
| | | // this.$refs[componentKey].moveDot(this.StackerCrane); |
| | | // }); |
| | | // } |
| | | const stationMap = { |
| | | "SC011F": this.linescopy1, |
| | | "SC021F": this.linescopy2, |
| | | "SC031F": this.linescopy3, |
| | | "SC041F": this.linescopy4, |
| | | "SC051F": this.linescopy5, |
| | | "SC061F": this.linescopy6, |
| | | "SC071F": this.linescopy7, |
| | | "SC081F": this.linescopy8, |
| | | "SC091F": this.linescopy9, |
| | | "SC101F": this.linescopy10, |
| | | "SC111F": this.linescopy11, |
| | | "SC121F": this.linescopy12, |
| | | "SC012F": this.linescopy13, |
| | | "SC022F": this.linescopy13, |
| | | "SC032F": this.linescopy13, |
| | | "SC042F": this.linescopy13, |
| | | "SC052F": this.linescopy13, |
| | | "SC062F": this.linescopy13, |
| | | "SC072F": this.linescopy13, |
| | | "SC082F": this.linescopy14, |
| | | }; |
| | | |
| | | // var station = eventData.stationChildCode; |
| | | // if (stationMap[eventData.roadway]) { |
| | | // stationMap[eventData.roadway].forEach((line) => { |
| | | // if (line.equipNo === station) { |
| | | // line.condition = eventData.inStock; |
| | | // } |
| | | // }) |
| | | // } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /* .positionY-group { |
| | | margin-bottom: 10px; |
| | | } */ |
| | | .title { |
| | | line-height: 70vh; |
| | | text-align: center; |
| | | font-size: 28px; |
| | | color: orange; |
| | | height: 1800px; |
| | | } |
| | | </style> |
| | | |
| | | .cardWidth { |
| | | height: 100%; |
| | | width: 100%; |
| | | box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); |
| | | } |
| | | |
| | | .cardWidthrow { |
| | | height: 00%; |
| | | width: 100%; |
| | | /* margin-top: 10px; */ |
| | | box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); |
| | | } |
| | | |
| | | .divider { |
| | | top: 50px; |
| | | } |
| | | |
| | | .layerSize { |
| | | position: absolute; |
| | | top: 100px; |
| | | left: 30px; |
| | | color: fuchsi |
| | | } |
| | | |
| | | .stackerDiv { |
| | | border: 1px solid rgba(0, 195, 255, 0.822); |
| | | width: 980px; |
| | | padding-left: 3px; |
| | | } |
| | | |
| | | .stackDivName { |
| | | text-align: center; |
| | | color: rgba(0, 195, 255, 0.822); |
| | | margin-bottom: 12px; |
| | | } |
| | | |
| | | .dot-Running { |
| | | position: absolute; |
| | | top: -5px; |
| | | width: 20px; |
| | | height: 20px; |
| | | border-radius: 50%; |
| | | background-color: #409eff; |
| | | transition: transform 0.3s ease; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 9px; |
| | | font-weight: bold; |
| | | color: white; |
| | | } |
| | | |
| | | .dot-Automatic { |
| | | position: absolute; |
| | | top: -5px; |
| | | width: 20px; |
| | | height: 20px; |
| | | border-radius: 50%; |
| | | background-color: #0df705; |
| | | transition: transform 0.3s ease; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 9px; |
| | | font-weight: bold; |
| | | color: white; |
| | | } |
| | | |
| | | .dot-Fault { |
| | | position: absolute; |
| | | top: -5px; |
| | | width: 20px; |
| | | height: 20px; |
| | | /* right:0px; */ |
| | | border-radius: 50%; |
| | | background-color: #f80410; |
| | | transition: transform 0.3s ease; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 9px; |
| | | font-weight: bold; |
| | | color: white; |
| | | } |
| | | |
| | | |
| | | .line-container { |
| | | position: relative; |
| | | height: 1280px; |
| | | background-color: #ecf5ff; |
| | | width: 20px; |
| | | top: 30px; |
| | | left: 200px |
| | | } |
| | | |
| | | .RGVline { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | height: 2px; |
| | | background-color: #a0cfff; |
| | | } |
| | | |
| | | .line { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | height: 2px; |
| | | background-color: #a0cfff; |
| | | } |
| | | |
| | | .line-containerThird { |
| | | position: absolute; |
| | | height: 20px; |
| | | background-color: #ecf5ff; |
| | | width: 1330px; |
| | | /* margin-top:180px; */ |
| | | top: 180px; |
| | | |
| | | left: 300px; |
| | | } |
| | | |
| | | .lineThird { |
| | | /* position: absolute; */ |
| | | height: 1px; |
| | | /* margin-top:180px; */ |
| | | background-color: #a0cfff; |
| | | }</style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="title"></div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { useWebSocket } from '@/uitils/websocket'; |
| | | |
| | | const { ws,messages, status, send } = useWebSocket(); |
| | | |
| | | // const sendTest = () => { |
| | | // send({ type: 'test', content: 'Hello WebSocket!' }); |
| | | // }; |
| | | ws.onmessage = (event) => { |
| | | try { |
| | | const data = JSON.parse(event.data); |
| | | console.log(data); |
| | | // å¤çæ°æ®... |
| | | } catch (e) { |
| | | console.error('æ¶æ¯è§£æå¤±è´¥', e); |
| | | } |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | line-height: 70vh; |
| | | text-align: center; |
| | | font-size: 28px; |
| | | color: orange; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="j-description wordwrap" :class="class__" :style="style__">{{value}}</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "j-el-description", |
| | | inject: { |
| | | elForm: { |
| | | default: '' |
| | | }, |
| | | elFormItem: { |
| | | default: '' |
| | | } |
| | | }, |
| | | |
| | | props: { |
| | | value: [String, Number], // å
容 |
| | | type: { // ä¸»é¢ |
| | | type: String, |
| | | validator(value) { |
| | | return ['primary', 'success', 'info', 'warning', 'danger'].indexOf(value) !== -1; |
| | | } |
| | | }, |
| | | size: { // 尺寸 |
| | | type: String, |
| | | validator(value) { |
| | | return ['medium', 'small', 'mini'].indexOf(value) !== -1; |
| | | } |
| | | }, |
| | | height: [String, Number], // éå¶é«åº¦ |
| | | ellipsis: Boolean, // çç¥å· |
| | | }, |
| | | |
| | | computed: { |
| | | elFormItemSize__() { |
| | | return (this.elFormItem || {}).elFormItemSize; |
| | | }, |
| | | size__() { |
| | | return this.size || this.elFormItemSize__ || (this.$ELEMENT || {}).size; |
| | | }, |
| | | class__() { |
| | | let _class = []; |
| | | if (this.type) { |
| | | _class.push(this.type); |
| | | } |
| | | if (this.size__) { |
| | | _class.push(this.size__); |
| | | } |
| | | if (this.height) { |
| | | _class.push('scroll'); |
| | | } |
| | | if (this.ellipsis) { |
| | | _class.push('ellipsis'); |
| | | } |
| | | return _class; |
| | | }, |
| | | style__() { |
| | | let _style = {}; |
| | | if (!this.ellipsis && this.height) { |
| | | if (isNaN(this.height)) { |
| | | _style.height = this.height; |
| | | } else { |
| | | _style.height = this.height + 'px'; |
| | | } |
| | | } |
| | | return _style; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .j-description { |
| | | min-height: 40px; |
| | | line-height: 40px; |
| | | padding: 0 50%; |
| | | } |
| | | |
| | | /*大å°*/ |
| | | .j-description.medium { |
| | | min-height: 36px; |
| | | line-height: 36px; |
| | | } |
| | | |
| | | .j-description.small { |
| | | min-height: 32px; |
| | | line-height: 32px; |
| | | } |
| | | |
| | | .j-description.mini { |
| | | min-height: 28px; |
| | | line-height: 28px; |
| | | } |
| | | |
| | | /*æ»å¨*/ |
| | | .j-description.scroll { |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .j-description.scroll::-webkit-scrollbar { |
| | | width: 9px; |
| | | height: 9px; |
| | | background: #F3F3F3; |
| | | } |
| | | |
| | | .j-description.scroll::-webkit-scrollbar-thumb { |
| | | border: 1px solid #ffffff; |
| | | border-radius: 6px; |
| | | background: #c9c9c9; |
| | | } |
| | | |
| | | .j-description.scroll::-webkit-scrollbar-thumb:hover { |
| | | background: #b5b5b5; |
| | | } |
| | | |
| | | /*æ¢è¡*/ |
| | | .j-description.wordwrap { |
| | | table-layout: fixed; |
| | | word-break: break-all; |
| | | word-wrap: break-word; |
| | | } |
| | | |
| | | /*çç¥å·*/ |
| | | .j-description.ellipsis { |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | /*主é¢*/ |
| | | .j-description.primary { |
| | | background-color: #ecf5ff; |
| | | border: 1px solid #d9ecff; |
| | | color: #409eff; |
| | | } |
| | | |
| | | .j-description.success { |
| | | background-color: #f0f9eb; |
| | | border-color: #e1f3d8; |
| | | color: #67c23a; |
| | | } |
| | | |
| | | .j-description.info { |
| | | background-color: #f4f4f5; |
| | | border-color: #e9e9eb; |
| | | color: #909399; |
| | | } |
| | | |
| | | .j-description.warning { |
| | | background-color: #fdf6ec; |
| | | border-color: #faecd8; |
| | | color: #e6a23c; |
| | | } |
| | | |
| | | .j-description.danger { |
| | | background-color: #fef0f0; |
| | | border-color: #fde2e2; |
| | | color: #f56c6c; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-row> |
| | | <template v-for="item in 32" :key="item"> |
| | | <el-col :span="0.9"> |
| | | <span class="image-text"></span> |
| | | <img src="../../public/è´§æ¶.jpeg" /> |
| | | </el-col> |
| | | </template> |
| | | </el-row> |
| | | <el-row style="padding-bottom: 5px;"> |
| | | <template v-for="item in 32" :key="item"> |
| | | <el-col :span="0.9"> |
| | | <span class="image-text"></span> |
| | | <img src="../../public/è´§æ¶.jpeg" /> |
| | | </el-col> |
| | | </template> |
| | | </el-row> |
| | | </div> |
| | | <div class="line-container"> |
| | | <div class="line"></div> |
| | | <!-- <div class="dot" :style="{ right: dotPosition + 'px' }" ref="childDot" @click="mouseClick"></div> --> |
| | | <div :class="update()" |
| | | :style="{ transform: `translateX(${StackerCrane.CurrentColumn < 33 ? StackerCrane.CurrentColumn * 30 - 59 : 0}px)` }" |
| | | ref="childDot" @click="mouseClick"></div> |
| | | </div> |
| | | <div> |
| | | <el-row style="padding-top: 5px;"> |
| | | <template v-for="item in 32" :key="item"> |
| | | <el-col :span="0.9"> |
| | | <span class="image-text"></span> |
| | | <img src="../../public/è´§æ¶.jpeg" /> |
| | | </el-col> |
| | | </template> |
| | | </el-row> |
| | | <el-row style="padding-bottom: 5px;"> |
| | | <template v-for="item in 32" :key="item"> |
| | | <el-col :span="0.9"> |
| | | <span class="image-text"></span> |
| | | <img src="../../public/è´§æ¶.jpeg" /> |
| | | </el-col> |
| | | </template> |
| | | </el-row> |
| | | </div> |
| | | |
| | | <el-dialog v-model="dialogVisible" title="å åæºä¿¡æ¯æ¥ç" :before-close="handleClose"> |
| | | <el-form ref="$form" :model="StackerCrane" label-position="left" label-width="120px" size="medium"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="设å¤ç¼å·ï¼"> |
| | | <j-el-description :value="StackerCrane.DeviceName" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="设å¤ç¶æ:"> |
| | | <j-el-description :value="StackerCrane.Fault" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="工使¨¡å¼:"> |
| | | <j-el-description :value="StackerCrane.Automatic" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»»å¡å·ï¼"> |
| | | <j-el-description :value="StackerCrane.CurrentTaskNum" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div" style="margin-bottom: 10px;"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä½ä¸ç¶æ:"> |
| | | <j-el-description :value="StackerCrane.Running" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="å½åè¡åå±ï¼"> |
| | | <j-el-description |
| | | :value="StackerCrane.CurrentRow + '-' + StackerCrane.CurrentLayer + '-' + StackerCrane.CurrentColumn " |
| | | type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div" style="margin-bottom: 10px;"> |
| | | <el-col :span="24" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¥è¦ä¿¡æ¯:"> |
| | | <j-el-description :value="StackerCrane.StackerAlarm" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-divider /> |
| | | <h4 style="margin-bottom: 20px;">æå¨æä½</h4> |
| | | <el-form ref="form" :model="form" label-width="90px"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»»å¡å½ä»¤" prop="TargetAddress"> |
| | | <el-select size="large" v-model="form.TaskType" placeholder="è¯·éæ©ä»»å¡å½ä»¤"> |
| | | <el-option label="å
¥åº" value="17" /> |
| | | <el-option label="åºåº" value="18" /> |
| | | <el-option label="ç§»åº" value="20" /> |
| | | <el-option label="åè´§" value="24" /> |
| | | <el-option label="æ¾è´§" value="48" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="èµ·ç¹è¡åå±:"> |
| | | <el-input size="large" v-model="form.SourceAddress" style="width: 800px" placeholder="请è¾å
¥èµ·ç¹è¡åå±" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ç»ç¹è¡åå±:"> |
| | | <el-input size="large" v-model="form.TargetAddress" style="width: 800px" placeholder="请è¾å
¥ç»ç¹è¡åå±" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-divider /> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="5" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="primary" size="small" plain @click="start"> |
| | | <i class="el-icon-check">å¯å¨</i> |
| | | </el-button> |
| | | |
| | | </el-col> |
| | | <el-col :span="5" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="warning" size="small" plain @click="reset"> |
| | | <i class="el-icon-check">å¤ä½</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="5" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="disconnected"> |
| | | <i class="el-icon-check">䏿</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="5" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="emergencyStop"> |
| | | <i class="el-icon-check">æ¥å</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="StackerRecall"> |
| | | <i class="el-icon-check">å¬å</i> |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="dialogVisible = false"> |
| | | 确认 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { id } from "element-plus/es/locale"; |
| | | import JElDescription from "./JElDescription"; |
| | | export default { |
| | | components: { |
| | | JElDescription |
| | | }, |
| | | data() { |
| | | return { |
| | | x: 0, // åå§xå¼ |
| | | url: "api/Equipment/GetStackerInfoByNo", |
| | | dialogVisible: false, |
| | | StackerCrane: { |
| | | Automatic: "", |
| | | Fault: "", |
| | | CurrentLayer: "1", |
| | | CurrentRow: "1", |
| | | CurrentColumn: "1", |
| | | CurrentTaskNum: "", |
| | | Running: "", |
| | | DeviceName: "", |
| | | DeviceCode: "", |
| | | StackerAlarm:"", |
| | | }, |
| | | form: { |
| | | TaskType: "", |
| | | SourceAddress: "", |
| | | TargetAddress: "", |
| | | DeviceCode: "", |
| | | }, |
| | | }; |
| | | }, |
| | | props: { |
| | | equipNo: { |
| | | type: String, |
| | | default: "0", |
| | | }, |
| | | }, |
| | | computed: { |
| | | dotPosition() { |
| | | return this.x; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.moveDot(this.x); |
| | | }, |
| | | methods: { |
| | | moveDot(x) { |
| | | this.StackerCrane.Automatic = x.Automatic == null ? "æ
é" : x.Automatic; |
| | | this.StackerCrane.Fault = x.Fault == null ? "æ
é" : x.Fault; |
| | | this.StackerCrane.Running = x.Running == null ? "æ
é" : x.Running; |
| | | this.StackerCrane.CurrentColumn = x.CurrentColumn == undefined ? 1 : x.CurrentColumn; |
| | | this.StackerCrane.CurrentLayer = x.CurrentLayer == undefined ? 1 : x.CurrentLayer; |
| | | this.StackerCrane.LevelPoint = x.LevelPoint; |
| | | this.StackerCrane.DeviceName = x.DeviceName; |
| | | this.StackerCrane.CurrentTaskNum = x.CurrentTaskNum; |
| | | this.StackerCrane.StackerAlarm = x.StackerAlarm; |
| | | this.form.DeviceCode = x.DeviceCode; |
| | | }, |
| | | update() { |
| | | if (this.StackerCrane.Automatic == "èæºæ¨¡å¼" && this.StackerCrane.Fault != "æ
é" && this.StackerCrane.Running == "å¾
æº") { |
| | | return 'dot-Automatic '; |
| | | } |
| | | else if (this.StackerCrane.Automatic == "èæºæ¨¡å¼" && this.StackerCrane.Fault != "æ
é" && this.StackerCrane.Running == "è¿è¡ä¸") { |
| | | return 'dot-Running '; |
| | | } else if (this.StackerCrane.Fault == "æ
é") { |
| | | return 'dot-Fault '; |
| | | } else { |
| | | return 'dot-Fault '; |
| | | } |
| | | }, |
| | | mouseClick() { |
| | | this.fullscreenLoading = true; |
| | | this.dialogVisible = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | start() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/StackerHandTask", this.form) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success("å åæºå½ä»¤å·²ä¸å"); |
| | | // $vue.success("æå."); |
| | | this.show = false; |
| | | $vue.refresh(); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, reset() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/StackerReset?DeviceCode=" + this.form.DeviceCode) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success("å¤ä½æå"); |
| | | // $vue.success("æå."); |
| | | this.show = false; |
| | | $vue.refresh(); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | |
| | | emergencyStop() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/StackerEmergencyStop?DeviceCode=" + this.form.DeviceCode) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success("æ¥åå·²æä¸"); |
| | | // $vue.success("æå."); |
| | | // this.show = false; |
| | | // $vue.refresh(); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | disconnected() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/StackerDisconnected?DeviceCode=" + this.form.DeviceCode) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success("䏿å åæºä»»å¡"); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | StackerRecall() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/StackerRecall?DeviceCode=" + this.form.DeviceCode) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success("å¬åå åæº"); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .line-container { |
| | | position: relative; |
| | | height: 20px; |
| | | background-color: #ecf5ff; |
| | | width: 960px; |
| | | } |
| | | |
| | | .line { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | height: 1px; |
| | | background-color: #a0cfff; |
| | | } |
| | | |
| | | .dot-Running { |
| | | position: absolute; |
| | | top: -5px; |
| | | width: 25px; |
| | | height: 25px; |
| | | border-radius: 50%; |
| | | background-color: #409eff; |
| | | transition: transform 0.3s ease; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 9px; |
| | | font-weight: bold; |
| | | color: white; |
| | | } |
| | | |
| | | .dot-Automatic { |
| | | position: absolute; |
| | | top: -5px; |
| | | width: 25px; |
| | | height: 25px; |
| | | border-radius: 50%; |
| | | background-color: #0df705; |
| | | transition: transform 0.3s ease; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 9px; |
| | | font-weight: bold; |
| | | color: white; |
| | | } |
| | | |
| | | .dot-Fault { |
| | | position: absolute; |
| | | top: -5px; |
| | | width: 25px; |
| | | height: 25px; |
| | | border-radius: 50%; |
| | | background-color: #f80410; |
| | | transition: transform 0.3s ease; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 9px; |
| | | font-weight: bold; |
| | | color: white; |
| | | } |
| | | |
| | | img { |
| | | width: 30px; |
| | | height: 25px; |
| | | } |
| | | |
| | | .image-text { |
| | | position: absolute; |
| | | top: 5px; |
| | | /* left: 10px; */ |
| | | color: white; |
| | | /* æåé¢è² */ |
| | | font-size: 12px; |
| | | /* åå·å¤§å° */ |
| | | font-weight: bold; |
| | | /* åä½ç²ç» */ |
| | | margin-left: 5px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="update()" :style="{ left: left, top: top, marginBottom: 0 + 'px', marginTop: 0 + 'px' }" |
| | | @click="mouseClick" v-loading.fullscreen.lock="fullscreenLoading"> |
| | | <img v-if="imgType === '2'" src="../../public/lines.png" /> |
| | | <img v-if="imgType === '1'" src="../../public/lines2.png" /> |
| | | <label v-if="equipNo" class="equip-no">{{ equipNo }}</label> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" title="è¾éçº¿ä¿¡æ¯æ¥ç" :before-close="handleClose"> |
| | | <el-form ref="$form" :model="lineItemInfo" label-position="left" label-width="100px" size="medium"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="设å¤ç¼å·ï¼"> |
| | | <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¯å¦æç:"> |
| | | <j-el-description :value="lineItemInfo.inStock" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»»å¡å·:"> |
| | | <j-el-description :value="lineItemInfo.taskNumm" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¥è¦ä»£ç ï¼"> |
| | | <j-el-description :value="lineItemInfo.alarm" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-form><el-divider /> |
| | | <h4 style="margin-bottom: 20px;">æå¨æä½</h4> |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»» å¡ å½ ä»¤" prop="TargetAddress"> |
| | | <el-select size="large" v-model="form.TaskType" placeholder="è¯·éæ©ä»»å¡å½ä»¤"> |
| | | <el-option label="å
¥åº" value="1" /> |
| | | <el-option label="åºåº" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä¸ä¸ç®æ å°å:"> |
| | | <el-input size="large" v-model="form.TargetAddress" placeholder="请è¾å
¥ä¸ä¸ç®æ å°å" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-divider /> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="primary" size="small" plain @click="SendCommand"> |
| | | <i class="el-icon-check">åéå½ä»¤</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="warning" size="small" plain @click="ConveyorLineReset"> |
| | | <i class="el-icon-check">å¤ä½</i> |
| | | </el-button> |
| | | |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineEmergencyStop"> |
| | | <i class="el-icon-check">忢</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineReturn"> |
| | | <i class="el-icon-check">éå</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineCancel"> |
| | | <i class="el-icon-check">åæ¶ä»»å¡</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineInitialize"> |
| | | <i class="el-icon-check">å·¥ä½åå§å</i> |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="dialogVisible = false"> |
| | | 确认 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { defineComponent } from "vue"; |
| | | import JElDescription from "./JElDescription"; |
| | | export default defineComponent({ |
| | | components: { |
| | | JElDescription |
| | | }, |
| | | props: { |
| | | equipNoFontColor: { |
| | | type: String, |
| | | default: "blue", |
| | | }, |
| | | equipNo: { |
| | | type: String, |
| | | default: "0", |
| | | }, |
| | | imgType: { |
| | | type: String, |
| | | default: "1", |
| | | }, |
| | | positionX: { |
| | | type: Int32Array, |
| | | default: 1, |
| | | }, |
| | | positionY: { |
| | | type: Int32Array, |
| | | default: 1, |
| | | }, |
| | | url: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | condition: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | left: "500px", |
| | | top: "400px", |
| | | dialogVisible: false, |
| | | lineItemInfo: { |
| | | inStock: "", |
| | | taskNum: "", |
| | | alarm: "", |
| | | }, |
| | | form: { |
| | | TaskType: "", |
| | | TargetAddress: "", |
| | | DeviceCode: "", |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | const axisX = (this.positionX - 1) * 40 + 100; |
| | | const axisY = (this.positionY - 1) + 50; |
| | | this.$nextTick(() => { |
| | | this.left = `${axisX}px`; |
| | | this.top = `${axisY}px`; |
| | | }); |
| | | }, |
| | | methods: { |
| | | mouseClick() { |
| | | this.fullscreenLoading = true; |
| | | this.dialogVisible = true; |
| | | // å¤çç¹å»äºä»¶ |
| | | this.http.post("api/DeviceInfo/GetConveyorLineInfo?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.lineItemInfo = x.data; |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: x.message, |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | |
| | | SendCommand() { |
| | | this.fullscreenLoading = true; |
| | | this.form.DeviceCode=this.equipNo; |
| | | this.http.post("api/DeviceInfo/ConveyorLineHandTask" ,this.form) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineReset() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineReset?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineEmergencyStop() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineEmergencyStop?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineReturn() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineReturn?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineCancel() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineCancel?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineInitialize() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineInitialize?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | update() { |
| | | return !this.condition ? 'custom-img' : 'custom-img-color' |
| | | }, |
| | | startTimer() { |
| | | // å¼å¯å®æ¶å¨ï¼æ¯3ç§æ§è¡ä¸æ¬¡ |
| | | this.timer1 = setInterval(() => { |
| | | update(); |
| | | }, 500); |
| | | }, |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .custom-img { |
| | | position: relative; |
| | | display: inline-block; |
| | | /* background-color: #d9ecff ; */ |
| | | } |
| | | |
| | | .custom-img-color { |
| | | position: relative; |
| | | display: inline-block; |
| | | background-color: #05fa7f; |
| | | color: white; |
| | | text-align: center; |
| | | } |
| | | |
| | | /* .custom-img-color::before { |
| | | content: ""; |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | background-color: #05fa7f; |
| | | border-radius: 50%; |
| | | } */ |
| | | |
| | | .custom-img img { |
| | | width: 40px; |
| | | height: 40px; |
| | | } |
| | | |
| | | .custom-img-color img { |
| | | width: 40px; |
| | | height: 40px; |
| | | } |
| | | |
| | | .equip-no { |
| | | position: absolute; |
| | | top: 15px; |
| | | font-size: 12px; |
| | | margin-left: -35px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div :class="update()" :style="{ left: left, top: top, marginBottom: 0 + 'px', marginTop: 15 + 'px' }" |
| | | @click="mouseClick" v-loading.fullscreen.lock="fullscreenLoading"> |
| | | <img v-if="imgType === '2'" src="../../public/lines.png" /> |
| | | <img v-if="imgType === '1'" src="../../public/lines2.png" /> |
| | | <label v-if="equipNo" class="equip-no">{{ equipNo }}</label> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" title="è¾éçº¿ä¿¡æ¯æ¥ç" :before-close="handleClose"> |
| | | <el-form ref="$form" :model="lineItemInfo" label-position="left" label-width="100px" size="medium"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="设å¤ç¼å·ï¼"> |
| | | <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¯å¦æç:"> |
| | | <j-el-description :value="lineItemInfo.inStock" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»»å¡å·:"> |
| | | <j-el-description :value="lineItemInfo.taskNum" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="æ¥è¦ä»£ç ï¼"> |
| | | <j-el-description :value="lineItemInfo.alarm" type="primary" ellipsis></j-el-description> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-form><el-divider /> |
| | | <h4 style="margin-bottom: 20px;">æå¨æä½</h4> |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä»» å¡ å½ ä»¤" prop="TargetAddress"> |
| | | <el-select size="large" v-model="form.TaskType" placeholder="è¯·éæ©ä»»å¡å½ä»¤"> |
| | | <el-option label="å
¥åº" value="1" /> |
| | | <el-option label="åºåº" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-form-item label="ä¸ä¸ç®æ å°å:"> |
| | | <el-input size="large" v-model="form.TargetAddress" placeholder="请è¾å
¥ä¸ä¸ç®æ å°å" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-divider /> |
| | | <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="primary" size="small" plain @click="SendCommand"> |
| | | <i class="el-icon-check">åéå½ä»¤</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="warning" size="small" plain @click="ConveyorLineReset"> |
| | | <i class="el-icon-check">å¤ä½</i> |
| | | </el-button> |
| | | |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineEmergencyStop"> |
| | | <i class="el-icon-check">忢</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineReturn"> |
| | | <i class="el-icon-check">éå</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineCancel"> |
| | | <i class="el-icon-check">åæ¶ä»»å¡</i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> |
| | | <el-button type="danger" size="small" plain @click="ConveyorLineInitialize"> |
| | | <i class="el-icon-check">å·¥ä½åå§å</i> |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="dialogVisible = false"> |
| | | 确认 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { defineComponent } from "vue"; |
| | | import JElDescription from "./JElDescription"; |
| | | export default defineComponent({ |
| | | components: { |
| | | JElDescription |
| | | }, |
| | | props: { |
| | | equipNoFontColor: { |
| | | type: String, |
| | | default: "blue", |
| | | }, |
| | | equipNo: { |
| | | type: String, |
| | | default: "0", |
| | | }, |
| | | imgType: { |
| | | type: String, |
| | | default: "1", |
| | | }, |
| | | positionX: { |
| | | type: Int32Array, |
| | | default: 1, |
| | | }, |
| | | positionY: { |
| | | type: Int32Array, |
| | | default: 1, |
| | | }, |
| | | url: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | condition: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | left: "500px", |
| | | top: "400px", |
| | | dialogVisible: false, |
| | | lineItemInfo: { |
| | | inStock: "", |
| | | taskNum: "", |
| | | alarm: "", |
| | | }, |
| | | form: { |
| | | TaskType: "", |
| | | TargetAddress: "", |
| | | DeviceCode: "", |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | const axisX = (this.positionX - 1) * 40 + 100; |
| | | const axisY = (this.positionY - 1) + 50; |
| | | this.$nextTick(() => { |
| | | this.left = `${axisX}px`; |
| | | this.top = `${axisY}px`; |
| | | }); |
| | | }, |
| | | methods: { |
| | | mouseClick() { |
| | | this.fullscreenLoading = true; |
| | | this.dialogVisible = true; |
| | | // å¤çç¹å»äºä»¶ |
| | | this.http.post("api/DeviceInfo/GetConveyorLineInfo?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.lineItemInfo = x.data; |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: x.message, |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | |
| | | SendCommand() { |
| | | this.fullscreenLoading = true; |
| | | this.form.DeviceCode=this.equipNo; |
| | | this.http.post("api/DeviceInfo/ConveyorLineHandTask" ,this.form) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineReset() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineReset?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineEmergencyStop() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineEmergencyStop?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineReturn() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineReturn?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineCancel() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineCancel?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | ConveyorLineInitialize() { |
| | | this.fullscreenLoading = true; |
| | | this.http.post("api/DeviceInfo/ConveyorLineInitialize?DeviceChildCode=" + this.equipNo, null, "") |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | } else { |
| | | this.$Message.success(x.message); |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | update() { |
| | | return !this.condition ? 'custom-img' : 'custom-img-color' |
| | | }, |
| | | startTimer() { |
| | | // å¼å¯å®æ¶å¨ï¼æ¯3ç§æ§è¡ä¸æ¬¡ |
| | | this.timer1 = setInterval(() => { |
| | | update(); |
| | | }, 500); |
| | | }, |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .custom-img { |
| | | position: relative; |
| | | display: inline-block; |
| | | /* background-color: #d9ecff ; */ |
| | | } |
| | | |
| | | .custom-img-color { |
| | | position: relative; |
| | | display: inline-block; |
| | | background-color: #05fa7f; |
| | | color: white; |
| | | text-align: center; |
| | | } |
| | | |
| | | /* .custom-img-color::before { |
| | | content: ""; |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | background-color: #05fa7f; |
| | | border-radius: 50%; |
| | | } */ |
| | | |
| | | .custom-img img { |
| | | width: 40px; |
| | | height: 40px; |
| | | } |
| | | |
| | | .custom-img-color img { |
| | | width: 40px; |
| | | height: 40px; |
| | | } |
| | | |
| | | .equip-no { |
| | | position: absolute; |
| | | top: 15px; |
| | | font-size: 12px; |
| | | margin-left: -35px; |
| | | } |
| | | </style> |
| | |
| | | "WorkspaceRootPath": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_common\\utilities\\importexcelhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\utilities\\importexcelhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\stackplatejob\\stackplatetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackplatejob\\stackplatetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{E1633BFD-8807-4A29-89F2-0A7F26DF6976}|WIDESEAWCS_PackInfoService\\WIDESEAWCS_PackInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_packinfoservice\\dt_packaxisservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{E1633BFD-8807-4A29-89F2-0A7F26DF6976}|WIDESEAWCS_PackInfoService\\WIDESEAWCS_PackInfoService.csproj|solutionrelative:wideseawcs_packinfoservice\\dt_packaxisservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\stackplatejob\\stackplate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackplatejob\\stackplate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u7801\u579B\\mdjob_cp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u7801\u579B\\mdjob_cp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u539F\u6599\u5E93\\conveyorlinejob_yl2ndfloor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u539F\u6599\u5E93\\conveyorlinejob_yl2ndfloor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u63A5\u9A73\u53F0\\coveryorjobyl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u63A5\u9A73\u53F0\\coveryorjobyl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\hostedservice\\warehousehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\hostedservice\\warehousehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_dto\\equipment\\equipmentdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\equipment\\equipmentdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 2, |
| | | "SelectedChildIndex": 0, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "StackPlateTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAAAoAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-16T09:20:27.513Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}" |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "ImportExcelHelper.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "ViewState": "AgIAAFQAAAAAAAAAAAAQwAsBAAAJAAAAAAAAAA==", |
| | | "DocumentIndex": 5, |
| | | "Title": "AGV_CPExtend.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "ViewState": "AgIAAFsAAAAAAAAAAAD4v2IAAABMAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-31T01:25:32.766Z", |
| | | "WhenOpened": "2025-09-16T08:53:13.236Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "Dt_PackaxisService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs*", |
| | | "RelativeToolTip": "WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs*", |
| | | "ViewState": "AgIAACQAAAAAAAAAAAAUwDoAAAAwAAAAAAAAAA==", |
| | | "Title": "StackPlate.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "ViewState": "AgIAABQAAAAAAAAAAAAmwCoAAAAoAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-31T01:15:08.521Z", |
| | | "WhenOpened": "2025-09-16T01:00:55.935Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "StackerCraneJob_YLSC3.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "ViewState": "AgIAAJABAAAAAAAAAAAIwKkBAAA0AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-12T09:27:40.79Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "ConveyorLineJob_YL2ndFloor.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "ViewState": "AgIAAFsAAAAAAAAAAAAIwHcAAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T08:15:08.692Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAABkCAAAAAAAAAAAqwDICAAAXAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T07:45:44.976Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "AGVController.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs*", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs*", |
| | | "ViewState": "AgIAABkCAAAAAAAAAADgv64BAABqAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-16T01:12:14.478Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "AGV_CPJob.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "ViewState": "AgIAAAwAAAAAAAAAAADwvyQAAAAVAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-15T05:56:57.868Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "MDJob_CP.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAHQAAABYAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-12T06:32:50.674Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "WarehouseHostedService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA4AAAAiAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-15T01:20:30.887Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "CoveryorJobYL.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "ViewState": "AgIAAEcAAAAAAAAAAAAQwE8AAAAlAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-15T05:42:55.802Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "Program.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Program.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Program.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs", |
| | | "ViewState": "AgIAABIAAAAAAAAAAAAAAC4AAAAhAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-14T01:30:09.425Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "WebSocketSetup.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAsAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-14T01:29:56.948Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "ConveyorLineTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ViewState": "AgIAALgBAAAAAAAAAIA6wNQBAAAbAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-12T05:22:37.131Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "EquipmentDTO.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwgAAAAdAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-14T02:49:56.33Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "StackerCraneJob_YLSC2.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "ViewState": "AgIAAIAAAAAAAAAAAAAYwIsAAAAqAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T08:12:55.606Z" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "WorkspaceRootPath": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{E1633BFD-8807-4A29-89F2-0A7F26DF6976}|WIDESEAWCS_PackInfoService\\WIDESEAWCS_PackInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_packinfoservice\\dt_packaxisservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{E1633BFD-8807-4A29-89F2-0A7F26DF6976}|WIDESEAWCS_PackInfoService\\WIDESEAWCS_PackInfoService.csproj|solutionrelative:wideseawcs_packinfoservice\\dt_packaxisservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\stackplatejob\\stackplatetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackplatejob\\stackplatetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\stackplatejob\\stackplate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackplatejob\\stackplate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u7801\u579B\\mdjob_cp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u7801\u579B\\mdjob_cp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u6210\u54C1\u4ED3\\agv_cpextend.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_common\\utilities\\importexcelhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\utilities\\importexcelhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc3.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u539F\u6599\u5E93\\conveyorlinejob_yl2ndfloor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u539F\u6599\u5E93\\conveyorlinejob_yl2ndfloor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u63A5\u9A73\u53F0\\coveryorjobyl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u63A5\u9A73\u53F0\\coveryorjobyl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\hostedservice\\warehousehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\hostedservice\\warehousehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\hostedservice\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_dto\\equipment\\equipmentdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\equipment\\equipmentdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u539F\u6599\u5E93\\stackercranejob_ylsc2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 4, |
| | | "SelectedChildIndex": 2, |
| | | "Children": [ |
| | | { |
| | | "$type": "Bookmark", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "StackPlateTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs*", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlateTaskCommand.cs*", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAuwBkAAAAYAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-16T09:20:27.513Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "AGV_CPExtend.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPExtend.cs", |
| | | "ViewState": "AgIAAFsAAAAAAAAAAAD4v2IAAABMAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-16T08:53:13.236Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "StackPlate.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackPlateJob\\StackPlate.cs", |
| | | "ViewState": "AgIAABkAAAAAAAAAAAAAACoAAAAoAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-16T01:00:55.935Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "StackerCraneJob_YLSC3.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC3.cs", |
| | | "ViewState": "AgIAAJABAAAAAAAAAAAIwKkBAAA0AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-12T09:27:40.79Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "ConveyorLineJob_YL2ndFloor.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL2ndFloor.cs", |
| | | "ViewState": "AgIAAFsAAAAAAAAAAAAIwHcAAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T08:15:08.692Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAAoBAAAAAAAAAAAgwO0AAAA7AAAAAAAAAA==", |
| | | "ViewState": "AgIAABkCAAAAAAAAAAAqwDICAAAXAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-31T02:17:00.82Z", |
| | | "WhenOpened": "2025-09-11T07:45:44.976Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "ImportExcelHelper.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Common\\Utilities\\ImportExcelHelper.cs", |
| | | "ViewState": "AgIAAFQAAAAAAAAAAAAQwAsBAAAJAAAAAAAAAA==", |
| | | "Title": "AGVController.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs", |
| | | "ViewState": "AgIAABkCAAAAAAAAAADgv64BAABqAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-31T01:25:32.766Z", |
| | | "WhenOpened": "2025-09-16T01:12:14.478Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "Dt_PackaxisService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_PackInfoService\\Dt_PackaxisService.cs", |
| | | "ViewState": "AgIAAG0AAAAAAAAAAAAUwIQAAAAtAAAAAAAAAA==", |
| | | "DocumentIndex": 4, |
| | | "Title": "AGV_CPJob.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\AGV_CPJob.cs", |
| | | "ViewState": "AgIAAAwAAAAAAAAAAADwvyQAAAAVAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-31T01:15:08.521Z", |
| | | "WhenOpened": "2025-09-15T05:56:57.868Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "MDJob_CP.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u7801\u579B\\MDJob_CP.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAHQAAABYAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-12T06:32:50.674Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "WarehouseHostedService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\HostedService\\WarehouseHostedService.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA4AAAAiAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-15T01:20:30.887Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "CoveryorJobYL.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u63A5\u9A73\u53F0\\CoveryorJobYL.cs", |
| | | "ViewState": "AgIAAEcAAAAAAAAAAAAQwE8AAAAlAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-15T05:42:55.802Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "Program.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Program.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\Program.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs", |
| | | "ViewState": "AgIAABIAAAAAAAAAAAAAAC4AAAAhAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-14T01:30:09.425Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "WebSocketSetup.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\HostedService\\WebSocketSetup.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAsAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-14T01:29:56.948Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "ConveyorLineTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ViewState": "AgIAALgBAAAAAAAAAIA6wNQBAAAbAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-12T05:22:37.131Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "EquipmentDTO.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_DTO\\Equipment\\EquipmentDTO.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwgAAAAdAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-14T02:49:56.33Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "StackerCraneJob_YLSC2.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\StackerCraneJob_YLSC2.cs", |
| | | "ViewState": "AgIAAIAAAAAAAAAAAAAYwIsAAAAqAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T08:12:55.606Z" |
| | | } |
| | | ] |
| | | } |
| | |
| | | MD_Executing = 520, |
| | | |
| | | /// <summary> |
| | | /// å çå¾
æ§è¡ |
| | | /// </summary> |
| | | [Description("å çå¾
æ§è¡")] |
| | | StackPlate_Execute = 600, |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®æ |
| | | /// </summary> |
| | | [Description("ä»»å¡å®æ")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_DTO.Equipment |
| | | { |
| | | public class EquipmentDTO |
| | | { |
| | | public string StackerDataJson { get; set; } |
| | | public string ConveyorLineDataJson { get; set; } |
| | | } |
| | | } |
| | |
| | | WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress, string roadWay="", int taskType = 630,int taskNum=0,string targetAddress=""); |
| | | |
| | | /// <summary> |
| | | /// å çæºç³è¯·ç©ºæå
¥æååº |
| | | /// </summary> |
| | | /// <param name="palletCode"></param> |
| | | /// <param name="SourceAddress"></param> |
| | | /// <returns></returns> |
| | | WebResponseContent CPEmptyInbound(string palletCode, string SourceAddress); |
| | | |
| | | /// <summary> |
| | | /// åWMSç³è¯·ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | |
| | | using WIDESEAWCS_Tasks; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.DBNames; |
| | | using WIDESEAWCS_Tasks.StackPlateJob; |
| | | using static Dm.net.buffer.ByteArrayBuffer; |
| | | |
| | | namespace WIDESEAWCS_Server.Controllers |
| | |
| | | { |
| | | return content.Error($"æªæ¾å°å¯¹åºè®¾å¤"); |
| | | } |
| | | if (device.DeviceCode.Contains("Plate")) |
| | | { |
| | | CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; |
| | | StackPlateTaskCommandCommand command = commonConveyorLine.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode); |
| | | |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | if (command != null && command.State == 2 && command.InteractiveSignal == 1) |
| | | { |
| | | return content.OK("å
è®¸æ¾æ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | if (device.DeviceCode.Contains("CP"))//æåè¾é线 |
| | | { |
| | | short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); |
| | | if (Command == 3) |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | |
| | | if (device.DeviceCode.Contains("CP"))//æåè¾é线 |
| | | { |
| | | content.OK("å
è®¸æ¾æ"); |
| | | short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); |
| | | if (Command == 3) |
| | | { |
| | | content.OK("å
è®¸æ¾æ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | } |
| | | } |
| | | else |
| | | else if (device.DeviceCode.Contains("Coveryor"))//æ¥é©³å° |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode); |
| | | if (!RequestPut) |
| | | { |
| | | otherDevice.SetValue(CoveryorDB.C_InTaskNum, taskNum, stationManger.StationDeviceCode); |
| | | otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode); |
| | | Thread.Sleep(1000); |
| | | } |
| | | bool AllowFinish = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowFinish, stationManger.StationDeviceCode); |
| | | if (AllowFinish) |
| | | { |
| | | content.OK("å
è®¸æ¾æ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | bool RequestPut = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_RequestPut, stationManger.StationDeviceCode); |
| | | if (!RequestPut) |
| | | { |
| | | otherDevice.SetValue(RetractDB.Ret_TargetAddress, Convert.ToInt16(stationManger.StationCode), stationManger.StationDeviceCode); |
| | | otherDevice.SetValue(RetractDB.Ret_RequestPut, true, stationManger.StationDeviceCode); |
| | | Thread.Sleep(1000); |
| | | } |
| | | bool AllowFinish = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowFinish, stationManger.StationDeviceCode); |
| | | if (AllowFinish) |
| | | { |
| | | content.OK("å
è®¸æ¾æ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | } |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Coveryor"))//æ¥é©³å° |
| | | { |
| | | bool RequestPut = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_RequestPut, stationManger.StationDeviceCode); |
| | | if (!RequestPut) |
| | | { |
| | | otherDevice.SetValue(CoveryorDB.C_InTaskNum, taskNum, stationManger.StationDeviceCode); |
| | | otherDevice.SetValue(CoveryorDB.C_RequestPut, true, stationManger.StationDeviceCode); |
| | | Thread.Sleep(1000); |
| | | } |
| | | bool AllowFinish = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowFinish, stationManger.StationDeviceCode); |
| | | if (AllowFinish) |
| | | { |
| | | content.OK("å
è®¸æ¾æ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | bool RequestPut = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_RequestPut, stationManger.StationDeviceCode); |
| | | if (!RequestPut) |
| | | { |
| | | otherDevice.SetValue(RetractDB.Ret_TargetAddress, Convert.ToInt16(stationManger.StationCode), stationManger.StationDeviceCode); |
| | | otherDevice.SetValue(RetractDB.Ret_RequestPut, true, stationManger.StationDeviceCode); |
| | | Thread.Sleep(1000); |
| | | } |
| | | bool AllowFinish = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowFinish, stationManger.StationDeviceCode); |
| | | if (AllowFinish) |
| | | { |
| | | content.OK("å
è®¸æ¾æ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢æ¾æ"); |
| | | } |
| | | } |
| | | |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºè®¾å¤"); |
| | | } |
| | | |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | if (device.DeviceCode.Contains("Coveryor"))//æ¥é©³å° |
| | | if (device.DeviceCode.Contains("Plate")) |
| | | { |
| | | otherDevice.SetValue(CoveryorDB.C_PutFinish, true, stationManger.StationDeviceCode); |
| | | CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; |
| | | commonConveyorLine.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(1), device.DeviceCode); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | else |
| | | { |
| | | otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode); |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | if (device.DeviceCode.Contains("Coveryor"))//æ¥é©³å° |
| | | { |
| | | otherDevice.SetValue(CoveryorDB.C_PutFinish, true, stationManger.StationDeviceCode); |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode); |
| | | } |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºè®¾å¤{stationManger.StationDeviceCode}"); |
| | | } |
| | | |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | |
| | | if (otherDevice.DeviceCode.Contains("CP"))//æåè¾é线 |
| | | if (device.DeviceCode.Contains("Plate")) |
| | | { |
| | | short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); |
| | | if (Command == 2) |
| | | CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; |
| | | StackPlateTaskCommandCommand command = commonConveyorLine.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode); |
| | | |
| | | if (command != null&&command.State == 2 && command.InteractiveSignal == 2) |
| | | { |
| | | content.OK("å
许åæ"); |
| | | return content.OK("å
许åæ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢åæ"); |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Coveryor"))//æ¥é©³å° |
| | | else |
| | | { |
| | | bool AllowTake = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowTake, stationManger.StationDeviceCode); |
| | | if (AllowTake) |
| | | { |
| | | content.OK("å
许åæ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢åæ"); |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | bool AllowTake = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowTake, stationManger.StationDeviceCode); |
| | | if (AllowTake) |
| | | { |
| | | content.OK("å
许åæ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢åæ"); |
| | | } |
| | | } |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | |
| | | if (otherDevice.DeviceCode.Contains("CP"))//æåè¾é线 |
| | | { |
| | | short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode); |
| | | if (Command == 2) |
| | | { |
| | | content.OK("å
许åæ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢åæ"); |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Coveryor"))//æ¥é©³å° |
| | | { |
| | | bool AllowTake = otherDevice.GetValue<CoveryorDB, bool>(CoveryorDB.C_AllowTake, stationManger.StationDeviceCode); |
| | | if (AllowTake) |
| | | { |
| | | content.OK("å
许åæ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢åæ"); |
| | | } |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | bool AllowTake = otherDevice.GetValue<RetractDB, bool>(RetractDB.Ret_AllowTake, stationManger.StationDeviceCode); |
| | | if (AllowTake) |
| | | { |
| | | content.OK("å
许åæ"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error("ç¦æ¢åæ"); |
| | | } |
| | | } |
| | | } |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºè®¾å¤"); |
| | | } |
| | | |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | if (device.DeviceCode.Contains("CP")) |
| | | if (device.DeviceCode.Contains("Plate")) |
| | | { |
| | | otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode); |
| | | CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device; |
| | | commonConveyorLine.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(2), device.DeviceCode); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | else if (device.DeviceCode.Contains("Coveryor")) |
| | | else |
| | | { |
| | | otherDevice.SetValue(CoveryorDB.C_TakeFinish, true, stationManger.StationDeviceCode); |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode); |
| | | OtherDevice otherDevice = (OtherDevice)device; |
| | | if (device.DeviceCode.Contains("CP")) |
| | | { |
| | | otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode); |
| | | } |
| | | else if (device.DeviceCode.Contains("Coveryor")) |
| | | { |
| | | otherDevice.SetValue(CoveryorDB.C_TakeFinish, true, stationManger.StationDeviceCode); |
| | | } |
| | | else if (device.DeviceCode.Contains("Retract"))//伸缩货å |
| | | { |
| | | otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode); |
| | | } |
| | | } |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | |
| | | CreateMap<Dt_Task, ConveyorLineTaskCommandWrite>() |
| | | .ForMember(a => a.Barcode, b => b.MapFrom(b => b.PalletCode)) |
| | | .ForMember(a => a.TaskNum, b => b.MapFrom(b => b.TaskNum)) |
| | | .ForMember(a => a.Weight, b => b.MapFrom(b => b.TaskLength)) |
| | | .ForMember(a => a.Width, b => b.MapFrom(b => b.TaskLength)) |
| | | .ForMember(a => a.Height, b => b.MapFrom(b => b.HeightType)) |
| | | .ForMember(a => a.TargetAddress, b => b.MapFrom(b => b.NextAddress)); |
| | | } |
| | | } |
| | |
| | | builder.Services.AddHostedService<WarehouseHostedService>(); |
| | | builder.Services.AddHostedService<QuartzJobDataTableHostedService>(); |
| | | |
| | | //builder.Services.AddWebSocketSetup(); |
| | | builder.Services.AddWebSocketSetup(); |
| | | |
| | | builder.Services.AddAutoMapperSetup(); |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <!-- https://go.microsoft.com/fwlink/?LinkID=208121. --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <DeleteExistingFiles>false</DeleteExistingFiles> |
| | | <ExcludeApp_Data>false</ExcludeApp_Data> |
| | | <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> |
| | | <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> |
| | | <LastUsedPlatform>Any CPU</LastUsedPlatform> |
| | | <PublishProvider>FileSystem</PublishProvider> |
| | | <PublishUrl>bin\Release\net6.0\publish\</PublishUrl> |
| | | <WebPublishMethod>FileSystem</WebPublishMethod> |
| | | <_TargetId>Folder</_TargetId> |
| | | </PropertyGroup> |
| | | </Project> |
| | |
| | | //è¿æ¥å符串 |
| | | //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", |
| | | //"ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=192.168.35.3;Initial Catalog=TestWCS_TC;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=TESTWCSCP_WCS;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"WMSConnectionStrings": "Data Source=10.30.4.92;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | |
| | | } |
| | | return content; |
| | | } |
| | | public WebResponseContent CPEmptyInbound(string palletCode,string SourceAddress) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (string.IsNullOrEmpty(address)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°WMSApiå°å"); |
| | | } |
| | | var result = HttpHelper.Get($"{address}/api/Task/EmptyBackTask?barCode={palletCode}&startPoint={SourceAddress}"); |
| | | |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | |
| | | |
| | | public Dt_Task QueryBarCodeAGVFinishTask(int TaskNum, string currentAddress) |
| | | { |
| | | return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.AGV_Finish && x.NextAddress == currentAddress && x.TaskNum == TaskNum, TaskOrderBy); |
| | | return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.AGV_Finish && x.CurrentAddress == currentAddress && x.TaskNum == TaskNum, TaskOrderBy); |
| | | } |
| | | |
| | | public Dt_Task QueryExecutingTaskByBarcode(int TaskNum, string nextAddress) |
| | |
| | | { |
| | | if (task.TaskState == (int)TaskStatusEnum.SC_Executing) |
| | | { |
| | | Dt_Router router = _routerRepository.QueryFirst(x => x.InOutType == task.TaskType && x.StartPosi == stationManger.StationCode && x.ChildPosi == stationManger.StationDeviceCode); |
| | | if (router == null) |
| | | { |
| | | UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°è·¯ç±ä¿¡æ¯,{task.NextAddress}"); |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è·¯ç±ä¿¡æ¯,{task.NextAddress}"); |
| | | } |
| | | task.CurrentAddress = task.NextAddress; |
| | | task.NextAddress = task.TargetAddress; |
| | | task.NextAddress = router.NextPosi; |
| | | task.TaskState = (int)TaskStatusEnum.Line_Executing; |
| | | nextStatus = TaskStatusEnum.Line_Executing; |
| | | } |
| | |
| | | { |
| | | #region å
¥åºè°ç¨æ¥å£è·åè´§ä½å°å |
| | | string? local = RequestAssignLocation(task.TaskNum, task.Roadway); |
| | | //string? local = "SC05_YLDual-002-090-009-01"; |
| | | //string? local = "SC03_YLDual-002-090-001-01"; |
| | | if (!string.IsNullOrEmpty(local)) |
| | | { |
| | | task.CurrentAddress = stationManger.StackerCraneStationCode; |
| | |
| | | else if (task.TaskState == (int)TaskStatusEnum.AGV_Finish) |
| | | { |
| | | content = AssignYLRoadwayNo(task.PalletCode); |
| | | //content.OK(data: "SC05_YLDual"); |
| | | if (!content.Status) |
| | | { |
| | | return content.Error($"请æ±å
¥åºå¤±è´¥ï¼{content.Message}"); |
| | | } |
| | | //string roadWay = "SC03_YLDual"; |
| | | string roadWay = content.Data.ToString(); |
| | | |
| | | List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.CurrentAddress == x.StartPosi && x.ChildPosiDeviceCode == roadWay); |
| | |
| | | |
| | | public class ConveyorLineTaskCommandWrite : DeviceCommand |
| | | { |
| | | public ushort ResponState { get; set; } |
| | | public ushort ResponState { get; set; } = 86; |
| | | |
| | | [DataLength(25)] |
| | | public string Barcode { get; set; } |
| | |
| | | |
| | | public short TaskNum { get; set; } |
| | | |
| | | public short Weight { get; set; } |
| | | public short Width { get; set; } |
| | | public short Height { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Autofac.Core; |
| | | using Microsoft.AspNetCore.Components.Routing; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using Quartz; |
| | | using System.Reflection; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_IBasicInfoRepository; |
| | | using WIDESEAWCS_IPackInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.StackPlateJob; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class ApartPlate : JobBase, IJob |
| | | { |
| | | private readonly ICacheService _cacheService; |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly IStationMangerRepository _stationMangerRepository; |
| | | private readonly IDt_PackaxisRepository _packaxisRepository; |
| | | |
| | | public ApartPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IDt_PackaxisRepository packaxisRepository) |
| | | { |
| | | _cacheService = cacheService; |
| | | _taskService = taskService; |
| | | _taskRepository = taskRepository; |
| | | _stationMangerRepository = stationMangerRepository; |
| | | _packaxisRepository = packaxisRepository; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | CommonConveyorLine device = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | //è·åå½å设å¤å¯¹åºçç«å° |
| | | StackPlateTaskCommandCommand command = device.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode); |
| | | |
| | | if (command != null && command.State == 2) |
| | | { |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = device.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(StackPlateTaskCommandCommand.InteractiveSignal) && x.ProtocalDetailValue == command.InteractiveSignal.ToString()); |
| | | if (deviceProtocolDetails != null) |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | method.Invoke(this, new object[] { device, command }); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ææå
许 |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | /// <param name="command"></param> |
| | | public void InStockAllow(CommonConveyorLine device, StackPlateTaskCommandCommand command) |
| | | { |
| | | device.SetValue(StackPlateDBName.WriteInteractiveSignal, Convert.ToInt16(2), device.DeviceCode); |
| | | //åé
å·²æå空æçå»åä»»å¡ |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 空ä½å
许ï¼å
许æç |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | /// <param name="command"></param> |
| | | public void EmptySeatAllow(CommonConveyorLine device, StackPlateTaskCommandCommand command) |
| | | { |
| | | var task = _taskRepository.QueryFirst(x => x.Roadway == device.DeviceCode && x.TargetAddress == device.DeviceCode); |
| | | if (task == null) |
| | | { |
| | | //todo请æ±WMSä¸å空æåºåºä»»å¡ |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Autofac.Core; |
| | | using Microsoft.AspNetCore.Components.Routing; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using Quartz; |
| | | using System.Reflection; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_IBasicInfoRepository; |
| | | using WIDESEAWCS_IPackInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.StackPlateJob; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class StackPlate : JobBase, IJob |
| | | { |
| | | private readonly ICacheService _cacheService; |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly IStationMangerRepository _stationMangerRepository; |
| | | private readonly IDt_PackaxisRepository _packaxisRepository; |
| | | |
| | | public StackPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IDt_PackaxisRepository packaxisRepository) |
| | | { |
| | | _cacheService = cacheService; |
| | | _taskService = taskService; |
| | | _taskRepository = taskRepository; |
| | | _stationMangerRepository = stationMangerRepository; |
| | | _packaxisRepository = packaxisRepository; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | CommonConveyorLine device = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | //è·åå½å设å¤å¯¹åºçç«å° |
| | | StackPlateTaskCommandCommand command = device.ReadCustomer<StackPlateTaskCommandCommand>(device.DeviceCode); |
| | | |
| | | if (command != null && command.State == 2) |
| | | { |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = device.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(StackPlateTaskCommandCommand.InteractiveSignal) && x.ProtocalDetailValue == command.InteractiveSignal.ToString()); |
| | | if (deviceProtocolDetails != null) |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | method.Invoke(this, new object[] { device, command }); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ææè¿è¡ï¼ç³è¯·å
¥åº |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | /// <param name="command"></param> |
| | | public void InStockAllow(CommonConveyorLine device, StackPlateTaskCommandCommand command) |
| | | { |
| | | var station = _stationMangerRepository.QueryFirst(x => x.StationDeviceCode == device.DeviceCode); |
| | | if (station != null && station.Remark != null)//è·åç«å°éé¢çæçå· |
| | | { |
| | | var task = _taskRepository.QueryFirst(x => x.DeviceCode == device.DeviceCode && (x.TaskState == (int)TaskStatusEnum.AGV_Execute || x.TaskState == (int)TaskStatusEnum.AGV_Executing) && x.SourceAddress == station.AGVStationCode); |
| | | if (task == null) |
| | | { |
| | | WebResponseContent content = _taskService.CPEmptyInbound(station.Remark, station.AGVStationCode); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 空ä½è¿è¡ï¼å
许å ç |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | /// <param name="command"></param> |
| | | public void EmptySeatAllow(CommonConveyorLine device, StackPlateTaskCommandCommand command) |
| | | { |
| | | var station = _stationMangerRepository.QueryFirst(x => x.StationDeviceCode == device.DeviceCode); |
| | | var tasks = _taskRepository.QueryData(x => x.Roadway == device.DeviceCode && (x.TaskState == (int)TaskStatusEnum.AGV_Execute || x.TaskState == (int)TaskStatusEnum.AGV_Executing) && x.TargetAddress == device.DeviceCode); |
| | | if (tasks.Count + Convert.ToInt32(command.Num) < 9) |
| | | { |
| | | var task = _taskRepository.QueryFirst(x => x.Roadway == device.DeviceCode && x.TaskState == (int)TaskStatusEnum.StackPlate_Execute); |
| | | if (task != null && station != null) |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.AGV_Execute; |
| | | _taskRepository.UpdateData(task); |
| | | station.Remark = task.PalletCode; |
| | | _stationMangerRepository.UpdateData(station); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Tasks.StackPlateJob |
| | | { |
| | | public enum StackPlateDBName |
| | | { |
| | | WriteInteractiveSignal, |
| | | InteractiveSignal, |
| | | State |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #region << ç æ¬ 注 é >> |
| | | |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | | * å建æ¶é´ï¼2024/8/2 16:13:36 |
| | | * çæ¬ï¼V1.0.0 |
| | | * æè¿°ï¼ |
| | | * |
| | | * ---------------------------------------------------------------- |
| | | * ä¿®æ¹äººï¼ |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | |
| | | namespace WIDESEAWCS_Tasks.StackPlateJob |
| | | { |
| | | public class StackPlateTaskCommandCommand : DeviceCommand |
| | | { |
| | | public short Num { get; set; } |
| | | public short State { get; set; } |
| | | |
| | | public short InteractiveSignal { get; set; } |
| | | } |
| | | } |
| | |
| | | if(task != null) |
| | | { |
| | | ConveyorLineTaskCommandWrite taskCommand = _mapper.Map<ConveyorLineTaskCommandWrite>(task); |
| | | |
| | | bool sendFlag = SendCommand(taskCommand, conveyorLine, stationManger.StationCode); |
| | | if (sendFlag) |
| | | { |
| | |
| | | public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManger stationManger) |
| | | { |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.TaskNum, stationManger.StationCode); |
| | | if (task != null && task.TaskState != (int)TaskStatusEnum.Line_Finish) |
| | | if (task != null && task.TaskState != (int)TaskStatusEnum.SC_Execute) |
| | | { |
| | | WebResponseContent content = _taskService.UpdateTaskStatusToNext(task, stationManger); |
| | | |
| | |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TaskNum, taskCommand.TaskNum, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskCommand.TargetAddress, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Weight, taskCommand.Weight, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Width, taskCommand.Width, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Height, taskCommand.Height, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskCommand.Barcode, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 86, childDeviceCode); |
| | | |
| | | for (int i = 0; i < 6; i++) |
| | | { |
| | | ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); |
| | | if (command != null) |
| | | { |
| | | if (command.TaskNum == taskCommand.TaskNum && command.TargetAddress == taskCommand.TargetAddress && command.Weight == taskCommand.Weight && command.Barcode == taskCommand.Barcode) |
| | | { |
| | | WriteInfo(conveyorLine.DeviceName, $"æ¶é´ï¼ã{DateTime.Now}ãåå
¥ä»»å¡æååå
¥æ¬¡æ°{i}åå
¥ä»»å¡ã{JsonConvert.SerializeObject(taskCommand)}ã"); |
| | | return true; |
| | | } |
| | | if (command.TaskNum != taskCommand.TaskNum) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TaskNum, taskCommand.TaskNum, childDeviceCode); |
| | | Thread.Sleep(100); |
| | | } |
| | | if (command.Barcode != taskCommand.Barcode) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskCommand.Barcode, childDeviceCode); |
| | | Thread.Sleep(100); |
| | | } |
| | | if (command.TaskNum != taskCommand.TaskNum) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TaskNum, taskCommand.TaskNum, childDeviceCode); |
| | | Thread.Sleep(100); |
| | | } |
| | | if (command.TargetAddress != taskCommand.TargetAddress) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskCommand.TargetAddress, childDeviceCode); |
| | | Thread.Sleep(100); |
| | | } |
| | | } |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 86, childDeviceCode); |
| | | } |
| | | WriteInfo(conveyorLine.DeviceName, $"æ¶é´ï¼ã{DateTime.Now}ãåå
¥ä»»å¡æåä»»å¡å·ã{taskCommand.TaskNum}ãæçå·ã{taskCommand.Barcode}ãç®æ å°åã{taskCommand.TargetAddress}ãå½åèç¹ã{childDeviceCode}ã"); |
| | | return false; |
| | | return true; |
| | | |
| | | #region éè¦æ ¡éªèªå·±åæ¶æ³¨é |
| | | //for (int i = 0; i < 6; i++) |
| | | //{ |
| | | // ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); |
| | | // if (command != null) |
| | | // { |
| | | // if (command.TaskNum == taskCommand.TaskNum && command.TargetAddress == taskCommand.TargetAddress && command.Height == taskCommand.Height && command.Width == taskCommand.Width && command.Barcode == taskCommand.Barcode) |
| | | // { |
| | | // WriteInfo(conveyorLine.DeviceName, $"æ¶é´ï¼ã{DateTime.Now}ãåå
¥ä»»å¡æååå
¥æ¬¡æ°{i}åå
¥ä»»å¡ã{JsonConvert.SerializeObject(taskCommand)}ã"); |
| | | // return true; |
| | | // } |
| | | // if (command.TaskNum != taskCommand.TaskNum) |
| | | // { |
| | | // conveyorLine.SetValue(ConveyorLineDBName.TaskNum, taskCommand.TaskNum, childDeviceCode); |
| | | // Thread.Sleep(100); |
| | | // } |
| | | // if (command.Barcode != taskCommand.Barcode) |
| | | // { |
| | | // conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskCommand.Barcode, childDeviceCode); |
| | | // Thread.Sleep(100); |
| | | // } |
| | | // if (command.Height != taskCommand.Height) |
| | | // { |
| | | // conveyorLine.SetValue(ConveyorLineDBName.Height, taskCommand.Height, childDeviceCode); |
| | | // Thread.Sleep(100); |
| | | // } |
| | | // if (command.Width != taskCommand.Width) |
| | | // { |
| | | // conveyorLine.SetValue(ConveyorLineDBName.Width, taskCommand.Width, childDeviceCode); |
| | | // Thread.Sleep(100); |
| | | // } |
| | | // if (command.TargetAddress != taskCommand.TargetAddress) |
| | | // { |
| | | // conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskCommand.TargetAddress, childDeviceCode); |
| | | // Thread.Sleep(100); |
| | | // } |
| | | // } |
| | | // conveyorLine.SetValue(ConveyorLineDBName.ResponState, 86, childDeviceCode); |
| | | //} |
| | | //WriteInfo(conveyorLine.DeviceName, $"æ¶é´ï¼ã{DateTime.Now}ãåå
¥ä»»å¡æåä»»å¡å·ã{taskCommand.TaskNum}ãæçå·ã{taskCommand.Barcode}ãç®æ å°åã{taskCommand.TargetAddress}ãå½åèç¹ã{childDeviceCode}ã"); |
| | | //return false; |
| | | #endregion |
| | | } |
| | | } |
| | | } |
| | |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | using WIDESEAWCS_Tasks; |
| | | using WIDESEAWCS_Core; |
| | | using SqlSugar.Extensions; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using HslCommunication.WebSocket; |
| | | using WIDESEAWCS_DTO.Equipment; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | private readonly IRouterService _routerService; |
| | | private readonly IRouterRepository _routerRepository; |
| | | private readonly IStationMangerRepository _stationMangerRepository; |
| | | private WebSocketServer _webSocketServer; |
| | | |
| | | public StackerCraneJob_YLSC3(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository) |
| | | public StackerCraneJob_YLSC3(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository,WebSocketServer webSocketServer) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _routerService = routerService; |
| | | _stationMangerRepository = stationMangerRepository; |
| | | _routerRepository = routerRepository; |
| | | _webSocketServer = webSocketServer; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | |
| | | commonStackerCrane.LastTaskType = task.TaskType; |
| | | task.Dispatchertime = DateTime.Now; |
| | | task.ExceptionMessage = ""; |
| | | _taskService.UpdateTask(task, TaskStatusEnum.SC_Executing); |
| | | //_taskService.UpdateTaskStatusToNext(task); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | commonStackerCrane.Communicator.Write("DB1000.20.0", true); |
| | | //å»¶æ¶1s |
| | | Thread.Sleep(1000); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | #region è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | |
| | | EquipmentDTO equipmentDTO = new EquipmentDTO(); |
| | | object obj = new |
| | | { |
| | | commonStackerCrane.DeviceName, |
| | | commonStackerCrane.DeviceCode, |
| | | StackerCraneAutoStatus.Automatic, |
| | | StackerCraneStatus.Normal, |
| | | StackerCraneWorkStatus.Standby, |
| | | TaskNum = commonStackerCrane.CurrentTaskNum, |
| | | WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType), |
| | | StackerAlarm = commonStackerCrane.Communicator.Read<short>("DB1000.54.0"), |
| | | }; |
| | | equipmentDTO.StackerDataJson = obj.Serialize(); |
| | | _webSocketServer.PublishAllClientPayload(equipmentDTO.Serialize()); |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | conveyorLine.SetValue(ConveyorLineDBName.TaskNum, taskNum, stationManger.StationCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, router.NextPosi, stationManger.StationCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Width, task.TaskLength, stationManger.StationCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Height, task.HeightType, stationManger.StationCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.Barcode, task.PalletCode, stationManger.StationCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 86, stationManger.StationCode); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | |
| | | { |
| | | try |
| | | { |
| | | if (command.Barcode.IsNullOrEmpty()) return; |
| | | |
| | | var AGVFinishTask = _taskService.QueryBarCodeAGVFinishTask(command.TaskNum, stationManager.StationCode); |
| | | if (AGVFinishTask == null) |
| | | { |
| | | var log = $"æ¶é´ï¼ã{DateTime.Now}ãã{conveyorLine.DeviceName}ãæçå·ï¼ã{command.Barcode}ãä»»å¡å·ï¼ã{command.TaskNum}ã设å¤ç¼ç ï¼ã{stationManager.StationCode}ããæªæ¾å°ä»»å¡ã"; |
| | | ConsoleHelper.WriteSuccessLine(log); |
| | | ConsoleHelper.WriteErrorLine(log); |
| | | |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | return; |
| | |
| | | bool sendFlag = SendCommand(taskCommand, conveyorLine, stationManager.StationCode); |
| | | if (sendFlag) |
| | | { |
| | | //_taskService.UpdateTask(task, TaskStatusEnum.Line_Executing); |
| | | _taskService.UpdateTaskStatusToNext(ExecuteTask, stationManager); |
| | | } |
| | | } |
| | |
| | | if (flag && value != null) |
| | | { |
| | | OtherDevice device = (OtherDevice)value; |
| | | List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode); |
| | | List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == 33); |
| | | foreach (var item in stationMangers) |
| | | { |
| | | //è·ååè®® |
| | |
| | | { |
| | | device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 2); |
| | | } |
| | | //è·åå½åä»»å¡ |
| | | Dt_Task task = _taskRepository.QueryData(x => x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x => x.TaskNum).FirstOrDefault(); |
| | | |
| | | if (task != null) //ç åç³è¯· |
| | | ConsoleHelper.WriteInfoLine($"ç åå·¥ä½{item.StationCode}ç¶æ{Allow}"); |
| | | if (Allow == 3 || Allow == 7) |
| | | { |
| | | if (Allow == 3 || Allow == 7) |
| | | { |
| | | //è·åå½åä»»å¡ |
| | | Dt_Task task = _taskRepository.QueryData(x => x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x => x.TaskNum).FirstOrDefault(); |
| | | |
| | | if (task != null) //ç åç³è¯· |
| | | { |
| | | device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 1); |
| | | |
| | | device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSendID.ToString()).DeviceProDataBlock, Convert.ToInt16(item.StackerCraneStationCode)); |
| | |
| | | |
| | | #endregion |
| | | |
| | | device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1); |
| | | if (device.DeviceCode == "MD8_CP") |
| | | { |
| | | device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, -1); |
| | | } |
| | | else |
| | | { |
| | | device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1); |
| | | } |
| | | |
| | | device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 3); |
| | | |
| | | //æ´æ°ä»»å¡ä¿¡æ¯ |
| | | //_taskService.TaskCompleted(task.TaskNum); |
| | | task.TaskState = TaskStatusEnum.Finish.ObjToInt(); |
| | | _taskRepository.UpdateData(task); |
| | | //_taskRepository.UpdateData(task); |
| | | Thread.Sleep(1500); |
| | | WriteInfo(item.StationName, $"ä»»å¡å·{task.TaskNum}ç å"); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | else |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "Version": 1, |
| | | "WorkspaceRootPath": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_basicservice\\base\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\base\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_taskinfoservice\\taskservice_inbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice_inbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_taskinfoservice\\assigninboundtasklocation_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\assigninboundtasklocation_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | | { |
| | | "Orientation": 0, |
| | | "VerticalTabListWidth": 256, |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 0, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "ViewState": "AgIAAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T09:31:06.62Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "AssignInboundTaskLocation_BC.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "ViewState": "AgIAAEoAAAAAAAAAAAAhwJMAAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T07:40:25.502Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "TaskService_Inbound.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "ViewState": "AgIAANABAAAAAAAAAAAAAOMBAABaAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-09-11T07:30:48.968Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | |
| | | "WorkspaceRootPath": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|solutionrelative:widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_taskinfoservice\\assigninboundtasklocation_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\assigninboundtasklocation_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wms\\wmsservices\\widesea_taskinfoservice\\taskservice_inbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice_inbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 0, |
| | | "SelectedChildIndex": 2, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskTypeEnum.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs", |
| | | "ViewState": "AgIAAFYAAAAAAAAAAAAAwGMAAAAXAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-26T09:23:06.543Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "ITaskService.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ViewState": "AgIAADkAAAAAAAAAAIAxwE0AAAAZAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-26T05:24:03.563Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}" |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "AssignInboundTaskLocation_BC.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\AssignInboundTaskLocation_BC.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAADwvxQAAAAFAAAAAAAAAA==", |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskService_Inbound.cs", |
| | | "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WMSServices\\WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService_Inbound.cs", |
| | | "ViewState": "AgIAANABAAAAAAAAAAAAAOMBAAAJAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-08-26T05:23:49.344Z", |
| | | "WhenOpened": "2025-09-11T07:30:48.968Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |