From 13137e3acdb759d1541f754fba81c616f418e2a1 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 26 一月 2024 09:57:16 +0800
Subject: [PATCH] 添加车轮数据、AGV接口等

---
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs                                      |  155 +++++
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data.cs             |   21 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs                                        |   17 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs                          |   33 +
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/AddToFloat3.cs                                             |    6 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_dataService.cs             |   41 +
 代码管理/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js                           |   63 ++
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToPCS/ToPCSController.cs                          |   27 
 代码管理/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs                                     |   28 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Request.cs                                                |   46 +
 项目资料/DB/dt_geometry_data.sql                                                                     |   76 ++
 项目资料/其他/库区分配.txt                                                                                 |    6 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/Request.cs                                                |   46 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs                                         |    9 
 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data.js                       |   75 ++
 代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_dataService.cs                   |   12 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs                                             |   60 -
 代码管理/PCS/WCS_Server/WIDESEA_Comm/DBItem/MachineDB.cs                                             |   82 ++
 代码管理/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue                          |   73 ++
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs                     |  113 +++
 项目资料/系统文件/太原重工WMS系统说明V1.0.docx                                                                   |    0 
 项目资料/通信协议/PCS与桁架协议/新增设备需要采集的信息.xlsx                                                              |    0 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_dataService.cs                     |   27 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_dataRepository.cs              |   24 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/LocationCreation.cs                              |    3 
 项目资料/DB/dt_geometry_data(车轮数据).xlsx                                                              |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/UpdateStation.cs                                           |   26 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/Task.cs                                                   |   52 +
 项目资料/通信协议/PCS与桁架协议/协议.xlsx                                                                       |    0 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_dataMapConfig.cs    |   16 
 代码管理/PCS/WCS_Client/src/router/viewGird.js                                                       |    4 
 代码管理/PCS/WCS_Server/WIDESEA_Comm/DBItem/OperationType.cs                                         |   24 
 项目资料/其他/会议/机加工检测上下料自动化项目WMS与MES信息交互、网络布局事宣讨论会议纪要.png                                             |    0 
 代码管理/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs                                           |   37 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs                                    |   45 +
 项目资料/其他/会议/车轮厂二线机加工上下料自动化项目专题会.png                                                               |    0 
 项目资料/通信协议/PCS与AGV和桁架防呆交互协议/AGV与桁架防呆协议.xlsx                                                       |    0 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs           |   13 
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToWMS/ToWMSController.cs                          |   22 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs                                             |   34 +
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_geometry_dataController.cs         |   21 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/WIDESEA_WebApi.csproj                                         |    1 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/QueryData.cs                                              |   25 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/ToWMS/ToWmsServer.cs                                             |   25 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToPCS/ToPCSServer.cs                                             |   19 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs            |   18 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/CreatePLCinfodetail.cs                           |  257 ++++++++
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/One_two_unitJob.cs                                |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToPCS/AddTask.cs                                                 |   46 +
 /dev/null                                                                                        |    0 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Startup.cs                                                    |    2 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToPCS/TaskData.cs                                                |   32 +
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_geometry_dataController.cs |   33 +
 代码管理/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs                                          |    1 
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs                          |    6 
 55 files changed, 1,734 insertions(+), 68 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/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/PCS/WCS_Client/src/extension/widesea_wcs/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/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 f5ece9d..fa1cd96 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"
@@ -181,6 +181,10 @@
         path: '/dt_log_pcs',
         name: 'dt_log_pcs',
         component: () => import('@/views/widesea_system/system/dt_log_pcs.vue')
+    }    ,{
+        path: '/dt_geometry_data',
+        name: 'dt_geometry_data',
+        component: () => import('@/views/widesea_wcs/baseinfo/dt_geometry_data.vue')
     }]
 
 export default viewgird
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue"
new file mode 100644
index 0000000..07dedbc
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue"
@@ -0,0 +1,73 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wcs/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_wcs/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/PCS/WCS_Server/WIDESEA_Comm/DBItem/MachineDB.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/MachineDB.cs"
new file mode 100644
index 0000000..715a35f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/MachineDB.cs"
@@ -0,0 +1,82 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Comm.ItemDB;
+
+namespace WIDESEA_Comm.DBItem
+{
+    public partial class MachineDB
+    {
+        public event Action<string, MachineDB> OnReadSignal;
+
+        public string R_Name { get; set; }
+        /// <summary>
+        /// SN
+        /// </summary>
+        public string R_o_wp_id { get; set; }
+        /// <summary>
+        /// 寮�濮嬫椂闂�
+        /// </summary>
+        public DateTime R_o_mach_start_time { get; set; }
+        /// <summary>
+        /// 瀹屾垚鏃堕棿
+        /// </summary>
+        public DateTime R_o_mach_finish_time { get; set; }
+        /// <summary>
+        /// 鎿嶄綔浜�
+        /// </summary>
+        public string R_o_operator { get; set; }
+        /// <summary>
+        /// 鍘诲悜
+        /// </summary>
+        public string R_o_shift { get; set; }
+        /// <summary>
+        /// 璐ㄦ鐘舵�� 0:鏈畾涔�,1:OK,2:NG
+        /// </summary>
+        public short R_o_wp_status { get; set; }
+        /// <summary>
+        /// 缁撴灉
+        /// </summary>
+        public short R_o_result { get; set; }
+        /// <summary>
+        /// 閿欒浠g爜
+        /// </summary>
+        public short R_o_error_code { get; set; }
+
+        public short R_o_substation { get; set; }
+
+        public string R_o_value_result_real_1 { get; set; }
+        public string R_o_value_result_real_2 { get; set; }
+        public string R_o_value_result_real_3 { get; set; }
+        public string R_o_value_result_real_4 { get; set; }
+        public bool R_o_value_result_bool { get; set; }
+        public short oi_on { get; set; }
+        public short R_oi_on
+        {
+            get
+            {
+                return oi_on;
+            }
+            set
+            {
+                if (value == 1 && R_Name.Contains("瑙嗚妫�娴�"))
+                    ReadSignal(OperationType.OperationType_Record, this);
+                else if (value == 1 && R_Name.Contains("閾炬潯鏈�"))
+                    ReadSignal(OperationType.OperationType_Processor, this);
+                oi_on = value;
+
+
+            }
+        }
+
+        public void ReadSignal(string type, MachineDB reader)
+        {
+            Task.Run(() =>
+            {
+                OnReadSignal?.Invoke(type, reader);
+            });
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/OperationType.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/OperationType.cs"
new file mode 100644
index 0000000..003a50d
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/OperationType.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Comm.DBItem
+{
+    public class OperationType
+    {
+        /// <summary>
+        /// 鍙褰曟暟鎹�
+        /// </summary>
+        public const string OperationType_Record = "Record";
+        /// <summary>
+        /// 澶勭悊鏁版嵁
+        /// </summary>
+        public const string OperationType_Processor = "Processor";
+        /// <summary>
+        /// 杞﹁疆鏁版嵁
+        /// </summary>
+        public const string OperationType_WheelData = "WheelData";
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs"
new file mode 100644
index 0000000..189cd78
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs"
@@ -0,0 +1,37 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Comm.DBItem
+{
+    public partial class WheelDataDB
+    {
+        public event Action<string, WheelDataDB> OnReadSignal;
+        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 short R_oi_on { get; set; }
+        public void ReadSignal(string type, WheelDataDB reader)
+        {
+            Task.Run(() =>
+            {
+                OnReadSignal?.Invoke(type, reader);
+            });
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_dataMapConfig.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/Common/Request.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Request.cs"
new file mode 100644
index 0000000..8c95980
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Request.cs"
@@ -0,0 +1,46 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_WCS
+{
+    public class Request
+    {
+        /// <summary>
+        /// post璇锋眰
+        /// </summary>
+        /// <param name="postData">鍙傛暟</param>
+        /// <param name="address">璺緞</param>
+        /// <returns></returns>
+        public static string RequestData(string postData, string url = "")
+        {
+            string reponse = string.Empty;
+            try
+            {
+                //string tmp = "";
+                //if (null != postData)
+                //    tmp = JsonConvert.SerializeObject(postData);
+                byte[] param = Encoding.UTF8.GetBytes(postData);
+                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+                request.Method = "POST";
+                request.ContentType = "application/json";
+                request.GetRequestStream().Write(param, 0, param.Length);
+                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
+                {
+                    Stream stream = response.GetResponseStream();
+                    StreamReader streamReader = new StreamReader(stream);
+                    string webResponse = streamReader.ReadToEnd();
+                    reponse = webResponse;
+                }
+            }
+            catch (Exception ex)
+            {
+                reponse = ex.Message;
+            }
+            return reponse;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_dataRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/Jobs/ParentCarJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/ParentCarJob.cs"
deleted file mode 100644
index 358a49d..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/ParentCarJob.cs"
+++ /dev/null
@@ -1,18 +0,0 @@
-锘縰sing Quartz;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace WIDESEA_WCS
-{
-    [DisallowConcurrentExecution]
-    public class ParentCarJob : IJob
-    {
-        public Task Execute(IJobExecutionContext context)
-        {
-            return Task.CompletedTask;
-        }
-    }
-}
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 b9ae9b1..cc62517 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"
@@ -14,7 +14,10 @@
     [DisallowConcurrentExecution]
     public class AutoTaskJob : JobBase, IJob
     {
-        LocationCreation Creation = new LocationCreation();
+        /// <summary>
+        /// 鑷姩浠诲姟
+        /// </summary>
+        Createplcinfodetail Creation = new Createplcinfodetail();
         public Task Execute(IJobExecutionContext context)
         {
             try
@@ -28,7 +31,9 @@
         private void DoAction(IJobExecutionContext context)
         {
             //throw new NotImplementedException();
-            Creation.HCJCreation();
+            //Creation.HCJCreation();
+            //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"
new file mode 100644
index 0000000..baffdeb
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs"
@@ -0,0 +1,155 @@
+锘縰sing Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Comm.DBItem;
+using WIDESEA_Comm.ItemDB;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_WCS.IRepositories;
+using WIDESEA_WCS.Repositories;
+using WIDESEA_WCS.WCSClient;
+
+namespace WIDESEA_WCS
+{
+    /// <summary>
+    /// 妗佹灦
+    /// </summary>
+    [DisallowConcurrentExecution]
+    public class GantryJob : 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);
+            }
+            catch { }
+            return Task.CompletedTask;
+        }
+        static List<MachineDB> MachineDBs = new List<MachineDB>();
+        static List<WheelDataDB> wheelDataDBs = new List<WheelDataDB>();
+        private void DoAction(PLCClient client)
+        {
+            try
+            {
+                VOLContext Context = new VOLContext();
+                Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context);
+                Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context);
+
+                var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName);
+                var numbers = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep).GroupBy(x => x.plcdetail_number).ToList();
+                foreach (var number in numbers)
+                {
+                    if (number.Key.Contains("杈婇亾涓嬫枡"))
+                    {
+                        PropertyInfo[] propertyInfos = typeof(WheelDataDB).GetProperties();//鑾峰彇鎵�鏈夊睘鎬�
+                        WheelDataDB dBItem = wheelDataDBs.Where(x => x.R_Name == number.Key).FirstOrDefault();
+                        if (dBItem == null)
+                        {
+                            dBItem = new();
+                            dBItem.OnReadSignal += HandleReadSignal;
+                            wheelDataDBs.Add(dBItem);
+                        }
+                        List<dt_plcinfodetail> details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == number.Key).ToList();
+                        for (int i = 0; i < propertyInfos.Length; i++)
+                        {
+                            if (i == 0)
+                            {
+                                dBItem.R_Name = number.Key;
+                            }
+                            else
+                            {
+                                object readData = DBExtension.Read(details.Where(x => x.plcdetail_name == propertyInfos[i].Name).FirstOrDefault(), client);
+                                if (readData != null) { }
+                                object obj = propertyInfos[i].GetValue(dBItem);
+                                if (obj != readData)
+                                    propertyInfos[i].SetValue(dBItem, readData);
+                            }
+                        }
+                    }
+                    else
+                    {
+
+                        PropertyInfo[] propertyInfos = typeof(MachineDB).GetProperties();//鑾峰彇鎵�鏈夊睘鎬�
+                        MachineDB dBItem = MachineDBs.Where(x => x.R_Name == number.Key).FirstOrDefault();
+                        if (dBItem == null)
+                        {
+                            dBItem = new();
+                            dBItem.OnReadSignal += HandleReadSignal;
+                            MachineDBs.Add(dBItem);
+                        }
+                        List<dt_plcinfodetail> details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == number.Key).ToList();
+                        for (int i = 0; i < propertyInfos.Length; i++)
+                        {
+                            if (i == 0)
+                            {
+                                dBItem.R_Name = number.Key;
+                            }
+                            else
+                            {
+                                object readData = DBExtension.Read(details.Where(x => x.plcdetail_name == propertyInfos[i].Name).FirstOrDefault(), client);
+                                if (readData != null) { }
+                                object obj = propertyInfos[i].GetValue(dBItem);
+                                if (obj != readData)
+                                    propertyInfos[i].SetValue(dBItem, readData);
+                            }
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+
+                throw;
+            }
+        }
+        public void HandleReadSignal(string type, MachineDB DBItem)
+        {
+            switch (type)
+            {
+                case OperationType.OperationType_Record:
+
+                    break;
+                case OperationType.OperationType_Processor:
+
+                    break;
+                case OperationType.OperationType_WheelData:
+
+                    break;
+            }
+        }
+        public void HandleReadSignal(string type, WheelDataDB DBItem)
+        {
+            switch (type)
+            {
+                case OperationType.OperationType_Record:
+
+                    break;
+                case OperationType.OperationType_Processor:
+
+                    break;
+                case OperationType.OperationType_WheelData:
+
+                    break;
+            }
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/One_two_unitJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/One_two_unitJob.cs"
similarity index 100%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/One_two_unitJob.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/One_two_unitJob.cs"
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"
new file mode 100644
index 0000000..3804ccf
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
@@ -0,0 +1,45 @@
+锘縰sing Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_WCS.WCSClient;
+
+namespace WIDESEA_WCS
+{
+    /// <summary>
+    /// 閾炬潯鏈�
+    /// </summary>
+    [DisallowConcurrentExecution]
+    public class PipelineJob : 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);
+            }
+            catch { }
+            return Task.CompletedTask;
+        }
+
+        private void DoAction(PLCClient client)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/CreatePLCinfodetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/CreatePLCinfodetail.cs"
new file mode 100644
index 0000000..a99d2d1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/CreatePLCinfodetail.cs"
@@ -0,0 +1,257 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WCS.JobsPart.Common
+{
+    public class Createplcinfodetail
+    {
+        FreeDB FreeDB = new FreeDB();
+        public void PLCinfodetail()
+        {
+            try
+            {
+                //for (int i = 1; i <= 3; i++)
+                //{
+                int i = 7;
+                string name = "3鍗曞厓閾炬潯鏈�";
+                dt_plcinfodetail plcinfodetail = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 0.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "int16",
+                    plcdetail_name = "R_oi_on",
+                    plcdetail_number = name,
+                    plcdetail_remark = "PLC->1, PMS->0 after setting i_ variables"
+                };
+                FreeDB.Add(plcinfodetail);
+                dt_plcinfodetail plcinfodetail1 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 2.0 + (i - 1) * 330 + "",
+                    plcdetail_len = 20,
+                    plcdetail_valtype = "string",
+                    plcdetail_name = "R_o_wp_id",
+                    plcdetail_number = name,
+                    plcdetail_remark = "杞﹁疆SN"
+                };
+                FreeDB.Add(plcinfodetail1);
+                dt_plcinfodetail plcinfodetail2 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 22.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "datetime",
+                    plcdetail_name = "R_o_mach_start_time",
+                    plcdetail_number = name,
+                    plcdetail_remark = "寮�濮嬫椂闂�"
+                };
+                FreeDB.Add(plcinfodetail2);
+                dt_plcinfodetail plcinfodetail3 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 38.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "datetime",
+                    plcdetail_name = "R_o_mach_finish_time",
+                    plcdetail_number = name,
+                    plcdetail_remark = "瀹屾垚鏃堕棿"
+                };
+                FreeDB.Add(plcinfodetail3);
+                dt_plcinfodetail plcinfodetail4 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 54.0 + (i - 1) * 330 + "",
+                    plcdetail_len = 20,
+                    plcdetail_valtype = "string",
+                    plcdetail_name = "R_o_operator",
+                    plcdetail_number = name,
+                    plcdetail_remark = "鎿嶄綔浜�"
+                };
+                FreeDB.Add(plcinfodetail4);
+                dt_plcinfodetail plcinfodetail5 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 74.0 + (i - 1) * 330 + "",
+                    plcdetail_len = 20,
+                    plcdetail_valtype = "string",
+                    plcdetail_name = "R_o_shift",
+                    plcdetail_number = name,
+                    plcdetail_remark = "鍘诲悜"
+                };
+                FreeDB.Add(plcinfodetail5);
+                dt_plcinfodetail plcinfodetail6 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 94.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "int16",
+                    plcdetail_name = "R_o_wp_status",
+                    plcdetail_number = name,
+                    plcdetail_remark = "璐ㄦ鐘舵�� 0:鏈畾涔�,1:OK,2:NG"
+                };
+                FreeDB.Add(plcinfodetail6);
+                dt_plcinfodetail plcinfodetail7 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 96.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "int16",
+                    plcdetail_name = "R_o_result",
+                    plcdetail_number = name,
+                    plcdetail_remark = "缁撴灉"
+                };
+                FreeDB.Add(plcinfodetail7);
+                dt_plcinfodetail plcinfodetail8 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 98.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "int16",
+                    plcdetail_name = "R_o_error_code",
+                    plcdetail_number = name,
+                    plcdetail_remark = "閿欒浠g爜"
+                };
+                FreeDB.Add(plcinfodetail8);
+                dt_plcinfodetail plcinfodetail9 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 100.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "int16",
+                    plcdetail_name = "R_o_substation",
+                    plcdetail_number = name,
+                    plcdetail_remark = " "
+                };
+                FreeDB.Add(plcinfodetail9);
+                dt_plcinfodetail plcinfodetail10 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 102.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "string",
+                    plcdetail_len = 55,
+                    plcdetail_name = "R_o_value_result_real_1",
+                    plcdetail_number = name,
+                    plcdetail_remark = "缁撴灉1"
+                };
+                FreeDB.Add(plcinfodetail10);
+                dt_plcinfodetail plcinfodetail11 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 157.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "string",
+                    plcdetail_len = 55,
+                    plcdetail_name = "R_o_value_result_real_2",
+                    plcdetail_number = name,
+                    plcdetail_remark = "缁撴灉2"
+                };
+                FreeDB.Add(plcinfodetail11);
+                dt_plcinfodetail plcinfodetail12 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 212.0 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "string",
+                    plcdetail_len = 55,
+                    plcdetail_name = "R_o_value_result_real_3",
+                    plcdetail_number = name,
+                    plcdetail_remark = "缁撴灉3"
+                };
+                FreeDB.Add(plcinfodetail12);
+                dt_plcinfodetail plcinfodetail13 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 267 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "string",
+                    plcdetail_len = 55,
+                    plcdetail_name = "R_o_value_result_real_4",
+                    plcdetail_number = name,
+                    plcdetail_remark = "缁撴灉4"
+                };
+                FreeDB.Add(plcinfodetail13);
+                dt_plcinfodetail plcinfodetail14 = new dt_plcinfodetail()
+                {
+                    plcdetail_id = Guid.NewGuid(),
+                    plcdetail_iotype = "Truss",
+                    plcdetail_db = "DB611",
+                    plcdetail_value = 322.1 + (i - 1) * 330 + "",
+                    plcdetail_valtype = "boolean",
+                    plcdetail_name = "R_o_value_result_bool",
+                    plcdetail_number = name,
+                    plcdetail_remark = " "
+                };
+                FreeDB.Add(plcinfodetail14);
+                //dt_plcinfodetail plcinfodetail15 = new dt_plcinfodetail()
+                //{
+                //    plcdetail_id = Guid.NewGuid(),
+                //    plcdetail_iotype = "Truss",
+                //    plcdetail_db = "DB611",
+                //    plcdetail_value = 4.0 + (i - 1) * 330 + "",
+                //    plcdetail_valtype = "string",
+                //    plcdetail_len = 18,
+                //    plcdetail_name = "fault_channel",
+                //    plcdetail_number = name,
+                //    plcdetail_remark = "閿欒娑堟伅棰戦亾"
+                //};
+                //FreeDB.Add(plcinfodetail15);
+                //dt_plcinfodetail plcinfodetail16 = new dt_plcinfodetail()
+                //{
+                //    plcdetail_id = Guid.NewGuid(),
+                //    plcdetail_iotype = "Truss",
+                //    plcdetail_db = "DB611",
+                //    plcdetail_value = 22.0 + (i - 1) * 330 + "",
+                //    plcdetail_valtype = "string",
+                //    plcdetail_len = 14,
+                //    plcdetail_name = "fault_axes_drives",
+                //    plcdetail_number = name,
+                //    plcdetail_remark = "閿欒娑堟伅axes(杞�)椹卞姩鍣�"
+                //};
+                //FreeDB.Add(plcinfodetail16);
+                //dt_plcinfodetail plcinfodetail17 = new dt_plcinfodetail()
+                //{
+                //    plcdetail_id = Guid.NewGuid(),
+                //    plcdetail_iotype = "Truss",
+                //    plcdetail_db = "DB611",
+                //    plcdetail_value = 36.0 + (i - 1) * 330 + "",
+                //    plcdetail_valtype = "string",
+                //    plcdetail_len = 16,
+                //    plcdetail_name = "fault_user_0_to1",
+                //    plcdetail_number = name,
+                //    plcdetail_remark = "閿欒娑堟伅鐢ㄦ埛鍖哄煙0...1"
+                //};
+                //FreeDB.Add(plcinfodetail17);
+                //}
+            }
+            catch (Exception ex)
+            {
+
+                throw;
+            }
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/LocationCreation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/LocationCreation.cs"
index 103a191..2ed04cb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/LocationCreation.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/LocationCreation.cs"
@@ -11,6 +11,9 @@
     public class LocationCreation
     {
         FreeDB freeDB = new FreeDB();
+        /// <summary>
+        /// 璐т綅鐢熸垚
+        /// </summary>
         public void HCJCreation()
         {
             try
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_dataRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_dataService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_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/PCS/WCS_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/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs"
new file mode 100644
index 0000000..7359fba
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs"
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WCS
+{
+    public partial class ToMesServer
+    {
+        /// <summary>
+        /// 娣诲姞宸ュ崟淇℃伅
+        /// </summary>
+        /// <param name="requestTemp"></param>
+        /// <returns></returns>
+        public static WebResponseContent AddWorkinfo(dt_Workinfo requestTemp)
+        {
+            WebResponseContent content = new WebResponseContent();
+            return content;
+        }
+        /// <summary>
+        /// 娣诲姞宸ュ崟璇︽儏
+        /// </summary>
+        /// <param name="requestTemp"></param>
+        /// <returns></returns>
+        public static WebResponseContent AddActualProduction(dt_ActualProduction requestTemp)
+        {
+            WebResponseContent content = new WebResponseContent();
+            return content;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToWMS/ToWmsServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToWMS/ToWmsServer.cs"
new file mode 100644
index 0000000..d5452ea
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToWMS/ToWmsServer.cs"
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WCS
+{
+    public partial class ToWmsServer
+    {
+        /// <summary>
+        /// 鍚慦MS鐢宠娣诲姞AGV浠诲姟
+        /// </summary>
+        /// <param name="requestTemp"></param>
+        /// <returns></returns>
+        public static WebResponseContent AddTask(string requestTemp)
+        {
+            WebResponseContent content = new WebResponseContent();
+            return content;
+        }
+    }
+}
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"
new file mode 100644
index 0000000..34bdaa6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToMes/ToMESController.cs"
@@ -0,0 +1,33 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_WCS;
+
+namespace WIDESEA_WebApi.Controllers.ToMes
+{
+    [Route("api/ToMes")]
+    [ApiController]
+    public class ToMESController : ControllerBase
+    {
+        /// <summary>
+        /// 娣诲姞宸ュ崟淇℃伅
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddWorkinfo")]
+        public WebResponseContent AddWorkinfo([FromBody] dt_Workinfo request)
+        {
+            return ToMesServer.AddWorkinfo(request);
+        }
+        /// <summary>
+        /// 娣诲姞宸ュ崟璇︽儏
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddActualProduction")]
+        public WebResponseContent AddActualProduction([FromBody] dt_ActualProduction request)
+        {
+            return ToMesServer.AddActualProduction(request);
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToWMS/ToWMSController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToWMS/ToWMSController.cs"
new file mode 100644
index 0000000..38dd7a0
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ToWMS/ToWMSController.cs"
@@ -0,0 +1,22 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WebApi.Controllers.ToWMS
+{
+    [Route("api/ToWMS")]
+    [ApiController]
+    public class ToWMSController : ControllerBase
+    {
+        /// <summary>
+        /// 娣诲姞AGV浠诲姟
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddWorkinfo")]
+        public WebResponseContent AddTask([FromBody] dt_Workinfo request)
+        {
+            return null;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_geometry_dataController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_geometry_dataController.cs"
new file mode 100644
index 0000000..c804835
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/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_WCS.IServices;
+
+namespace WIDESEA_WCS.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/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_geometry_dataController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_geometry_dataController.cs"
new file mode 100644
index 0000000..b0d0faa
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/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_WCS.IServices;
+namespace WIDESEA_WCS.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_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 9fd079b..6ef59f3 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"
@@ -42,6 +42,69 @@
         //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
         // this.boxOptions.labelWidth = 150;
         this.buttons.splice(1, 0, {
+          name: "鍙栨秷绂佺敤",
+          icon: 'md-refresh',
+          type: 'primary',
+          onClick: function () {
+              let rows = this.$refs.table.getSelected();
+              if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佸彇娑堢鐢ㄧ殑鏁版嵁");
+
+              this.$confirm('纭瑕佸彇娑堢鐢ㄥ悧?', '璀﹀憡', {
+                  confirmButtonText: '纭畾',
+                  cancelButtonText: '鍙栨秷',
+                  type: 'warning',
+                  center: true
+              }).then(() => {
+                  let data = [];
+                  let parm = {
+                      "data": data,
+                      "type": "1"
+                  }
+                  rows.forEach(t => data.push(t.id))
+                  this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "鍙栨秷绂佺敤涓�...").then(x => {
+                      if (x.status) {
+                          this.$Message.success("鍙栨秷绂佺敤鎴愬姛!");
+                          this.refresh();
+                      } else {
+                          this.$Message.error(x.message);
+                      }
+                  })
+              });
+          }
+      })
+
+      this.buttons.splice(1, 0, {
+          name: "绂佺敤",
+          icon: 'md-refresh',
+          type: 'danger',
+          onClick: function () {
+              let rows = this.$refs.table.getSelected();
+              if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佺鐢ㄧ殑鏁版嵁");
+
+              this.$confirm('纭瑕佺鐢ㄥ悧?', '璀﹀憡', {
+                  confirmButtonText: '纭畾',
+                  cancelButtonText: '鍙栨秷',
+                  type: 'warning',
+                  center: true
+              }).then(() => {
+                  let data = [];
+                  let parm = {
+                      "data": data,
+                      "type": "0"
+                  }
+                  rows.forEach(t => data.push(t.id))
+                  this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "閿佸畾涓�...").then(x => {
+                      if (x.status) {
+                          this.$Message.success("绂佺敤鎴愬姛锛�");
+                          this.refresh();
+                      } else {
+                          this.$Message.error(x.message);
+                      }
+                  })
+              });
+          }
+      })
+        this.buttons.splice(1, 0, {
           name: "绉诲簱",
           icon: 'el-icon-document',
           type: 'danger',
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs"
index f232c6f..b5bf24c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs"
@@ -10,30 +10,30 @@
         /// <summary>
         /// 閫佹弧鏂欐灦
         /// </summary>
-        SendFull = 1,
+        //SendFull = 1,
         /// <summary>
         /// 鍙栫┖鏂欐灦
         /// </summary>
-        TakeEmpty = 2,
+        //TakeEmpty = 2,
         /// <summary>
-        /// 缁勭洏鍏ュ簱
+        /// 鍏ュ簱
         /// </summary>
-        [Description("缁勭洏鍏ュ簱")]
-        TaskType_Inbound = 3,
+        [Description("鍏ュ簱")]
+        TaskType_Inbound = 1,
         /// <summary>
-        /// 鎼繍
+        /// 鍑哄簱
         /// </summary>
-        [Description("鎼繍")]
-        TaskType_Outbound = 4,
+        [Description("鍑哄簱")]
+        TaskType_Outbound = 2,
         /// <summary>
-        /// 璋冩嫧鍏ュ簱
+        /// 澶栧崗鍏ュ簱
         /// </summary>
-        [Description("璋冩嫧鍏ュ簱")]
-        TaskType_AllotInbound = 5,
+        [Description("澶栧崗鍏ュ簱")]
+        TaskType_OutsourceInbound = 3,
         /// <summary>
-        /// 璋冩嫧鍑哄簱
+        /// 澶栧崗鍑哄簱
         /// </summary>
-        [Description("璋冩嫧鍑哄簱")]
-        TaskType_AllotOutbound = 6,
+        [Description("澶栧崗鍑哄簱")]
+        TaskType_OutsourceOutbound = 4,
     }
 }
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 5e05756..04c7c5f 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"
@@ -28,5 +28,6 @@
         /// 浠诲姟绛夌骇
         /// </summary>
         public int? Priority { get; set; }
+        public int? agv_qty { get; set; }
     }
 }
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/QueryData.cs"
new file mode 100644
index 0000000..b214806
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/QueryData.cs"
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WMS
+{
+    public class QueryData
+    {
+        static FreeDB freeDB = new FreeDB();
+        /// <summary>
+        /// 鏌ヨ鐗╂枡淇℃伅
+        /// </summary>
+        /// <param name="type"></param>
+        /// <returns></returns>
+        public static dt_materielinfo QueryMateriel(string type)
+        {
+            var materielinfo = freeDB.Select<dt_materielinfo>().Where(x => x.materiel_id == type).First();
+            return materielinfo;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Request.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Request.cs"
new file mode 100644
index 0000000..766e7ca
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/Request.cs"
@@ -0,0 +1,46 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_WMS
+{
+    public class Request
+    {
+        /// <summary>
+        /// post璇锋眰
+        /// </summary>
+        /// <param name="postData">鍙傛暟</param>
+        /// <param name="address">璺緞</param>
+        /// <returns></returns>
+        public static string RequestData(string postData, string url = "")
+        {
+            string reponse = string.Empty;
+            try
+            {
+                //string tmp = "";
+                //if (null != postData)
+                //    tmp = JsonConvert.SerializeObject(postData);
+                byte[] param = Encoding.UTF8.GetBytes(postData);
+                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+                request.Method = "POST";
+                request.ContentType = "application/json";
+                request.GetRequestStream().Write(param, 0, param.Length);
+                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
+                {
+                    Stream stream = response.GetResponseStream();
+                    StreamReader streamReader = new StreamReader(stream);
+                    string webResponse = streamReader.ReadToEnd();
+                    reponse = webResponse;
+                }
+            }
+            catch (Exception ex)
+            {
+                reponse = ex.Message;
+            }
+            return reponse;
+        }
+    }
+}
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/Task.cs"
index 4233123..9ebde49 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/Task.cs"
@@ -1,11 +1,13 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Comm;
 using WIDESEA_Common;
 using WIDESEA_Core.EFDbContext;
+using WIDESEA_Core.FreeDB;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_WMS.IRepositories;
 using WIDESEA_WMS.Repositories;
@@ -14,6 +16,7 @@
 {
     public class Task
     {
+        static FreeDB freeDB = new FreeDB();
         /// <summary>
         /// 娣诲姞鍘嗗彶浠诲姟
         /// </summary>
@@ -54,5 +57,54 @@
             htyRepository.Add(agvtask_Hty, true);
             repository.Delete(task, true);
         }
+        /// <summary>
+        /// 搴撳瓨澶勭悊
+        /// </summary>
+        /// <param name="task"></param>
+        public static void Updateinventory(dt_agvtask task)
+        {
+            string[] bindSNs = task.bindSN.Split(",");
+            if (bindSNs.Length > 0)
+            {
+                var Materiel = QueryData.QueryMateriel(task.agv_materielid);
+                List<dt_inventory> inventorys = new List<dt_inventory>();
+                foreach (string bindSN in bindSNs)
+                {
+                    dt_inventory inventory = new dt_inventory()
+                    {
+                        SN = bindSN,//寰呭畬鍠�
+                    };
+                    inventorys.Add(inventory);
+                }
+                if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString())
+                    freeDB.AddRange(inventorys);
+                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString())
+                    freeDB.Remove(inventorys);
+            }
+        }
+
+        /// <summary>
+        /// 鑷姩鏇存柊缂撳瓨鏋剁姸鎬�
+        /// </summary>
+        /// <param name="task"></param>
+        public static void AutoUpdateHCJState(dt_agvtask task)
+        {
+            VOLContext context = new VOLContext();
+            Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
+            var station1 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_fromaddress);
+            var station2 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_toaddress);
+
+            station2.quantity = station1.quantity;
+            station2.bindSN = station1.bindSN;
+            station2.location_state = LocationStateEnum.Stroge.ToString();
+            station2.tray_status = station1.tray_status;
+            stationinfoRepository.Update(station2, true);
+
+            station1.quantity = 0;
+            station1.bindSN = string.Empty;
+            station1.location_state = LocationStateEnum.Empty.ToString();
+            station1.tray_status = string.Empty;
+            stationinfoRepository.Update(station1, true);
+        }
     }
 }
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 a090f04..80e2015 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"
@@ -47,30 +47,34 @@
                 if (task.agv_taskstate == StateName)
                 {
                     respone.success = 2;
-                    respone.Message = tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State;
-                    return respone;
+                    throw new Exception(tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State);
                 }
-                if (tasteInfo.TASK_State == 1)
+                if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing)
                     task.agv_executingBeginTime = DateTime.Now;
-                if (tasteInfo.TASK_State == 2)
+                else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete)
                     task.agv_executingEndTime = DateTime.Now;
-                if (tasteInfo.TASK_State == 3)
+                else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing1)
                     task.agv_completeBeginTime = DateTime.Now;
                 task.agv_taskstate = StateName;
                 var count = repository.Update(task, true);
                 if (count < 1)
                     throw new Exception("浠诲姟鐘舵�佹洿鏂板け璐ワ紒浠诲姟ID锛�" + tasteInfo.TASK_NO + "锛涗换鍔$姸鎬侊細" + tasteInfo.TASK_State);
-                if (tasteInfo.TASK_State == 4)
+                if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete1)
+                {
                     Task.AddHtyTask(task);
-
-
+                    Task.Updateinventory(task);
+                    Task.AutoUpdateHCJState(task);
+                }
             }
             catch (Exception ex)
             {
                 respone.success = 3;
                 respone.Message = ex.Message;
             }
-            WriteWMSLog.LogAdd(tasteInfo.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), "AGV鍙嶉浠诲姟鐘舵��", "UpdateTaskState", respone.Message);
+            finally
+            {
+                WriteWMSLog.LogAdd(tasteInfo.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), "AGV鍙嶉浠诲姟鐘舵��", "UpdateTaskState", respone.Message);
+            }
             return respone;
         }
 
@@ -87,6 +91,7 @@
             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;
@@ -94,8 +99,9 @@
                 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 = RequestData(postJson);
+                report = Request.RequestData(postJson, url);
                 respone = JsonConvert.DeserializeObject<AGVRespone>(report);
                 if (respone.success != 1)
                     throw new Exception(respone.Message);
@@ -108,40 +114,6 @@
                 respone.Message = ex.Message;
             }
             WriteWMSLog.LogAdd(requestTask.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Message);
-        }
-
-        /// <summary>
-        /// post璇锋眰
-        /// </summary>
-        /// <param name="postData">鍙傛暟</param>
-        /// <param name="address">璺緞</param>
-        /// <returns></returns>
-        public static string RequestData(string postData, string address = "")
-        {
-            string reponse = string.Empty;
-            try
-            {
-                //string tmp = "";
-                //if (null != postData)
-                //    tmp = JsonConvert.SerializeObject(postData);
-                byte[] param = Encoding.UTF8.GetBytes(postData);
-                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
-                request.Method = "POST";
-                request.ContentType = "application/json";
-                request.GetRequestStream().Write(param, 0, param.Length);
-                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
-                {
-                    Stream stream = response.GetResponseStream();
-                    StreamReader streamReader = new StreamReader(stream);
-                    string webResponse = streamReader.ReadToEnd();
-                    reponse = webResponse;
-                }
-            }
-            catch (Exception ex)
-            {
-                reponse = ex.Message;
-            }
-            return reponse;
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/AddToFloat3.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/AddToFloat3.cs"
index 98f323b..f281e92 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/AddToFloat3.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/AddToFloat3.cs"
@@ -49,7 +49,7 @@
                 {
                     station2.quantity = station1.quantity;
                     station2.bindSN = station1.bindSN;
-                    station2.location_state = station1.location_state;
+                    station2.location_state = LocationStateEnum.Stroge.ToString();
                     station2.tray_status = station1.tray_status;
                     freeDB.Update(station2);
 
@@ -64,11 +64,11 @@
                     throw new Exception("璧峰鎴栫洰鐨勫湴鍧�锛屽凡瀛樺湪浠诲姟锛�");
                 }
                 content.OK();
-                WriteDBLog.Success($"鎵嬪姩绉诲簱", new { 鏁版嵁 = requestTemp }, "WMS", UserContext.Current.UserTrueName);
+                WriteDBLog.Success($"鎵嬪姩绉诲簱", new { 鏁版嵁 = requestTemp }, "WMS", UserContext.Current.UserName + UserContext.Current.UserTrueName);
             }
             catch (Exception ex)
             {
-                WriteDBLog.Error($"鎵嬪姩绉诲簱", new { 鏁版嵁 = requestTemp, 寮傚父淇℃伅 = ex.Message }, "WMS", UserContext.Current.UserTrueName);
+                WriteDBLog.Error($"鎵嬪姩绉诲簱", new { 鏁版嵁 = requestTemp, 寮傚父淇℃伅 = ex.Message }, "WMS", UserContext.Current.UserName + UserContext.Current.UserTrueName);
                 content.Error(ex.Message);
             }
             return content;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/UpdateStation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/UpdateStation.cs"
new file mode 100644
index 0000000..1d7f49e
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/UpdateStation.cs"
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_Entity.DomainModels.Mes;
+
+namespace WIDESEA_WMS
+{
+    public partial class ToMesServer
+    {
+        /// <summary>
+        /// 鏇存柊璐т綅鐘舵��
+        /// </summary>
+        /// <param name="requestTemp"></param>
+        /// <returns></returns>
+        public WebResponseContent UpdateStation(dt_agvtask requestTemp)
+        {
+            WebResponseContent content = new WebResponseContent();
+
+            return content;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/AddTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/AddTask.cs"
new file mode 100644
index 0000000..d771ab6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/AddTask.cs"
@@ -0,0 +1,46 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http.Json;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WMS.ToPCS
+{
+    public partial class ToPCSServer
+    {
+        public  WebResponseContent AddTask(string json)
+        {
+            WebResponseContent content = new WebResponseContent();
+            TaskData taskData = new TaskData();
+            try
+            {
+                if (string.IsNullOrEmpty(json) || json == "null")
+                    throw new Exception("鏈幏鍙栧埌璇锋眰鍙傛暟鏁版嵁");
+                taskData = JsonConvert.DeserializeObject<TaskData>(json);
+                var haveInTask = freeDB.Select<dt_agvtask>()
+                   .Where(t => t.agv_fromaddress == taskData.fromaddress
+                   || t.agv_fromaddress == taskData.toaddress
+                   || t.agv_toaddress == taskData.fromaddress
+                   || t.agv_toaddress == taskData.toaddress
+                   ).Any();
+                if (haveInTask)
+                    throw new Exception("褰撳墠璧风偣鎴栫粓鐐瑰凡瀛樺湪浠诲姟锛�");
+
+                dt_agvtask taskinfo = new dt_agvtask()
+                {
+
+                };
+            }
+            catch (Exception ex)
+            {
+                content.Message = ex.Message;
+            }
+            return content;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/TaskData.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/TaskData.cs"
new file mode 100644
index 0000000..26345ca
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/TaskData.cs"
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_WMS.ToPCS
+{
+    public class TaskData
+    {
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public string TaskNum {  get; set; }
+        /// <summary>
+        /// 璧风偣鍦板潃
+        /// </summary>
+        public string fromaddress { get; set; }
+        /// <summary>
+        /// 缁堢偣鍦板潃
+        /// </summary>
+        public  string toaddress {  get; set; }
+        /// <summary>
+        /// 鐗╂枡绫诲瀷
+        /// </summary>
+        public string materielid {  get; set; }
+        /// <summary>
+        /// 杞﹁疆SN鍙�
+        /// </summary>
+        public string WheelSN {  get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/ToPCSServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/ToPCSServer.cs"
new file mode 100644
index 0000000..bf92377
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToPCS/ToPCSServer.cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.FreeDB;
+using WIDESEA_Entity.DomainModels;
+
+namespace WIDESEA_WMS.ToPCS
+{
+    public partial class ToPCSServer
+    {
+        FreeDB freeDB = new FreeDB();
+        public ToPCSServer()
+        {
+            
+        }
+    }
+}
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"
new file mode 100644
index 0000000..4e1c021
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
@@ -0,0 +1,17 @@
+锘縰sing Pomelo.AspNetCore.TimedJob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WIDESEA_WebApi.Controllers
+{
+    public class JobTask : Job
+    {
+        [Invoke(Begin = "2024-01-19 00:00", Interval = 1000*5, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
+        public void TaskTime()
+        {
+            //Console.WriteLine(DateTime.Now.ToString());
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToPCS/ToPCSController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToPCS/ToPCSController.cs"
new file mode 100644
index 0000000..0534079
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToPCS/ToPCSController.cs"
@@ -0,0 +1,27 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels.Mes;
+using WIDESEA_WMS;
+using WIDESEA_WMS.ToPCS;
+
+namespace WIDESEA_WebApi.Controllers.ToPCS
+{
+    [Route("api/ToPCS")]
+    [ApiController]
+    public class ToPCSController : ControllerBase
+    {
+        ToPCSServer Server=new ToPCSServer();
+        /// <summary>
+        /// 娣诲姞AGV浠诲姟
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddTask"), Authorize, AllowAnonymous]
+        public WebResponseContent AddTask([FromBody] object saveModel)
+        {
+            return Server.AddTask(JsonConvert.SerializeObject(saveModel));
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToMes/ToWMSController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs"
similarity index 82%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToMes/ToWMSController.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs"
index 08abc08..ed5be07 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToMes/ToWMSController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs"
@@ -4,14 +4,14 @@
 using WIDESEA_Entity.DomainModels.Mes;
 using WIDESEA_WMS;
 
-namespace WIDESEA_WCSServer.Controllers.ToMes
+namespace WIDESEA_WCSServer.Controllers.ToWms
 {
-    [Route("api/ToMes")]
+    [Route("api/ToWms")]
     [ApiController]
     public class ToWMSController : ControllerBase
     {
         /// <summary>
-        /// 3妤艰澶囧彨鏂欙紙鎵嬪姩锛屼复鏃讹級
+        /// 绉诲簱锛堟墜鍔紝涓存椂锛�
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Startup.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Startup.cs"
index 894bcf0..c998f9b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Startup.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Startup.cs"
@@ -184,6 +184,7 @@
             {
                 options.MaxRequestBodySize = 1024 * 1024 * 100;//100M
             });
+            services.AddTimedJob();//娣诲姞瀹氭椂鍣�
         }
 
         public void ConfigureContainer(ContainerBuilder builder)
@@ -251,6 +252,7 @@
             {
                 endpoints.MapControllers();
             });
+            app.UseTimedJob();//娣诲姞瀹氭椂鍣�
         }
     }
 
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 53bb872..e7aeb61 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"
@@ -25,6 +25,7 @@
     <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" />
+    <PackageReference Include="TimedJob" Version="2.0.0" />
   </ItemGroup>
 
   <ItemGroup>
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/DB/dt_geometry_data\050\350\275\246\350\275\256\346\225\260\346\215\256\051.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/DB/dt_geometry_data\050\350\275\246\350\275\256\346\225\260\346\215\256\051.xlsx"
new file mode 100644
index 0000000..966f062
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/DB/dt_geometry_data\050\350\275\246\350\275\256\346\225\260\346\215\256\051.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/DB/dt_geometry_data.sql" "b/\351\241\271\347\233\256\350\265\204\346\226\231/DB/dt_geometry_data.sql"
new file mode 100644
index 0000000..e4e17d1
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/DB/dt_geometry_data.sql"
@@ -0,0 +1,76 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : DESKTOP-SCT31AM
+ Source Server Type    : SQL Server
+ Source Server Version : 13001601
+ Source Catalog        : WIDESEA_DB
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 13001601
+ File Encoding         : 65001
+
+ Date: 25/01/2024 11:03:06
+*/
+
+
+-- ----------------------------
+-- Table structure for dt_geometry_data
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[dt_geometry_data]') AND type IN ('U'))
+	DROP TABLE [dbo].[dt_geometry_data]
+GO
+
+CREATE TABLE [dbo].[dt_geometry_data] (
+  [TypeId] int  IDENTITY(1,1) NOT NULL,
+  [Description] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [a] float(53)  NOT NULL,
+  [b] float(53)  NOT NULL,
+  [c] float(53)  NOT NULL,
+  [d] float(53)  NOT NULL,
+  [e] float(53)  NOT NULL,
+  [f] float(53)  NOT NULL,
+  [g] float(53)  NOT NULL,
+  [h] float(53)  NOT NULL
+)
+GO
+
+ALTER TABLE [dbo].[dt_geometry_data] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of dt_geometry_data
+-- ----------------------------
+SET IDENTITY_INSERT [dbo].[dt_geometry_data] ON
+GO
+
+INSERT INTO [dbo].[dt_geometry_data] ([TypeId], [Description], [a], [b], [c], [d], [e], [f], [g], [h]) VALUES (N'1', N'TSW-003D (915KKD)', N'69', N'12', N'126', N'-28', N'972', N'185', N'27', N'70')
+GO
+
+INSERT INTO [dbo].[dt_geometry_data] ([TypeId], [Description], [a], [b], [c], [d], [e], [f], [g], [h]) VALUES (N'2', N'TSW-051 (840HESA)', N'70', N'12', N'128', N'-30', N'900', N'197', N'27', N'70')
+GO
+
+INSERT INTO [dbo].[dt_geometry_data] ([TypeId], [Description], [a], [b], [c], [d], [e], [f], [g], [h]) VALUES (N'3', N'TSW-005 (840HDSA)', N'70', N'12', N'128', N'-30', N'898', N'185', N'27', N'70')
+GO
+
+SET IDENTITY_INSERT [dbo].[dt_geometry_data] OFF
+GO
+
+
+-- ----------------------------
+-- Auto increment value for dt_geometry_data
+-- ----------------------------
+DBCC CHECKIDENT ('[dbo].[dt_geometry_data]', RESEED, 3)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table dt_geometry_data
+-- ----------------------------
+ALTER TABLE [dbo].[dt_geometry_data] ADD CONSTRAINT [PK__dt_geome__516F03B53F710A80] PRIMARY KEY CLUSTERED ([TypeId])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\344\274\232\350\256\256/\346\234\272\345\212\240\345\267\245\346\243\200\346\265\213\344\270\212\344\270\213\346\226\231\350\207\252\345\212\250\345\214\226\351\241\271\347\233\256WMS\344\270\216MES\344\277\241\346\201\257\344\272\244\344\272\222\343\200\201\347\275\221\347\273\234\345\270\203\345\261\200\344\272\213\345\256\243\350\256\250\350\256\272\344\274\232\350\256\256\347\272\252\350\246\201.png" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\344\274\232\350\256\256/\346\234\272\345\212\240\345\267\245\346\243\200\346\265\213\344\270\212\344\270\213\346\226\231\350\207\252\345\212\250\345\214\226\351\241\271\347\233\256WMS\344\270\216MES\344\277\241\346\201\257\344\272\244\344\272\222\343\200\201\347\275\221\347\273\234\345\270\203\345\261\200\344\272\213\345\256\243\350\256\250\350\256\272\344\274\232\350\256\256\347\272\252\350\246\201.png"
new file mode 100644
index 0000000..4f9f01a
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\344\274\232\350\256\256/\346\234\272\345\212\240\345\267\245\346\243\200\346\265\213\344\270\212\344\270\213\346\226\231\350\207\252\345\212\250\345\214\226\351\241\271\347\233\256WMS\344\270\216MES\344\277\241\346\201\257\344\272\244\344\272\222\343\200\201\347\275\221\347\273\234\345\270\203\345\261\200\344\272\213\345\256\243\350\256\250\350\256\272\344\274\232\350\256\256\347\272\252\350\246\201.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\344\274\232\350\256\256/\350\275\246\350\275\256\345\216\202\344\272\214\347\272\277\346\234\272\345\212\240\345\267\245\344\270\212\344\270\213\346\226\231\350\207\252\345\212\250\345\214\226\351\241\271\347\233\256\344\270\223\351\242\230\344\274\232.png" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\344\274\232\350\256\256/\350\275\246\350\275\256\345\216\202\344\272\214\347\272\277\346\234\272\345\212\240\345\267\245\344\270\212\344\270\213\346\226\231\350\207\252\345\212\250\345\214\226\351\241\271\347\233\256\344\270\223\351\242\230\344\274\232.png"
new file mode 100644
index 0000000..41a1bd1
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\344\274\232\350\256\256/\350\275\246\350\275\256\345\216\202\344\272\214\347\272\277\346\234\272\345\212\240\345\267\245\344\270\212\344\270\213\346\226\231\350\207\252\345\212\250\345\214\226\351\241\271\347\233\256\344\270\223\351\242\230\344\274\232.png"
Binary files differ
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 5f175fa..66329d5 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"
@@ -1,8 +1,10 @@
-搴撳尯1锛�32涓簱浣�,16鍒�;鏈�澶�16涓搧绉嶏紙50浠朵互涓嬶級灏忎紬杞﹁疆
-搴撳尯2锛�1鎺�36涓簱浣�,4鎺掑叡144(144*5浠�),鏈�澶�4鍝佺;閽堝闈炲父瑙勮溅杞�(50-180浠�):涓嶅悓鍨嬪彿鍚岀倝鍙�
+搴撳尯1锛�32涓簱浣�,16鍒�;鏈�澶�16涓搧绉嶏紙50浠朵互涓嬶級灏忎紬杞﹁疆    鍚屽瀷鍙峰悓鐐夊彿涓�鍒�
+搴撳尯2锛�1鎺�36涓簱浣�,4鎺掑叡144(144*5浠�),鏈�澶�4鍝佺;閽堝闈炲父瑙勮溅杞�(50-180浠�):鍚屽瀷鍙峰悓鐐夊彿
 搴撳尯3锛�1鎺�45涓簱浣�,5鎺掑叡225锛�225*5锛夋渶澶�5涓搧绉嶏紱閽堝甯歌(840銆�915):鍚屽瀷鍙�(鍥惧彿鍞竴,鏍规嵁鍥惧彿鍖哄垎鍨嬪彿)/涓嶅悓鐐夊彿    锛侊紒锛佷骇鍝佷唬鐮佸共浠�涔堢敤
 搴撳尯4锛�1鎺�40涓簱浣�,3鎺掑叡120锛�120*5锛夋渶澶�3涓搧绉嶏紱閽堝1100mm-1300mm杞﹁疆/涔熻兘瀛樻斁1100mm浠ヤ笅杞﹁疆:涓嶅悓鍨嬪彿鍚岀倝鍙�
+72  11*6
 
+鏍规嵁璁㈠崟鏁版潵杩樻槸鏍规嵁鍨嬪彿鏉�
 
 閫昏緫锛氬綋搴撳尯1婊★紱50浠ヤ笅杞﹁疆鐩存帴鍑哄簱
 搴撳尯2婊″簱鍖�3搴撲綅澶氭斁搴撳尯3鍚﹀垯鏀惧鍗忓簱
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\216\260\345\234\272\345\233\276\347\211\207/0c01d30d1a8c2e38df4f76d1460b9e0.jpg" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\216\260\345\234\272\345\233\276\347\211\207/0c01d30d1a8c2e38df4f76d1460b9e0.jpg"
deleted file mode 100644
index 8216a58..0000000
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\216\260\345\234\272\345\233\276\347\211\207/0c01d30d1a8c2e38df4f76d1460b9e0.jpg"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\347\263\273\347\273\237\346\226\207\344\273\266/\345\244\252\345\216\237\351\207\215\345\267\245WMS\347\263\273\347\273\237\350\257\264\346\230\216V1.0.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\347\263\273\347\273\237\346\226\207\344\273\266/\345\244\252\345\216\237\351\207\215\345\267\245WMS\347\263\273\347\273\237\350\257\264\346\230\216V1.0.docx"
new file mode 100644
index 0000000..d01a2af
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\347\263\273\347\273\237\346\226\207\344\273\266/\345\244\252\345\216\237\351\207\215\345\267\245WMS\347\263\273\347\273\237\350\257\264\346\230\216V1.0.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/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"
new file mode 100644
index 0000000..03e8f96
--- /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\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"
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"
index cd9b3d4..2d5c8ac 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/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"
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\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"
new file mode 100644
index 0000000..575ea7e
--- /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\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"
Binary files differ

--
Gitblit v1.9.3