From 50fd5cc9cfad08714c4daa6d481c5293ff2ae6b1 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 31 一月 2024 18:55:28 +0800
Subject: [PATCH] 逻辑完善

---
 代码管理/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs                                                    |    2 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj                                                  |   61 
 项目资料/通信协议/PCS和桁架协议/interface PMS RES_machine.pdf                                                          |    0 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs                                                          |  175 ++++
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs                                   |    3 
 项目资料/通信协议/PCS和桁架协议/interface PMS INFO Machine.pdf                                                         |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Repositories/BaseInfo/dt_geometry_dataRepository.cs                       |   24 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs                     |   18 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/WCSClient/DBExtension.cs                                                  |   96 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs                                                           |    2 
 项目资料/通信协议/PCS和桁架协议/协议.xlsx                                                                                |    0 
 代码管理/PCS/WCS_Server/WIDESEA_System/IServices/System/Idt_Interfacerecord_pcsService.cs                     |   12 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data.cs                      |   21 
 项目资料/项目图纸/货位.xlsx                                                                                         |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs                                                      |   59 -
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs                        |    3 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs                                               |   91 ++
 项目资料/通信协议/WMS和MES接口/MES接收AGV数据接口.docx                                                                     |    0 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/Partial/dt_Interfacerecord_pcsController.cs |   33 
 代码管理/PCS/WCS_Server/WIDESEA_System/IServices/System/Partial/Idt_Interfacerecord_pcsService.cs             |   13 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/dt_Interfacerecord_pcsController.cs         |   21 
 代码管理/WMS/WMS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_dataRepository.cs                       |   24 
 项目资料/通信协议/PCS和桁架协议/interface PMS RES_input.pdf                                                            |    0 
 代码管理/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WritePCSLog.cs                                                   |   53 +
 代码管理/PCS/WCS_Client/src/views/Home.vue                                                                    |    2 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs                                    |    4 
 项目资料/通信协议/PCS和桁架协议/interface PMS REQ GEOMETRY.pdf                                                         |    0 
 代码管理/PCS/WCS_Server/WIDESEA_System/Services/System/Partial/dt_Interfacerecord_pcsService.cs               |   41 +
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_Interfacerecord_pcs.cs                  |   21 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs                                                      |   84 ++
 代码管理/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_dataService.cs                              |   27 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/System/dt_Interfacerecord_pcsMapConfig.cs         |   16 
 代码管理/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data.vue                                   |   73 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs                                             |   84 +
 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/Interface to AGV(1).pdf                                                        |    0 
 项目资料/通信协议/PCS和桁架协议/新增设备需要采集的信息.xlsx                                                                       |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_dataService.cs                      |   41 +
 代码管理/PCS/WCS_Server/WIDESEA_System/Repositories/System/dt_Interfacerecord_pcsRepository.cs                |   24 
 项目资料/通信协议/WMS和AGV接口/WMS、PCS和AGV接口协议.xlsx                                                                  |    0 
 代码管理/PCS/WCS_Server/WIDESEA_System/IRepositories/System/Idt_Interfacerecord_pcsRepository.cs              |   18 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRespone.cs                                       |   20 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/dt_geometry_dataController.cs                  |   21 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj                                                  |    4 
 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/system/dt_Interfacerecord_pcs.js                            |  104 ++
 代码管理/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data.js                                |   75 +
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Idt_geometry_dataService.cs                            |   12 
 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/AGV与桁架防呆协议.xlsx                                                                |    0 
 代码管理/PCS/WCS_Server/WIDESEA_Comm/WIDESEA_Comm.csproj                                                      |    1 
 代码管理/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue                                       |   10 
 代码管理/WMS/WMS_Server/WIDESEA_Core/UserManager/UserContext.cs                                               |   10 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_Interfacerecord_pcs.cs                          |  124 +++
 项目资料/通信协议/PCS和桁架协议/interface PMS INFO Gantry.pdf                                                          |    0 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/UserInfo.cs                                        |    1 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs                                                   |   36 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs                                               |   38 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRequestin.cs                                     |   24 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs                                                 |    5 
 项目资料/通信协议/新增设备协议/太重交互-库口状态_V1.xlsx                                                                        |    0 
 代码管理/WMS/WMS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs                                                    |    2 
 代码管理/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js                                    |    6 
 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/interface PMS RES_inputs_conv_feed.pdf                                         |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs            |   12 
 项目资料/通信协议/PCS和桁架协议/interface PMS INFO VK.pdf                                                              |    0 
 项目资料/其他/库区分配.txt                                                                                          |    2 
 代码管理/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_dataService.cs                      |   41 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs                                                  |    4 
 代码管理/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_dataService.cs                            |   12 
 代码管理/WMS/WMS_Client/src/router/viewGird.js                                                                |    6 
 项目资料/其他/系统架构图(1).pdf                                                                                      |    0 
 项目资料/通信协议/WMS和MES接口/MES下发AGV数据.docx                                                                       |    0 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs                                                    |   79 +
 代码管理/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs                    |   13 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs                    |   13 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToAGV/ToAGVController.cs                                   |   64 +
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs                          |   57 +
 项目资料/通信协议/WMS和AGV接口/WMS下发任务给AGV.png                                                                       |    0 
 代码管理/PCS/WCS_Client/src/views/widesea_wcs/system/dt_Interfacerecord_pcs.vue                               |   86 ++
 代码管理/WMS/WMS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs                     |   18 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/Gantry/QueryData.cs                                                |    6 
 代码管理/PCS/WCS_Client/src/views/widesea_system/system/tracklogDetial.vue                                    |   65 +
 代码管理/PCS/WCS_Client/src/router/viewGird.js                                                                |    4 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs                              |  113 ++
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/GantryDB.cs                                                        |   55 +
 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/interface PMS REQ GEOMETRY 4 inputs.pdf                                        |    0 
 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/Interface PCS for AGV and Storage.pdf                                          |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs                                              |    6 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/ToAGV/AGVRespone.cs                                                    |    3 
 代码管理/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs                                           |   20 
 项目资料/通信协议/PCS和桁架协议/interface PMS SERVERS.pdf                                                              |    0 
 代码管理/PCS/WCS_Server/WIDESEA_System/Services/System/dt_Interfacerecord_pcsService.cs                       |   27 
 项目资料/通信协议/PCS和桁架协议/interface PMS INFO WP.pdf                                                              |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/dt_geometry_dataService.cs                              |   27 
 /dev/null                                                                                                 |    0 
 项目资料/通信协议/PCS和桁架协议/interface PMS REQ.pdf                                                                  |    0 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Startup.cs                                                             |   21 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_geometry_dataController.cs          |   33 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_dataMapConfig.cs             |   16 
 97 files changed, 2,269 insertions(+), 173 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/system/dt_Interfacerecord_pcs.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/system/dt_Interfacerecord_pcs.js"
new file mode 100644
index 0000000..d2820b6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/system/dt_Interfacerecord_pcs.js"
@@ -0,0 +1,104 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import tracklogDetial from "@/views/widesea_system/system/tracklogDetial.vue"
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: tracklogDetial,
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+        //   this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+        //     name: '鎸夐挳', //鎸夐挳鍚嶇О
+        //     icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+        //     type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+        //     onClick: function () {
+        //       this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+        //     }
+        //   });
+
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        // this.boxOptions.labelWidth = 150;
+        this.columns.forEach(x => {
+          if (x.field == "interface_type") {
+            x.getColor = (row, column) => {
+              if (row != null) {
+                if (row.interface_type == "鎴愬姛") {
+                  return "success";
+                } else if (row.interface_type == "澶辫触") {
+                  return "error";
+                }
+              }
+            }
+          }
+        })
+  
+        let options = {
+          field: 'oper',
+          title: '鏁版嵁璇︽儏',
+          type: 'text',
+          width: 60,
+          //杩斿洖涓�涓爣绛�
+          formatter: (row) => {
+            return '<a href="javascript:void(0)">璇︽儏</a>'
+          },
+          //瑙﹀彂浜嬩欢,鍙互鍦ㄦ浜嬩欢鍐嶆墦寮�涓�涓脊鍑烘绛夋搷浣�
+          click: (row, column, event) => {
+            this.$refs.gridHeader.openDialog(row)
+          }
+        };
+        this.columns.push(options)
+    },
+    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/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js"
index fa1cd96..b3b11ea 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js"
@@ -185,6 +185,10 @@
         path: '/dt_geometry_data',
         name: 'dt_geometry_data',
         component: () => import('@/views/widesea_wcs/baseinfo/dt_geometry_data.vue')
+    }    ,{
+        path: '/dt_Interfacerecord_pcs',
+        name: 'dt_Interfacerecord_pcs',
+        component: () => import('@/views/widesea_wcs/system/dt_Interfacerecord_pcs.vue')
     }]
 
 export default viewgird
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/Home.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/Home.vue"
index 185acbd..9bddc94 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/Home.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/Home.vue"
@@ -1,5 +1,5 @@
 <template>
-  <div class="title">Welcome To WCS!</div>
+  <div class="title">Welcome To PCS!</div>
 </template>
 
 <script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_system/system/tracklogDetial.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_system/system/tracklogDetial.vue"
new file mode 100644
index 0000000..99164ab
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_system/system/tracklogDetial.vue"
@@ -0,0 +1,65 @@
+<template>
+    <div>
+        <!-- 璇︽儏寮圭獥 -->
+        <vol-box :height="450" v-model="detialBox" :padding="15" title="鏃ュ織璇︽儏">
+         <div>
+                id锛歿{ rowData.interface_id }}
+                <hr />
+                <b>鏃堕棿锛�</b>
+                {{ rowData.interface_createtime }}
+                <br />
+                <b>鎿嶄綔鍚嶇О锛�</b>
+                {{ rowData.interface_name }}
+                <br />
+                <b>鎻忚堪锛�</b>
+                {{ rowData.interface_remark }}
+                <br />
+                <b>閿欒淇℃伅锛�</b>
+                <br />
+                {{ rowData.interface_message }}
+                <br />
+                <br />
+                <b>璇锋眰鏁版嵁锛�</b>
+                <br />
+                <pre> {{ rowData.interface_paradata==""?rowData.interface_paradata:JSON.parse(rowData.interface_paradata) }}</pre>
+                <br />
+                <b>杩斿洖鏁版嵁锛�</b>
+                <pre>{{rowData.interface_returndata==""?rowData.interface_returndata:JSON.parse(rowData.interface_returndata)}}</pre>
+            </div>  
+        </vol-box>
+    </div>
+</template>
+  
+<script defer = "true">
+import VolBox from "@/components/basic/VolBox.vue";
+
+export default {
+    components: { "vol-box": VolBox },
+    methods: {},
+    data() {
+        return {
+            detialBox: false,
+            rowData: "",
+        };
+    },
+    methods: {
+        openDialog(row) {
+            this.detialBox = true;
+            this.rowData = row;
+        }
+    },
+};
+</script>
+  
+  
+<style>
+.formContainer {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+</style>
+  
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/system/dt_Interfacerecord_pcs.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/system/dt_Interfacerecord_pcs.vue"
new file mode 100644
index 0000000..41e8fd5
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/system/dt_Interfacerecord_pcs.vue"
@@ -0,0 +1,86 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wcs/system/dt_Interfacerecord_pcs.js姝ゅ缂栧啓
+ -->
+<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/widesea_wcs/system/dt_Interfacerecord_pcs.js";
+    import { ref, defineComponent } from "vue";
+    export default defineComponent({
+        setup() {
+            const table = ref({
+                key: 'interface_id',
+                footer: "Foots",
+                cnName: '鎺ュ彛鏃ュ織',
+                name: 'system/dt_Interfacerecord_pcs',
+                url: "/dt_Interfacerecord_pcs/",
+                sortName: "interface_createtime"
+            });
+            const editFormFields = ref({});
+            const editFormOptions = ref([]);
+            const searchFormFields = ref({"interface_remark":"",});
+            const searchFormOptions = ref([[{"title":"璇锋眰鏁版嵁","field":"interface_paradata","type":"like"},{"title":"鎻忚堪","field":"interface_remark","type":"like"}],
+            [{"title":"杩斿洖鏁版嵁","field":"interface_returndata","type":"like"},{"title":"鍒涘缓鏃堕棿","field":"interface_createtime","type":"datetime"}]
+        ]);
+            const columns = ref([
+                {field:'interface_id',title:'涓婚敭',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
+            {
+field:'interface_call',
+type:'string',
+title:"璇锋眰鑰�",
+width:60,
+// sort:true,
+align:'left'
+},
+{
+           field:'interface_type',
+           title:'绫诲瀷',
+           type:'string',
+           width:60,
+           require:true,
+           align:'left',
+           bind:{data:[]},
+           //sortable:true
+           },
+                       {field:'interface_provide',title:'鎺ュ彈鑰�',type:'string',width:60,require:true,align:'left'},
+                    //    {field:'interface_call',title:'璇锋眰鑰�',type:'string',width:110,require:true,align:'left'},
+                       {field:'interface_paradata',title:'璇锋眰鏁版嵁',type:'string',width:110,align:'left'},
+                       {field:'interface_returndata',title:'杩斿洖鏁版嵁',type:'string',width:110,align:'left'},
+                       {field:'interface_createtime',title:'鍒涘缓鏃堕棿',type:'datetime',width:120,require:true,align:'left',sortable:true},
+                       {field:'interface_remark',title:'鎻忚堪',type:'string',width:120,align:'left'},
+                       {field:'interface_operator',title:'鎿嶄綔鑰�',type:'string',width:110,require:true,align:'left'},
+                       {field:'interface_name',title:'鎿嶄綔鍚嶇О',type:'string',width:110,require:true,align:'left'},
+                       {field:'interface_message',title:'閿欒淇℃伅',type:'string',width:110,align:'left'},]);
+            const detail = ref({
+                cnName: "#detailCnName",
+                table: "#detailTable",
+                columns: [],
+                sortName: "",
+                key: ""
+            });
+            return {
+                table,
+                extend,
+                editFormFields,
+                editFormOptions,
+                searchFormFields,
+                searchFormOptions,
+                columns,
+                detail,
+            };
+        },
+    });
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs"
index 9513bfa..d177e91 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs"
@@ -82,7 +82,7 @@
         /// <summary>
         /// 娣诲姞鏃ュ織
         /// </summary>
-        private static void Write(string describe, object info, LogState logState, string dataFrom, string createuser)
+        public static void Write(string describe, object info, LogState logState, string dataFrom, string createuser)
         {
             try
             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WritePCSLog.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WritePCSLog.cs"
new file mode 100644
index 0000000..57025f3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WritePCSLog.cs"
@@ -0,0 +1,53 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_System.IRepositories;
+using WIDESEA_System.Repositories;
+
+namespace WIDESEA_Comm.LogInfo
+{
+    public class WritePCSLog
+    {
+        /// <summary>
+        /// 鎺ュ彛鏁版嵁璁板綍
+        /// </summary>
+        /// <param name="id">浠诲姟ID</param>
+        /// <param name="code">鎴愬姛/澶辫触</param>
+        /// <param name="provide">鎺ュ彈鑰�</param>
+        /// <param name="call">璇锋眰鑰�</param>
+        /// <param name="paradata">璇锋眰鏁版嵁</param>
+        /// <param name="returndata">杩斿洖鏁版嵁</param>
+        /// <param name="remark">澶囨敞/鎻忚堪</param>
+        /// <param name="name">鎿嶄綔鍚嶇О(鏂规硶鍚�)</param>
+        /// <param name="message">閿欒淇℃伅</param>
+        public static void LogAdd(string id, string code, string provide, string call, string paradata, string returndata, string remark, string name, string message)
+        {
+            VOLContext context = new VOLContext();
+            Idt_Interfacerecord_pcsRepository interfacerecord_PcsRepository = new dt_Interfacerecord_pcsRepository(context);
+            dt_Interfacerecord_pcs interfacerecord = new dt_Interfacerecord_pcs()
+            {
+                interface_id = Guid.NewGuid(),
+                interface_type = code,
+                interface_provide = provide,
+                interface_call = call,
+                interface_paradata = paradata,
+                interface_returndata = returndata,
+                interface_createtime = DateTime.Now,
+                interface_remark = remark,
+                interface_operator = "admin",//UserContext.Current.UserName == null ? "admin" : UserContext.Current.UserName,
+                interface_name = name,
+                interface_message = message,
+            };
+            dt_Interfacerecord_pcs data = null;
+            if (interfacerecord.interface_message != "")
+                data = interfacerecord_PcsRepository.FindFirst(x => x.interface_message == interfacerecord.interface_message && x.interface_remark == interfacerecord.interface_remark && (interfacerecord.interface_createtime.Ticks - x.interface_createtime.Ticks >= 5) && x.interface_paradata.Contains(id));//瓒呰繃5绉掕褰�
+            //data = interfacerecord_PcsRepository.FindFirst(x => x.interface_message == interfacerecord.interface_message && x.interface_remark == interfacerecord.interface_remark && x.interface_createtime.Day == DateTime.Now.Day && x.interface_paradata.Contains(id));
+            if (data == null)
+                interfacerecord_PcsRepository.Add(interfacerecord, true);
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
new file mode 100644
index 0000000..f43a0e4
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs"
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Comm
+{
+    public enum LocationStateEnum
+    {
+        /// <summary>
+        /// 鏈夎揣
+        /// </summary>
+        Stroge,
+        /// <summary>
+        /// 绌鸿揣浣�
+        /// </summary>
+        Empty
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/WIDESEA_Comm.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/WIDESEA_Comm.csproj"
index ec43002..e75e3fc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/WIDESEA_Comm.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/WIDESEA_Comm.csproj"
@@ -12,6 +12,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\WIDESEA_Core\WIDESEA_Core.csproj" />
+    <ProjectReference Include="..\WIDESEA_System\WIDESEA_System.csproj" />
   </ItemGroup>
 
 </Project>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_Interfacerecord_pcs.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_Interfacerecord_pcs.cs"
new file mode 100644
index 0000000..fcc9503
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_Interfacerecord_pcs.cs"
@@ -0,0 +1,124 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *濡傛灉鏁版嵁搴撳瓧娈靛彂鐢熷彉鍖栵紝璇峰湪浠g爜鐢熷櫒閲嶆柊鐢熸垚姝odel
+ */
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Entity.SystemModels;
+
+namespace WIDESEA_Entity.DomainModels
+{
+    [Entity(TableCnName = "鎺ュ彛鏃ュ織", TableName = "dt_Interfacerecord_pcs")]
+    public partial class dt_Interfacerecord_pcs : BaseEntity
+    {
+        /// <summary>
+        ///涓婚敭
+        /// </summary>
+        [Key]
+        [Display(Name = "涓婚敭")]
+        [Column(TypeName = "uniqueidentifier")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public Guid interface_id { get; set; }
+
+        /// <summary>
+        ///鎴愬姛:澶辫触
+        /// </summary>
+        [Display(Name = "鎴愬姛:澶辫触")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public string interface_type { get; set; }
+
+        /// <summary>
+        ///鎺ュ彈鑰�
+        /// </summary>
+        [Display(Name = "鎺ュ彈鑰�")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public string interface_provide { get; set; }
+
+        /// <summary>
+        ///璇锋眰鑰�
+        /// </summary>
+        [Display(Name = "璇锋眰鑰�")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public string interface_call { get; set; }
+
+        /// <summary>
+        ///璇锋眰鏁版嵁
+        /// </summary>
+        [Display(Name = "璇锋眰鏁版嵁")]
+        [Column(TypeName = "nvarchar(max)")]
+        [Editable(true)]
+        public string interface_paradata { get; set; }
+
+        /// <summary>
+        ///杩斿洖鏁版嵁
+        /// </summary>
+        [Display(Name = "杩斿洖鏁版嵁")]
+        [Column(TypeName = "nvarchar(max)")]
+        [Editable(true)]
+        public string interface_returndata { get; set; }
+
+        /// <summary>
+        ///鍒涘缓鏃堕棿
+        /// </summary>
+        [Display(Name = "鍒涘缓鏃堕棿")]
+        [Column(TypeName = "datetime")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public DateTime interface_createtime { get; set; }
+
+        /// <summary>
+        ///澶囨敞
+        /// </summary>
+        [Display(Name = "澶囨敞")]
+        [MaxLength(100)]
+        [Column(TypeName = "nvarchar(100)")]
+        [Editable(true)]
+        public string interface_remark { get; set; }
+
+        /// <summary>
+        ///鎿嶄綔鑰�
+        /// </summary>
+        [Display(Name = "鎿嶄綔鑰�")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public string interface_operator { get; set; }
+
+        /// <summary>
+        ///鎿嶄綔鍚嶇О(鏂规硶鍚�)
+        /// </summary>
+        [Display(Name = "鎿嶄綔鍚嶇О(鏂规硶鍚�)")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public string interface_name { get; set; }
+
+        /// <summary>
+        ///閿欒淇℃伅
+        /// </summary>
+        [Display(Name = "閿欒淇℃伅")]
+        [Column(TypeName = "nvarchar(max)")]
+        [Editable(true)]
+        public string interface_message { get; set; }
+
+
+
+    }
+}
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_Interfacerecord_pcs.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_Interfacerecord_pcs.cs"
new file mode 100644
index 0000000..17b3bea
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_Interfacerecord_pcs.cs"
@@ -0,0 +1,21 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *濡傛灉鏁版嵁搴撳瓧娈靛彂鐢熷彉鍖栵紝璇峰湪浠g爜鐢熷櫒閲嶆柊鐢熸垚姝odel
+ */
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Entity.SystemModels;
+
+namespace WIDESEA_Entity.DomainModels
+{
+    
+    public partial class dt_Interfacerecord_pcs
+    {
+        //姝ゅ閰嶇疆瀛楁(瀛楁閰嶇疆瑙佹model鐨勫彟涓�涓猵artial),濡傛灉琛ㄤ腑娌℃湁姝ゅ瓧娈佃鍔犱笂 [NotMapped]灞炴�э紝鍚﹀垯浼氬紓甯�
+    }
+}
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRequestin.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRequestin.cs"
new file mode 100644
index 0000000..9ebffbd
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRequestin.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Entity.ToAGV
+{
+    public class AGVRequestin
+    {
+        /// <summary>
+        /// 鍖哄煙鍙�
+        /// </summary>
+        public int AreaNr { get; set; }
+        /// <summary>
+        /// 绫诲瀷 1:姝e湪杩涘叆銆�2:姝e湪绂诲紑
+        /// </summary>
+        public int Type { get; set; }
+        /// <summary>
+        ///AGV鍖哄煙鐘舵�� 1:涓嶅湪鍖哄煙鍐呫�佸叾浠�:鍦ㄥ尯鍩熷唴
+        /// </summary>
+        public int OUTOFArea { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRespone.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRespone.cs"
new file mode 100644
index 0000000..296be6b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToAGV/AGVRespone.cs"
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Entity.ToAGV
+{
+    public class AGVRespone
+    {
+        /// <summary>
+        /// 1鎴愬姛
+        /// </summary>
+        public int success { get; set; } = -1;
+        /// <summary>
+        /// 澶辫触锛岃繑鍥炲け璐ヤ俊鎭�
+        /// </summary>
+        public string Message { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/System/dt_Interfacerecord_pcsMapConfig.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/System/dt_Interfacerecord_pcsMapConfig.cs"
new file mode 100644
index 0000000..eedb9cf
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/System/dt_Interfacerecord_pcsMapConfig.cs"
@@ -0,0 +1,16 @@
+using WIDESEA_Entity.MappingConfiguration;
+using WIDESEA_Entity.DomainModels;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace WIDESEA_Entity.MappingConfiguration
+{
+    public class dt_Interfacerecord_pcsMapConfig : EntityMappingConfiguration<dt_Interfacerecord_pcs>
+    {
+        public override void Map(EntityTypeBuilder<dt_Interfacerecord_pcs>
+        builderTable)
+        {
+          //b.Property(x => x.StorageName).HasMaxLength(45);
+        }
+     }
+}
+
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IRepositories/System/Idt_Interfacerecord_pcsRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IRepositories/System/Idt_Interfacerecord_pcsRepository.cs"
new file mode 100644
index 0000000..31da72e
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IRepositories/System/Idt_Interfacerecord_pcsRepository.cs"
@@ -0,0 +1,18 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶笽dt_Interfacerecord_pcsRepository缂栧啓鎺ュ彛
+ */
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Core.Extensions.AutofacManager;
+namespace WIDESEA_System.IRepositories
+{
+    public partial interface Idt_Interfacerecord_pcsRepository : IDependency,IRepository<dt_Interfacerecord_pcs>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IServices/System/Idt_Interfacerecord_pcsService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IServices/System/Idt_Interfacerecord_pcsService.cs"
new file mode 100644
index 0000000..33e2902
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IServices/System/Idt_Interfacerecord_pcsService.cs"
@@ -0,0 +1,12 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ */
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_System.IServices
+{
+    public partial interface Idt_Interfacerecord_pcsService : IService<dt_Interfacerecord_pcs>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IServices/System/Partial/Idt_Interfacerecord_pcsService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IServices/System/Partial/Idt_Interfacerecord_pcsService.cs"
new file mode 100644
index 0000000..19d1b01
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/IServices/System/Partial/Idt_Interfacerecord_pcsService.cs"
@@ -0,0 +1,13 @@
+/*
+*鎵�鏈夊叧浜巇t_Interfacerecord_pcs绫荤殑涓氬姟浠g爜鎺ュ彛搴斿湪姝ゅ缂栧啓
+*/
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Core.Utilities;
+using System.Linq.Expressions;
+namespace WIDESEA_System.IServices
+{
+    public partial interface Idt_Interfacerecord_pcsService
+    {
+    }
+ }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Repositories/System/dt_Interfacerecord_pcsRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Repositories/System/dt_Interfacerecord_pcsRepository.cs"
new file mode 100644
index 0000000..6b781b6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Repositories/System/dt_Interfacerecord_pcsRepository.cs"
@@ -0,0 +1,24 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶筪t_Interfacerecord_pcsRepository缂栧啓浠g爜
+ */
+using WIDESEA_System.IRepositories;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_System.Repositories
+{
+    public partial class dt_Interfacerecord_pcsRepository : RepositoryBase<dt_Interfacerecord_pcs> , Idt_Interfacerecord_pcsRepository
+    {
+    public dt_Interfacerecord_pcsRepository(VOLContext dbContext)
+    : base(dbContext)
+    {
+
+    }
+    public static Idt_Interfacerecord_pcsRepository Instance
+    {
+      get {  return AutofacContainerModule.GetService<Idt_Interfacerecord_pcsRepository>(); } }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Services/System/Partial/dt_Interfacerecord_pcsService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Services/System/Partial/dt_Interfacerecord_pcsService.cs"
new file mode 100644
index 0000000..7904472
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Services/System/Partial/dt_Interfacerecord_pcsService.cs"
@@ -0,0 +1,41 @@
+/*
+ *鎵�鏈夊叧浜巇t_Interfacerecord_pcs绫荤殑涓氬姟浠g爜搴斿湪姝ゅ缂栧啓
+*鍙娇鐢╮epository.璋冪敤甯哥敤鏂规硶锛岃幏鍙朎F/Dapper绛変俊鎭�
+*濡傛灉闇�瑕佷簨鍔¤浣跨敤repository.DbContextBeginTransaction
+*涔熷彲浣跨敤DBServerProvider.鎵嬪姩鑾峰彇鏁版嵁搴撶浉鍏充俊鎭�
+*鐢ㄦ埛淇℃伅銆佹潈闄愩�佽鑹茬瓑浣跨敤UserContext.Current鎿嶄綔
+*dt_Interfacerecord_pcsService瀵瑰銆佸垹銆佹敼鏌ャ�佸鍏ャ�佸鍑恒�佸鏍镐笟鍔′唬鐮佹墿灞曞弬鐓erviceFunFilter
+*/
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+using System.Linq;
+using WIDESEA_Core.Utilities;
+using System.Linq.Expressions;
+using WIDESEA_Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.AspNetCore.Http;
+using WIDESEA_System.IRepositories;
+
+namespace WIDESEA_System.Services
+{
+    public partial class dt_Interfacerecord_pcsService
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        private readonly Idt_Interfacerecord_pcsRepository _repository;//璁块棶鏁版嵁搴�
+
+        [ActivatorUtilitiesConstructor]
+        public dt_Interfacerecord_pcsService(
+            Idt_Interfacerecord_pcsRepository dbRepository,
+            IHttpContextAccessor httpContextAccessor
+            )
+        : base(dbRepository)
+        {
+            _httpContextAccessor = httpContextAccessor;
+            _repository = dbRepository;
+            //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢�
+            //base.Init(dbRepository);
+        }
+  }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Services/System/dt_Interfacerecord_pcsService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Services/System/dt_Interfacerecord_pcsService.cs"
new file mode 100644
index 0000000..d08c6de
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_System/Services/System/dt_Interfacerecord_pcsService.cs"
@@ -0,0 +1,27 @@
+/*
+ *Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,姝ゅ浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *鎵�鏈変笟鍔$紪鍐欏叏閮ㄥ簲鍦≒artial鏂囦欢澶逛笅dt_Interfacerecord_pcsService涓嶪dt_Interfacerecord_pcsService涓紪鍐�
+ */
+using WIDESEA_System.IRepositories;
+using WIDESEA_System.IServices;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_System.Services
+{
+    public partial class dt_Interfacerecord_pcsService : ServiceBase<dt_Interfacerecord_pcs, Idt_Interfacerecord_pcsRepository>
+    , Idt_Interfacerecord_pcsService, IDependency
+    {
+    public dt_Interfacerecord_pcsService(Idt_Interfacerecord_pcsRepository repository)
+    : base(repository)
+    {
+    Init(repository);
+    }
+    public static Idt_Interfacerecord_pcsService Instance
+    {
+      get { return AutofacContainerModule.GetService<Idt_Interfacerecord_pcsService>(); } }
+    }
+ }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs"
new file mode 100644
index 0000000..635912b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs"
@@ -0,0 +1,79 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Diagnostics.Metrics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Entity.ToAGV;
+using WIDESEA_WCS.WCSClient;
+
+namespace WIDESEA_WCS
+{
+    public class AGVandGantry
+    {
+        static FreeDB FreeDB = new FreeDB();
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="requestin"></param>
+        /// <param name="MethodName">鏂规硶鍚�</param>
+        /// <returns></returns>
+        public static AGVRespone GetSetGantry(AGVRequestin requestin, string MethodName)
+        {
+            AGVRespone respone = new AGVRespone();
+            try
+            {
+                var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "妗佹灦");
+                if (Gantry_client == null) throw new Exception("妗佹灦璋冨害鏈嶅姟鏈紑鍚紒");
+                if (!Gantry_client.IsConnected) throw new Exception("涓庢鏋惰繛鎺ヨ秴鏃讹紒");
+                var Gantryplc = FreeDB.Select<dt_plcinfohead>().Where(x => x.plcinfo_name == Gantry_client.PLCName).First();
+                List<string> numbers = new List<string>() { "1鍗曞厓闃插憜", "2鍗曞厓闃插憜", "3鍗曞厓闃插憜", "涓婃枡鍖洪槻鍛�" };
+                var details = FreeDB.Select<dt_plcinfodetail>().Where(x => x.plcdetail_iotype == Gantryplc.plcinfo_iotyep && x.plcdetail_number == numbers[requestin.AreaNr - 1]).ToList();
+                if (MethodName == "AGVRequestin")
+                {
+                    Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙�
+                    Gantry_client.WriteByOrder("W_AGV_Request_In", true, numbers[requestin.AreaNr - 1]);//鐢宠杩涘叆鍖哄煙
+                    var Release = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Release_In").First(), Gantry_client);//鍏佽杩涘叆鍖哄煙
+                    var Gantry_Out_of_Area = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦涓嶅湪璇ュ尯鍩�
+                    if (!Release) throw new Exception("妗佹灦鏈厑璁歌繘鍏ワ紒");
+                    if (!Gantry_Out_of_Area) throw new Exception("妗佹灦鍦ㄥ尯鍩熷唴锛�");
+                }
+                else if (MethodName == "EnteriorLeav")
+                {
+                    Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙�
+                    if (requestin.Type == 1)
+                    {
+                        Gantry_client.WriteByOrder("W_AGV_Entering", true, numbers[requestin.AreaNr - 1]);//姝e湪杩涘叆
+                        var Area_Occupied_by_AGV = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Area_Occupied_by_AGV").First(), Gantry_client);//妗佹灦鍙嶉AGV鍗犱綅淇″彿
+                        if (!Area_Occupied_by_AGV) throw new Exception("妗佹灦鏈弽棣圓GV鍗犱綅淇″彿");
+                    }
+                    else if (requestin.Type == 2)
+                    {
+                        Gantry_client.WriteByOrder("W_AGV_Leaving", true, numbers[requestin.AreaNr - 1]);//姝e湪绂诲紑
+                        var Area_Occupied_by_AGV = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Area_Occupied_by_AGV").First(), Gantry_client);//妗佹灦鍙嶉AGV鍗犱綅淇″彿
+                        if (Area_Occupied_by_AGV) throw new Exception("妗佹灦鏈弽棣圓GV绂诲紑淇″彿");
+                    }
+                }
+                else if (MethodName == "AGVOutofArea")
+                {
+                    Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙�
+                    Gantry_client.WriteByOrder("W_AGV_OUT_OF_Area", requestin.OUTOFArea == 1 ? true : false, numbers[requestin.AreaNr - 1]);//AGV涓嶅湪璇ュ尯鍩�
+                }
+                else if (MethodName == "GantryOutofArea")
+                {
+                    var Gantry_Out_of_Area = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦涓嶅湪璇ュ尯鍩�
+                    if (!Gantry_Out_of_Area) throw new Exception("妗佹灦鍦ㄥ尯鍩熷唴锛�");
+                }
+                respone.success = 1;
+            }
+            catch (Exception ex)
+            {
+                respone.Message = ex.Message;
+            }
+            return respone;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
new file mode 100644
index 0000000..5dbcde3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
@@ -0,0 +1,175 @@
+锘縰sing StackExchange.Redis;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_WCS.IRepositories;
+using WIDESEA_WCS.Repositories;
+using WIDESEA_WCS.WCSClient;
+
+namespace WIDESEA_WCS
+{
+    public class Gantry
+    {
+        static VOLContext Context = new VOLContext();
+        Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context);
+        Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context);
+        Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
+        /// <summary>
+        /// 鏌ヨ杞﹁疆鏁版嵁
+        /// </summary>
+        public void QueryWheeldata(PLCClient client)
+        {
+            try
+            {
+                var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName);
+                List<string> names = new List<string>() { "1鍗曞厓杈婇亾涓嬫枡鏌ヨ杞﹁疆", "2鍗曞厓杈婇亾涓嬫枡鏌ヨ杞﹁疆", "3鍗曞厓杈婇亾涓嬫枡鏌ヨ杞﹁疆", "杈婇亾涓婃枡鏌ヨ杞﹁疆" };
+                foreach (string name in names)
+                {
+                    var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList();
+                    var on = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_oi_on").First(), client);
+                    if ((Int16)on == 1)
+                    {
+                        var wp_type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_type").First(), client);
+                        var geometry = dataRepository.FindFirst(x => x.TypeId == (Int32)wp_type);
+                        if (geometry == null)
+                        {
+                            //DBExtension.Write(details.Where(x => x.plcdetail_name == "W_i_status").First(), client, (Int16)2);
+                            client.WriteByOrder("W_i_status", (Int16)2, name);//1-鎵惧埌鏁版嵁锛�2-鏈壘鍒板伐浠剁被鍨嬫暟鎹�
+                            client.WriteByOrder("W_i_skip_op", "1", name);//灞忚斀宸ヨ壓(灞忚斀瑙嗚妫�娴�/灞忚斀娑傛补);
+                                                                          //0-浣跨敤锛�1-璺宠繃
+                            client.WriteByOrder("R_oi_on", (Int16)0, name);
+                        }
+                        else
+                        {
+                            client.WriteByOrder("W_i_status", (Int16)1, name);
+                            client.WriteByOrder("W_i_parameter_a", (float)geometry.a, name);
+                            client.WriteByOrder("W_i_parameter_b", (float)geometry.b, name);
+                            client.WriteByOrder("W_i_parameter_c", (float)geometry.c, name);
+                            client.WriteByOrder("W_i_parameter_d", (float)geometry.d, name);
+                            client.WriteByOrder("W_i_parameter_e", (float)geometry.e, name);
+                            client.WriteByOrder("W_i_parameter_f", (float)geometry.f, name);
+                            client.WriteByOrder("W_i_parameter_g", (float)geometry.g, name);
+                            client.WriteByOrder("W_i_parameter_h", (float)geometry.h, name);
+                            //灞忚斀宸ヨ壓(灞忚斀瑙嗚妫�娴�/灞忚斀娑傛补)
+                            client.WriteByOrder("W_i_skip_op", "0", name);//瀛楃涓插啓鍏�-2
+                            client.WriteByOrder("R_oi_on", (Int16)0, name);
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
+        }
+        /// <summary>
+        /// 鏌ヨ璁㈠崟,鏄惁闇�瑕佸姞宸�
+        /// </summary>
+        public void QueryOrder(PLCClient client)
+        {
+            try
+            {
+                var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName);
+                List<string> names = new List<string>() { "1鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟", "2鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟", "3鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟", "杈婇亾涓婃枡鏌ヨ璁㈠崟" };
+                foreach (string name in names)
+                {
+                    var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList();
+                    var on = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_oi_on").First(), client);
+                    if ((Int16)on == 1)
+                    {
+                        var wp_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_id").First(), client);
+                        //闇�娣诲姞鏌ヨ杞﹁疆SN鍙疯鍗曢�昏緫
+
+                        var wp_type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_type").First(), client);
+                        var geometry = dataRepository.FindFirst(x => x.TypeId == (Int32)wp_type);
+                        if (geometry == null)
+                        {
+                            client.WriteByOrder("W_i_status", (Int16)2, name);//1-濂�,鍏佽鍔犲伐锛�2-涓嶅湪鍒楄〃涓紝3-涓嶅姞宸ヨ溅杞被鍨�
+                            client.WriteByOrder("R_oi_on", (Int16)0, name);
+                        }
+                        else
+                        {
+                            client.WriteByOrder("W_i_status", (Int16)1, name);
+                            //client.WriteByOrder("W_i_job_id", "", name);
+                            //client.WriteByOrder("W_i_drawing_id", "", name);
+                            //client.WriteByOrder("W_i_heat_id", "", name);
+                            //client.WriteByOrder("W_i_sourceheat", "", name);
+                            //client.WriteByOrder("W_i_batch_id", "", name);
+                            client.WriteByOrder("R_oi_on", (Int16)0, name);
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
+        }
+        /// <summary>
+        /// 涓嬫枡浣嶄氦浜�
+        /// </summary>
+        public void Layofflevel(PLCClient client)
+        {
+            try
+            {
+                var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName);
+                List<string> names = new List<string>() { "1鍗曞厓涓嬫枡鍖�", "2鍗曞厓涓嬫枡鍖�", "3鍗曞厓涓嬫枡鍖�", "涓婃枡鍖�" };
+                foreach (string name in names)
+                {
+                    var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList();
+
+                    var Request = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Request_Load").First(), client);
+                    if (!Request) continue;
+                    var PartStatus = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok
+                    var Wheel_Type = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//杞﹁疆绫诲瀷
+                    var Wheel_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_id").First(), client).ToString();//杞﹁疆SN鍙�
+
+
+                    client.WriteByOrder("W_AreaNr", (Int16)1, name);//鍖哄煙璐т綅鍙�
+                    client.WriteByOrder("W_IndexNr", (Int16)1, name);//鎵樼洏涓婄殑绗嚑涓溅杞�
+                    client.WriteByOrder("W_Storage_Type", true, name);//鎵樼洏绫诲瀷1-妯斁;2-绔栨斁
+                    client.WriteByOrder("W_Enabl_Load", true, name);//鏄惁鍏佽
+
+                    var finished = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_load_finished").First(), client);//鏀炬枡瀹屾垚
+                    if (finished)
+                    {
+
+                        client.WriteByOrder("W_Storage_update", true, name);//璐т綅鐘舵�佹洿鏂�
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
+        }
+        /// <summary>
+        /// 闃插憜鎺柦
+        /// </summary>
+        static bool Gantry_Out_of_Area1;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴
+        static bool Gantry_Out_of_Area2;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴
+        static bool Gantry_Out_of_Area3;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴
+        static bool Gantry_Out_of_Area4;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴
+        public void Stupidproofmeasure(PLCClient client)
+        {
+            try
+            {
+                var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName);
+                List<string> names = new List<string>() { "1鍗曞厓闃插憜", "2鍗曞厓闃插憜", "3鍗曞厓闃插憜", "涓婃枡鍖洪槻鍛�" };
+                foreach (string name in names)
+                {
+                    var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList();
+                    var Release_In = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Release_In").First(), client);//鍏佽杩涘叆
+                    if (!Release_In) { }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/GantryDB.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/GantryDB.cs"
new file mode 100644
index 0000000..4427ef4
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/GantryDB.cs"
@@ -0,0 +1,55 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_WCS
+{
+    public class GantryDB
+    {
+        /// <summary>
+        /// 杞﹁疆鏁版嵁
+        /// </summary>
+        public class Wheeldata
+        {
+            public string R_Name { get; set; }
+            public int R_o_wp_type { get; set; }
+            /// <summary>
+            /// 1-鎵惧埌鏁版嵁锛�2-鏈壘鍒板伐浠剁被鍨嬫暟鎹�
+            /// </summary>
+            public short R_i_status { get; set; }
+            public int R_i_parameter_a { get; set; }
+            public int R_i_parameter_b { get; set; }
+            public int R_i_parameter_c { get; set; }
+            public int R_i_parameter_d { get; set; }
+            public int R_i_parameter_e { get; set; }
+            public int R_i_parameter_f { get; set; }
+            public int R_i_parameter_g { get; set; }
+            public int R_i_parameter_h { get; set; }
+            public string R_i_skip_op { get; set; }
+            public ushort oi_on {  get; set; }
+        }
+        /// <summary>
+        /// 璁㈠崟鏁版嵁
+        /// </summary>
+        public class Orderdata
+        {
+
+        }
+        /// <summary>
+        /// 涓嬫枡浣嶆暟鎹�
+        /// </summary>
+        public class Layoffleveldata
+        {
+
+        }
+        /// <summary>
+        /// 涓婃枡浣嶆暟鎹�
+        /// </summary>
+        public class Loadingleveldata
+        {
+
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs"
index 47e48c8..caf9bf8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs"
@@ -71,7 +71,7 @@
             }
             finally
             {
-                taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds);
+                taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds,3);
                 jobHistory += $"(鑰楁椂:{taskSeconds}绉�)";
                 if (taskSeconds > 1 || jobHistory.Contains("鎵ц澶辫触"))
                     WriteLog.Info(jobid + "鎵ц璁板綍").Write(jobHistory, jobid + "鎵ц璁板綍");
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
index cc62517..c1e35dd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs"
@@ -22,7 +22,7 @@
         {
             try
             {
-                ExecuteJob(context, DoAction);
+                //ExecuteJob(context, DoAction);
             }
             catch { }
             return Task.CompletedTask;
@@ -32,7 +32,7 @@
         {
             //throw new NotImplementedException();
             //Creation.HCJCreation();
-            //Creation.PLCinfodetail();
+            Creation.PLCinfodetail();
 
         }
     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs"
index baffdeb..71a8d36 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs"
@@ -10,6 +10,7 @@
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_WCS.IRepositories;
+using WIDESEA_WCS.Jobs;
 using WIDESEA_WCS.Repositories;
 using WIDESEA_WCS.WCSClient;
 
@@ -19,31 +20,35 @@
     /// 妗佹灦
     /// </summary>
     [DisallowConcurrentExecution]
-    public class GantryJob : IJob
+    public class GantryJob : JobBase, IJob
     {
         public Task Execute(IJobExecutionContext context)
         {
             try
             {
-                var client = context.JobDetail.JobDataMap.Get("JobParams") as PLCClient;
-                if (client == null)
-                {
-                    return Task.CompletedTask;
-                }
-
-                //鑷姩閲嶈繛
-                if (!client.IsConnected)
-                {
-                    client.Connect();
-                    return Task.CompletedTask;
-                }
-
-                //DoAction(client);
-                //ExecuteJob(context, DoAction);
+                ExecuteJob(context, DoAction);
             }
             catch { }
             return Task.CompletedTask;
         }
+
+        private void DoAction(IJobExecutionContext context)
+        {
+            var client = context.JobDetail.JobDataMap.Get("JobParams") as PLCClient;
+            //鑷姩閲嶈繛
+            if (!client.IsConnected)
+            {
+                client.Connect();
+                return;
+            }
+            Gantry gantry = new Gantry();
+            gantry.QueryWheeldata(client);
+            gantry.QueryOrder(client);
+            gantry.Layofflevel(client);
+            gantry.Stupidproofmeasure(client);
+        }
+
+        #region
         static List<MachineDB> MachineDBs = new List<MachineDB>();
         static List<WheelDataDB> wheelDataDBs = new List<WheelDataDB>();
         private void DoAction(PLCClient client)
@@ -121,6 +126,7 @@
                 throw;
             }
         }
+        #endregion
         public void HandleReadSignal(string type, MachineDB DBItem)
         {
             switch (type)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
index 3804ccf..4d94346 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
@@ -4,7 +4,15 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Comm;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_WCS.IRepositories;
+using WIDESEA_WCS.Jobs;
+using WIDESEA_WCS.Repositories;
 using WIDESEA_WCS.WCSClient;
+using static System.Collections.Specialized.BitVector32;
 
 namespace WIDESEA_WCS
 {
@@ -12,7 +20,7 @@
     /// 閾炬潯鏈�
     /// </summary>
     [DisallowConcurrentExecution]
-    public class PipelineJob : IJob
+    public class PipelineJob : JobBase, IJob
     {
         public Task Execute(IJobExecutionContext context)
         {
@@ -31,15 +39,83 @@
                     return Task.CompletedTask;
                 }
 
-                DoAction(client);
+                //DoAction(client);
+                ExecuteJob(context, DoAction);
             }
             catch { }
             return Task.CompletedTask;
         }
 
-        private void DoAction(PLCClient client)
+        private void DoAction(IJobExecutionContext context)
         {
-            throw new NotImplementedException();
+            var client = context.JobDetail.JobDataMap.Get("JobParams") as PLCClient;
+            //鑷姩閲嶈繛
+            if (!client.IsConnected)
+            {
+                client.Connect();
+                return;
+            }
+            Loadinglevel(client);
+        }
+        /// <summary>
+        /// 涓婃枡鍖�
+        /// </summary>
+        /// <param name="client"></param>
+        private void Loadinglevel(PLCClient client, string number = "涓婃枡鍖�")
+        {
+            VOLContext Context = new VOLContext();
+            Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context);
+            Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context);
+            Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
+            Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
+            var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName);
+            var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "妗佹灦");
+            if (!Gantry_client.IsConnected) return;
+            var Gantryplc = repository.FindFirst(x => x.plcinfo_name == Gantry_client.PLCName);
+            List<string> names = new List<string>() { "S01001001", "S01001002" };
+            foreach (string name in names)
+            {
+                var station = stationinfoRepository.FindFirst(x => x.stationCode == name && x.enable && x.location_state == LocationStateEnum.Stroge.ToString());
+                if (station == null)
+                {
+                    Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
+                    continue;
+                }
+                var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList();
+                var PalletSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
+                var MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
+                if (PalletSignal == 1 && MaterialSignal == 1)
+                {
+                    Gantry_client.WriteByOrder("W_AreaNr", (Int16)1, number);//鍖哄煙璐т綅鍙�
+                    Gantry_client.WriteByOrder("W_IndexNr", (Int16)1, number);//鎵樼洏涓婄殑绗嚑涓溅杞�
+                    Gantry_client.WriteByOrder("W_Storage_Type", (Int16)1, number); //鎵樼洏绫诲瀷1-妯斁;2-绔栨斁
+                    Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)1, number);//杞﹁疆绫诲瀷
+                    Gantry_client.WriteByOrder("W_Wheel_id", "", number);//杞﹁疆SN鍙�
+                    Gantry_client.WriteByOrder("W_RequestUnload", true, number);
+                }
+                else
+                {
+                    Gantry_client.WriteByOrder("W_RequestUnload", false, number);
+                }
+                var Gantrydetails = plcRepository.Find(x => x.plcdetail_iotype == Gantryplc.plcinfo_iotyep && x.plcdetail_number == number).ToList();
+                var Gantry_Out_of_Area = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦鏄惁鍦ㄥ尯鍩熷唴
+
+                var QueryDate = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_QueryDate").First(), Gantry_client);//淇℃伅鏌ヨ
+                if (QueryDate)
+                {
+                    var Date_Vaild = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Date_Vaild").First(), Gantry_client);//淇℃伅纭
+                    if (!Date_Vaild)//淇℃伅鏈夎锛岃褰曟棩蹇�
+                    {
+
+                    }
+                }
+                var finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);//澶瑰彇瀹屾垚
+                if (finished)
+                {
+
+                    Gantry_client.WriteByOrder("W_Storage_update", true, number);//璐т綅鐘舵�佹洿鏂�
+                }
+            }
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs"
new file mode 100644
index 0000000..41d31c1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs"
@@ -0,0 +1,84 @@
+锘縰sing Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Security.Policy;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using WIDESEA_Comm.LogInfo;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Entity.ToAGV;
+
+namespace WIDESEA_WCS
+{
+    public partial class ToAGVServer
+    {
+        FreeDB freeDB = new FreeDB();
+        static AGVRespone respone = new AGVRespone();
+        static AGVRequestin requestin = new AGVRequestin();
+        /// <summary>
+        /// AGV鐢宠杩涘叆鍖哄煙
+        /// </summary>
+        /// <param name="v"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public static AGVRespone AGVRequestin(string json)
+        {
+            return GetSetGantry(json, "AGVRequestin", "AGV鐢宠杩涘叆鍖哄煙");
+        }
+        /// <summary>
+        ///  AGV姝e湪锛堣繘鍏�/绂诲紑锛�
+        /// </summary>
+        /// <param name="v"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public static AGVRespone EnteriorLeav(string json)
+        {
+            return GetSetGantry(json, "EnteriorLeav", "AGV姝e湪(杩涘叆/绂诲紑)");
+        }
+        /// <summary>
+        /// AGV鏇存柊鍖哄煙鐘舵��
+        /// </summary>
+        /// <param name="v"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public static AGVRespone AGVOutofArea(string json)
+        {
+            return GetSetGantry(json, "AGVOutofArea", "AGV鏇存柊鍖哄煙鐘舵��");
+        }
+        /// <summary>
+        /// AGV鑾峰彇妗佹灦鍖哄煙鐘舵��
+        /// </summary>
+        /// <param name="v"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public static AGVRespone GantryOutofArea(string json)
+        {
+            return GetSetGantry(json, "GantryOutofArea", "AGV鑾峰彇妗佹灦鍖哄煙鐘舵��");
+        }
+        public static AGVRespone GetSetGantry(string json, string MethodName, string remark)
+        {
+            try
+            {
+                if (string.IsNullOrEmpty(json) || json == "null")
+                    throw new Exception("鏈幏鍙栧埌璇锋眰鍙傛暟鏁版嵁");
+                requestin = JsonConvert.DeserializeObject<AGVRequestin>(json);
+                if (requestin.AreaNr < 1 || requestin.AreaNr > 4)
+                    throw new Exception("鏈畾涔夌殑鍖哄煙鍙�!");
+                respone = AGVandGantry.GetSetGantry(requestin, MethodName);
+            }
+            catch (Exception ex)
+            {
+                respone.Message = ex.Message;
+            }
+            WritePCSLog.LogAdd(requestin.AreaNr.ToString(), respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), remark, MethodName, respone.Message);
+            return respone;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/DBExtension.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/DBExtension.cs"
index 753da87..bec587e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/DBExtension.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/DBExtension.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -18,43 +19,62 @@
         /// <exception cref="Exception"></exception>
         public static object Read(dt_plcinfodetail detail, PLCClient client)
         {
-            
-                if (detail.plcdetail_valtype == typeof(int).Name.ToLower())//4瀛楄妭,鏈夌鍙风被鍨�
-                {
-                    return (client.Read<int>(detail.plcdetail_db+"."+detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(uint).Name.ToLower())//4瀛楄妭,鏃犵鍙风被鍨�
-                {
-                    return (client.Read<uint>(detail.plcdetail_db + "." + detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(short).Name.ToLower())//2瀛楄妭,鏈夌鍙风被鍨�,鏈�甯哥敤
-                {
-                    return (client.Read<short>(detail.plcdetail_db + "." + detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(ushort).Name.ToLower())//2瀛楄妭,鏃犵鍙风被鍨�
-                {
-                    return (client.Read<ushort>(detail.plcdetail_db + "." + detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(float).Name.ToLower())//娴偣鍨�
-                {
-                    return (client.Read<float>(detail.plcdetail_db + "." + detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(bool).Name.ToLower())
-                {
-                    return (client.Read<bool>(detail.plcdetail_db + "." + detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(byte).Name.ToLower())//瀛楄妭
-                {
-                    return (client.Read<byte>(detail.plcdetail_db + "." + detail.plcdetail_value));
-                }
-                else if (detail.plcdetail_valtype == typeof(string).Name.ToLower())//瀛楃涓�
-                {
-                    return (client.Read<string>(detail.plcdetail_db + "." + detail.plcdetail_value, detail.plcdetail_len.GetValueOrDefault()));
-                }
-                else
-                {
-                    throw new Exception($"銆恵detail.plcdetail_remark}銆�,DB鍦板潃{detail.plcdetail_db + "." + detail.plcdetail_value},鏈畾涔夋暟鎹被鍨媨detail.plcdetail_valtype}");
-                }
+
+            if (detail.plcdetail_valtype == typeof(int).Name.ToLower())//4瀛楄妭,鏈夌鍙风被鍨�
+            {
+                return (client.Read<int>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(uint).Name.ToLower())//4瀛楄妭,鏃犵鍙风被鍨�
+            {
+                return (client.Read<uint>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(short).Name.ToLower())//2瀛楄妭,鏈夌鍙风被鍨�,鏈�甯哥敤
+            {
+                return (client.Read<short>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(ushort).Name.ToLower())//2瀛楄妭,鏃犵鍙风被鍨�
+            {
+                return (client.Read<ushort>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(float).Name.ToLower())//娴偣鍨�
+            {
+                return (client.Read<float>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(bool).Name.ToLower())
+            {
+                return (client.Read<bool>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(byte).Name.ToLower())//瀛楄妭
+            {
+                return (client.Read<byte>(detail.plcdetail_db + "." + detail.plcdetail_value));
+            }
+            else if (detail.plcdetail_valtype == typeof(string).Name.ToLower())//瀛楃涓�
+            {
+                return (client.Read<string>(detail.plcdetail_db + "." + detail.plcdetail_value, detail.plcdetail_len.GetValueOrDefault()));
+            }
+            else
+            {
+                throw new Exception($"銆恵detail.plcdetail_remark}銆�,DB鍦板潃{detail.plcdetail_db + "." + detail.plcdetail_value},鏈畾涔夋暟鎹被鍨媨detail.plcdetail_valtype}");
+            }
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="detail"></param>
+        /// <param name="client"></param>
+        /// <param name="value"></param>
+        /// <returns></returns>
+        public static object Write(dt_plcinfodetail detail, PLCClient client, object value)
+        {
+            try
+            {
+                return (client.Write(detail.plcdetail_db + "." + detail.plcdetail_value, value));
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToAGV/ToAGVController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToAGV/ToAGVController.cs"
new file mode 100644
index 0000000..1ebeee2
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToAGV/ToAGVController.cs"
@@ -0,0 +1,64 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Entity.ToAGV;
+using WIDESEA_WCS;
+
+namespace ToAGV.Controllers
+{
+    /// <summary>
+    /// AGV鎺ュ彛
+    /// </summary>
+    [Route("api/ToAGV")]
+    [ApiController]
+    public class ToAGVController : ControllerBase
+    {
+        /// <summary>
+        /// AGV鐢宠杩涘叆鍖哄煙
+        /// </summary>
+        /// <param name="saveModel">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        [HttpPost, Route("AGVRequestin"), Authorize, AllowAnonymous]
+        public AGVRespone AGVRequestin([FromBody] object saveModel)
+        {
+            return ToAGVServer.AGVRequestin(JsonConvert.SerializeObject(saveModel));
+        }
+        /// <summary>
+        /// AGV姝e湪锛堣繘鍏�/绂诲紑锛�
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        [HttpPost, Route("EnteriorLeav"), Authorize, AllowAnonymous]
+        public AGVRespone EnteriorLeav([FromBody] object saveModel)
+        {
+            return ToAGVServer.EnteriorLeav(JsonConvert.SerializeObject(saveModel));
+        }
+        /// <summary>
+        /// AGV鏇存柊鍖哄煙鐘舵��
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AGVOutofArea"), Authorize, AllowAnonymous]
+        public AGVRespone AGVOutofArea([FromBody] object saveModel)
+        {
+            return ToAGVServer.AGVOutofArea(JsonConvert.SerializeObject(saveModel));
+        }
+        /// <summary>
+        /// AGV鑾峰彇妗佹灦鍖哄煙鐘舵��
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        [HttpPost, Route("GantryOutofArea"), Authorize, AllowAnonymous]
+        public AGVRespone GantryOutofArea([FromBody] object saveModel)
+        {
+            return ToAGVServer.GantryOutofArea(JsonConvert.SerializeObject(saveModel));
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs"
index 34bdaa6..a796b98 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs"
@@ -5,6 +5,9 @@
 
 namespace WIDESEA_WebApi.Controllers.ToMes
 {
+    /// <summary>
+    /// MES鎺ュ彛
+    /// </summary>
     [Route("api/ToMes")]
     [ApiController]
     public class ToMESController : ControllerBase
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/Partial/dt_Interfacerecord_pcsController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/Partial/dt_Interfacerecord_pcsController.cs"
new file mode 100644
index 0000000..06c344a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/Partial/dt_Interfacerecord_pcsController.cs"
@@ -0,0 +1,33 @@
+/*
+ *鎺ュ彛缂栧啓澶�...
+*濡傛灉鎺ュ彛闇�瑕佸仛Action鐨勬潈闄愰獙璇侊紝璇峰湪Action涓婁娇鐢ㄥ睘鎬�
+*濡�: [ApiActionPermission("dt_Interfacerecord_pcs",Enums.ActionPermissionOptions.Search)]
+ */
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.AspNetCore.Http;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_System.IServices;
+
+namespace WIDESEA_System.Controllers
+{
+    public partial class dt_Interfacerecord_pcsController
+    {
+        private readonly Idt_Interfacerecord_pcsService _service;//璁块棶涓氬姟浠g爜
+        private readonly IHttpContextAccessor _httpContextAccessor;
+
+        [ActivatorUtilitiesConstructor]
+        public dt_Interfacerecord_pcsController(
+            Idt_Interfacerecord_pcsService service,
+            IHttpContextAccessor httpContextAccessor
+        )
+        : base(service)
+        {
+            _service = service;
+            _httpContextAccessor = httpContextAccessor;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/dt_Interfacerecord_pcsController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/dt_Interfacerecord_pcsController.cs"
new file mode 100644
index 0000000..940cfd6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_System/dt_Interfacerecord_pcsController.cs"
@@ -0,0 +1,21 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *濡傛灉瑕佸鍔犳柟娉曡鍦ㄥ綋鍓嶇洰褰曚笅Partial鏂囦欢澶筪t_Interfacerecord_pcsController缂栧啓
+ */
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.Controllers.Basic;
+using WIDESEA_Entity.AttributeManager;
+using WIDESEA_System.IServices;
+namespace WIDESEA_System.Controllers
+{
+    [Route("api/dt_Interfacerecord_pcs")]
+    [PermissionTable(Name = "dt_Interfacerecord_pcs")]
+    public partial class dt_Interfacerecord_pcsController : ApiBaseController<Idt_Interfacerecord_pcsService>
+    {
+        public dt_Interfacerecord_pcsController(Idt_Interfacerecord_pcsService service)
+        : base(service)
+        {
+        }
+    }
+}
+
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Startup.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Startup.cs"
index 894bcf0..d792027 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Startup.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Startup.cs"
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using Autofac;
@@ -123,12 +124,12 @@
                 //鍒嗕负2浠芥帴鍙f枃妗�
                 c.SwaggerDoc("v1", new OpenApiInfo { Title = "WIDESEA_Core鍚庡彴Api", Version = "v1", Description = "杩欐槸瀵规枃妗g殑鎻忚堪銆傘��" });
                 c.SwaggerDoc("v2", new OpenApiInfo { Title = "WIDESEA_Core瀵瑰涓夋柟Api", Version = "v2", Description = "xxx鎺ュ彛鏂囨。" });  //鎺у埗鍣ㄩ噷浣跨敤[ApiExplorerSettings(GroupName = "v2")]              
-                                                                                                                             //鍚敤涓枃娉ㄩ噴鍔熻兘
-                                                                                                                             // var basePath = PlatformServices.Default.Application.ApplicationBasePath;
-                                                                                                                             //  var xmlPath = Path.Combine(basePath, "WIDESEA_WebApi.xml");
-                                                                                                                             //   c.IncludeXmlComments(xmlPath, true);//鏄剧ず鎺у埗鍣▁ml娉ㄩ噴鍐呭
-                                                                                                                             //娣诲姞杩囨护鍣� 鍙嚜瀹氫箟娣诲姞瀵规帶鍒跺櫒鐨勬敞閲婃弿杩�
-                                                                                                                             //c.DocumentFilter<SwaggerDocTag>();
+                                                                                                                                 //鍚敤涓枃娉ㄩ噴鍔熻兘
+                                                                                                                                 // var basePath = PlatformServices.Default.Application.ApplicationBasePath;
+                                                                                                                                 //  var xmlPath = Path.Combine(basePath, "WIDESEA_WebApi.xml");
+                                                                                                                                 //   c.IncludeXmlComments(xmlPath, true);//鏄剧ず鎺у埗鍣▁ml娉ㄩ噴鍐呭
+                                                                                                                                 //娣诲姞杩囨护鍣� 鍙嚜瀹氫箟娣诲姞瀵规帶鍒跺櫒鐨勬敞閲婃弿杩�
+                                                                                                                                 //c.DocumentFilter<SwaggerDocTag>();
 
                 var security = new Dictionary<string, IEnumerable<string>> { { AppSetting.Secret.Issuer, new string[] { } } };
                 c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme()
@@ -140,7 +141,13 @@
                     BearerFormat = "JWT",
                     Scheme = "Bearer"
                 });
-
+                #region 鍚敤涓枃娉ㄩ噴鍔熻兘
+                //WIDESEA_WebApi涓嬬殑PropertyGroup娣诲姞<GenerateDocumentationFile>true</GenerateDocumentationFile><!--鍚敤涓枃娉ㄩ噴鍔熻兘-->
+                //鍚敤涓枃娉ㄩ噴鍔熻兘
+                var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
+                //IncludeXmlComments true 鏄剧ず鎺у埗鍣ㄦ敞閲�
+                c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);
+                #endregion
                 c.AddSecurityRequirement(new OpenApiSecurityRequirement
                 {
                     {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj"
index d0d5257..511adf7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj"
@@ -1,39 +1,40 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
-  <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
-    <Nullable>disable</Nullable>
-    <UserSecretsId>a3e3c6fb-4b7e-44a6-8dbe-5e5f11af4202</UserSecretsId>
-    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
-  </PropertyGroup>
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<Nullable>disable</Nullable>
+		<UserSecretsId>a3e3c6fb-4b7e-44a6-8dbe-5e5f11af4202</UserSecretsId>
+		<GenerateDocumentationFile>true</GenerateDocumentationFile><!--鍚敤涓枃娉ㄩ噴鍔熻兘-->
+		<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
+	</PropertyGroup>
 
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <OutputPath>bin\Debug\netcoreapp6.0\</OutputPath>
-    <DocumentationFile>bin\Debug\netcoreapp6.0\WIDESEA_WebApi.xml</DocumentationFile>
-    <NoWarn>1701;1702;CS1591;CS8618;CS8600;CS8602;CS1572;CS1573;CS1587;CS1591;CS1570;CS8765;</NoWarn>
-  </PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+		<OutputPath>bin\Debug\netcoreapp6.0\</OutputPath>
+		<DocumentationFile>bin\Debug\netcoreapp6.0\WIDESEA_WebApi.xml</DocumentationFile>
+		<NoWarn>1701;1702;CS1591;CS8618;CS8600;CS8602;CS1572;CS1573;CS1587;CS1591;CS1570;CS8765;</NoWarn>
+	</PropertyGroup>
 
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <DocumentationFile>bin\Release\netcoreapp6.0\WIDESEA_WebApi.xml</DocumentationFile>
-    <OutputPath>bin\Release\netcoreapp6.0\</OutputPath>
-    <NoWarn>1701;1702;CS1572;CS1573;CS1587;CS8618;CS8600;CS8602;CS1591;CS1570;CS8765;</NoWarn>
-  </PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
+		<DocumentationFile>bin\Release\netcoreapp6.0\WIDESEA_WebApi.xml</DocumentationFile>
+		<OutputPath>bin\Release\netcoreapp6.0\</OutputPath>
+		<NoWarn>1701;1702;CS1572;CS1573;CS1587;CS8618;CS8600;CS8602;CS1591;CS1570;CS8765;</NoWarn>
+	</PropertyGroup>
 
-  <ItemGroup>
-    <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" />
-    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.0" />
-    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.15.1" />
-    <PackageReference Include="Quartz" Version="3.6.3" />
-    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.0.0" />
-  </ItemGroup>
+	<ItemGroup>
+		<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" />
+		<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.0" />
+		<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.15.1" />
+		<PackageReference Include="Quartz" Version="3.6.3" />
+		<PackageReference Include="Swashbuckle.AspNetCore" Version="6.0.0" />
+	</ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\WIDESEA_Builder\WIDESEA_Builder.csproj" />
-    <ProjectReference Include="..\WIDESEA_Core\WIDESEA_Core.csproj" />
-    <ProjectReference Include="..\WIDESEA_Entity\WIDESEA_Entity.csproj" />
-    <ProjectReference Include="..\WIDESEA_System\WIDESEA_System.csproj" />
-    <ProjectReference Include="..\WIDESEA_WCS\WIDESEA_WCS.csproj" />
-  </ItemGroup>
+	<ItemGroup>
+		<ProjectReference Include="..\WIDESEA_Builder\WIDESEA_Builder.csproj" />
+		<ProjectReference Include="..\WIDESEA_Core\WIDESEA_Core.csproj" />
+		<ProjectReference Include="..\WIDESEA_Entity\WIDESEA_Entity.csproj" />
+		<ProjectReference Include="..\WIDESEA_System\WIDESEA_System.csproj" />
+		<ProjectReference Include="..\WIDESEA_WCS\WIDESEA_WCS.csproj" />
+	</ItemGroup>
 
 
 </Project>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data.js"
new file mode 100644
index 0000000..8935403
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data.js"
@@ -0,0 +1,75 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+        //   this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+        //     name: '鎸夐挳', //鎸夐挳鍚嶇О
+        //     icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+        //     type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+        //     onClick: function () {
+        //       this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+        //     }
+        //   });
+
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        // this.boxOptions.labelWidth = 150;
+    },
+    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/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js"
index 6ef59f3..203caa8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js"
@@ -41,6 +41,12 @@
 
         //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
         // this.boxOptions.labelWidth = 150;
+        this.pagination.order = "asc"; 
+        this.columns.forEach(row=>{
+          if(row.field=="stationCode"){
+            row.sort=true;
+          }
+        })
         this.buttons.splice(1, 0, {
           name: "鍙栨秷绂佺敤",
           icon: 'md-refresh',
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/router/viewGird.js"
index d6f5735..9d02714 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/router/viewGird.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/router/viewGird.js"
@@ -173,6 +173,10 @@
       path: '/Dt_Interfacerecord',
       name: 'Dt_Interfacerecord',
       component: () => import('@/views/widesea_system/system/Dt_Interfacerecord.vue')
-  }]
+  }    ,{
+        path: '/dt_geometry_data',
+        name: 'dt_geometry_data',
+        component: () => import('@/views/widesea_wms/baseinfo/dt_geometry_data.vue')
+    }]
 
 export default viewgird
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data.vue"
new file mode 100644
index 0000000..b74bb98
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data.vue"
@@ -0,0 +1,73 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/baseinfo/dt_geometry_data.js姝ゅ缂栧啓
+ -->
+<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/widesea_wms/baseinfo/dt_geometry_data.js";
+    import { ref, defineComponent } from "vue";
+    export default defineComponent({
+        setup() {
+            const table = ref({
+                key: 'TypeId',
+                footer: "Foots",
+                cnName: '杞﹁疆淇℃伅',
+                name: 'baseinfo/dt_geometry_data',
+                url: "/dt_geometry_data/",
+                sortName: "TypeId"
+            });
+            const editFormFields = ref({"Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":""});
+            const editFormOptions = ref([[{"title":"鍥惧彿","required":true,"field":"Description","type":"text"}],
+                              [{"title":"","required":true,"field":"a","type":"text"},
+                               {"title":"","required":true,"field":"b","type":"text"}],
+                              [{"title":"","required":true,"field":"c","type":"text"},
+                               {"title":"","required":true,"field":"d","type":"text"}],
+                              [{"title":"","required":true,"field":"e","type":"text"},
+                               {"title":"","required":true,"field":"f","type":"text"}],
+                              [{"title":"","required":true,"field":"g","type":"text"},
+                               {"title":"","required":true,"field":"h","type":"decimal"}]]);
+            const searchFormFields = ref({"Description":""});
+            const searchFormOptions = ref([[{"title":"鍥惧彿","field":"Description","type":"like"}]]);
+            const columns = ref([{field:'TypeId',title:'TypeId',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
+                       {field:'Description',title:'鍥惧彿',type:'string',width:120,require:true,align:'left',sort:true},
+                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
+                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
+                       {field:'c',title:'c',type:'float',width:110,require:true,align:'left'},
+                       {field:'d',title:'d',type:'float',width:110,require:true,align:'left'},
+                       {field:'e',title:'e',type:'float',width:110,require:true,align:'left'},
+                       {field:'f',title:'f',type:'float',width:110,require:true,align:'left'},
+                       {field:'g',title:'g',type:'float',width:110,require:true,align:'left'},
+                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'}]);
+            const detail = ref({
+                cnName: "#detailCnName",
+                table: "#detailTable",
+                columns: [],
+                sortName: "",
+                key: ""
+            });
+            return {
+                table,
+                extend,
+                editFormFields,
+                editFormOptions,
+                searchFormFields,
+                searchFormOptions,
+                columns,
+                detail,
+            };
+        },
+    });
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue"
index dc7a77d..4f629d1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue"
@@ -29,8 +29,14 @@
                 url: "/dt_stationinfo/",
                 sortName: "zj"
             });
-            const editFormFields = ref({});
-            const editFormOptions = ref([]);
+            const editFormFields = ref({"stationCode":"","location_state":"","bindSN":"","tray_status":"","Number":"","heatNumber":"","remark":""});
+            const editFormOptions = ref([[{"title":"缂撳瓨鏋剁紪鍙�","field":"stationCode","disabled": true}],
+                              [{"dataKey":"location_states","data":[],"title":"璐т綅鐘舵��","field":"location_state","type":"select"}],
+                              [{"title":"杞﹁疆SN鍙�","field":"bindSN"}],
+                              [{"dataKey":"tray_status","data":[],"title":"鎵樼洏鐘舵��","field":"tray_status"}],
+                              [{"title":"宸ュ崟缂栧彿","field":"Number"}],
+                              [{"title":"鐐夊彿","field":"heatNumber","type":"text"}],
+                              [{"title":"澶囨敞","field":"remark"}]]);
             const searchFormFields = ref({"stationCode":"","stationType":"","area":"","enable":"","location_state":[],"bindSN":""});
             const searchFormOptions = ref([[{"title":"缂撳瓨鏋剁紪鍙�","field":"stationCode","type":"like"},{"title":"杞﹁疆SN鍙�","field":"bindSN","type":"like"},{"dataKey":"materielinfos","data":[],"title":"鐗╂枡绫诲瀷","field":"stationType","type":"select"}],[{"dataKey":"area_name","data":[],"title":"鍖哄煙","field":"area","type":"select"},{"dataKey":"location_states","data":[],"title":"璐т綅鐘舵��","field":"location_state","type":"selectList"},{"dataKey":"status","data":[],"title":"鏄惁鍚敤","field":"enable","type":"select"}]]);
             const columns = ref([{field:'id',title:'id',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs"
index 9b9a704..5ca29b8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/LogInfo/WriteDBLog.cs"
@@ -82,7 +82,7 @@
         /// <summary>
         /// 娣诲姞鏃ュ織
         /// </summary>
-        private static void Write(string describe, object info, LogState logState, string dataFrom, string createuser)
+        public static void Write(string describe, object info, LogState logState, string dataFrom, string createuser)
         {
             try
             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Core/UserManager/UserContext.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Core/UserManager/UserContext.cs"
index 45dc922..02ae359 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Core/UserManager/UserContext.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Core/UserManager/UserContext.cs"
@@ -97,13 +97,14 @@
                     Role_Id = s.Role_Id.GetInt(),
                     RoleName = s.RoleName,
                     //2022.08.15澧炲姞閮ㄩ棬id
-                    DeptId = s.Dept_Id??0,
+                    DeptId = s.Dept_Id ?? 0,
                     Token = s.Token,
                     UserName = s.UserName,
                     UserTrueName = s.UserTrueName,
                     Enable = s.Enable,
-                    DeptIds= s.DeptIds,
-                    systemType=s.systemType
+                    DeptIds = s.DeptIds,
+                    systemType = s.systemType,
+                    Tel = s.Tel
                 }).ToList().Select(s => new UserInfo()
                 {
                     User_Id = userId,
@@ -112,8 +113,9 @@
                     UserName = s.UserName,
                     UserTrueName = s.UserTrueName,
                     Enable = 1,
+                    Tel = s.Tel,
                     DeptIds = string.IsNullOrEmpty(s.DeptIds) ? new List<Guid>() : s.DeptIds.Split(",").Select(x => (Guid)x.GetGuid()).ToList(),
-                    systemType=s.systemType
+                    systemType = s.systemType
                 }).FirstOrDefault();
 
             if (_userInfo != null && _userInfo.User_Id > 0)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs"
new file mode 100644
index 0000000..96e0d5f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs"
@@ -0,0 +1,113 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *濡傛灉鏁版嵁搴撳瓧娈靛彂鐢熷彉鍖栵紝璇峰湪浠g爜鐢熷櫒閲嶆柊鐢熸垚姝odel
+ */
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Entity.SystemModels;
+
+namespace WIDESEA_Entity.DomainModels
+{
+    [Entity(TableCnName = "杞﹁疆淇℃伅",TableName = "dt_geometry_data")]
+    public partial class dt_geometry_data:BaseEntity
+    {
+        /// <summary>
+       ///
+       /// </summary>
+       [Key]
+       [Display(Name ="TypeId")]
+       [Column(TypeName="int")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public int TypeId { get; set; }
+
+       /// <summary>
+       ///鍥惧彿
+       /// </summary>
+       [Display(Name ="鍥惧彿")]
+       [MaxLength(100)]
+       [Column(TypeName="nvarchar(100)")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public string Description { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="a")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float a { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="b")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float b { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="c")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float c { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="d")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float d { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="e")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float e { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="f")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float f { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="g")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float g { get; set; }
+
+       /// <summary>
+       ///
+       /// </summary>
+       [Display(Name ="h")]
+       [Column(TypeName="float")]
+       [Editable(true)]
+       [Required(AllowEmptyStrings=false)]
+       public float h { get; set; }
+
+       
+    }
+}
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data.cs"
new file mode 100644
index 0000000..2808f8b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data.cs"
@@ -0,0 +1,21 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *濡傛灉鏁版嵁搴撳瓧娈靛彂鐢熷彉鍖栵紝璇峰湪浠g爜鐢熷櫒閲嶆柊鐢熸垚姝odel
+ */
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Entity.SystemModels;
+
+namespace WIDESEA_Entity.DomainModels
+{
+    
+    public partial class dt_geometry_data
+    {
+        //姝ゅ閰嶇疆瀛楁(瀛楁閰嶇疆瑙佹model鐨勫彟涓�涓猵artial),濡傛灉琛ㄤ腑娌℃湁姝ゅ瓧娈佃鍔犱笂 [NotMapped]灞炴�э紝鍚﹀垯浼氬紓甯�
+    }
+}
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/UserInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/UserInfo.cs"
index c19e64d..23fb703 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/UserInfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/UserInfo.cs"
@@ -36,5 +36,6 @@
         public List<Guid> DeptIds { get; set; }
 
         public string Token { get; set; }
+        public string Tel { get; set; }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs"
index 3000592..9d4b5ba 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs"
@@ -111,9 +111,9 @@
         public DateTime agv_createtime { get; set; }
 
         /// <summary>
-        ///鎵ц鏃堕棿
+        ///涓嬪彂鏃堕棿
         /// </summary>
-        [Display(Name = "鎵ц鏃堕棿")]
+        [Display(Name = "涓嬪彂鏃堕棿")]
         [Column(TypeName = "datetime")]
         [Editable(true)]
         public DateTime? agv_realesstime { get; set; }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_dataMapConfig.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_dataMapConfig.cs"
new file mode 100644
index 0000000..529e30f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_dataMapConfig.cs"
@@ -0,0 +1,16 @@
+using WIDESEA_Entity.MappingConfiguration;
+using WIDESEA_Entity.DomainModels;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace WIDESEA_Entity.MappingConfiguration
+{
+    public class dt_geometry_dataMapConfig : EntityMappingConfiguration<dt_geometry_data>
+    {
+        public override void Map(EntityTypeBuilder<dt_geometry_data>
+        builderTable)
+        {
+          //b.Property(x => x.StorageName).HasMaxLength(45);
+        }
+     }
+}
+
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/AGVRespone.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/AGVRespone.cs"
index b2cc9e8..06d3ac2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/AGVRespone.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/AGVRespone.cs"
@@ -6,6 +6,9 @@
 
 namespace WIDESEA_Entity.ToAGV
 {
+    /// <summary>
+    /// 鍙嶉缁橝GV淇℃伅
+    /// </summary>
     public class AGVRespone
     {
         /// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs"
index 04c7c5f..d8a0556 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs"
@@ -6,6 +6,9 @@
 
 namespace WIDESEA_Entity.ToAGV
 {
+    /// <summary>
+    /// 浠诲姟涓嬪彂淇℃伅
+    /// </summary>
     public class RequestTask
     {
         /// <summary>
@@ -21,13 +24,40 @@
         /// </summary>
         public string TO_POSITION { get; set; }
         /// <summary>
+        /// 浠诲姟绛夌骇
+        /// </summary>
+        public int? Grade { get; set; }
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public int? Quantity { get; set; }
+        /// <summary>
         /// 鐗╂枡淇℃伅
         /// </summary>
         public string Material { get; set; }
+        #region 杞﹁疆鏁版嵁
+        public float A { get; set; }
+        public float B { get; set; }
+        public float C { get; set; }
+        public float D { get; set; }
+        public float E { get; set; }
+        public float F { get; set; }
+        public float G { get; set; }
+        public float H { get; set; }
+        #endregion
+    }
+    /// <summary>
+    /// AGV鍙嶉淇℃伅
+    /// </summary>
+    public class Respone
+    {
         /// <summary>
-        /// 浠诲姟绛夌骇
+        /// 1鎴愬姛
         /// </summary>
-        public int? Priority { get; set; }
-        public int? agv_qty { get; set; }
+        public bool Success { get; set; }
+        /// <summary>
+        /// 澶辫触锛岃繑鍥炲け璐ヤ俊鎭�
+        /// </summary>
+        public string Msg { get; set; }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs"
new file mode 100644
index 0000000..91d5fbc
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs"
@@ -0,0 +1,18 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶笽dt_geometry_dataRepository缂栧啓鎺ュ彛
+ */
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Core.Extensions.AutofacManager;
+namespace WIDESEA_WCS.IRepositories
+{
+    public partial interface Idt_geometry_dataRepository : IDependency,IRepository<dt_geometry_data>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_dataService.cs"
new file mode 100644
index 0000000..7c53170
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_dataService.cs"
@@ -0,0 +1,12 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ */
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WCS.IServices
+{
+    public partial interface Idt_geometry_dataService : IService<dt_geometry_data>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs"
new file mode 100644
index 0000000..e18b7d8
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs"
@@ -0,0 +1,13 @@
+/*
+*鎵�鏈夊叧浜巇t_geometry_data绫荤殑涓氬姟浠g爜鎺ュ彛搴斿湪姝ゅ缂栧啓
+*/
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Core.Utilities;
+using System.Linq.Expressions;
+namespace WIDESEA_WCS.IServices
+{
+    public partial interface Idt_geometry_dataService
+    {
+    }
+ }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_dataRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_dataRepository.cs"
new file mode 100644
index 0000000..52e5a80
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_dataRepository.cs"
@@ -0,0 +1,24 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶筪t_geometry_dataRepository缂栧啓浠g爜
+ */
+using WIDESEA_WCS.IRepositories;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WCS.Repositories
+{
+    public partial class dt_geometry_dataRepository : RepositoryBase<dt_geometry_data> , Idt_geometry_dataRepository
+    {
+    public dt_geometry_dataRepository(VOLContext dbContext)
+    : base(dbContext)
+    {
+
+    }
+    public static Idt_geometry_dataRepository Instance
+    {
+      get {  return AutofacContainerModule.GetService<Idt_geometry_dataRepository>(); } }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_dataService.cs"
new file mode 100644
index 0000000..5104dfb
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_dataService.cs"
@@ -0,0 +1,41 @@
+/*
+ *鎵�鏈夊叧浜巇t_geometry_data绫荤殑涓氬姟浠g爜搴斿湪姝ゅ缂栧啓
+*鍙娇鐢╮epository.璋冪敤甯哥敤鏂规硶锛岃幏鍙朎F/Dapper绛変俊鎭�
+*濡傛灉闇�瑕佷簨鍔¤浣跨敤repository.DbContextBeginTransaction
+*涔熷彲浣跨敤DBServerProvider.鎵嬪姩鑾峰彇鏁版嵁搴撶浉鍏充俊鎭�
+*鐢ㄦ埛淇℃伅銆佹潈闄愩�佽鑹茬瓑浣跨敤UserContext.Current鎿嶄綔
+*dt_geometry_dataService瀵瑰銆佸垹銆佹敼鏌ャ�佸鍏ャ�佸鍑恒�佸鏍镐笟鍔′唬鐮佹墿灞曞弬鐓erviceFunFilter
+*/
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+using System.Linq;
+using WIDESEA_Core.Utilities;
+using System.Linq.Expressions;
+using WIDESEA_Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.AspNetCore.Http;
+using WIDESEA_WCS.IRepositories;
+
+namespace WIDESEA_WCS.Services
+{
+    public partial class dt_geometry_dataService
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        private readonly Idt_geometry_dataRepository _repository;//璁块棶鏁版嵁搴�
+
+        [ActivatorUtilitiesConstructor]
+        public dt_geometry_dataService(
+            Idt_geometry_dataRepository dbRepository,
+            IHttpContextAccessor httpContextAccessor
+            )
+        : base(dbRepository)
+        {
+            _httpContextAccessor = httpContextAccessor;
+            _repository = dbRepository;
+            //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢�
+            //base.Init(dbRepository);
+        }
+  }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_dataService.cs"
new file mode 100644
index 0000000..c1faaa6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_dataService.cs"
@@ -0,0 +1,27 @@
+/*
+ *Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,姝ゅ浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *鎵�鏈変笟鍔$紪鍐欏叏閮ㄥ簲鍦≒artial鏂囦欢澶逛笅dt_geometry_dataService涓嶪dt_geometry_dataService涓紪鍐�
+ */
+using WIDESEA_WCS.IRepositories;
+using WIDESEA_WCS.IServices;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WCS.Services
+{
+    public partial class dt_geometry_dataService : ServiceBase<dt_geometry_data, Idt_geometry_dataRepository>
+    , Idt_geometry_dataService, IDependency
+    {
+    public dt_geometry_dataService(Idt_geometry_dataRepository repository)
+    : base(repository)
+    {
+    Init(repository);
+    }
+    public static Idt_geometry_dataService Instance
+    {
+      get { return AutofacContainerModule.GetService<Idt_geometry_dataService>(); } }
+    }
+ }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
new file mode 100644
index 0000000..cc86be5
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs"
@@ -0,0 +1,91 @@
+锘縰sing Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Comm.LogInfo;
+using WIDESEA_Common;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Entity.ToAGV;
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_WMS.Repositories;
+
+namespace WIDESEA_WMS.Common
+{
+    public partial class AGVServer
+    {
+        static FreeDB freeDB = new FreeDB();
+        static Respone respone = new Respone();
+        static RequestTask requestTask = new RequestTask();
+        static string postJson = string.Empty;
+        static string report = string.Empty;
+        /// <summary>
+        /// 浠诲姟涓嬪彂
+        /// </summary>
+        public static void SendAgvTask()
+        {
+            try
+            {
+                var agv_task = freeDB.Select<dt_agvtask>()
+                        .Where(t => t.agv_taskstate == AGVTaskStateEnum.Create.ToString()
+                               && (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
+                               && string.IsNullOrEmpty(t.agv_remark))
+                        .OrderByDescending(t => t.agv_grade)
+                        .OrderBy(t => t.agv_createtime)
+                        .First();
+                if (agv_task == null)
+                    agv_task = freeDB.Select<dt_agvtask>()
+                        .Where(t => t.agv_taskstate == AGVTaskStateEnum.Create.ToString()
+                               && (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
+                               && !string.IsNullOrEmpty(t.agv_remark))
+                        .OrderByDescending(t => t.agv_grade)
+                        .OrderBy(t => t.agv_createtime)
+                        .First();
+                if (agv_task != null)
+                {
+                    var Materiel = QueryData.QueryMateriel(agv_task.agv_materielid);//鏌ユ壘杞﹁疆鏁版嵁
+                    if (Materiel == null)
+                    {
+                        agv_task.agv_remark = "鏈幏鍙栧埌褰撳墠浠诲姟鐨勮溅杞暟鎹�";
+                        freeDB.Update(agv_task).UpdateColumns(t => new { t.agv_remark }).ExecuteAffrows();
+                        throw new Exception("鏈煡璇㈠埌褰撳墠浠诲姟鐨勮溅杞被鍨嬫暟鎹紝浠诲姟ID锛�" + agv_task.agv_tasknum);
+                    }
+                    requestTask.TASK_NO = agv_task.agv_tasknum;
+                    requestTask.FROM_POSITION = agv_task.agv_fromaddress;
+                    requestTask.TO_POSITION = agv_task.agv_toaddress;
+                    requestTask.Material = agv_task.agv_materielid;
+                    requestTask.Grade = agv_task.agv_grade;
+                    requestTask.Quantity = agv_task.agv_qty;
+                    requestTask.A = Materiel.a;
+                    requestTask.B = Materiel.b;
+                    requestTask.C = Materiel.c;
+                    requestTask.D = Materiel.d;
+                    requestTask.E = Materiel.e;
+                    requestTask.F = Materiel.f;
+                    requestTask.G = Materiel.g;
+                    requestTask.H = Materiel.h;
+                    postJson = JsonConvert.SerializeObject(requestTask);
+                    report = Request.RequestData(postJson, "http://192.168.12.250:5566/api/TaskCreat/CreatTask");
+                    respone = JsonConvert.DeserializeObject<Respone>(report);
+                    if (respone.Success)
+                    {
+                        agv_task.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
+                        agv_task.agv_realesstime = DateTime.Now;
+                        freeDB.Update(agv_task).UpdateColumns(t => new { t.agv_realesstime, t.agv_taskstate }).ExecuteAffrows();
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                respone.Success = false;
+                respone.Msg = ex.Message;
+            }
+            WriteWMSLog.LogAdd(requestTask.TASK_NO, respone.Success ? "鎴愬姛 " : "澶辫触", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Msg);
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Task.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
similarity index 97%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Task.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
index 9ebde49..210fd6c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Task.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
@@ -12,11 +12,11 @@
 using WIDESEA_WMS.IRepositories;
 using WIDESEA_WMS.Repositories;
 
-namespace WIDESEA_WMS
+namespace WIDESEA_WMS.Common
 {
-    public class Task
+    public class HandleTask
     {
-        static FreeDB freeDB = new FreeDB();
+        public static FreeDB freeDB = new FreeDB();
         /// <summary>
         /// 娣诲姞鍘嗗彶浠诲姟
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueryData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Gantry/QueryData.cs"
similarity index 69%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueryData.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Gantry/QueryData.cs"
index b214806..7a0c321 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueryData.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Gantry/QueryData.cs"
@@ -6,7 +6,7 @@
 using WIDESEA_Core.FreeDB;
 using WIDESEA_Entity.DomainModels;
 
-namespace WIDESEA_WMS
+namespace WIDESEA_WMS.Common
 {
     public class QueryData
     {
@@ -16,9 +16,9 @@
         /// </summary>
         /// <param name="type"></param>
         /// <returns></returns>
-        public static dt_materielinfo QueryMateriel(string type)
+        public static dt_geometry_data QueryMateriel(string type)
         {
-            var materielinfo = freeDB.Select<dt_materielinfo>().Where(x => x.materiel_id == type).First();
+            var materielinfo = freeDB.Select<dt_geometry_data>().Where(x => x.TypeId.ToString() == type).First();
             return materielinfo;
         }
     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs"
new file mode 100644
index 0000000..3ee761f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs"
@@ -0,0 +1,18 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶笽dt_geometry_dataRepository缂栧啓鎺ュ彛
+ */
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Core.Extensions.AutofacManager;
+namespace WIDESEA_WMS.IRepositories
+{
+    public partial interface Idt_geometry_dataRepository : IDependency,IRepository<dt_geometry_data>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Idt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Idt_geometry_dataService.cs"
new file mode 100644
index 0000000..9eb67c5
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Idt_geometry_dataService.cs"
@@ -0,0 +1,12 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ */
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WMS.IServices
+{
+    public partial interface Idt_geometry_dataService : IService<dt_geometry_data>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs"
new file mode 100644
index 0000000..27e0dfb
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs"
@@ -0,0 +1,13 @@
+/*
+*鎵�鏈夊叧浜巇t_geometry_data绫荤殑涓氬姟浠g爜鎺ュ彛搴斿湪姝ゅ缂栧啓
+*/
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Core.Utilities;
+using System.Linq.Expressions;
+namespace WIDESEA_WMS.IServices
+{
+    public partial interface Idt_geometry_dataService
+    {
+    }
+ }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs"
index 68454cc..dca2268 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs"
@@ -9,5 +9,6 @@
 {
     public partial interface Idt_stationinfoService
     {
+        WebResponseContent SetStationEnable(object parm);
     }
- }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Repositories/BaseInfo/dt_geometry_dataRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Repositories/BaseInfo/dt_geometry_dataRepository.cs"
new file mode 100644
index 0000000..55cf77e
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Repositories/BaseInfo/dt_geometry_dataRepository.cs"
@@ -0,0 +1,24 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶筪t_geometry_dataRepository缂栧啓浠g爜
+ */
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WMS.Repositories
+{
+    public partial class dt_geometry_dataRepository : RepositoryBase<dt_geometry_data> , Idt_geometry_dataRepository
+    {
+    public dt_geometry_dataRepository(VOLContext dbContext)
+    : base(dbContext)
+    {
+
+    }
+    public static Idt_geometry_dataRepository Instance
+    {
+      get {  return AutofacContainerModule.GetService<Idt_geometry_dataRepository>(); } }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_dataService.cs"
new file mode 100644
index 0000000..6a808ba
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_dataService.cs"
@@ -0,0 +1,41 @@
+/*
+ *鎵�鏈夊叧浜巇t_geometry_data绫荤殑涓氬姟浠g爜搴斿湪姝ゅ缂栧啓
+*鍙娇鐢╮epository.璋冪敤甯哥敤鏂规硶锛岃幏鍙朎F/Dapper绛変俊鎭�
+*濡傛灉闇�瑕佷簨鍔¤浣跨敤repository.DbContextBeginTransaction
+*涔熷彲浣跨敤DBServerProvider.鎵嬪姩鑾峰彇鏁版嵁搴撶浉鍏充俊鎭�
+*鐢ㄦ埛淇℃伅銆佹潈闄愩�佽鑹茬瓑浣跨敤UserContext.Current鎿嶄綔
+*dt_geometry_dataService瀵瑰銆佸垹銆佹敼鏌ャ�佸鍏ャ�佸鍑恒�佸鏍镐笟鍔′唬鐮佹墿灞曞弬鐓erviceFunFilter
+*/
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+using System.Linq;
+using WIDESEA_Core.Utilities;
+using System.Linq.Expressions;
+using WIDESEA_Core.Extensions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.AspNetCore.Http;
+using WIDESEA_WMS.IRepositories;
+
+namespace WIDESEA_WMS.Services
+{
+    public partial class dt_geometry_dataService
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        private readonly Idt_geometry_dataRepository _repository;//璁块棶鏁版嵁搴�
+
+        [ActivatorUtilitiesConstructor]
+        public dt_geometry_dataService(
+            Idt_geometry_dataRepository dbRepository,
+            IHttpContextAccessor httpContextAccessor
+            )
+        : base(dbRepository)
+        {
+            _httpContextAccessor = httpContextAccessor;
+            _repository = dbRepository;
+            //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢�
+            //base.Init(dbRepository);
+        }
+  }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/dt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/dt_geometry_dataService.cs"
new file mode 100644
index 0000000..5bd4a89
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/dt_geometry_dataService.cs"
@@ -0,0 +1,27 @@
+/*
+ *Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,姝ゅ浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *鎵�鏈変笟鍔$紪鍐欏叏閮ㄥ簲鍦≒artial鏂囦欢澶逛笅dt_geometry_dataService涓嶪dt_geometry_dataService涓紪鍐�
+ */
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_WMS.IServices;
+using WIDESEA_Core.BaseProvider;
+using WIDESEA_Core.Extensions.AutofacManager;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WMS.Services
+{
+    public partial class dt_geometry_dataService : ServiceBase<dt_geometry_data, Idt_geometry_dataRepository>
+    , Idt_geometry_dataService, IDependency
+    {
+    public dt_geometry_dataService(Idt_geometry_dataRepository repository)
+    : base(repository)
+    {
+    Init(repository);
+    }
+    public static Idt_geometry_dataService Instance
+    {
+      get { return AutofacContainerModule.GetService<Idt_geometry_dataService>(); } }
+    }
+ }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
index 4b4f70c..9bb2ced 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
@@ -17,9 +17,19 @@
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.AspNetCore.Http;
 using WIDESEA_WMS.IRepositories;
+using Newtonsoft.Json;
+using WIDESEA_Comm.LogInfo;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Core.ManageUser;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 
 namespace WIDESEA_WMS.Services
 {
+    public class Parm
+    {
+        public List<string> data { get; set; }
+        public int type { get; set; }
+    }
     public partial class dt_stationinfoService
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
@@ -37,6 +47,53 @@
             //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢�
             //base.Init(dbRepository);
         }
+        FreeDB freeDB=new FreeDB();
+        /// <summary>
+        /// 璁剧疆缂撳瓨鏋剁鐢ㄥ惎鐢�
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        public WebResponseContent SetStationEnable(object json)
+        {
+            WebResponseContent webResponse = new WebResponseContent();
+            try
+            {
+                var Tel = UserContext.Current.UserInfo.Tel;//缂撳瓨鏋舵潈闄�
+                var data = JsonConvert.DeserializeObject<Parm>(json.ToString());
+                //var updateList = FreeDB.DB.Select<dt_stationinfo>().Where(t => data.data.Contains(t.id.ToString())).ToList();
+                var updateList = _repository.Find(x => data.data.Contains(x.id.ToString())).ToList();
+                if (!string.IsNullOrEmpty(Tel))
+                {
+                    var types = Tel.Split(',');
+                    foreach (var update in updateList)
+                    {
+                        var OK = false;
+                        foreach (var type in types)
+                        {
+                            if (update.stationCode.Contains(type))
+                                OK = true;
+                        }
+                        if (!OK) throw new Exception("褰撳墠璐﹀彿鏃犵鐢ㄦ潈闄�!");
+                    }
+                }
+
+                var res = freeDB.Update<dt_stationinfo>()
+                     .Set(t => t.enable, data.type == 1)
+                     .Where(t => data.data.Contains(t.id.ToString()))
+                     .ExecuteAffrows();
+
+                var msg = data.type == 1 ? "鍚敤" : "绂佺敤";
+                WriteDBLog.Write($"鎵嬪姩{msg}绔欑偣 ", $"{string.Join('銆�', updateList.Select(t => t.stationCode).ToArray())}", LogState.Sucess, "WCS", UserContext.Current.UserName);
+
+                webResponse.OK();
+            }
+            catch (Exception ex)
+            {
+                WriteDBLog.Write($"鎵嬪姩鍚敤鎴栫鐢ㄧ珯鐐� ", new { 閿欒淇℃伅 = ex.Message, 鏁版嵁 = json }, LogState.Error, "WCS", UserContext.Current.UserName);
+                webResponse.Error(ex.Message);
+            }
+            return webResponse;
+        }
         public override WebResponseContent Add(SaveModel saveDataModel)
         {
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs"
index 80e2015..1a470f2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs"
@@ -1,18 +1,10 @@
 锘縰sing Newtonsoft.Json;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Security.Policy;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml.Linq;
 using WIDESEA_Comm.LogInfo;
 using WIDESEA_Common;
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_Entity.ToAGV;
+using WIDESEA_WMS.Common;
 using WIDESEA_WMS.IRepositories;
 using WIDESEA_WMS.Repositories;
 
@@ -36,6 +28,8 @@
                 if (string.IsNullOrEmpty(json) || json == "null")
                     throw new Exception("鏈幏鍙栧埌璇锋眰鍙傛暟鏁版嵁");
                 tasteInfo = JsonConvert.DeserializeObject<UpdateTasteInfo>(json);
+                if (tasteInfo == null)
+                    throw new Exception("璇锋眰鍙傛暟鏍煎紡涓嶅锛�");
                 if (string.IsNullOrEmpty(tasteInfo.TASK_NO))
                     throw new Exception("鏈幏鍙栧埌浠诲姟鍙�!");
                 var task = repository.FindFirst(x => x.agv_tasknum == tasteInfo.TASK_NO);
@@ -47,7 +41,8 @@
                 if (task.agv_taskstate == StateName)
                 {
                     respone.success = 2;
-                    throw new Exception(tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State);
+                    respone.Message = tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State;
+                    return respone;
                 }
                 if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing)
                     task.agv_executingBeginTime = DateTime.Now;
@@ -61,9 +56,9 @@
                     throw new Exception("浠诲姟鐘舵�佹洿鏂板け璐ワ紒浠诲姟ID锛�" + tasteInfo.TASK_NO + "锛涗换鍔$姸鎬侊細" + tasteInfo.TASK_State);
                 if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete1)
                 {
-                    Task.AddHtyTask(task);
-                    Task.Updateinventory(task);
-                    Task.AutoUpdateHCJState(task);
+                    HandleTask.AddHtyTask(task);
+                    HandleTask.Updateinventory(task);
+                    HandleTask.AutoUpdateHCJState(task);
                 }
             }
             catch (Exception ex)
@@ -76,44 +71,6 @@
                 WriteWMSLog.LogAdd(tasteInfo.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), "AGV鍙嶉浠诲姟鐘舵��", "UpdateTaskState", respone.Message);
             }
             return respone;
-        }
-
-        /// <summary>
-        /// 涓嬪彂AGV浠诲姟
-        /// </summary>
-        /// <param name="agvtask"></param>
-        public static void SendAGVTask(dt_agvtask agvtask)
-        {
-            if (agvtask == null) return;
-            VOLContext context = new VOLContext();
-            Idt_agvtaskRepository repository = new dt_agvtaskRepository(context);
-            AGVRespone respone = new AGVRespone();
-            RequestTask requestTask = new RequestTask();
-            string postJson = string.Empty;
-            string report = string.Empty;
-            string url = "http://127.0.0.1/api/TaskCreat/CreatTask";
-            try
-            {
-                requestTask.TASK_NO = agvtask.agv_tasknum;
-                requestTask.FROM_POSITION = agvtask.agv_fromaddress;
-                requestTask.TO_POSITION = agvtask.agv_toaddress;
-                requestTask.Material = agvtask.agv_materielid;
-                requestTask.Priority = agvtask.agv_grade;
-                requestTask.agv_qty = agvtask.agv_qty;
-                postJson = JsonConvert.SerializeObject(requestTask);
-                report = Request.RequestData(postJson, url);
-                respone = JsonConvert.DeserializeObject<AGVRespone>(report);
-                if (respone.success != 1)
-                    throw new Exception(respone.Message);
-                agvtask.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
-                agvtask.agv_realesstime = DateTime.Now;
-                repository.Update(agvtask, true);
-            }
-            catch (Exception ex)
-            {
-                respone.Message = ex.Message;
-            }
-            WriteWMSLog.LogAdd(requestTask.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Message);
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
index 4e1c021..371f541 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
@@ -3,15 +3,16 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using WIDESEA_WMS.Common;
 
 namespace WIDESEA_WebApi.Controllers
 {
     public class JobTask : Job
     {
-        [Invoke(Begin = "2024-01-19 00:00", Interval = 1000*5, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
+        [Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 5, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
         public void TaskTime()
         {
-            //Console.WriteLine(DateTime.Now.ToString());
+            AGVServer.SendAgvTask();
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_geometry_dataController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_geometry_dataController.cs"
new file mode 100644
index 0000000..e203ccd
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_geometry_dataController.cs"
@@ -0,0 +1,33 @@
+/*
+ *鎺ュ彛缂栧啓澶�...
+*濡傛灉鎺ュ彛闇�瑕佸仛Action鐨勬潈闄愰獙璇侊紝璇峰湪Action涓婁娇鐢ㄥ睘鎬�
+*濡�: [ApiActionPermission("dt_geometry_data",Enums.ActionPermissionOptions.Search)]
+ */
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.AspNetCore.Http;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_WMS.IServices;
+
+namespace WIDESEA_WMS.Controllers
+{
+    public partial class dt_geometry_dataController
+    {
+        private readonly Idt_geometry_dataService _service;//璁块棶涓氬姟浠g爜
+        private readonly IHttpContextAccessor _httpContextAccessor;
+
+        [ActivatorUtilitiesConstructor]
+        public dt_geometry_dataController(
+            Idt_geometry_dataService service,
+            IHttpContextAccessor httpContextAccessor
+        )
+        : base(service)
+        {
+            _service = service;
+            _httpContextAccessor = httpContextAccessor;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs"
index 2faee8d..60d8fba 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs"
@@ -11,6 +11,8 @@
 using Microsoft.AspNetCore.Http;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_WMS.IServices;
+using WIDESEA_Core.Utilities;
+using WIDESEA_WMS.Services;
 
 namespace WIDESEA_WMS.Controllers
 {
@@ -29,5 +31,15 @@
             _service = service;
             _httpContextAccessor = httpContextAccessor;
         }
+        /// <summary>
+        /// 璁剧疆缂撳瓨鏋剁鐢ㄥ惎鐢�
+        /// </summary>
+        /// <param name="parm"></param>
+        /// <returns></returns>
+        [HttpPost, Route("SetStationEnable")]
+        public WebResponseContent SetStationEnable([FromBody] object parm)
+        {
+            return dt_stationinfoService.Instance.SetStationEnable(parm);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/dt_geometry_dataController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/dt_geometry_dataController.cs"
new file mode 100644
index 0000000..ce32c54
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/dt_geometry_dataController.cs"
@@ -0,0 +1,21 @@
+/*
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *濡傛灉瑕佸鍔犳柟娉曡鍦ㄥ綋鍓嶇洰褰曚笅Partial鏂囦欢澶筪t_geometry_dataController缂栧啓
+ */
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.Controllers.Basic;
+using WIDESEA_Entity.AttributeManager;
+using WIDESEA_WMS.IServices;
+namespace WIDESEA_WMS.Controllers
+{
+    [Route("api/dt_geometry_data")]
+    [PermissionTable(Name = "dt_geometry_data")]
+    public partial class dt_geometry_dataController : ApiBaseController<Idt_geometry_dataService>
+    {
+        public dt_geometry_dataController(Idt_geometry_dataService service)
+        : base(service)
+        {
+        }
+    }
+}
+
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj"
index e7aeb61..d997766 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj"
@@ -36,5 +36,9 @@
     <ProjectReference Include="..\WIDESEA_WMS\WIDESEA_WMS.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Controllers\WIDESEA_WCS\Partial\" />
+  </ItemGroup>
+
 
 </Project>
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\345\272\223\345\214\272\345\210\206\351\205\215.txt" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\345\272\223\345\214\272\345\210\206\351\205\215.txt"
index 66329d5..fe69923 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\345\272\223\345\214\272\345\210\206\351\205\215.txt"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\345\272\223\345\214\272\345\210\206\351\205\215.txt"
@@ -12,6 +12,8 @@
 
 搴撳尯:鏈�澶у��,鏈�灏忓��,鎸夊瀷鍙�,鎸夌倝鍙�,鎸夊簱鍖烘憜鏀�(姣斿搴撳尯2婊′簡璁惧厛鏀惧簱鍖�3/4)
 
+鍔ㄨ溅杞﹁疆鎵嶉渶瑕佷娇鐢ㄧ珫鍨嬫墭鐩�(鍙湁涓夊崟鍏冧細浣跨敤)锛氬彲鍦ㄨ溅杞暟鎹〃娣诲姞瀛楁锛堟墭鐩樼被鍨嬨�佹槸鍚﹀姞宸ワ級
+
 鍏ュ簱
 鍑哄簱
 澶栧崗鍏ュ簱
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\263\273\347\273\237\346\236\266\346\236\204\345\233\276\0501\051.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\263\273\347\273\237\346\236\266\346\236\204\345\233\276\0501\051.pdf"
new file mode 100644
index 0000000..be86569
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\263\273\347\273\237\346\236\266\346\236\204\345\233\276\0501\051.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx"
deleted file mode 100644
index 03e8f96..0000000
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/\345\215\217\350\256\256.xlsx"
deleted file mode 100644
index 2d5c8ac..0000000
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/\345\215\217\350\256\256.xlsx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Gantry.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Gantry.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Gantry.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Gantry.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Machine.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Machine.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Machine.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO Machine.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO VK.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO VK.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO VK.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO VK.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO WP.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO WP.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO WP.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS INFO WP.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ GEOMETRY.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ GEOMETRY.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ GEOMETRY.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ GEOMETRY.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS REQ.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_input.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_input.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_input.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_input.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_machine.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_machine.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_machine.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS RES_machine.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS SERVERS.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS SERVERS.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS SERVERS.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/interface PMS SERVERS.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\345\215\217\350\256\256.xlsx"
new file mode 100644
index 0000000..ad813fd
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\345\215\217\350\256\256.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx"
new file mode 100644
index 0000000..d24434a
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface PCS for AGV and Storage.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface PCS for AGV and Storage.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface PCS for AGV and Storage.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface PCS for AGV and Storage.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface to AGV\0501\051.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface to AGV\0501\051.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface to AGV\0501\051.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/Interface to AGV\0501\051.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS REQ GEOMETRY 4 inputs.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS REQ GEOMETRY 4 inputs.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS REQ GEOMETRY 4 inputs.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS REQ GEOMETRY 4 inputs.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS RES_inputs_conv_feed.pdf" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS RES_inputs_conv_feed.pdf"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS RES_inputs_conv_feed.pdf"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/interface PMS RES_inputs_conv_feed.pdf"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\344\270\216AGV\346\216\245\345\217\243/AGV\345\217\215\351\246\210\344\273\273\345\212\241\347\212\266\346\200\201\347\273\231WMS.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\344\270\216AGV\346\216\245\345\217\243/AGV\345\217\215\351\246\210\344\273\273\345\212\241\347\212\266\346\200\201\347\273\231WMS.xlsx"
deleted file mode 100644
index d3fbe7e..0000000
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\344\270\216AGV\346\216\245\345\217\243/AGV\345\217\215\351\246\210\344\273\273\345\212\241\347\212\266\346\200\201\347\273\231WMS.xlsx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\343\200\201PCS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\343\200\201PCS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx"
new file mode 100644
index 0000000..0ca77ad
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\343\200\201PCS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\344\270\216AGV\346\216\245\345\217\243/WMS\344\270\213\345\217\221\344\273\273\345\212\241\347\273\231AGV.png" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\344\270\213\345\217\221\344\273\273\345\212\241\347\273\231AGV.png"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\344\270\216AGV\346\216\245\345\217\243/WMS\344\270\213\345\217\221\344\273\273\345\212\241\347\273\231AGV.png"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\344\270\213\345\217\221\344\273\273\345\212\241\347\273\231AGV.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/MES\344\270\213\345\217\221AGV\346\225\260\346\215\256.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/MES\344\270\213\345\217\221AGV\346\225\260\346\215\256.docx"
new file mode 100644
index 0000000..8e138b7
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/MES\344\270\213\345\217\221AGV\346\225\260\346\215\256.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/MES\346\216\245\346\224\266AGV\346\225\260\346\215\256\346\216\245\345\217\243.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/MES\346\216\245\346\224\266AGV\346\225\260\346\215\256\346\216\245\345\217\243.docx"
new file mode 100644
index 0000000..dfab3ba
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/MES\346\216\245\346\224\266AGV\346\225\260\346\215\256\346\216\245\345\217\243.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx"
index ef652c2..d93ee39 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\241\271\347\233\256\345\233\276\347\272\270/\350\264\247\344\275\215.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\241\271\347\233\256\345\233\276\347\272\270/\350\264\247\344\275\215.xlsx"
new file mode 100644
index 0000000..cf6b7f8
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\241\271\347\233\256\345\233\276\347\272\270/\350\264\247\344\275\215.xlsx"
Binary files differ

--
Gitblit v1.9.3