From e3cfda747bd53f4550904d60cd13aa8f4e525739 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 01 十二月 2025 18:52:17 +0800
Subject: [PATCH] 更新WMS接口等

---
 项目代码/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs           |    2 
 项目代码/WCSServices/WIDESEAWCS_Tasks/二期线体/ConveyorLineDBName.cs                        |    8 
 项目资料/AGV通信文档/输送拣选和站台编号.xlsx                                                         |    0 
 项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs                          |  148 +++++++-
 项目代码/WCSClient/src/views/taskinfo/task.vue                                          |   69 +--
 项目代码/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs                       |    5 
 项目资料/接口汇总文件/WMS接口对接文档_V1.1.3.docx                                                   |    0 
 项目资料/一期对接相关资料/一期Ip.png                                                              |    0 
 项目资料/一期对接相关资料/瑞意博部署接口文档.pdf                                                         |    0 
 项目代码/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs                        |   13 
 项目资料/一期对接相关资料/电子标签接口文档.pdf                                                          |    0 
 项目代码/WCSServices/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile4.pubxml |   17 +
 项目代码/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs                                  |   10 
 项目资料/AGV通信文档/WMS输送线对接协议251126.xls                                                   |    0 
 项目代码/WCSClient/package-lock.json                                                    |  174 +++++-----
 项目代码/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs               |   19 +
 项目代码/WCSClient/src/api/http.js                                                      |    4 
 项目代码/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs                 |   16 
 项目代码/WCSClient/src/extension/basicinfo/locationInfo.js                              |  114 +++++++
 项目代码/WCSClient/src/router/viewGird.js                                               |    4 
 项目代码/WCSServices/WIDESEAWCS_Server/appsettings.json                                 |    2 
 项目代码/WCSClient/src/views/taskinfo/task_hty.vue                                      |   79 +---
 项目资料/一期对接相关资料/哈尔滨一期输送线对接协议modbusTcp协议V1.1.xlsx                                      |    0 
 项目代码/WCSClient/src/views/Home.vue                                                   |    7 
 项目代码/WCSServices/WIDESEAWCS_Tasks/二期线体/ConveyorLineJob2.cs                          |   47 ++
 项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs             |    6 
 项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs                  |    2 
 项目代码/WCSClient/src/views/basicinfo/locationInfo.vue                                 |  191 +++++++++++
 28 files changed, 685 insertions(+), 252 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/package-lock.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/package-lock.json"
index 15e9bc4..79b2868 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/package-lock.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/@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/WCSClient/src/api/http.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/api/http.js"
index 8928488..2bf3bb2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/api/http.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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:9291/';
-    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/WCSClient/src/extension/basicinfo/locationInfo.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/extension/basicinfo/locationInfo.js"
new file mode 100644
index 0000000..3b380cd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/extension/basicinfo/locationInfo.js"
@@ -0,0 +1,114 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+// import gridBody from './extend/GetLocationStatus.vue'
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {
+      let EnableBtn = this.buttons.find(x => x.value == 'Enable');
+      if (EnableBtn) {
+        EnableBtn.onClick = function () {
+          let rows = this.$refs.table.getSelected();
+          if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+          var keys = rows.map(x => { return x.id });
+          this.http
+            .post("api/LocationInfo/LocationEnableStatus", keys, "鏁版嵁澶勭悊涓�")
+            .then((x) => {
+              if (!x.status) return this.$message.error(x.message);
+              this.$message.success("鎿嶄綔鎴愬姛");
+              this.refresh();
+            });
+        }
+      }
+      let DisableBtn = this.buttons.find(x => x.value == 'Disable');
+      if (DisableBtn) {
+        DisableBtn.onClick = function () {
+          let rows = this.$refs.table.getSelected();
+          if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+          var keys = rows.map(x => { return x.id });
+          this.http
+            .post("api/LocationInfo/LocationDisableStatus", keys, "鏁版嵁澶勭悊涓�")
+            .then((x) => {
+              if (!x.status) return this.$message.error(x.message);
+              this.$message.success("鎿嶄綔鎴愬姛");
+              this.refresh();
+            });
+        }
+      }
+      this.columns.forEach(column => {
+        if (column.field == 'palletCode') {
+          column.formatter = (row) => {
+            //row.palletCode鍒ゆ柇鏄惁涓虹┖鎴杣ndefined
+            if (row.palletCode == "" || row.palletCode == undefined) {
+              return "鏃犳枡绠�";
+            }
+            return row.palletCode;
+          }       
+        }
+      });
+
+      this.columns.push({
+        field: '鎿嶄綔',
+        title: '鎿嶄綔',
+        width: 90,
+        fixed: 'right',
+        align: 'center',
+        formatter: (row) => {
+          return (
+            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
+          );
+        },
+        click: (row) => {
+          this.$refs.gridBody.open(row);
+        }
+      });
+    },
+    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/WCSClient/src/router/viewGird.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/router/viewGird.js"
index 7814d0a..0469066 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/router/viewGird.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/router/viewGird.js"
@@ -65,6 +65,10 @@
     path: '/packaxis',
     name: 'packaxis',
     component: () => import('@/views/PackInfo/packaxis.vue')
+  },{
+    path: '/locationInfo',
+    name: 'locationInfo',
+    component: () => import('@/views/basicinfo/locationInfo.vue')
   }]
 
 export default viewgird
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/Home.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/Home.vue"
index f834133..c6990e4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/Home.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/Home.vue"
@@ -1,6 +1,6 @@
 <template>
 	<div class="title">
-		<el-row :gutter="20" style="height:85%">
+		<!-- <el-row :gutter="20" style="height:85%">
 			<el-col :span="8">
 				<span style="position: relative; top: 100px;left: 30px;">
 					<h4>涓�妤艰澶囩洃鎺�</h4>
@@ -119,7 +119,6 @@
 
 			</el-col>
 			<el-col :span="8">
-				<!-- 鍫嗗灈鏈� -->
 				<div style="position: relative; top: 50px;">
 					<div class="stackerDiv">
 						<div class="stackDivName">涓�鍙峰爢鍨涙満</div>
@@ -152,9 +151,7 @@
 					</div>
 				</div>
 			</el-col>
-		</el-row>
-		
-
+		</el-row> -->
 	</div>
 
 </template>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue"
new file mode 100644
index 0000000..33c4e0a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue"
@@ -0,0 +1,191 @@
+
+<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/basicinfo/locationInfo.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "璐т綅淇℃伅",
+      name: "locationInfo",
+      url: "/LocationInfo/",
+      sortName: "id",
+    });
+    const editFormFields = ref({
+      locationStatus: "",
+    });
+    const editFormOptions = ref([
+      [
+        { title: "璐т綅鐘舵��", field: "locationStatus" ,type: "select",dataKey: "locationStatusEnum",data: [],},
+      ],
+    ]);
+    const searchFormFields = ref({
+      locationCode: "",
+      roadwayNo: "",
+      locationType: "",
+      enableStatus: "",
+      locationStatus: "",
+      row: "",
+      columns: "",
+      layer: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "璐т綅缂栧彿", field: "locationCode", type: "like"},
+        { title: "鏂欑缂栧彿", field: "palletCode", type: "like"},
+        { title: "绂佺敤鐘舵��", field: "enableStatus" ,type: "select",dataKey: "",data: [{key: "0",value: "鍚敤"},{key: "3",value: "绂佺敤"}]},
+        { title: "璐т綅鐘舵��", field: "locationStatus" ,type: "selectList",dataKey: "locationStatusEnum",data: []},
+      ],
+      [
+        { title: "琛�", field: "row" ,type: "int"},
+        { title: "鍒�", field: "columns" ,type: "int"},
+        { title: "灞�", field: "layer" ,type: "int"}
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 100,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      // {
+      //   field: "areaId",
+      //   title: "鍖哄煙涓婚敭",
+      //   type: "string",
+      //   width: 90,
+      //   align: "left",
+      //   bind: {key: "areainfo",data: []}
+      // },
+      {
+        field: "locationCode",
+        title: "璐т綅缂栧彿",
+        type: "string",
+        width: 180,
+        align: "left",
+      },
+      {
+        field: "palletCode",
+        title: "鏂欑缂栧彿",
+        type: "string",
+        width: 150,
+        align: "left",
+        bind: { key: "", data: []},
+      },
+      {
+        field: "locationName",
+        title: "璐т綅鍚嶇О",
+        type: "string",
+        width: 260,
+        align: "left",
+      },
+      {
+        field: "roadwayNo",
+        title: "宸烽亾缂栧彿",
+        type: "decimal",
+        width: 130,
+        align: "left",
+        bind: { key: "", data: [] },
+      },
+      {
+        field: "row",
+        title: "璐т綅琛�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "columns",
+        title: "璐т綅鍒�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "layer",
+        title: "璐т綅灞�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "locationStatus",
+        title: "璐т綅鐘舵��",
+        type: "string",
+        width: 120,
+        align: "left",
+        bind: { key: "", data: [{key: "0",value: "绌洪棽"},{key: "1",value: "閿佸畾"},{key: "100",value: "鏈夎揣"}] },
+      },
+      {
+        field: "enableStatus",
+        title: "绂佺敤鐘舵��",
+        type: "string",
+        width: 80,
+        align: "left",
+        bind: { key: "", data: [{key: "0",value: "鍚敤"},{key: "3",value: "绂佺敤"}] },
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+        sort: true,
+        hidden: true,
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+        sort: true,
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+        hidden: true
+      },
+    ]);
+    const detail = ref({
+      cnName: "#detailCnName",
+      table: "",
+      columns: [],
+      sortName: "",
+    });
+    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/WCSClient/src/views/taskinfo/task.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue"
index 2e0156a..b0c8fd7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue"
@@ -51,9 +51,6 @@
           dataKey: "taskType",
           data: [],
         },
-        { title: "RFID缂栧彿", field: "rfidCode", type: "like" },
-      ],
-      [
         {
           title: "浠诲姟鐘舵��",
           field: "taskState",
@@ -61,14 +58,14 @@
           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: "nextAddress", type: "like" },
-        { title: "宸烽亾鍙�", field: "roadway", type: "like", type: "select",dataKey: "Stacker",data: [],},
         { title: "鍒涘缓浜�", field: "creater", type: "like" },
         { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
       ],
@@ -88,28 +85,21 @@
         field: "taskNum",
         title: "浠诲姟鍙�",
         type: "int",
-        width: 90,
+        width: 120,
         align: "left",
       },
       {
         field: "palletCode",
-        title: "鎵樼洏缂栧彿",
+        title: "鏂欑缂栧彿",
         type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "rfidCode",
-        title: "RFID缂栧彿",
-        type: "string",
-        width: 180,
+        width: 130,
         align: "left",
       },
       {
         field: "roadway",
         title: "宸烽亾鍙�",
         type: "string",
-        width: 150,
+        width: 100,
         align: "left",
         bind: { key: "Stacker", data: [] },
       },
@@ -117,7 +107,7 @@
         field: "taskType",
         title: "浠诲姟绫诲瀷",
         type: "int",
-        width: 130,
+        width: 100,
         align: "left",
         bind: { key: "taskType", data: [] },
       },
@@ -133,27 +123,34 @@
         field: "sourceAddress",
         title: "璧峰鍦板潃",
         type: "int",
-        width: 120,
+        width: 150,
         align: "left",
       },
       {
         field: "targetAddress",
         title: "鐩爣鍦板潃",
         type: "string",
-        width: 120,
+        width: 150,
         align: "left",
       },
       {
         field: "currentAddress",
         title: "褰撳墠浣嶇疆",
         type: "string",
-        width: 120,
+        width: 150,
         align: "left",
       },
       {
         field: "nextAddress",
         title: "涓嬩竴浣嶇疆",
         type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "wmsId",
+        title: "WMS浠诲姟(涓婃父)",
+        type: "int",
         width: 120,
         align: "left",
       },
@@ -161,7 +158,7 @@
         field: "exceptionMessage",
         title: "寮傚父淇℃伅",
         type: "string",
-        width: 90,
+        width: 100,
         align: "left",
       },
       {
@@ -175,43 +172,21 @@
         field: "dispatchertime",
         title: "浠诲姟涓嬪彂鏃堕棿",
         type: "datetime",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "wMSId",
-        title: "WMS浠诲姟涓婚敭",
-        type: "int",
-        width: 120,
-        align: "left",
-        hidden: true,
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
+        width: 180,
         align: "left",
       },
       {
         field: "createDate",
         title: "鍒涘缓鏃堕棿",
         type: "datetime",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
+        width: 180,
         align: "left",
       },
       {
         field: "modifyDate",
         title: "淇敼鏃堕棿",
         type: "datetime",
-        width: 160,
+        width: 180,
         align: "left",
       },
       {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task_hty.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task_hty.vue"
index 8f3b95b..5705165 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task_hty.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task_hty.vue"
@@ -50,29 +50,27 @@
           dataKey: "taskType",
           data: [],
         },
-        { title: "RFID缂栧彿", field: "rfidCode", type: "like" },
-      ],
-      [
         {
           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: "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: "taskId",
         title: "TaskId",
         type: "int",
@@ -86,28 +84,21 @@
         field: "taskNum",
         title: "浠诲姟鍙�",
         type: "int",
-        width: 90,
+        width: 120,
         align: "left",
       },
       {
         field: "palletCode",
-        title: "鎵樼洏缂栧彿",
+        title: "鏂欑缂栧彿",
         type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "rfidCode",
-        title: "RFID缂栧彿",
-        type: "string",
-        width: 180,
+        width: 130,
         align: "left",
       },
       {
         field: "roadway",
         title: "宸烽亾鍙�",
         type: "string",
-        width: 150,
+        width: 100,
         align: "left",
         bind: { key: "Stacker", data: [] },
       },
@@ -115,7 +106,7 @@
         field: "taskType",
         title: "浠诲姟绫诲瀷",
         type: "int",
-        width: 130,
+        width: 100,
         align: "left",
         bind: { key: "taskType", data: [] },
       },
@@ -131,27 +122,34 @@
         field: "sourceAddress",
         title: "璧峰鍦板潃",
         type: "int",
-        width: 120,
+        width: 150,
         align: "left",
       },
       {
         field: "targetAddress",
         title: "鐩爣鍦板潃",
         type: "string",
-        width: 120,
+        width: 150,
         align: "left",
       },
       {
         field: "currentAddress",
         title: "褰撳墠浣嶇疆",
         type: "string",
-        width: 120,
+        width: 150,
         align: "left",
       },
       {
         field: "nextAddress",
         title: "涓嬩竴浣嶇疆",
         type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "wmsId",
+        title: "WMS浠诲姟(涓婃父)",
+        type: "int",
         width: 120,
         align: "left",
       },
@@ -159,7 +157,7 @@
         field: "exceptionMessage",
         title: "寮傚父淇℃伅",
         type: "string",
-        width: 90,
+        width: 100,
         align: "left",
       },
       {
@@ -173,50 +171,21 @@
         field: "dispatchertime",
         title: "浠诲姟涓嬪彂鏃堕棿",
         type: "datetime",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "wMSId",
-        title: "WMS浠诲姟涓婚敭",
-        type: "int",
-        width: 120,
-        align: "left",
-        hidden: true,
-      },{
-        field: "operatetype",
-        title: "鎿嶄綔绫诲瀷",
-        type: "string",
-        width: 90,
-        align: "left",
-        bind: { key: "OperateTypeEnum", data: [] },
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
+        width: 180,
         align: "left",
       },
       {
         field: "createDate",
         title: "鍒涘缓鏃堕棿",
         type: "datetime",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
+        width: 180,
         align: "left",
       },
       {
         field: "modifyDate",
         title: "淇敼鏃堕棿",
         type: "datetime",
-        width: 160,
+        width: 180,
         align: "left",
       },
       {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
index 26400db..dc10d82 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
@@ -99,6 +99,11 @@
         [Description("浠诲姟瀹屾垚")]
         COMPLETED,
         /// <summary>
+        /// 绛夊緟鏀捐
+        /// </summary>
+        [Description("绛夊緟鏀捐")]
+        WAITFEEDBACK,
+        /// <summary>
         /// 浠诲姟鍙栨秷瀹屾垚
         /// </summary>
         [Description("浠诲姟鍙栨秷瀹屾垚")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs"
index c2f8e3b..ae83152 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs"
@@ -28,7 +28,7 @@
 {
     public interface ITaskExecuteDetailService : IService<Dt_TaskExecuteDetail>
     {
-        void AddTaskExecuteDetail(int taskId, string description = "");
+        void AddTaskExecuteDetail(Dt_Task task, string description = "");
 
         WebResponseContent GetDetailInfo(int taskNum);
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index c295c50..c7c0852 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -58,7 +58,17 @@
         /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
         WebResponseContent ReceiveWMSTask([NotNull] WMSTaskDTO taskDTO);
-        
+        /// <summary>
+        /// 瀹瑰櫒鍏ュ簱鍒涘缓浠诲姟
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ContainerFlow(ContainerFlowDTO containerFlowDTO,string deviceCode);
+        /// <summary>
+        /// 鐢宠鍏ュ簱
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent RequestInTask(string stationCode, string barCode);
+
         /// <summary>
         /// 鏇存柊浠诲姟寮傚父淇℃伅鏄剧ず
         /// </summary>
@@ -72,6 +82,7 @@
         /// <param name="taskNum">浠诲姟鍙�</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
         WebResponseContent TaskStatusRecovery(int taskNum);
+
         /// <summary>
         /// 鍥炴粴浠诲姟鐘舵��
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index 53a6ca1..9dac38a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -6,6 +6,7 @@
 using System.Text.RegularExpressions;
 using WIDESEA_DTO.Agv;
 using WIDESEA_External.Model;
+using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.APIEnum;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
@@ -54,17 +55,26 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                var task = _taskRepository.QueryFirst(x => agvUpdateDTO.ContainerCode==x.PalletCode) ?? throw new Exception($"鏈壘鍒版枡绠便�恵agvUpdateDTO.ContainerCode}銆戜换鍔�");
+                var task = _taskRepository.QueryFirst(x => (agvUpdateDTO.ContainerCode ?? "")==x.PalletCode);
                 switch (agvUpdateDTO.MissionStatus)
                 {
                     case nameof(AGVStatusEnum.PICKER_RECEIVE):
+                        if (task == null) throw new Exception($"鏈壘鍒版枡绠便�恵agvUpdateDTO.ContainerCode}銆戜换鍔�");
                         _taskService.UpdateTask(task, TaskStatusEnum.AGV_TakeFinish);
                         break;
                     case nameof(AGVStatusEnum.PICKER_SEND):
-                        //WebResponseContent responseContent = _taskService.AgvTaskFlow(task.PalletCode);
-                        //if (!responseContent.Status) throw new Exception($"{responseContent.Message}");
+                        if (task == null) throw new Exception($"鏈壘鍒版枡绠便�恵agvUpdateDTO.ContainerCode}銆戜换鍔�");
                         _taskService.TaskCompleted(task.TaskNum);
                         break;
+                    case nameof(AGVStatusEnum.WAITFEEDBACK):
+                        //AGV鏀捐
+                        List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x=>x.StationType==StationTypeEnum.StationType_OnlyInbound.ObjToInt());
+                        if (!stationMangers.Select(x=>x.StationCode).Contains(agvUpdateDTO.CurrentPosition))
+                        {
+                            WebResponseContent responseContent = _taskService.AgvTaskFlow(agvUpdateDTO.MissionCode);
+                            if (!responseContent.Status) throw new Exception($"{responseContent.Message}");
+                        }
+                        break;
                     default:
                         break;
                 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index 77d542c..72a97af 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -72,8 +72,13 @@
                     return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶噞stationManger.StationDeviceCode}");
                 }
                 CommonConveyorLine commonConveyorLine = (CommonConveyorLine)device;
-                string PickBarCode = commonConveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_PickBarCode, stationManger.StationCode).Replace("\0", "");
+                string PickBarCode = commonConveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_PickBarCode, stationManger.StationCode).Trim();
                 if (containerFlowDTO.ContainerCode!= PickBarCode) throw new Exception($"浼犲叆鏂欑鐮亄containerFlowDTO.ContainerCode}锛岃緭閫佹枡绠辩爜{PickBarCode}鏁版嵁閿欒");
+                if (containerFlowDTO.Direction=="100")
+                {
+                    WebResponseContent responseContent = Service.ContainerFlow(containerFlowDTO, stationManger.StationDeviceCode);
+                    if (!responseContent.Status) throw new Exception(responseContent.Message);
+                }
                 commonConveyorLine.SetValue(ConveyorLineDBName.W_PickToHode,(short)containerFlowDTO.Direction.ObjToInt(), stationManger.StationCode);
                 content.OK();
             }
@@ -83,7 +88,15 @@
             }
             return content;
         }
-
+        /// <summary>
+        /// 鐢宠鍏ュ簱
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("RequestInTask"), AllowAnonymous]
+        public WebResponseContent RequestInTask(string stationCode, string barCode)
+        {
+            return Service.RequestInTask(stationCode, barCode);
+        }
         [HttpPost, HttpGet, Route("GetRouteEndPoint"), AllowAnonymous]
         public WebResponseContent GetRouteEndPoint(string startPoint, int routeType)
         {
@@ -97,7 +110,7 @@
         [HttpPost, HttpGet, Route("RecWMSTaskCompleted"), AllowAnonymous]
         public WebResponseContent RecWMSTaskCompleted(int taskNum)
         {
-            return Service.RecWMSTaskCompleted(taskNum);
+            return Service.TaskCompleted(taskNum);
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile4.pubxml" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile4.pubxml"
new file mode 100644
index 0000000..36847ea
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile4.pubxml"
@@ -0,0 +1,17 @@
+锘�<?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>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/appsettings.json"
index 4c48174..bf8f45b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/appsettings.json"
@@ -26,7 +26,7 @@
   },
   "WMSApiAddress": "http://127.0.0.1:9293", //"http://127.0.0.1:9283",姝e紡鐜鍦板潃
   "ApiName": "WIDESEA",
-  "ExpMinutes": 120,
+  "ExpMinutes": 300,
   "QuartzJobAutoStart": true,
   "WebSocketEnable": false,
   "WebSocketPort": 9260
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
index 9449f13..3156ff5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
@@ -41,12 +41,12 @@
             _taskRepository = taskRepository;
         }
 
-        public void AddTaskExecuteDetail(int taskId, string description = "")
+        public void AddTaskExecuteDetail(Dt_Task task, string description = "")
         {
             try
             {
                 bool isNormal = true;
-                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskId);
+                Dt_Task taskExist = _taskRepository.QueryFirst(x => x.TaskNum == task.TaskNum);
                 if (task == null) return;
                 int taskNum = task.TaskNum;
                 int taskState = task.TaskState;
@@ -60,7 +60,7 @@
                     IsManual = App.User?.UserId > 0,
                     IsNormal = isNormal,
                     TaskNum = taskNum,
-                    TaskId = taskId,
+                    TaskId = taskExist.TaskId,
                     TaskState = taskState,
                     Description = description,
                     CurrentAddress = task.CurrentAddress,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index bc33716..d7eea4a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -15,6 +15,7 @@
  *----------------------------------------------------------------*/
 #endregion << 鐗� 鏈� 娉� 閲� >>
 using AutoMapper;
+using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
 using NPOI.SS.Formula.Functions;
 using SqlSugar;
@@ -37,6 +38,7 @@
 using WIDESEAWCS_DTO.Agv;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_IBasicInfoService;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
@@ -59,6 +61,7 @@
         private readonly IRouterRepository _routerRepository;
         private readonly IApiInfoRepository _apiInfoRepository;
         private readonly ILocationInfoRepository _locationInfoRepository;
+        private readonly ILocationInfoService _locationInfoService;
 
         private Dictionary<string, OrderByType> _taskOrderBy = new()
             {
@@ -76,7 +79,7 @@
 
         public List<int> TaskRelocationTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 900 && x < 1000).ToList();
 
-        public TaskService(ITaskRepository BaseDal, IMapper mapper, ICacheService cacheService, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IApiInfoRepository apiInfoRepository,ILocationInfoRepository locationInfoRepository,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        public TaskService(ITaskRepository BaseDal, IMapper mapper, ICacheService cacheService, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IApiInfoRepository apiInfoRepository,ILocationInfoRepository locationInfoRepository,IUnitOfWorkManage unitOfWorkManage, ILocationInfoService locationInfoService) : base(BaseDal)
         {
             _mapper = mapper;
             _cacheService = cacheService;
@@ -88,6 +91,7 @@
             _apiInfoRepository = apiInfoRepository;
             _locationInfoRepository = locationInfoRepository;
             _unitOfWorkManage = unitOfWorkManage;
+            _locationInfoService = locationInfoService;
         }
         static object lock_taskReceive = new object();
         /// <summary>
@@ -111,7 +115,7 @@
                     List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData();
                     //涓嬪彂浠诲姟缁�
                     string taskGroup= taskDTO.TaskGroupCode.IsNullOrEmpty() ? Guid.NewGuid().ToString().Replace("-","") : taskDTO.TaskGroupCode;
-                    foreach (var item in taskDTO.Tasks)
+                    foreach (var item in taskDTO.Tasks.OrderBy(x=>x.ToStationCode))
                     {
                         if (item.ToStationCode.IsNullOrEmpty()) throw new Exception($"浠诲姟{item.TaskCode}鍑哄簱鐩爣鎿嶄綔鍙颁笉鑳戒负绌�");
                         //鑾峰彇鎿嶄綔鍙�
@@ -126,7 +130,7 @@
                         task.GroupId = taskGroup;
                         task.TaskType = TaskTypeEnum.Outbound.ObjToInt();
                         task.Roadway = locationInfo.RoadwayNo;
-                        task.DeviceCode = "AGV";
+                        task.DeviceCode = stationManger.CraneCode;
                         task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
                         tasks.Add(task);
                     }
@@ -152,7 +156,89 @@
             }
             return content;
         }
-       
+        static object lock_containerFlow = new object();
+        /// <summary>
+        /// 瀹瑰櫒鍏ュ簱鍒涘缓浠诲姟
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent ContainerFlow(ContainerFlowDTO containerFlowDTO, string deviceCode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                lock (lock_containerFlow)
+                {
+                    List<Dt_LocationInfo> locationInfos = _locationInfoRepository.QueryData();
+                    Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x=>x.PalletCode== containerFlowDTO.ContainerCode);
+                    if (locationInfo != null) throw new Exception($"鏂欑鍙穥containerFlowDTO.ContainerCode}宸插瓨鍦�");
+                    if (BaseDal.QueryFirst(x=>x.PalletCode==containerFlowDTO.ContainerCode)!=null) throw new Exception($"鏂欑鍙穥containerFlowDTO.ContainerCode}浠诲姟宸插瓨鍦�");
+                    Dt_LocationInfo? noInLocation = locationInfos.FirstOrDefault(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus == EnableStatusEnum.Normal.ObjToInt());
+                    if (noInLocation == null) throw new Exception($"鍙敤璐т綅涓嶈冻!");
+                    Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt() && x.StationDeviceCode == deviceCode);
+                    //涓嬪彂浠诲姟缁�
+                    Dt_Task task = new Dt_Task();
+                    task.PalletCode = containerFlowDTO.ContainerCode;
+                    task.SourceAddress = containerFlowDTO.SlotCode;
+                    task.CurrentAddress = containerFlowDTO.SlotCode;
+                    task.NextAddress = stationManger.StationCode;
+                    task.TargetAddress = "";
+                    task.WMSId = "";
+                    task.TaskType = TaskTypeEnum.Inbound.ObjToInt();
+                    task.Roadway = noInLocation.RoadwayNo;
+                    task.DeviceCode = stationManger.StationDeviceCode;
+                    task.TaskState = TaskStatusEnum.CL_Executing.ObjToInt();
+                    //娣诲姞浠诲姟
+                    BaseDal.AddData(task);
+                    _taskExecuteDetailService.AddTaskExecuteDetail(new List<int>() { task.TaskNum }, "鍒涘缓鍏ュ簱浠诲姟");
+                    content.OK("鎴愬姛");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error($"閿欒淇℃伅:{ex.Message}");
+            }
+            return content;
+        }
+        static object lock_requestInTask = new object();
+        /// <summary>
+        /// 鐢宠鍏ュ簱
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent RequestInTask(string stationCode,string barCode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                lock (lock_requestInTask)
+                {
+                    Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == barCode && x.NextAddress == stationCode && x.TaskState == TaskStatusEnum.CL_Executing.ObjToInt());
+                    if (task == null) throw new Exception($"{barCode}鏂欑鏈壘鍒颁换鍔�!");
+                    Dt_LocationInfo? locationInfo = _locationInfoService.AssignLocation();
+                    if (locationInfo == null) throw new Exception($"鍙敤璐т綅涓嶈冻!");
+                    task.NextAddress = locationInfo.LocationCode;
+                    task.TargetAddress = locationInfo.LocationCode;
+                    task.CurrentAddress = stationCode;
+                    task.DeviceCode = "AGV";
+                    task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+                    locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+                    //鏇存柊浠诲姟鍜岃揣浣嶆暟鎹�
+                    _unitOfWorkManage.BeginTran();
+                    BaseDal.UpdateData(task);
+                    _locationInfoRepository.UpdateData(locationInfo);
+                    _unitOfWorkManage.CommitTran();
+                    _taskExecuteDetailService.AddTaskExecuteDetail(new List<int>() { task.TaskNum }, $"鍒嗛厤璐т綅{locationInfo.LocationCode}");
+
+                    content.OK("鎴愬姛");
+                }
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error($"閿欒淇℃伅:{ex.Message}");
+            }
+            return content;
+        }
+
         public static string Post(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
             string result = string.Empty;
@@ -208,7 +294,7 @@
                 task.ModifyDate = DateTime.Now;
                 BaseDal.UpdateData(task);
 
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, task.ExceptionMessage);
+                _taskExecuteDetailService.AddTaskExecuteDetail(task, task.ExceptionMessage);
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -250,7 +336,7 @@
 
                 BaseDal.UpdateData(task);
 
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"浜哄伐鎭㈠鎸傝捣浠诲姟,鎭㈠鎸傝捣鏃朵换鍔$姸鎬併�恵task.TaskState}銆�");
+                _taskExecuteDetailService.AddTaskExecuteDetail(task, $"浜哄伐鎭㈠鎸傝捣浠诲姟,鎭㈠鎸傝捣鏃朵换鍔$姸鎬併�恵task.TaskState}銆�");
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -291,7 +377,7 @@
 
                 BaseDal.UpdateData(task);
 
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"浜哄伐灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戝洖婊氬埌銆恵task.TaskState}銆�");
+                _taskExecuteDetailService.AddTaskExecuteDetail(task, $"浜哄伐灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戝洖婊氬埌銆恵task.TaskState}銆�");
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -339,7 +425,7 @@
                 AgvTaskFlowDTO agvTaskFlowDTO = new AgvTaskFlowDTO()
                 {
                     RequestId = Guid.NewGuid().ToString().Replace("-", ""),
-                    ContainerCode = code
+                    MissionCode = code
                 };
                 string request = JsonConvert.SerializeObject(agvTaskFlowDTO, settings);
                 string response = HttpHelper.Post(url, request);
@@ -409,25 +495,37 @@
                 }
                 else if(task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍏ュ簱浠诲姟閫昏緫
                 {
-                    string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInBoundBack.ToString())?.ApiAddress;
-                    if (string.IsNullOrEmpty(url))
+                    //string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInBoundBack.ToString())?.ApiAddress;
+                    //if (string.IsNullOrEmpty(url))
+                    //{
+                    //    _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                    //    UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                    //    return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                    //}
+                    //ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+                    //{
+                    //    TaskCode= task.TaskNum.ToString(),
+                    //    ContainerCode = task.PalletCode,
+                    //    FromStationCode = task.SourceAddress,
+                    //    ToLocationCode = task.TargetAddress
+                    //};
+                    //string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+                    ////璋冪敤鎺ュ彛
+                    //string response = HttpHelper.Post(url, request);
+                    //WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ??throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
+                    //if (wMSResponse.Code!="0") throw new Exception($"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}");
+                    Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+                    if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
                     {
-                        _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
-                        UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
-                        return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+                        return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
                     }
-                    ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
-                    {
-                        TaskCode= task.TaskNum.ToString(),
-                        ContainerCode = task.PalletCode,
-                        FromStationCode = task.SourceAddress,
-                        ToLocationCode = task.TargetAddress
-                    };
-                    string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
-                    //璋冪敤鎺ュ彛
-                    string response = HttpHelper.Post(url, request);
-                    WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ??throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
-                    if (wMSResponse.Code!="0") throw new Exception($"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}");
+                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+                    locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+                    locationInfo.PalletCode = task.PalletCode;
+                    _unitOfWorkManage.BeginTran();
+                    _locationInfoRepository.UpdateData(locationInfo);
+                    BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                    _unitOfWorkManage.CommitTran();
                 }
                 content.OK("浠诲姟瀹屾垚");
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
index 06efdd4..46eef8e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
@@ -93,7 +93,7 @@
                 task.TaskState = taskStatus.ObjToInt();
             }
             BaseDal.UpdateData(task);
-            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, stringBuilder.ToString());
+            _taskExecuteDetailService.AddTaskExecuteDetail(task, stringBuilder.ToString());
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
index 8e51305..7055ef8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
@@ -109,7 +109,7 @@
                             //鑾峰彇鐩爣鐐硅揣浣�
                             Dt_LocationInfo locationInfoEnd = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.NextAddress);
                             //鑾峰彇绾夸綋鍏ュ簱绔欏彴
-                            Dt_StationManger stationMangerStart = _stationMangerRepository.QueryFirst(x => x.PickStationCode == task.CurrentAddress);
+                            Dt_StationManger stationMangerStart = _stationMangerRepository.QueryFirst(x => x.StationCode == task.CurrentAddress);
                             if (locationInfoEnd == null || stationMangerStart == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskNum}璧峰鐐箋task.CurrentAddress}鎴栫洰鏍囩偣{task.NextAddress}浣嶇疆淇℃伅");
                             agvTaskSend.RequestId = Guid.NewGuid().ToString().Replace("-", "");
                             agvTaskSend.MissionCode = task.TaskNum.ToString();
@@ -130,10 +130,10 @@
                                 StartSlotCode = stationMangerStart.CraneStationCode,
                                 EndPosition = locationInfoEnd.AgvPoint,
                                 EndSlotCode = locationInfoEnd.LocationCode,
-                                TakeActionConfirm = false,
-                                TakeActionInform = false,
-                                PutActionConfirm = true,
-                                PutActionInform = true,
+                                TakeActionConfirm = true,
+                                TakeActionInform = true,
+                                PutActionConfirm = false,
+                                PutActionInform = false,
                             };
                             agvTaskSend.MissionData.Add(missionDataItem);
                             //鍙戦�丄GV浠诲姟
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineDBName.cs"
index 6c967f3..ba89c5e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineDBName.cs"
@@ -33,12 +33,8 @@
         /// </summary>
         R_PickBarCode,
         /// <summary>
-        /// 鎷i�夊幓鍚�(鍐�)
+        /// 鎷i�夊幓鍚�/鎷i�夌‘璁�(鍐�)
         /// </summary>
-        W_PickToHode,
-        /// <summary>
-        /// 鎷i�夌‘璁�(鍐�)
-        /// </summary>
-        W_PickResponse,
+        W_PickToHode
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs"
index 5a91d08..2cd34b8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs"
@@ -10,6 +10,7 @@
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
@@ -45,41 +46,71 @@
                 CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
                 if (conveyorLine != null)
                 {
-                    #region 绔欏彴鏂瑰紡
-
                     List<Dt_StationManger> stationManagers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == conveyorLine.DeviceCode);
 
                     foreach (var station in stationManagers)
                     {
-                        if (station.StationType==StationTypeEnum.StationType_OnlyOutbound.ObjToInt()) //鎷i�夌敵璇�
+                        if (station.StationType==StationTypeEnum.StationType_OnlyOutbound.ObjToInt()) 
                         {
+                            //鎷i�夌敵璇�
                             bool PickRequest = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.R_PickRequest, station.StationCode);
                             if (PickRequest)
                             {
-                                string PickBarCode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_PickBarCode, station.StationCode).Replace("\0", "");
+                                string PickBarCode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_PickBarCode, station.StationCode).Trim();
                                 //涓婃姤WMS鏂欑鍒拌揪
                                 if (PickBarCode.IsNotEmptyOrNull())
                                 {
-                                    WebResponseContent content = _taskService.WMSPickUp(station.PickStationCode, PickBarCode);
+                                    //WebResponseContent content = _taskService.WMSPickUp(station.PickStationCode, PickBarCode);
+                                    WebResponseContent content = WebResponseContent.Instance.OK();
                                     if (content.Status)
                                     {
                                         //鍐欏叆鎷i�夌‘璁�
+                                        conveyorLine.SetValue(ConveyorLineDBName.W_PickToHode, (short)300, station.StationCode);
+                                    }
+                                    else
+                                    {
+                                        WriteError(nameof(conveyorLine.DeviceCode), $"{station.PickStationCode}鎷i�夌敵璇蜂笂鎶MS閿欒锛屼俊鎭瘂content.Message}");
                                     }
                                 }
                                 else
                                 {
-                                    WriteError(nameof(conveyorLine.DeviceCode), $"{station.StationCode}鎷i�夌敵璇蜂负{PickRequest}鏉$爜涓虹┖鍊�");
+                                    WriteError(nameof(conveyorLine.DeviceCode), $"{station.PickStationCode}鎷i�夌敵璇蜂负{PickRequest}鏉$爜涓虹┖鍊�");
                                 }
                             }
                             
                         }
                         else
                         {
-
+                            //鍏ュ簱鐢宠
+                            bool InRequest = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.R_InRequest, station.StationCode);
+                            bool InResponse = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.W_InResponse, station.StationCode);
+                            int InWeight = conveyorLine.GetValue<ConveyorLineDBName, int>(ConveyorLineDBName.R_InWeight, station.StationCode);
+                            if (InRequest && !InResponse && InWeight>0)
+                            {
+                                string InBarCode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.R_InBarCode, station.StationCode).Trim();
+                                //鏂欑鍒拌揪
+                                if (InBarCode.IsNotEmptyOrNull())
+                                {
+                                    //鐢宠鍏ュ簱浠诲姟
+                                    WebResponseContent content =_taskService.RequestInTask(station.StationCode,InBarCode);
+                                    if (content.Status)
+                                    {
+                                        //鍐欏叆鍏ュ簱纭
+                                        conveyorLine.SetValue(ConveyorLineDBName.W_InResponse, true, station.StationCode);
+                                    }
+                                    else
+                                    {
+                                        WriteError(nameof(conveyorLine.DeviceCode), $"绔欏彴{station.StationCode}鏂欑{InBarCode}鐢宠鍏ュ簱浠诲姟閿欒锛屼俊鎭瘂content.Message}");
+                                    }
+                                }
+                                else
+                                {
+                                    WriteError(nameof(conveyorLine.DeviceCode), $"绔欏彴{station.StationCode}鍏ュ簱鐢宠涓簕InRequest}鏉$爜涓虹┖鍊�");
+                                }
+                            }
                         }
                         
                     }
-                    #endregion 绔欏彴鏂瑰紡
                 }
             }
             catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/WMS\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256251126.xls" "b/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/WMS\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256251126.xls"
index 3f24a27..aac2d33 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/WMS\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256251126.xls"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/WMS\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256251126.xls"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/\350\276\223\351\200\201\346\213\243\351\200\211\345\222\214\347\253\231\345\217\260\347\274\226\345\217\267.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/\350\276\223\351\200\201\346\213\243\351\200\211\345\222\214\347\253\231\345\217\260\347\274\226\345\217\267.xlsx"
index 64a7bea..13864b5 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/\350\276\223\351\200\201\346\213\243\351\200\211\345\222\214\347\253\231\345\217\260\347\274\226\345\217\267.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/AGV\351\200\232\344\277\241\346\226\207\346\241\243/\350\276\223\351\200\201\346\213\243\351\200\211\345\222\214\347\253\231\345\217\260\347\274\226\345\217\267.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\344\270\200\346\234\237Ip.png" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\344\270\200\346\234\237Ip.png"
new file mode 100644
index 0000000..2f1286a
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\344\270\200\346\234\237Ip.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx"
index 2452227..d94e44c 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\347\221\236\346\204\217\345\215\232\351\203\250\347\275\262\346\216\245\345\217\243\346\226\207\346\241\243.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\347\221\236\346\204\217\345\215\232\351\203\250\347\275\262\346\216\245\345\217\243\346\226\207\346\241\243.pdf"
new file mode 100644
index 0000000..9c89423
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\347\221\236\346\204\217\345\215\232\351\203\250\347\275\262\346\216\245\345\217\243\346\226\207\346\241\243.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\347\224\265\345\255\220\346\240\207\347\255\276\346\216\245\345\217\243\346\226\207\346\241\243.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\347\224\265\345\255\220\346\240\207\347\255\276\346\216\245\345\217\243\346\226\207\346\241\243.pdf"
new file mode 100644
index 0000000..6f78eef
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\347\224\265\345\255\220\346\240\207\347\255\276\346\216\245\345\217\243\346\226\207\346\241\243.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V1.1.3.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V1.1.3.docx"
index 63840a7..ce4c30d 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V1.1.3.docx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\243_V1.1.3.docx"
Binary files differ

--
Gitblit v1.9.3