From 2b25f973bb6d72ce6971d6f9c3cdccf51b7962ab Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 06 九月 2025 14:27:08 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu --- 项目代码/WCS/WCSClient/src/extension/PackInfo/packaxis.js | 57 ++ 项目代码/WCS/WCSClient/src/router/viewGird.js | 4 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs | 29 + .gitignore | 1 项目代码/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json | 155 +------ 项目代码/WCS/WCSClient/src/api/http.js | 4 项目代码/WCS/WCSClient/src/views/PackInfo/packaxis.vue | 216 ++++++++++ 项目代码/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json | 154 ------ 项目代码/WCS/WCSServices/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj | 4 项目代码/WCS/WCSClient/package-lock.json | 174 ++++---- 项目代码/WCS/WCSServices/WIDESEAWCS_Common/Utilities/ImportExcelHelper.cs | 291 +++++++++++++ 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs | 125 +++++ 12 files changed, 865 insertions(+), 349 deletions(-) diff --git a/.gitignore b/.gitignore index 581a0ab..e2c2e91 100644 --- a/.gitignore +++ b/.gitignore @@ -266,3 +266,4 @@ /椤圭洰浠g爜/WMS/WMSServices/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db /椤圭洰浠g爜/WMS/WMSServices/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db /椤圭洰浠g爜/WCS/WCSServices/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db +/椤圭洰浠g爜/WCS/WCSServices/WIDESEAWCS_TaskInfoService/FakesAssemblies/WIDESEAWCS_PackInfoService.Fakes.dll diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/package-lock.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/package-lock.json" index 15e9bc4..27a90ab 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/package-lock.json" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/package-lock.json" @@ -1278,11 +1278,6 @@ "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", @@ -1841,6 +1836,87 @@ "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": { @@ -4938,6 +5014,13 @@ "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": { @@ -12522,87 +12605,6 @@ "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true - } - } - }, - "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" - } } } }, diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js" index 6e1f67a..d9bd114 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js" @@ -12,8 +12,8 @@ let loadingInstance; let loadingStatus = false; if (process.env.NODE_ENV == 'development') { - // axios.defaults.baseURL = 'http://127.0.0.1:9281/'; - axios.defaults.baseURL = 'http://192.168.35.3:9281/'; + axios.defaults.baseURL = 'http://127.0.0.1:9291/'; + // axios.defaults.baseURL = 'http://192.168.35.3:9281/'; } else if (process.env.NODE_ENV == 'debug') { axios.defaults.baseURL = 'http://127.0.0.1:8098/'; diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/extension/PackInfo/packaxis.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/extension/PackInfo/packaxis.js" new file mode 100644 index 0000000..d40f4f6 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/extension/PackInfo/packaxis.js" @@ -0,0 +1,57 @@ + +//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜 +let extension = { + components: { + //鏌ヨ鐣岄潰鎵╁睍缁勪欢 + gridHeader: '', + gridBody: '', + gridFooter: '', + //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢 + modelHeader: '', + modelBody: '', + modelFooter: '' + }, + tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓) + buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽� + methods: { + //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄� + onInit() { + // this.$Notice.success({ title: this.detailOptions.cnName + ',鏌ヨ缁撴灉', desc: '杩斿洖鐨勫璞★細' + JSON.stringify(data) }); + }, + onInited() { + //妗嗘灦鍒濆鍖栭厤缃悗 + //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟 + //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ + return true; + }, + searchAfter(result) { + //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊� + return true; + }, + addBefore(formData) { + //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫�� + return true; + }, + updateBefore(formData) { + //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d + return true; + }, + rowClick({ row, column, event }) { + //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠� + // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�; + }, + modelOpenAfter(row) { + //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁 + //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add'; + //(2)缁欏脊鍑烘璁剧疆榛樿鍊� + //(3)this.editFormFields.瀛楁='xxx'; + //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊� + //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions) + } + } +}; +export default extension; diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/router/viewGird.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/router/viewGird.js" index cde4249..dbcb947 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/router/viewGird.js" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/router/viewGird.js" @@ -57,6 +57,10 @@ path: '/router', name: 'router', component: () => import('@/views/basicinfo/router.vue') + }, { + path: '/packaxis', + name: 'packaxis', + component: () => import('@/views/PackInfo/packaxis.vue') }] export default viewgird diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/views/PackInfo/packaxis.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/views/PackInfo/packaxis.vue" new file mode 100644 index 0000000..8b3c681 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/views/PackInfo/packaxis.vue" @@ -0,0 +1,216 @@ + +<template> + <view-grid + ref="grid" + :columns="columns" + :detail="detail" + :editFormFields="editFormFields" + :editFormOptions="editFormOptions" + :searchFormFields="searchFormFields" + :searchFormOptions="searchFormOptions" + :table="table" + :extend="extend" + > + </view-grid> +</template> + <script> +import extend from "@/extension/PackInfo/packaxis.js"; +import { ref, defineComponent } from "vue"; +export default defineComponent({ + setup() { + const table = ref({ + key: "id", + footer: "Foots", + cnName: "鐮佸灈鍧愭爣淇℃伅", + name: "Packaxis", + url: "/Packaxis/", + sortName: "CreateDate", + }); + const editFormFields = ref({}); + const editFormOptions = ref([]); + const searchFormFields = ref({ + + }); + const searchFormOptions = ref([ + [ + { title: "浠诲姟鍙�", field: "taskNum", type: "int" }, + { title: "鎵樼洏缂栧彿", field: "palletCode", type: "like" }, + { + title: "浠诲姟绫诲瀷", + field: "taskType", + type: "selectList", + dataKey: "taskType", + data: [], + }, + { + title: "浠诲姟鐘舵��", + field: "taskState", + type: "selectList", + dataKey: "taskState", + data: [], + }, + ], + [ + { title: "璧峰鍦板潃", field: "sourceAddress", type: "like" }, + { title: "鐩爣鍦板潃", field: "targetAddress", type: "like" }, + { title: "褰撳墠浣嶇疆", field: "currentAddress", type: "like" }, + { title: "涓嬩竴浣嶇疆", field: "nextAddress", type: "like" }, + ], + [ + { title: "宸烽亾鍙�", field: "roadway", type: "like", type: "select",dataKey: "Stacker",data: [],}, + { title: "鍒涘缓浜�", field: "creater", type: "like" }, + { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" }, + ], + ]); + const columns = ref([ + { + field: "id", + title: "id", + type: "int", + width: 90, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "deviceCode", + title: "璁惧缂栧彿", + type: "int", + width: 90, + align: "left", + }, + { + field: "stationCode", + title: "宸ヤ綅鍙�", + type: "string", + width: 200, + align: "left", + }, + { + field: "packType", + title: "鍨涘瀷", + type: "string", + width: 150, + align: "left", + }, + { + field: "packNum", + title: "鐮佸灈鏁伴噺", + type: "int", + width: 130, + align: "left", + }, + { + field: "axisX", + title: "X鍧愭爣", + type: "int", + width: 150, + align: "left", + }, + { + field: "axisXCount", + title: "X鍧愭爣鐮佸灈涓暟", + type: "int", + width: 120, + align: "left", + }, + { + field: "axisXSpacing", + title: "X鍧愭爣鐮佸灈闂磋窛", + type: "string", + width: 120, + align: "left", + }, + { + field: "axisY", + title: "Y鍧愭爣", + type: "int", + width: 150, + align: "left", + }, + { + field: "axisYCount", + title: "Y鍧愭爣鐮佸灈涓暟", + type: "int", + width: 120, + align: "left", + }, + { + field: "axisYSpacing", + title: "Y鍧愭爣鐮佸灈闂磋窛", + type: "string", + width: 120, + align: "left", + }, + { + field: "axisZ", + title: "Z鍧愭爣", + type: "int", + width: 150, + align: "left", + }, + { + field: "axisZCount", + title: "Z鍧愭爣鐮佸灈涓暟", + type: "int", + width: 120, + align: "left", + }, + { + field: "axisZSpacing", + title: "Z鍧愭爣鐮佸灈闂磋窛", + type: "string", + width: 120, + align: "left", + }, + { + field: "creater", + title: "鍒涘缓浜�", + type: "string", + width: 90, + align: "left", + }, + { + field: "createDate", + title: "鍒涘缓鏃堕棿", + type: "datetime", + width: 150, + align: "left", + }, + { + field: "modifier", + title: "淇敼浜�", + type: "string", + width: 100, + align: "left", + }, + { + field: "modifyDate", + title: "淇敼鏃堕棿", + type: "datetime", + width: 160, + align: "left", + }, + ]); + const detail = ref({ + cnName: "", + table: "", + columns: [], + sortName: "", + key: "", + }); + return { + table, + extend, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + }; + }, +}); +</script> + \ No newline at end of file diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" index 09f7a73..442df32 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" @@ -3,40 +3,12 @@ "WorkspaceRootPath": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\", "Documents": [ { - "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:{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:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_model\\models\\packinfo\\dt_packaxis.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\packinfo\\dt_packaxis.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_yl1ndfloor.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_yl1ndfloor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_model\\models\\basicinfo\\dt_apiinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_apiinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.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\\rgvjob_cp.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\\rgvjob_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\\conveyorlinejob_cpc.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\\conveyorlinejob_cpc.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\\task\\requestinbound.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\\task\\requestinbound.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\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", - "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" + "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}" } ], "DocumentGroupContainers": [ @@ -46,7 +18,7 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 10, + "SelectedChildIndex": 2, "Children": [ { "$type": "Bookmark", @@ -58,114 +30,28 @@ }, { "$type": "Document", - "DocumentIndex": 2, - "Title": "ConveyorLineJob_YL1ndFloor.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "ViewState": "AgIAAG4AAAAAAAAAAAAQwIkAAABoAAAAAAAAAA==", + "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==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-30T07:16:03.123Z", + "WhenOpened": "2025-08-31T01:25:32.766Z", "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 3, - "Title": "Dt_ApiInfo.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "ViewState": "AgIAABEAAAAAAAAAAAAxwCoAAAAFAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T08:39:38.773Z" - }, - { - "$type": "Document", - "DocumentIndex": 4, - "Title": "Dt_Task.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "ViewState": "AgIAABIAAAAAAAAAAAAAAB0AAABFAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T08:39:25.012Z" }, { "$type": "Document", "DocumentIndex": 1, - "Title": "Dt_Packaxis.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "ViewState": "AgIAABUAAAAAAAAAAAAlwCkAAAASAAAAAAAAAA==", + "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==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T08:39:16.544Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 6, - "Title": "ConveyorLineJob_CPC.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "ViewState": "AgIAAEgAAAAAAAAAAAAkwEoAAAAUAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T07:57:43.158Z" - }, - { - "$type": "Document", - "DocumentIndex": 5, - "Title": "RGVJob_CP.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "ViewState": "AgIAAFYAAAAAAAAAAAAqwEoAAAAQAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T07:52:50.611Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 7, - "Title": "RequestInbound.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T06:39:10.96Z" - }, - { - "$type": "Document", - "DocumentIndex": 8, - "Title": "appsettings.json", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\appsettings.json", - "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\appsettings.json", - "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json", - "ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAABgAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", - "WhenOpened": "2025-08-29T06:03:36.387Z" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "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": "AgIAAFgAAAAAAAAAAAAswGoAAADNAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T05:53:11.231Z", + "WhenOpened": "2025-08-31T01:15:08.521Z", "EditorCaption": "" } ] diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" index 2945265..95142d1 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" @@ -3,40 +3,16 @@ "WorkspaceRootPath": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\", "Documents": [ { - "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:{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:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_model\\models\\packinfo\\dt_packaxis.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\packinfo\\dt_packaxis.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\\conveyorlinejob_yl1ndfloor.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_yl1ndfloor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_model\\models\\basicinfo\\dt_apiinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_apiinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\longdeliliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wcsservices\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{9D2AC22C-9A86-41AE-AA02-553554A7B1D7}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.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\\rgvjob_cp.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\\rgvjob_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\\conveyorlinejob_cpc.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\\conveyorlinejob_cpc.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\\task\\requestinbound.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\\task\\requestinbound.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\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", - "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" + "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}" } ], "DocumentGroupContainers": [ @@ -46,7 +22,7 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 10, + "SelectedChildIndex": 4, "Children": [ { "$type": "Bookmark", @@ -58,114 +34,41 @@ }, { "$type": "Document", - "DocumentIndex": 2, - "Title": "ConveyorLineJob_YL1ndFloor.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\ConveyorLineJob_YL1ndFloor.cs", - "ViewState": "AgIAAG4AAAAAAAAAAAAQwIkAAABoAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-30T07:16:03.123Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 3, - "Title": "Dt_ApiInfo.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs", - "ViewState": "AgIAABEAAAAAAAAAAAAxwCoAAAAFAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T08:39:38.773Z" - }, - { - "$type": "Document", - "DocumentIndex": 4, - "Title": "Dt_Task.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", - "ViewState": "AgIAABIAAAAAAAAAAAAAAB0AAABFAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T08:39:25.012Z" - }, - { - "$type": "Document", "DocumentIndex": 1, - "Title": "Dt_Packaxis.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\PackInfo\\Dt_Packaxis.cs", - "ViewState": "AgIAABUAAAAAAAAAAAAlwCkAAAASAAAAAAAAAA==", + "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==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T08:39:16.544Z", + "WhenOpened": "2025-08-31T02:17:00.82Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 6, - "Title": "ConveyorLineJob_CPC.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\ConveyorLineJob_CPC.cs", - "ViewState": "AgIAAEgAAAAAAAAAAAAkwEoAAAAUAAAAAAAAAA==", + "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==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T07:57:43.158Z" - }, - { - "$type": "Document", - "DocumentIndex": 5, - "Title": "RGVJob_CP.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u6210\u54C1\u4ED3\\RGVJob_CP.cs", - "ViewState": "AgIAAFYAAAAAAAAAAAAqwEoAAAAQAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T07:52:50.611Z", + "WhenOpened": "2025-08-31T01:25:32.766Z", "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 7, - "Title": "RequestInbound.cs", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\\u539F\u6599\u5E93\\Task\\RequestInbound.cs", - "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T06:39:10.96Z" - }, - { - "$type": "Document", - "DocumentIndex": 8, - "Title": "appsettings.json", - "DocumentMoniker": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\appsettings.json", - "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json", - "ToolTip": "E:\\GET\\LongDeLiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WCSServices\\WIDESEAWCS_Server\\appsettings.json", - "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json", - "ViewState": "AgIAAAAAAAAAAAAAAADwvxAAAABgAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", - "WhenOpened": "2025-08-29T06:03:36.387Z" }, { "$type": "Document", "DocumentIndex": 0, - "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": "AgIAAEAAAAAAAAAAAAAqwFcAAAAYAAAAAAAAAA==", + "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==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-08-29T05:53:11.231Z", + "WhenOpened": "2025-08-31T01:15:08.521Z", "EditorCaption": "" } ] diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/Utilities/ImportExcelHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/Utilities/ImportExcelHelper.cs" new file mode 100644 index 0000000..5a2103a --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/Utilities/ImportExcelHelper.cs" @@ -0,0 +1,291 @@ +锘縰sing NPOI.HSSF.UserModel; +using NPOI.SS.UserModel; +using NPOI.XSSF.UserModel; +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WIDESEAWCS_Common.Utilities +{ + public class ImportExcelHelper : IDisposable + { + private string fileName = null; //鏂囦欢鍚� + private IWorkbook workbook = null; + private FileStream fs = null; + private bool disposed; + + public ImportExcelHelper(string fileName) + { + this.fileName = fileName; + disposed = false; + } + + /// <summary> + /// 灏咲ataTable鏁版嵁瀵煎叆鍒癳xcel涓� + /// </summary> + /// <param name="data">瑕佸鍏ョ殑鏁版嵁</param> + /// <param name="isColumnWritten">DataTable鐨勫垪鍚嶆槸鍚﹁瀵煎叆</param> + /// <param name="sheetName">瑕佸鍏ョ殑excel鐨剆heet鐨勫悕绉�</param> + /// <returns>瀵煎叆鏁版嵁琛屾暟(鍖呭惈鍒楀悕閭d竴琛�)</returns> + public int DataTableToExcel(DataTable data, string sheetName, bool isColumnWritten) + { + int i = 0; + int j = 0; + int count = 0; + ISheet sheet = null; + + fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite); + if (fileName.IndexOf(".xlsx") > 0) // 2007鐗堟湰 + workbook = new XSSFWorkbook(); + else if (fileName.IndexOf(".xls") > 0) // 2003鐗堟湰 + workbook = new HSSFWorkbook(); + + try + { + if (workbook != null) + { + sheet = workbook.CreateSheet(sheetName); + } + else + { + return -1; + } + + if (isColumnWritten == true) //鍐欏叆DataTable鐨勫垪鍚� + { + IRow row = sheet.CreateRow(0); + for (j = 0; j < data.Columns.Count; ++j) + { + row.CreateCell(j).SetCellValue(data.Columns[j].ColumnName); + } + count = 1; + } + else + { + count = 0; + } + + for (i = 0; i < data.Rows.Count; ++i) + { + IRow row = sheet.CreateRow(count); + for (j = 0; j < data.Columns.Count; ++j) + { + row.CreateCell(j).SetCellValue(data.Rows[i][j].ToString()); + } + ++count; + } + workbook.Write(fs, true); //鍐欏叆鍒癳xcel + return count; + } + catch (Exception ex) + { + Console.WriteLine("Exception: " + ex.Message); + return -1; + } + } + + /// <summary> + /// 灏唀xcel涓殑鏁版嵁瀵煎叆鍒癉ataTable涓� + /// </summary> + /// <param name="sheetName">excel宸ヤ綔钖剆heet鐨勫悕绉�</param> + /// <param name="isFirstRowColumn">绗竴琛屾槸鍚︽槸DataTable鐨勫垪鍚�</param> + /// <returns>杩斿洖鐨凞ataTable</returns> + //public DataTable ExcelToDataTable(string sheetName = null, bool isFirstRowColumn = true) + //{ + // ISheet sheet = null; + // DataTable data = new DataTable(); + // int startRow = 0; + // try + // { + // fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); + // if (fileName.IndexOf(".xlsx") > 0) // 2007鐗堟湰 + // workbook = new XSSFWorkbook(fs); + // else if (fileName.IndexOf(".xls") > 0) // 2003鐗堟湰 + // workbook = new HSSFWorkbook(fs); + + // if (sheetName != null) + // { + // sheet = workbook.GetSheet("Sheet1"); + // } + // else + // { + // sheet = workbook.GetSheetAt(0); + // } + // if (sheet != null) + // { + // IRow firstRow = sheet.GetRow(0); + // int cellCount = firstRow.LastCellNum; //涓�琛屾渶鍚庝竴涓猚ell鐨勭紪鍙� 鍗虫�荤殑鍒楁暟 + + // if (isFirstRowColumn) + // { + // for (int i = firstRow.FirstCellNum; i < cellCount; ++i) + // { + // DataColumn column = new DataColumn(firstRow.GetCell(i).StringCellValue); + // data.Columns.Add(column); + // } + // startRow = sheet.FirstRowNum + 1; + // } + // else + // { + // startRow = sheet.FirstRowNum; + // } + + // //鏈�鍚庝竴鍒楃殑鏍囧彿 + // int rowCount = sheet.LastRowNum; + // for (int i = startRow; i <= rowCount; ++i) + // { + // IRow row = sheet.GetRow(i); + // if (row == null) continue; //娌℃湁鏁版嵁鐨勮榛樿鏄痭ull銆�銆�銆�銆�銆�銆�銆� + + // DataRow dataRow = data.NewRow(); + // for (int j = row.FirstCellNum; j < cellCount; ++j) + // { + // if (row.GetCell(j) != null) //鍚岀悊锛屾病鏈夋暟鎹殑鍗曞厓鏍奸兘榛樿鏄痭ull + // dataRow[j] = row.GetCell(j).ToString(); + // } + // data.Rows.Add(dataRow); + // } + // } + + // return data; + // } + // catch (Exception ex) + // { + // Console.WriteLine("Exception: " + ex.Message); + // return null; + // } + //} + + public DataTable ExcelToDataTable(string sheetName = null, bool isFirstRowColumn = true) + { + ISheet sheet = null; + DataTable data = new DataTable(); + int startRow = 0; + + try + { + using (fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) + { + if (fileName.IndexOf(".xlsx", StringComparison.OrdinalIgnoreCase) > 0) + workbook = new XSSFWorkbook(fs); + else if (fileName.IndexOf(".xls", StringComparison.OrdinalIgnoreCase) > 0) + workbook = new HSSFWorkbook(fs); + + // 淇sheet閫夋嫨閫昏緫 + if (!string.IsNullOrEmpty(sheetName)) + { + sheet = workbook.GetSheet(sheetName); // 浣跨敤浼犲叆鐨剆heetName + } + else + { + sheet = workbook.GetSheetAt(0); // 榛樿绗竴涓猻heet + } + + if (sheet == null) + { + Console.WriteLine("鏈壘鍒版寚瀹氱殑宸ヤ綔琛�"); + return null; + } + + IRow firstRow = sheet.GetRow(0); + if (firstRow == null) + { + Console.WriteLine("宸ヤ綔琛ㄤ负绌�"); + return null; + } + + int cellCount = firstRow.LastCellNum; + + if (isFirstRowColumn) + { + for (int i = firstRow.FirstCellNum; i < cellCount; i++) + { + ICell cell = firstRow.GetCell(i); + string columnName = (cell != null) ? cell.ToString() : $"Column{i}"; + data.Columns.Add(columnName); + } + startRow = 1; // 浠庣浜岃寮�濮嬶紙璺宠繃鏍囬琛岋級 + } + else + { + for (int i = 0; i < cellCount; i++) + { + data.Columns.Add($"Column{i}"); + } + startRow = 0; + } + + // 璇诲彇鏁版嵁琛� + for (int i = startRow; i <= sheet.LastRowNum; i++) + { + IRow row = sheet.GetRow(i); + if (row == null) continue; + + DataRow dataRow = data.NewRow(); + for (int j = 0; j < cellCount; j++) + { + ICell cell = row.GetCell(j); + if (cell != null) + { + // 鏍规嵁鍗曞厓鏍肩被鍨嬫纭鐞嗘暟鎹� + switch (cell.CellType) + { + case CellType.String: + dataRow[j] = cell.StringCellValue; + break; + case CellType.Numeric: + if (DateUtil.IsCellDateFormatted(cell)) + dataRow[j] = cell.DateCellValue; + else + dataRow[j] = cell.NumericCellValue; + break; + case CellType.Boolean: + dataRow[j] = cell.BooleanCellValue; + break; + case CellType.Formula: + dataRow[j] = cell.ToString(); // 鎴栬�呭鐞嗗叕寮忕粨鏋� + break; + default: + dataRow[j] = cell.ToString(); + break; + } + } + } + data.Rows.Add(dataRow); + } + } + return data; + } + catch (Exception ex) + { + Console.WriteLine($"璇诲彇Excel寮傚父: {ex.Message}"); + return null; + } + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + if (fs != null) + fs.Close(); + } + + fs = null; + disposed = true; + } + } + } +} diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj" index 132c02c..ec1f967 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj" @@ -6,4 +6,8 @@ <Nullable>enable</Nullable> </PropertyGroup> + <ItemGroup> + <PackageReference Include="NPOI" Version="2.7.4" /> + </ItemGroup> + </Project> diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs" index 698cca2..2a793c3 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs" @@ -1,11 +1,21 @@ -锘縰sing System; +锘縰sing Magicodes.ExporterAndImporter.Excel.Utility; +using Microsoft.AspNetCore.Http; +using Newtonsoft.Json; +using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEAWCS_Core.BaseRepository; +using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_IPackInfoRepository; using WIDESEAWCS_Model.Models.PackInfo; +using WIDESEAWCS_PackInfoRepository; +using Magicodes.ExporterAndImporter.Core.Models; +using Magicodes.ExporterAndImporter.Excel; +using WIDESEAWCS_Common.Utilities; namespace WIDESEAWCS_PackInfoService { @@ -14,5 +24,118 @@ public Dt_PackaxisService(IDt_PackaxisRepository BaseDal) : base(BaseDal) { } + public override WebResponseContent Import(List<IFormFile> files) + { + WebResponseContent content = new WebResponseContent(); + try + { + // 1. 楠岃瘉鏂囦欢 + if (files == null || files.Count == 0) + return new WebResponseContent { Status = false, Message = "璇烽�夋嫨涓婁紶鐨勬枃浠�" }; + + var formFile = files[0]; + + // 2. 鍑嗗鐩綍锛堜娇鐢≒ath.Combine锛� + var dicPath = Path.Combine( + AppDomain.CurrentDomain.BaseDirectory, + "ExcelImport", + DateTime.Now.ToString("yyyyMMdd"), + typeof(Dt_Packaxis).Name); + + Directory.CreateDirectory(dicPath); + // 3. 淇濆瓨涓婁紶鏂囦欢 + var fileName = $"{Guid.NewGuid()}_{formFile.FileName}"; + var fullPath = Path.Combine(dicPath, fileName); + + using (var stream = new FileStream(fullPath, FileMode.Create)) + { + formFile.CopyToAsync(stream); + } + + // 4. 瀵煎叆Excel鏁版嵁 + DataTable dtExcel = new DataTable(); + using (ImportExcelHelper excelHelper = new ImportExcelHelper(fullPath)) + { + dtExcel = excelHelper.ExcelToDataTable(); + + } + List<Dt_Packaxis> addAxis = new List<Dt_Packaxis>(); + List<Dt_Packaxis> updateAxis = new List<Dt_Packaxis>(); + if (dtExcel == null || dtExcel.Rows.Count == 0) + { + return content.Error("鏈壘鍒版暟鎹妫�鏌xcel琛ㄦ牸鏁版嵁鏍煎紡鏄惁姝g‘锛�"); + } + for (int i = 0; i < dtExcel.Rows.Count; i++) + { + DataRow row = dtExcel.Rows[i]; + string id = row["id"]?.ToString() ?? string.Empty; + string DeviceCode = row["DeviceCode"]?.ToString() ?? string.Empty; + string StationCode = row["StationCode"]?.ToString() ?? string.Empty; + string PackType = row["PackType"]?.ToString() ?? string.Empty; + string PackNum = row["PackNum"]?.ToString() ?? string.Empty; + string AxisX = row["AxisX"]?.ToString() ?? string.Empty; + string AxisXCount = row["AxisXCount"]?.ToString() ?? string.Empty; + string AxisXSpacing = row["AxisXSpacing"]?.ToString() ?? string.Empty; + string AxisY = row["AxisY"]?.ToString() ?? string.Empty; + string AxisYCount = row["AxisYCount"]?.ToString() ?? string.Empty; + string AxisYSpacing = row["AxisYSpacing"]?.ToString() ?? string.Empty; + string AxisZ = row["AxisZ"]?.ToString() ?? string.Empty; + string AxisZCount = row["AxisZCount"]?.ToString() ?? string.Empty; + string AxisZSpacing = row["AxisZSpacing"]?.ToString() ?? string.Empty; + var axis = BaseDal.QueryFirst(x => x.DeviceCode == DeviceCode && x.StationCode == Convert.ToInt32(StationCode) && x.PackType == PackType); + if(axis == null) + { + Dt_Packaxis packaxis = new Dt_Packaxis() + { + DeviceCode = DeviceCode, + StationCode = Convert.ToInt32(StationCode), + PackType = PackType, + PackNum = Convert.ToInt32(PackNum), + AxisX = Convert.ToInt32(AxisX), + AxisXCount = Convert.ToInt32(AxisXCount), + AxisXSpacing = Convert.ToInt32(AxisXSpacing), + AxisY = Convert.ToInt32(AxisY), + AxisYCount = Convert.ToInt32(AxisYCount), + AxisYSpacing = Convert.ToInt32(AxisYSpacing), + AxisZ = Convert.ToInt32(AxisZ), + AxisZCount = Convert.ToInt32(AxisZCount), + AxisZSpacing = Convert.ToInt32(AxisZSpacing), + Creater = App.User.UserId > 0 ? App.User.UserName : "System", + CreateDate = DateTime.Now + }; + addAxis.Add(packaxis); + } + else + { + axis.DeviceCode = DeviceCode; + axis.StationCode = Convert.ToInt32(StationCode); + axis.PackType = PackType; + axis.PackNum = Convert.ToInt32(PackNum); + axis.AxisX = Convert.ToInt32(AxisX); + axis.AxisXCount = Convert.ToInt32(AxisXCount); + axis.AxisXSpacing = Convert.ToInt32(AxisXSpacing); + axis.AxisY = Convert.ToInt32(AxisY); + axis.AxisYCount = Convert.ToInt32(AxisYCount); + axis.AxisYSpacing = Convert.ToInt32(AxisYSpacing); + axis.AxisZ = Convert.ToInt32(AxisZ); + axis.AxisZCount = Convert.ToInt32(AxisZCount); + axis.AxisZSpacing = Convert.ToInt32(AxisZSpacing); + axis.Modifier = App.User.UserId > 0 ? App.User.UserName : "System"; + axis.ModifyDate = DateTime.Now; + updateAxis.Add(axis); + } + } + BaseDal.AddData(addAxis); + BaseDal.UpdateData(updateAxis); + + content = WebResponseContent.Instance.OK("瀵煎叆鎴愬姛锛�"); + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + + return content; + } } } diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs" new file mode 100644 index 0000000..08c52b5 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs" @@ -0,0 +1,29 @@ +锘縰sing HslCommunication.WebSocket; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using WIDESEAWCS_Common.TaskEnum; +using WIDESEAWCS_Core; +using WIDESEAWCS_Core.BaseController; +using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_DTO.TaskInfo; +using WIDESEAWCS_ITaskInfoService; +using WIDESEAWCS_Model.Models; +using WIDESEAWCS_Model.Models.PackInfo; +using WIDESEAWCS_PackInfoService; +using WIDESEAWCS_Tasks; + +namespace WIDESEAWCS_WCSServer.Controllers.PackInfo +{ + [Route("api/Packaxis")] + [ApiController] + public class PackaxisController : ApiBaseController<IDt_PackaxisService, Dt_Packaxis> + { + private readonly IHttpContextAccessor _httpContextAccessor; + + public PackaxisController(IDt_PackaxisService service, IHttpContextAccessor httpContextAccessor) : base(service) + { + _httpContextAccessor = httpContextAccessor; + } + } +} -- Gitblit v1.9.3