From f0e2d9d2c7c41b311217bdb2c4d114ff53f6a146 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 16 四月 2024 07:47:17 +0800
Subject: [PATCH] 优化空托逻辑

---
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs                |   28 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs                              |    3 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/新文件夹/GetLocation.cs                         |   61 +++
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs                                   |    2 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs                                            |   66 ++-
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs                               |   51 +-
 代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs              |    1 
 代码管理/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue                         |    5 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs                              |   14 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs            |  163 ++++++++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs            |    1 
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs                    |   12 
 代码管理/PCS/WCS_Client/config/buttons.js                                                       |    9 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs                    |   12 
 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs                               |  108 +++--
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs                    |  242 ++++++------
 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js                          |   31 +
 代码管理/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs                                        |    6 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs                                |    5 
 代码管理/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue                             |   21 
 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs                    |  264 +++++++------
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_headController.cs |    6 
 代码管理/WMS/WMS_Client/src/api/http.js                                                         |    2 
 23 files changed, 745 insertions(+), 368 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/config/buttons.js"
index 1062dd4..f6a4529 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/config/buttons.js"
@@ -89,6 +89,15 @@
     onClick: function () {
         // this.FinishWorkOrder();
     }
+}, {
+    name: "鍑哄簱澶栧崗",
+    icon: 'el-icon-check',
+    type: 'danger',
+    plain: true,
+    value: 'OutsorcingBtn',
+    onClick: function () {
+        // this.FinishWorkOrder();
+    }
 }
     // , {
     //     name: "鏁版嵁缁撴瀯",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js"
index b6fa96e..2609539 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js"
@@ -40,6 +40,37 @@
         //     x.icon= 'el-icon-check'
         //   }
         // });
+        let OutsorcingBtn = this.buttons.find(r => r.name == "鍑哄簱澶栧崗");
+        if(null!=OutsorcingBtn){
+          OutsorcingBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨宸ュ崟!");
+            let addkeys = rows.map(x => {
+                return x[this.table.key];
+            });
+            if (!addkeys || addkeys.Length == 0) return this.$error("鏈幏鍙栧埌宸ュ崟!");
+            this.$confirm("鏄惁纭瑕佸嚭搴撳鍗忥紵","鎻愮ず",{
+                        // iconClass:"el-icon-success",//el-icon-remove鑷畾涔夊浘鏍囨牱寮�
+                        confirmButtonText:"纭",//纭鎸夐挳鏂囧瓧鏇存崲
+                        cancelButtonText:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        // cancelBtn:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        showClose: true,//鏄惁鏄剧ず鍙充笂瑙掑叧闂寜閽�
+                        type: "warning",//鎻愮ず绫诲瀷 success:鎴愬姛/info:淇℃伅/warning:璀﹀憡/error:鎶ラ敊
+            }).then(()=>{
+              let params = {
+                MainData: null,
+                DetailData: null,
+                DelKeys: addkeys
+            }
+            this.http.post("/api/dt_mes_head/OutsorcingWorkOrder", params, "姝e湪澶勭悊宸ュ崟....").then(x => {
+                if (!x.status) return this.$error(x.message);
+                this.$success("澶勭悊宸ュ崟鎴愬姛!");
+                this.refresh();
+            });
+            })
+
+          }
+        }
         let CompleteBtn = this.buttons.find(r => r.name == "瀹屾垚宸ュ崟");
         if(null!=CompleteBtn){
           CompleteBtn.onClick = function (){
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue"
index c410b72..79fcd81 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue"
@@ -31,13 +31,24 @@
             });
             const editFormFields = ref({"skip_op_1":"","skip_op_2":"","skip_op_3":""});
             const editFormOptions = ref([
-            [{ "dataKey": "skip_op_Status", "data": [], "title": "瑙嗚妫�娴�1", "required": true, "field": "skip_op_1", "type": "select" }],
-            [{ "dataKey": "skip_op_Status", "data": [], "title": "瑙嗚妫�娴�2", "required": true, "field": "skip_op_2", "type": "select" }],
-            [{ "dataKey": "skip_op_Status", "data": [], "title": "鍠烽槻閿堟恫", "required": true, "field": "skip_op_3", "type": "select" }]
+            [{ "dataKey": "skip_op_Status", "data": [], "title": "瑙嗚妫�娴�1", "required": true, "field": "skip_op_1", "type": "radio" }],
+            [{ "dataKey": "skip_op_Status", "data": [], "title": "瑙嗚妫�娴�2", "required": true, "field": "skip_op_2", "type": "radio" }],
+            [{ "dataKey": "skip_op_Status", "data": [], "title": "鍠烽槻閿堟恫", "required": true, "field": "skip_op_3", "type": "radio" }],
+        //     [{
+        //   title: "鎸囧畾搴撳尯", field: "area",
+        //   data: [
+        //     { key: 9, value: "澶栧崗鍖�" },
+        //     { key: 2, value: "搴撳尯2" },
+        //     { key: 3, value: "搴撳尯3" },
+        //     { key: 4, value: "搴撳尯4" },
+        //     //{ key: 3, value: "涓嶅厑璁�" },
+        //   ]
+        //   , type: "radio"//type: "select"
+        // }],
             ]);
             const searchFormFields = ref({"jobID":"","processCode":"","CreateTime":""});
             const searchFormOptions = ref([
-                [{"title":"宸ュ崟缂栧彿","field":"jobID","type":"like"},{"dataKey":"WorkTypes","data":[],"title":"宸ュ崟绫诲瀷","field":"processCode","type":"select"}],
+                [{"title":"宸ヤ綔浠ゅ彿","field":"workOrder","type":"like"},{"title":"宸ュ崟缂栧彿","field":"jobID","type":"like"},{"dataKey":"WorkTypes","data":[],"title":"宸ュ崟绫诲瀷","field":"processCode","type":"select"}],
                 [{"title":"鍥惧彿","field":"drawingNo","type":"like"},{"title":"鍒涘缓鏃堕棿","field":"CreateTime","type":"datetime"}]
             ]);
             const columns = ref([{field:'mes_id',title:'mes_id',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
@@ -55,7 +66,7 @@
                        {field:'skip_op_1',title:'瑙嗚妫�娴�1',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'},
                        {field:'skip_op_2',title:'瑙嗚妫�娴�2',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'},
                        {field:'skip_op_3',title:'鍠烽槻閿堟恫',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'},
-                    //    {field:'area',title:'鍏ュ簱搴撳尯',type:'string',width:110,align:'left'},
+                       {field:'area',title:'鎸囧畾搴撳尯',type:'string',width:110,align:'left'},
                        {field:'typeID',title:'杞瀷浠g爜',type:'string',width:110,align:'left'},
                        {field:'stackNoRange',title:'鎵撳寘鏁伴噺',type:'int',width:110,align:'left'},
                        {field:'maxDiameterDiff',title:'杞緞鍋忓樊',type:'decimal',width:110,align:'left'},
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs"
index 3acc2fa..d0f63e8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs"
@@ -140,8 +140,8 @@
         ///鐐夊彿
         /// </summary>
         [Display(Name = "鐐夊彿")]
-        [MaxLength(50)]
-        [Column(TypeName = "nvarchar(50)")]
+        [MaxLength(255)]
+        [Column(TypeName = "nvarchar(255)")]
         public string heatNumber { get; set; }
 
         /// <summary>
@@ -151,5 +151,13 @@
         [MaxLength(100)]
         [Column(TypeName = "nvarchar(100)")]
         public string tray_type { get; set; }
+
+        /// <summary>
+        ///閽㈠澂鍙�
+        /// </summary>
+        [Display(Name = "閽㈠澂鍙�")]
+        [MaxLength(255)]
+        [Column(TypeName = "nvarchar(255)")]
+        public string billetID { 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/ToMES/VV_Mes_Workinfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs"
index f1dc241..6cbd09d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs"
@@ -13,151 +13,159 @@
 
 namespace WIDESEA_Entity.DomainModels
 {
-    [Entity(TableCnName = "宸ュ崟瑙嗗浘",TableName = "VV_Mes_Workinfo")]
-    public partial class VV_Mes_Workinfo:BaseEntity
+    [Entity(TableCnName = "宸ュ崟瑙嗗浘", TableName = "VV_Mes_Workinfo")]
+    public partial class VV_Mes_Workinfo : BaseEntity
     {
         /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="jobID")]
-       [MaxLength(40)]
-       [Column(TypeName="nvarchar(40)")]
-       [Editable(true)]
-       public string jobID { get; set; }
+        ///
+        /// </summary>
+        [Display(Name = "jobID")]
+        [MaxLength(40)]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string jobID { get; set; }
 
-       /// <summary>
-       ///鐐夊彿
-       /// </summary>
-       [Display(Name ="heatID")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string heatID { get; set; }
+        /// <summary>
+        ///鐐夊彿
+        /// </summary>
+        [Display(Name = "heatID")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string heatID { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="billetID")]
-       [Column(TypeName="int")]
-       [Editable(true)]
-       public int? billetID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "billetID")]
+        [Column(TypeName = "int")]
+        [Editable(true)]
+        public int? billetID { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="SN")]
-       [MaxLength(50)]
-       [Column(TypeName="nvarchar(50)")]
-       [Editable(true)]
-       public string SN { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "SN")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
+        [Editable(true)]
+        public string SN { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="heatBatchID")]
-       [MaxLength(30)]
-       [Column(TypeName="nvarchar(30)")]
-       [Editable(true)]
-       public string heatBatchID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "heatBatchID")]
+        [MaxLength(30)]
+        [Column(TypeName = "nvarchar(30)")]
+        [Editable(true)]
+        public string heatBatchID { get; set; }
 
-       /// <summary>
-       ///宸ヤ綔浠ゅ彿
-       /// </summary>
-       [Display(Name ="workOrder")]
-       [MaxLength(50)]
-       [Column(TypeName="nvarchar(50)")]
-       [Editable(true)]
-       public string workOrder { get; set; }
+        /// <summary>
+        ///宸ヤ綔浠ゅ彿
+        /// </summary>
+        [Display(Name = "workOrder")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
+        [Editable(true)]
+        public string workOrder { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="reqID")]
-       [MaxLength(40)]
-       [Column(TypeName="nvarchar(40)")]
-       [Editable(true)]
-       public string reqID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "reqID")]
+        [MaxLength(40)]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string reqID { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="reqIDLineNo")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string reqIDLineNo { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "reqIDLineNo")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string reqIDLineNo { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="materialCode")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string materialCode { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "materialCode")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string materialCode { get; set; }
 
-       /// <summary>
-       ///鍥惧彿
-       /// </summary>
-       [Display(Name ="drawingNo")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string drawingNo { get; set; }
+        /// <summary>
+        ///鍥惧彿
+        /// </summary>
+        [Display(Name = "drawingNo")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string drawingNo { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="drawingNoVer")]
-       [MaxLength(10)]
-       [Column(TypeName="nvarchar(10)")]
-       [Editable(true)]
-       public string drawingNoVer { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "drawingNoVer")]
+        [MaxLength(10)]
+        [Column(TypeName = "nvarchar(10)")]
+        [Editable(true)]
+        public string drawingNoVer { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="productName")]
-       [MaxLength(40)]
-       [Column(TypeName="nvarchar(40)")]
-       [Editable(true)]
-       public string productName { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "productName")]
+        [MaxLength(40)]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string productName { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="quantity")]
-       [Column(TypeName="int")]
-       [Editable(true)]
-       public int quantity { get; set; }
+        /// <summary>
+        ///搴撳尯
+        /// </summary>
+        [Display(Name = "搴撳尯")]
+        [MaxLength(15)]
+        [Column(TypeName = "nvarchar(15)")]
+        public string area { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="typeID")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string typeID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "quantity")]
+        [Column(TypeName = "int")]
+        [Editable(true)]
+        public int quantity { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Key]
-       [Display(Name ="stackNoRange")]
-       [Column(TypeName="int")]
-       [Editable(true)]
-       [Required(AllowEmptyStrings=false)]
-       public int stackNoRange { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "typeID")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string typeID { get; set; }
 
-       /// <summary>
-       ///宸ュ崟绫诲瀷 (17-鏈哄姞宸� 28-妫�娴嬬嚎 101绉诲簱澶栧崗)
-       /// </summary>
-       [Display(Name ="processCode")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string processCode { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Key]
+        [Display(Name = "stackNoRange")]
+        [Column(TypeName = "int")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public int stackNoRange { get; set; }
+
+        /// <summary>
+        ///宸ュ崟绫诲瀷 (17-鏈哄姞宸� 28-妫�娴嬬嚎 101绉诲簱澶栧崗)
+        /// </summary>
+        [Display(Name = "processCode")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string processCode { get; set; }
 
         /// <summary>
         ///瀹屾垚鏁伴噺
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
index 95d9cba..c21cc86 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs"
@@ -384,6 +384,9 @@
                     {
                         var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList();
 
+                        var NGStation = "X01001003";
+                        if (name == "2鍗曞厓涓嬫枡鍖�") NGStation = "X02001003";
+                        if (name == "3鍗曞厓涓嬫枡鍖�") NGStation = "X03001002";
                         #region MyRegion
                         //var Wheel_Type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//杞﹁疆绫诲瀷
                         //var Wheel_id = client.ReadByOrder<string>("R_Wheel_id", name);//杞﹁疆SN鍙�
@@ -485,6 +488,7 @@
                             }
 
                             station.bindSN = string.IsNullOrEmpty(station.bindSN) ? Wheel_SN : station.bindSN + "," + Wheel_SN;
+                            station.billetID = string.IsNullOrEmpty(station.billetID) ? Mes_Work.billetID.ToString() : station.billetID + "," + Mes_Work.billetID;
                             station.quantity++;
                             if (station.quantity == 1)
                             {
@@ -493,6 +497,10 @@
                                 station.heatNumber = Mes_Work.heatID;
                                 station.tray_status = "StrogeTray";
                             }
+                            //else if (station.stationCode == NGStation)
+                            //{
+                            //    station.heatNumber = string.IsNullOrEmpty(station.heatNumber) ? Mes_Work.heatID : station.heatNumber + "," + Mes_Work.heatID;
+                            //}
 
                             var count = stationinfoRepository.Update(station, true);
                             if (count < 1)
@@ -547,10 +555,9 @@
                         var Request = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Request_Load").First(), client);
                         if (!Request) continue;
 
-                        var Area = client.ReadByOrder<Int16>("W_AreaNr", name);//璇诲彇璐т綅鍙蜂俊鎭�
-                        if (Area != 0) continue;
+                        //var Area = client.ReadByOrder<Int16>("W_AreaNr", name);//璇诲彇璐т綅鍙蜂俊鎭�
+                        //if (Area != 0) continue;
 
-                        var load_zone = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_load_zone").First(), client);
                         #region 璇诲彇妗佹灦淇℃伅
                         var Wheel_Type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//杞﹁疆绫诲瀷
                         var Wheel_id = client.ReadByOrder<string>("R_Wheel_id", name);//杞﹁疆SN鍙�
@@ -589,9 +596,7 @@
 
                         var Stations = stationinfoRepository.Find(x => x.area == PipelineJob.area_code(name)).OrderBy(x => x.lastUpdateTime).ToList();
 
-                        var NGStation = "X01001003";
-                        if (name == "2鍗曞厓涓嬫枡鍖�") NGStation = "X02001003";
-                        if (name == "3鍗曞厓涓嬫枡鍖�") NGStation = "X03001002";
+
 
                         //foreach (var station in Stations)     //浠讳綍涓�涓笅鏂欎綅涓虹┖鎴栫鐢ㄦ椂,閮戒細鍋滄妗佹灦
                         //{
@@ -620,6 +625,8 @@
                         }
 
                         var PartStatus = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok
+
+                        var load_zone = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_load_zone").First(), client);
                         #region 鏃ュ織璁板綍
                         WriteDBLog.Success(name + "鐢宠鏀炬枡", $"璇诲彇妗佹灦淇℃伅锛歕n杞﹁疆SN锛歿Wheel_id}\n杞瀷ID锛歿Wheel_Type}\n杞﹁疆鐘舵�侊細{PartStatus}\n鏄惁杩涘叆涓嬫枡鍖猴細{load_zone}", "PCS");
                         if (load_zone) continue;
@@ -635,7 +642,7 @@
                            && x.location_state == LocationStateEnum.Stroge.ToString()
                            && x.quantity < 5
                            && x.stationType == Work.drawingNo
-                           && x.tray_type == ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray")
+                           //&& x.tray_type == ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray")
                            && x.Number == Work.workOrder
                            && x.heatNumber == Work.heatID)
                            .OrderByDescending(x => x.quantity)
@@ -649,7 +656,7 @@
                            && x.location_state == LocationStateEnum.Stroge.ToString()
                            && x.quantity < 5
                            && x.stationType == Work.drawingNo
-                           && x.tray_type == ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray")
+                           //&& x.tray_type == ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray")
                            && x.Number == Work.workOrder)
                            .OrderByDescending(x => x.quantity)
                            .FirstOrDefault();
@@ -688,8 +695,22 @@
 
                             if (Stationinfo != null)
                             {
+                                #region 鎵樼洏杞﹁疆鍫嗗灈绗洓涓椂涓嬪彂鍙﹀涓�涓倝鍙风殑鍏ュ簱浠诲姟
+                                if (Stationinfo.quantity + 1 >= 4)
+                                {
+                                    var stationinfo = Stations.Where(x => x.enable && x.stationCode != NGStation && x.stationCode != Stationinfo.stationCode && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).FirstOrDefault();
+                                    //foreach (var stationinfo in stationinfos)
+                                    //{
+                                    if (stationinfo != null)
+                                        agvtask(stationinfoRepository, stationinfo, Work, name == "3鍗曞厓涓嬫枡鍖�" ? "TaskType_OutsourceInbound" : "TaskType_Inbound");
+                                    //}
+                                }
+
+                                #endregion
+
                                 #region 鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏
-                                if (Stationinfo.tray_type != ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray"))
+                                //if (Stationinfo.tray_type != ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray"))
+                                if (Stationinfo.tray_type != "LargeTray" && (wheel == null ? wheel1.e : wheel.e) > 1100)
                                 {
                                     client.WriteByOrder("W_Enabl_Load", false, name);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
                                     Stationinfo.location_state = LocationStateEnum.Abnormal.ToString();
@@ -765,16 +786,16 @@
                                     continue;
                                 }
                             }
-                            else
-                            {
-                                #region 娌℃墭鐩樺彲鐢�,瑙﹀彂鍏ュ簱浠诲姟
-                                var stationinfos = Stations.Where(x => x.enable && x.stationCode != NGStation && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).ToList();
-                                foreach (var stationinfo in stationinfos)
-                                {
-                                    agvtask(stationinfoRepository, stationinfo, Work, name == "3鍗曞厓涓嬫枡鍖�" ? "TaskType_OutsourceInbound" : "TaskType_Inbound");
-                                }
-                                #endregion
-                            }
+                            //else
+                            //{
+                            //    #region 娌℃墭鐩樺彲鐢�,瑙﹀彂鍏ュ簱浠诲姟
+                            //    var stationinfos = Stations.Where(x => x.enable && x.stationCode != NGStation && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).ToList();
+                            //    foreach (var stationinfo in stationinfos)
+                            //    {
+                            //        agvtask(stationinfoRepository, stationinfo, Work, name == "3鍗曞厓涓嬫枡鍖�" ? "TaskType_OutsourceInbound" : "TaskType_Inbound");
+                            //    }
+                            //    #endregion
+                            //}
 
                         }
                         else if ((Int16)PartStatus == 2)
@@ -802,7 +823,7 @@
                         && x.location_state == LocationStateEnum.Stroge.ToString()
                         && x.quantity < 5
                         && x.stationType == Work.drawingNo
-                        && x.tray_type == ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray")
+                        //&& x.tray_type == ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray")
                         /*&& x.Number == mes_Detail.jobID*/).FirstOrDefault();
                             //}
 
@@ -818,7 +839,8 @@
                             if (Stationinfo != null)
                             {
                                 #region 鎵樼洏绫诲瀷涓嶄竴鑷撮渶鏇存崲鎵樼洏
-                                if (Stationinfo.tray_type != ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray"))
+                                //if (Stationinfo.tray_type != ((wheel == null ? wheel1.e : wheel.e) < 1100 ? "SmallTray" : "LargeTray"))
+                                if (Stationinfo.tray_type != "LargeTray" && (wheel == null ? wheel1.e : wheel.e) > 1100)
                                 {
                                     Stationinfo.location_state = LocationStateEnum.Abnormal.ToString();
                                     Stationinfo.tray_type = Stationinfo.tray_type == "SmallTray" ? "SmallTray/LargeTray" : "LargeTray/SmallTray";
@@ -984,7 +1006,7 @@
             //int CompeletedNum = Convert.ToInt32(mes_Head.quantity) - Convert.ToInt32(mes_Head.finishNum);
             //if (mes_Head.quantity <= 50) tasktype = "TaskType_OutsourceInbound";
 
-            if (tasktype == "TaskType_OutsourceInbound")
+            if (tasktype == "TaskType_OutsourceInbound" || !string.IsNullOrEmpty(Work.area))
                 TargetLocation = StationTask.GetEmptyLocation(stationinfoRepository);
             else if (tasktype == "TaskType_Inbound")
                 TargetLocation = GetLocation.GetEmptyLocation(stationinfoRepository, Work, stationinfo);
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs"
index 323e385..beefb52 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs"
@@ -15,5 +15,6 @@
         /// <param name="saveModel"></param>
         /// <returns></returns>
         WebResponseContent FinishWorkOrder(SaveModel saveModel);
+        WebResponseContent OutsorcingWorkOrder(SaveModel saveModel);
     }
  }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
index 8a8bfcc..a7325f0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
@@ -18,6 +18,7 @@
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_WCS.IRepositories;
 using WIDESEA_WCS.Jobs;
+using WIDESEA_WCS.JobsPart.Common;
 using WIDESEA_WCS.Repositories;
 using WIDESEA_WCS.WCSClient;
 using WIDESEA_WMS.IRepositories;
@@ -244,7 +245,8 @@
                     var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == stationCode).ToList();
                     var PalletSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
                     var MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
-                    var station = stationinfoRepository.Find(x => x.stationCode == stationCode).FirstOrDefault();
+                    var station = stationinfoRepository.Find(x => x.stationCode == stationCode && x.enable).FirstOrDefault();
+                    if (station == null) continue;
                     if (PalletSignal == 1 && MaterialSignal == 2 && (station.stationCode.Contains("S0100100") ? station.tray_status == "EmptyTray" : true))
                     {
                         var area = station.tray_type == "SmallTray" ? "11" : "10";
@@ -262,31 +264,34 @@
                             continue;
 
                         }
+                        var EmptyStation = GetStation.EmptyPalletStation(area);
+
                         #region 鏌ユ壘搴撳尯涓�绌烘墭鐩樼┖璐т綅
-                        var EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.location_state != LocationStateEnum.Busy.ToString() && x.enable)
-                        .OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鏌ユ壘娌℃湁浠诲姟鐨勭┖鎵樼洏璐т綅
+                       // EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.location_state != LocationStateEnum.Busy.ToString() && x.enable)
+                       //.OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鏌ユ壘娌℃湁浠诲姟鐨勭┖鎵樼洏璐т綅
 
-                        if (EmptyStation != null)
-                        {
-                            if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.location_state.Contains("Busy")).Any())
-                            {
-                                EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.column != EmptyStation.column && x.location_state != LocationStateEnum.Busy.ToString() && x.enable).OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鎺掗櫎褰撳垪瀛樺湪浠诲姟鐨勮揣浣�
-                            }
-                            if (EmptyStation != null && EmptyStation.line == 2)//濡傛灉浠诲姟瀛樺湪绗簩琛�,鎺掓煡绗竴琛屾槸鍚︽湁璐�
-                            {
-                                if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.line == 1 && x.location_state != LocationStateEnum.Empty.ToString()).Any()) EmptyStation = null;
-                            }
-                        }
+                       // if (EmptyStation != null)
+                       // {
+                       //     if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.location_state.Contains("Busy")).Any())
+                       //     {
+                       //         EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") && x.column != EmptyStation.column && x.location_state != LocationStateEnum.Busy.ToString() && x.enable).OrderBy(x => x.column).ThenByDescending(x => x.line).FirstOrDefault();//鎺掗櫎褰撳垪瀛樺湪浠诲姟鐨勮揣浣�
+                       //     }
+                       //     if (EmptyStation != null && EmptyStation.line == 2)//濡傛灉浠诲姟瀛樺湪绗簩琛�,鎺掓煡绗竴琛屾槸鍚︽湁璐�
+                       //     {
+                       //         if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.stationCode.Contains("A") && x.column == EmptyStation.column && x.line == 1 && x.location_state != LocationStateEnum.Empty.ToString()).Any()) EmptyStation = null;
+                       //     }
+                       // }
+
+                       // if (EmptyStation == null)
+                       // {
+                       //     EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Busy.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鏈�鍚庝竴涓揣浣嶆湁浠诲姟鍒欎笉鑳界敓鎴愬叆搴撲换鍔�
+                       //     if (EmptyStation != null) continue;
+                       //     EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Stroge.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鎵炬渶澶栭潰娌″爢婊�5涓殑璐т綅
+                       //     if (EmptyStation == null)
+                       //         EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
+                       // }
+
                         #endregion
-
-                        if (EmptyStation == null)
-                        {
-                            EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Busy.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鏈�鍚庝竴涓揣浣嶆湁浠诲姟鍒欎笉鑳界敓鎴愬叆搴撲换鍔�
-                            if (EmptyStation != null) continue;
-                            EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Stroge.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();//鎵炬渶澶栭潰娌″爢婊�5涓殑璐т綅
-                            if (EmptyStation == null)
-                                EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
-                        }
 
                         if (EmptyStation != null)
                         {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs"
new file mode 100644
index 0000000..7a22c19
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs"
@@ -0,0 +1,163 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Comm;
+using WIDESEA_Comm.LogInfo;
+using WIDESEA_Core.EFDbContext;
+using WIDESEA_Entity.DomainModels;
+using WIDESEA_WCS.IRepositories;
+using WIDESEA_WCS.Repositories;
+using WIDESEA_WCS.WCSClient;
+using WIDESEA_WMS.IRepositories;
+using WIDESEA_WMS.Repositories;
+
+namespace WIDESEA_WCS.JobsPart.Common
+{
+    public class GetStation
+    {
+        /// <summary>
+        /// 鑾峰彇绌烘墭鐩樿揣浣�
+        /// </summary>
+        /// <returns></returns>
+        public static void EmptyPalletStation(dt_agvtask task)
+        {
+            dt_stationinfo EmptyStation = null;
+            try
+            {
+                VOLContext Context = new VOLContext();
+                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
+                Idt_agvtaskRepository agvtaskService = new dt_agvtaskRepository(Context);
+                var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "閾炬潯鏈�");
+                if (Pipeline_client == null) throw new Exception("閾炬潯鏈鸿皟搴︽湇鍔℃湭寮�鍚紒");
+                if (!Pipeline_client.IsConnected) throw new Exception("涓庨摼鏉℃満杩炴帴瓒呮椂锛�");
+                var area = task.agv_Traytype == "SmallTray" ? "11" : "10";
+
+                #region 浼樺厛鍑�3搴撳尯鍐呯┖鎵樼洏
+                if (area == "11")
+                {
+                    EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01004001" /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault();
+                    if (EmptyStation == null)
+                        EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01005001"/* && x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault();
+                    if (EmptyStation != null)
+                        EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.area == EmptyStation.area && x.line == EmptyStation.line /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+                    if (EmptyStation != null)
+                        if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
+                }
+                #endregion
+                if (EmptyStation == null)
+                    EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.area == area /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).OrderBy(x => x.column).FirstOrDefault();
+                if (EmptyStation != null)
+                    if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
+                if (EmptyStation != null)
+                {
+                    var PalletSignal = Pipeline_client.ReadByOrder<Int16>("R_PalletSignal", task.agv_toaddress);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
+                    var MaterialSignal = Pipeline_client.ReadByOrder<Int16>("R_MaterialSignal", task.agv_toaddress);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
+                    if (PalletSignal == 2 && MaterialSignal == 2)
+                    {
+                        task.agv_fromaddress = EmptyStation.stationCode;
+                        task.StarQuantity = EmptyStation.quantity - 1;
+                        task.agv_taskstate = "Create";
+                        agvtaskService.Update(task, true);
+                        EmptyStation.location_state = LocationStateEnum.Busy.ToString();
+                        stationinfoRepository.Update(EmptyStation, true);
+                        WriteDBLog.Success("鏇存柊绌虹洏闃熷垪浠诲姟", $"浠诲姟缂栧彿锛歿task.agv_tasknum}", "PCS");
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
+        }
+        public static dt_stationinfo Station(dt_stationinfo EmptyStation, Idt_stationinfoRepository stationinfoRepository)
+        {
+            dt_stationinfo stationinfo = null;
+            try
+            {
+                if (stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.location_state.Contains("Busy")).Any()) return null;
+
+
+                stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.quantity > 0 && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+                if (stationinfo != null)
+                {
+                    if (stationinfo.quantity < 5) return stationinfo;
+                    else
+                        stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
+                }
+                //if (stationinfo == null)
+                //    stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.quantity < 5 && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
+            }
+            catch (Exception ex)
+            {
+
+            }
+            return stationinfo;
+        }
+        /// <summary>
+        /// 绌烘墭鍙叆搴撹揣浣�
+        /// </summary>
+        /// <param name="area"></param>
+        /// <returns></returns>
+        public static dt_stationinfo EmptyPalletStation(string area)
+        {
+            dt_stationinfo stationinfo = null;
+            try
+            {
+                VOLContext Context = new VOLContext();
+                Idt_agvtaskRepository agvtaskService = new dt_agvtaskRepository(Context);
+                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
+
+                #region 鏌ユ壘绌烘墭鐩樺簱鍖�
+                if (stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Busy.ToString()).Any())
+                {
+                    var EmptyStation = stationinfoRepository.Find(x => x.stationCode == "C01005001" && x.location_state == LocationStateEnum.Empty.ToString()).FirstOrDefault();
+                    if (EmptyStation != null)
+                    {
+                        if (!stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state != LocationStateEnum.Empty.ToString()).Any())
+                            return EmptyStation;
+                    }
+                    EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01005001" && x.location_state == "Stroge" && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault();
+
+
+                    if (EmptyStation != null) stationinfo = Station(EmptyStation, stationinfoRepository);
+                    if (stationinfo != null) return stationinfo;
+
+                    EmptyStation = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+
+                    if (EmptyStation.quantity == 5)
+                    {
+                        EmptyStation = stationinfoRepository.Find(x => x.stationCode == "C01004001" && x.location_state == LocationStateEnum.Empty.ToString()).FirstOrDefault();
+                        if (EmptyStation != null)
+                        {
+                            if (!stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state != LocationStateEnum.Empty.ToString()).Any())
+                                return EmptyStation;
+                        }
+
+                        EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01004001" && x.location_state == "Stroge" && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault();
+                        if (EmptyStation != null) stationinfo = Station(EmptyStation, stationinfoRepository);
+                    }
+
+                }
+                else
+                {
+                    stationinfo = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 /*&& x.location_state == LocationStateEnum.Stroge.ToString()*/ && x.enable).OrderBy(x => x.column).FirstOrDefault();
+                    if (stationinfo != null)
+                    {
+                        if (stationinfo.quantity < 5) return stationinfo;
+                        else
+                            stationinfo = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+                    }
+
+                }
+                #endregion
+            }
+            catch (Exception ex)
+            {
+                throw;
+            }
+            return stationinfo;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
index 79a3d97..b3837d0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ReplaceTray.cs"
@@ -63,12 +63,12 @@
                     var types = station.tray_type.Split('/');
                     var area = types[0] == "SmallTray" ? "11" : "10";
                     //鎵�1搴撳尯鐨勭┖鎵樹綅
-
-                    var EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") /*&& x.location_state == "Empty"*/ && x.enable)
-                        .OrderBy(x => x.column).OrderBy(x => x.line).FirstOrDefault();
-                    if (EmptyStation == null)
-                        EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") /*&& x.location_state == "Empty"*/ && x.enable)
-                        .OrderBy(x => x.line).OrderBy(x => x.column).FirstOrDefault();
+                    var EmptyStation = GetStation.EmptyPalletStation(area);
+                    //var EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains("A") /*&& x.location_state == "Empty"*/ && x.enable)
+                    //    .OrderBy(x => x.column).OrderBy(x => x.line).FirstOrDefault();
+                    //if (EmptyStation == null)
+                    //    EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity < 5 && x.stationCode.Contains(area == "10" ? "D" : "C") /*&& x.location_state == "Empty"*/ && x.enable)
+                    //    .OrderBy(x => x.line).OrderBy(x => x.column).FirstOrDefault();
                     if (EmptyStation != null)
                     {
                         dt_agvtask agvtask = new dt_agvtask()
@@ -93,6 +93,8 @@
                             agv_Traytype = types[0]
                         };
                         agvtaskRepository.Add(agvtask, true);
+                        EmptyStation.location_state = LocationStateEnum.Busy.ToString();
+                        stationinfoRepository.Update(EmptyStation, true);
                         WriteDBLog.Success("鍒涘缓鏇存崲绌虹洏浠诲姟", $"浠诲姟缂栧彿锛歿agvtask.agv_tasknum}", "PCS");
                         CreatePartQueue(agvtaskRepository, agvtask, types[1]);
                     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
index 410a9c6..8680c72 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs"
@@ -36,58 +36,68 @@
                 {
                     if (task.agv_tasktype == "TaskType_EmptyPallet")//绌烘墭浠诲姟
                     {
-                        if (task.agv_fromaddress == "" && DateTime.Now - task.agv_createtime >= TimeSpan.FromMinutes(5))
+                        if (task.agv_fromaddress == "" && DateTime.Now - task.agv_createtime >= TimeSpan.FromMinutes(1))
                         {
-                            var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "閾炬潯鏈�");
-                            if (Pipeline_client == null) throw new Exception("閾炬潯鏈鸿皟搴︽湇鍔℃湭寮�鍚紒");
-                            if (!Pipeline_client.IsConnected) throw new Exception("涓庨摼鏉℃満杩炴帴瓒呮椂锛�");
-                            var area = task.agv_Traytype == "SmallTray" ? "11" : "10";
-                            //鎵�1搴撳尯鐨勭┖鎵樹綅
-                            var EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains("A") /*&& x.location_state == "Stroge"*//*LocationStateEnum.Stroge.ToString()*/ && x.enable).OrderBy(x => x.column).ThenBy(x => x.line).FirstOrDefault();
-                            if (EmptyStation != null)
-                                if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
-                            #region 涓�涓尯鍩熷彧鑳芥湁涓�涓┖鎵樹换鍔�
-                            //bool ok = false;
-                            //if (EmptyStation != null)
-                            //    ok = agvtaskService.Find(x => x.agv_fromaddress == EmptyStation.stationCode || x.agv_toaddress == EmptyStation.stationCode).Any();
-                            //if (EmptyStation == null || ok)
-                            //    EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == "Stroge" /*LocationStateEnum.Stroge.ToString()*/ && x.enable)
-                            //    .OrderBy(x => x.line).OrderByDescending(x => x.column).FirstOrDefault();
-                            #endregion
-                            if (EmptyStation == null)
-                                EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
-                            if (EmptyStation == null) continue;
-                            #region 搴撳唴瀛樺湪浠诲姟鍗犵敤
-                            if (EmptyStation.location_state == LocationStateEnum.Busy.ToString())
-                                continue;
-                            #endregion
-
-                            if (EmptyStation == null)
-                                EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == "Stroge" && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
-                            if (EmptyStation != null)
+                            if (task.agv_tasknum.Contains("_"))
                             {
-                                #region 搴撳唴瀛樺湪浠诲姟鍗犵敤
-                                //if (EmptyStation.location_state == LocationStateEnum.Busy.ToString())
-                                //    continue;
-                                #endregion
-
-                                //if (agvtaskService.Find(x => x.agv_fromaddress == EmptyStation.stationCode || x.agv_toaddress == EmptyStation.stationCode).Any())
-                                //    return;
-                                #region 琛ュ簱鍐呯┖鎵樼洏锛屼笉闇�瑕佸厜鐢靛垽鏂�
-                                var PalletSignal = Pipeline_client.ReadByOrder<Int16>("R_PalletSignal", task.agv_toaddress);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
-                                var MaterialSignal = Pipeline_client.ReadByOrder<Int16>("R_MaterialSignal", task.agv_toaddress);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
-                                if (PalletSignal == 2 && MaterialSignal == 2)
-                                {
-                                    task.agv_fromaddress = EmptyStation.stationCode;
-                                    task.StarQuantity = EmptyStation.quantity - 1;
-                                    task.agv_taskstate = "Create";
-                                    agvtaskService.Update(task, true);
-                                    EmptyStation.location_state = LocationStateEnum.Busy.ToString();
-                                    stationinfoRepository.Update(EmptyStation, true);
-                                    WriteDBLog.Success("鏇存柊绌虹洏闃熷垪浠诲姟", $"浠诲姟缂栧彿锛歿task.agv_tasknum}", "PCS");
-                                }
-                                #endregion
+                                string mainTaskNum = task.agv_tasknum.Split('_')[0];
+                                if (agvtaskService.Find(x => x.agv_tasknum == mainTaskNum && (task.agv_taskstate == "Executing1" || task.agv_taskstate == "Complete1")).Any())
+                                    GetStation.EmptyPalletStation(task);
                             }
+                            else
+                                GetStation.EmptyPalletStation(task);
+                            #region
+                            //var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "閾炬潯鏈�");
+                            //if (Pipeline_client == null) throw new Exception("閾炬潯鏈鸿皟搴︽湇鍔℃湭寮�鍚紒");
+                            //if (!Pipeline_client.IsConnected) throw new Exception("涓庨摼鏉℃満杩炴帴瓒呮椂锛�");
+                            //var area = task.agv_Traytype == "SmallTray" ? "11" : "10";
+                            ////鎵�1搴撳尯鐨勭┖鎵樹綅
+                            //var EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains("A") /*&& x.location_state == "Stroge"*//*LocationStateEnum.Stroge.ToString()*/ && x.enable).OrderBy(x => x.column).ThenBy(x => x.line).FirstOrDefault();
+                            //if (EmptyStation != null)
+                            //    if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null;
+                            //#region 涓�涓尯鍩熷彧鑳芥湁涓�涓┖鎵樹换鍔�
+                            ////bool ok = false;
+                            ////if (EmptyStation != null)
+                            ////    ok = agvtaskService.Find(x => x.agv_fromaddress == EmptyStation.stationCode || x.agv_toaddress == EmptyStation.stationCode).Any();
+                            ////if (EmptyStation == null || ok)
+                            ////    EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == "Stroge" /*LocationStateEnum.Stroge.ToString()*/ && x.enable)
+                            ////    .OrderBy(x => x.line).OrderByDescending(x => x.column).FirstOrDefault();
+                            //#endregion
+                            //if (EmptyStation == null)
+                            //    EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+                            //if (EmptyStation == null) continue;
+                            //#region 搴撳唴瀛樺湪浠诲姟鍗犵敤
+                            //if (EmptyStation.location_state == LocationStateEnum.Busy.ToString())
+                            //    continue;
+                            //#endregion
+
+                            //if (EmptyStation == null)
+                            //    EmptyStation = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.stationCode.Contains(area == "10" ? "D" : "C") && x.location_state == "Stroge" && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+                            //if (EmptyStation != null)
+                            //{
+                            //    #region 搴撳唴瀛樺湪浠诲姟鍗犵敤
+                            //    //if (EmptyStation.location_state == LocationStateEnum.Busy.ToString())
+                            //    //    continue;
+                            //    #endregion
+
+                            //    //if (agvtaskService.Find(x => x.agv_fromaddress == EmptyStation.stationCode || x.agv_toaddress == EmptyStation.stationCode).Any())
+                            //    //    return;
+                            //    #region 琛ュ簱鍐呯┖鎵樼洏锛屼笉闇�瑕佸厜鐢靛垽鏂�
+                            //    var PalletSignal = Pipeline_client.ReadByOrder<Int16>("R_PalletSignal", task.agv_toaddress);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃�
+                            //    var MaterialSignal = Pipeline_client.ReadByOrder<Int16>("R_MaterialSignal", task.agv_toaddress);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃�
+                            //    if (PalletSignal == 2 && MaterialSignal == 2)
+                            //    {
+                            //        task.agv_fromaddress = EmptyStation.stationCode;
+                            //        task.StarQuantity = EmptyStation.quantity - 1;
+                            //        task.agv_taskstate = "Create";
+                            //        agvtaskService.Update(task, true);
+                            //        EmptyStation.location_state = LocationStateEnum.Busy.ToString();
+                            //        stationinfoRepository.Update(EmptyStation, true);
+                            //        WriteDBLog.Success("鏇存柊绌虹洏闃熷垪浠诲姟", $"浠诲姟缂栧彿锛歿task.agv_tasknum}", "PCS");
+                            //    }
+                            //    #endregion
+                            //}
+                            #endregion
                         }
                     }
                     else if (task.agv_tasktype == "TaskType_OutsourceOutbound" || task.agv_tasktype == "TaskType_Outbound")//澶栧崗搴撳嚭搴�/AB搴撳嚭搴�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs"
index 8880cd9..abb0244 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs"
@@ -85,7 +85,7 @@
                     {
 
 
-                        if (/*(mesinfo.quantity <= 50 && string.IsNullOrEmpty(mesinfo.area)) ||*/ item.stationCode.Contains("3"))    //灏忎簬50浠剁洿鎺ュ嚭搴�
+                        if (/*(mesinfo.quantity <= 50 &&*/ !string.IsNullOrEmpty(work.area) || item.stationCode.Contains("3"))    //灏忎簬50浠剁洿鎺ュ嚭搴�
                         {
                             //todo 瀵绘壘鍙斁璐у鍗忔斁璐у彴
                             tasktype = "TaskType_OutsourceInbound";
@@ -129,6 +129,7 @@
                             TargetLocation.location_state = LocationStateEnum.InBusy.ToString();
                             TargetLocation.stationType = agvtask.agv_materielid;
                             TargetLocation.heatNumber = item.heatNumber;
+                            TargetLocation.billetID = item.billetID;
                             TargetLocation.Number = agvtask.jobID;
                             stationinfoRepository.Update(TargetLocation, true);
                             WriteDBLog.Success("鍒涘缓鍏ュ簱浠诲姟", $"浠诲姟缂栧彿锛歿agvtask.agv_tasknum}", "PCS");
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/\346\226\260\346\226\207\344\273\266\345\244\271/GetLocation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/\346\226\260\346\226\207\344\273\266\345\244\271/GetLocation.cs"
index 9474e1d..9365f38 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/\346\226\260\346\226\207\344\273\266\345\244\271/GetLocation.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/\346\226\260\346\226\207\344\273\266\345\244\271/GetLocation.cs"
@@ -41,6 +41,10 @@
                     //    stationinfoRepository.Update(stationinfo, true);
                     //    return null;
                     //}
+                    string area1 = "";
+                    if (stationinfo.tray_type == "LargeTray")
+                        area1 = "4";
+
                     #region 鏌ユ壘搴撳瓨
                     dt_inventory inventory = null;
                     inventory = inventoryRepository.Find(x => x.FigureNumber == mesinfo.drawingNo).OrderByDescending(x => x.OnlineTime).FirstOrDefault();
@@ -64,6 +68,57 @@
                     if (inventory != null)
                     {
                         var station = stationinfoRepository.FindFirst(x => x.stationCode == inventory.stationCode);
+                        if (!string.IsNullOrEmpty(area1) && station.area != area1)//鍏ュぇ鎵樼洏搴撳尯
+                        {
+                            #region 瀵绘壘宸插垎閰嶅悓鍥惧彿鍏ュ簱浠诲姟搴撲綅
+                            TargetLocation = stationinfoRepository.Find(x => x.stationType == stationinfo.stationType && x.location_state == LocationStateEnum.InBusy.ToString() && x.area == area1).FirstOrDefault();
+                            if (TargetLocation != null)
+                            {
+                                //if (TargetLocation.area == "1")
+                                //{
+                                //    //TargetLocation = stationinfoRepository.Find(x => x.column == TargetLocation.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == TargetLocation.area).OrderByDescending(x => x.line).FirstOrDefault();
+
+                                //    TargetLocation = stationinfoRepository.Find(x => x.line == TargetLocation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == TargetLocation.area).OrderBy(x => x.column).FirstOrDefault();//鎸夎瀛樻斁
+
+                                //    if (TargetLocation != null)
+                                //    {
+                                //        if (!stationinfoRepository.Find(x => x.column == TargetLocation.column && x.area == TargetLocation.area /*&& x.enable*/ && x.location_state == LocationStateEnum.OutBusy.ToString()).Any())
+                                //            return TargetLocation;
+                                //    }
+                                //}
+                                //else
+                                //{
+                                    TargetLocation = stationinfoRepository.Find(x => x.line == TargetLocation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == TargetLocation.area).OrderBy(x => x.column).FirstOrDefault();
+                                    if (TargetLocation != null)
+                                    {
+                                        if (!stationinfoRepository.Find(x => x.line == TargetLocation.line && x.area == TargetLocation.area && x.location_state == LocationStateEnum.OutBusy.ToString()).Any())
+                                            return TargetLocation;
+                                    }
+                                //}
+                            }
+                            #endregion
+
+                            #region 瀵绘壘绌鸿揣浣�
+                            var TargetLocations1 = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Empty.ToString() && x.enable &&  x.area == area1).OrderBy(x => x.line).ThenBy(x => x.column).ToList();
+                            foreach (var Location in TargetLocations1)
+                            {
+                                //if (Location.area == "1")
+                                //{
+                                //    if (stationinfoRepository.Find(x => x.column == Location.column && x.area == Location.area && x.stationType == stationinfo.stationType && x.location_state != LocationStateEnum.OutBusy.ToString()).Any()) return Location;
+                                //}
+                                //else
+                                //{
+                                    if (stationinfoRepository.Find(x => x.line == Location.line && x.area == Location.area && x.stationType == stationinfo.stationType && x.location_state != LocationStateEnum.OutBusy.ToString()).Any()) return Location;
+                                //}
+                            }
+                            //if (TargetLocation != null)
+                            //{
+                            //    if (stationinfoRepository.Find(x => x.line == TargetLocation.line && x.column == 1 && x.stationType == stationinfo.stationType).Any()) return TargetLocation;
+                            //}
+                            #endregion
+
+
+                        }
                         if (station.area == "1")
                         {
                             //TargetLocation = stationinfoRepository.Find(x => x.column == station.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == inventory.area).OrderByDescending(x => x.line).FirstOrDefault();
@@ -137,17 +192,17 @@
                     #endregion
 
                     #region 鏈壘鍒板簱瀛樻垨褰撳墠搴撳瓨琛屽凡婊�,瀵绘壘鏂扮殑涓�琛�
-                    //var area1 = string.IsNullOrEmpty(mesinfo.area) ? GetArea(mesinfo.quantity, e) : mesinfo.area;
+                    //var area1 = string.IsNullOrEmpty(mesinfo.area) ? GetArea(mesinfo.quantity, e) : mesinfo.area;(area == "2" ? 1 : 10)
                     //var area = string.IsNullOrEmpty(mesinfo.area) ? GetArea(mesinfo.quantity, stationinfo.tray_type) : mesinfo.area;
                     var area = GetArea(mesinfo.quantity, stationinfo.tray_type);
-                    TargetLocation = stationinfoRepository.Find(x => x.column == (area == "2" ? 1 : 10) && x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
+                    TargetLocation = stationinfoRepository.Find(x => x.column == 1 && x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
                     if (TargetLocation == null && area != "4")
                     {
                         if (area == "2")
                             area = "3";
                         else if (area == "3")
                             area = "2";
-                        TargetLocation = stationinfoRepository.Find(x => x.column == (area == "2" ? 1 : 10) && x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
+                        TargetLocation = stationinfoRepository.Find(x => x.column == 1 && x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
                         if (TargetLocation == null)
                             TargetLocation = stationinfoRepository.Find(x => x.line == 2 && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == "1").OrderBy(x => x.column).FirstOrDefault();
                     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs"
index 1c3ae9d..4d73059 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs"
@@ -20,6 +20,7 @@
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_WCS.JobsPart.Common;
 using WIDESEA_Core.ManageUser;
+using WIDESEA_Comm.LogInfo;
 
 namespace WIDESEA_WCS.Services
 {
@@ -40,10 +41,35 @@
             //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢�
             //base.Init(dbRepository);
         }
+        public WebResponseContent OutsorcingWorkOrder(SaveModel model)
+        {
+            WebResponseContent content = new WebResponseContent();
+            string compeletor = UserContext.Current.UserName;
+            try
+            {
+                List<string> list = new List<string>();
+                foreach (var Key in model.DelKeys)
+                {
+                    var mes_head = _repository.Find(x => x.mes_id.ToString() == Key.ToString()).FirstOrDefault();
+                    if (mes_head != null)
+                    {
+                        mes_head.area = "澶栧崗";
+                        _repository.Update(mes_head, true);
+                        list.Add(mes_head.jobID);
+                    }
+                }
+                content.OK();
+                WriteDBLog.Success("鎸囧畾宸ュ崟鍑哄簱澶栧崗", $"宸ュ崟缂栧彿锛歿list}", "PCS", compeletor);
+            }
+            catch (Exception ex)
+            {
+                WriteDBLog.Error("鎸囧畾宸ュ崟鍑哄簱澶栧崗", $"閿欒淇℃伅锛歿ex.Message}", "PCS", compeletor);
+            }
+            return content;
+        }
         public WebResponseContent FinishWorkOrder(SaveModel model)
         {
             WebResponseContent content = new WebResponseContent();
-            VOLContext context = new VOLContext();
             try
             {
                 string compeletor = UserContext.Current.UserName;
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"
index 7e6c2b6..8f03fc6 100644
--- "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"
@@ -92,9 +92,9 @@
                     workOrder = workInfo.workOrder,
                     processCode = workInfo.processCode,
                     finishNum = 0,
-                    skip_op_1 = true,
-                    skip_op_2 = true,
-                    skip_op_3 = true,
+                    skip_op_1 = false,
+                    skip_op_2 = false,
+                    skip_op_3 = false,
                 };
                 freeDB.Add(mes_Head);
 
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_mes_headController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_headController.cs"
index d71e0d2..95f0b4f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_headController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_headController.cs"
@@ -43,5 +43,11 @@
         {
             return Service.FinishWorkOrder(saveModel);
         }
+
+        [HttpPost, Authorize, Route("OutsorcingWorkOrder"), AllowAnonymous]
+        public WebResponseContent OutsorcingWorkOrder([FromBody] SaveModel saveModel)
+        {
+            return Service.OutsorcingWorkOrder(saveModel);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js"
index 0af90a4..eb0a016 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js"
@@ -12,7 +12,7 @@
 let loadingInstance;
 let loadingStatus = false;
 if (process.env.NODE_ENV == 'development') {
-    axios.defaults.baseURL = 'http://127.0.0.1:8098/';
+    axios.defaults.baseURL = 'http://192.168.12.101:8098/';
 }
 else if (process.env.NODE_ENV == 'debug') {
     axios.defaults.baseURL = 'http://192.168.12.101:8098/';
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue"
index ffbbaa2..eb9fe36 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue"
@@ -29,11 +29,12 @@
                 url: "/dt_stationinfo/",
                 sortName: "id"
             });
-            const editFormFields = ref({"stationCode":"","stationType":"","location_state":"","bindSN":"","tray_status":"","Number":"","heatNumber":"","remark":""});
+            const editFormFields = ref({"stationCode":"","stationType":"","location_state":"","bindSN":"","billetID":"","tray_status":"","Number":"","heatNumber":"","remark":""});
             const editFormOptions = ref([[{"title":"缂撳瓨鏋剁紪鍙�","field":"stationCode","disabled": true}],
                               [{"title":"鍥惧彿","field":"stationType"}],
                               [{"dataKey":"location_states","data":[],"title":"璐т綅鐘舵��","field":"location_state","type":"select"}],
                               [{"title":"杞﹁疆SN鍙�","field":"bindSN"}],
+                              [{"title":"閽㈠澂鍙�","field":"billetID"}],
                               [{"dataKey":"tray_types","data":[],"title":"鎵樼洏绫诲瀷","field":"tray_type","type":"select"}],
                               [{"title":"宸ヤ綔浠ゅ彿","field":"Number"}],
                               [{"title":"鐐夊彿","field":"heatNumber","type":"text"}],
@@ -54,7 +55,7 @@
                     //    {field:'line',title:'琛�',type:'int',width:80,align:'left'},
                     //    {field:'column',title:'鍒�',type:'int',width:80,align:'left'},
                     {field:'heatNumber',title:'鐐夊彿',type:'string',width:80,align:'left'},
-                    //    {field:'zj',title:'涓婚敭',type:'int',width:80,hidden:true,require:true,align:'left'},
+                       {field:'billetID',title:'閽㈠澂鍙�',type:'string',width:160,align:'left'},
                        {field:'Number',title:'宸ヤ綔浠ゅ彿',type:'string',width:160,align:'left'},
                        {field:'remark',title:'澶囨敞',type:'string',width:220,align:'left'}]);
             const detail = ref({
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs"
index 82ff0c0..8acfd0a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs"
@@ -139,8 +139,8 @@
         ///鐐夊彿
         /// </summary>
         [Display(Name = "鐐夊彿")]
-        [MaxLength(50)]
-        [Column(TypeName = "nvarchar(50)")]
+        [MaxLength(255)]
+        [Column(TypeName = "nvarchar(255)")]
         public string heatNumber { get; set; }
 
         /// <summary>
@@ -150,5 +150,13 @@
         [MaxLength(100)]
         [Column(TypeName = "nvarchar(100)")]
         public string tray_type { get; set; }
+
+        /// <summary>
+        ///閽㈠澂鍙�
+        /// </summary>
+        [Display(Name = "閽㈠澂鍙�")]
+        [MaxLength(255)]
+        [Column(TypeName = "nvarchar(255)")]
+        public string billetID { get; set; }
     }
 }
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs"
index 9710d82..cd1a356 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs"
@@ -13,152 +13,160 @@
 
 namespace WIDESEA_Entity.DomainModels
 {
-    [Entity(TableCnName = "宸ュ崟瑙嗗浘",TableName = "VV_Mes_Workinfo")]
-    public partial class VV_Mes_Workinfo:BaseEntity
+    [Entity(TableCnName = "宸ュ崟瑙嗗浘", TableName = "VV_Mes_Workinfo")]
+    public partial class VV_Mes_Workinfo : BaseEntity
     {
         /// <summary>
-       ///宸ュ崟缂栧彿
-       /// </summary>
-       [Display(Name ="jobID")]
-       [MaxLength(40)]
-       [Column(TypeName="nvarchar(40)")]
-       [Editable(true)]
-       public string jobID { get; set; }
+        ///宸ュ崟缂栧彿
+        /// </summary>
+        [Display(Name = "jobID")]
+        [MaxLength(40)]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string jobID { get; set; }
 
         /// <summary>
         ///鐐変唬鍙�
         /// </summary>
-        [Display(Name ="heatID")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string heatID { get; set; }
+        [Display(Name = "heatID")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string heatID { get; set; }
 
         /// <summary>
         ///閽㈠澂鍙�
         /// </summary>
-        [Display(Name ="billetID")]
-       [Column(TypeName="int")]
-       [Editable(true)]
-       public int? billetID { get; set; }
+        [Display(Name = "billetID")]
+        [Column(TypeName = "int")]
+        [Editable(true)]
+        public int? billetID { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="SN")]
-       [MaxLength(50)]
-       [Column(TypeName="nvarchar(50)")]
-       [Editable(true)]
-       public string SN { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "SN")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
+        [Editable(true)]
+        public string SN { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="heatBatchID")]
-       [MaxLength(30)]
-       [Column(TypeName="nvarchar(30)")]
-       [Editable(true)]
-       public string heatBatchID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "heatBatchID")]
+        [MaxLength(30)]
+        [Column(TypeName = "nvarchar(30)")]
+        [Editable(true)]
+        public string heatBatchID { get; set; }
 
-       /// <summary>
-       ///宸ヤ綔浠ゅ彿
-       /// </summary>
-       [Display(Name ="workOrder")]
-       [MaxLength(50)]
-       [Column(TypeName="nvarchar(50)")]
-       [Editable(true)]
-       public string workOrder { get; set; }
+        /// <summary>
+        ///宸ヤ綔浠ゅ彿
+        /// </summary>
+        [Display(Name = "workOrder")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
+        [Editable(true)]
+        public string workOrder { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="reqID")]
-       [MaxLength(40)]
-       [Column(TypeName="nvarchar(40)")]
-       [Editable(true)]
-       public string reqID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "reqID")]
+        [MaxLength(40)]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string reqID { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="reqIDLineNo")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string reqIDLineNo { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "reqIDLineNo")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string reqIDLineNo { get; set; }
 
-       /// <summary>
-       ///鐗╂枡缂栫爜
-       /// </summary>
-       [Display(Name ="materialCode")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string materialCode { get; set; }
+        /// <summary>
+        ///鐗╂枡缂栫爜
+        /// </summary>
+        [Display(Name = "materialCode")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string materialCode { get; set; }
 
-       /// <summary>
-       ///鍥惧彿
-       /// </summary>
-       [Display(Name ="drawingNo")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string drawingNo { get; set; }
+        /// <summary>
+        ///鍥惧彿
+        /// </summary>
+        [Display(Name = "drawingNo")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string drawingNo { get; set; }
 
-       /// <summary>
-       ///鎶�鏈姸鎬�
-       /// </summary>
-       [Display(Name ="drawingNoVer")]
-       [MaxLength(10)]
-       [Column(TypeName="nvarchar(10)")]
-       [Editable(true)]
-       public string drawingNoVer { get; set; }
+        /// <summary>
+        ///鎶�鏈姸鎬�
+        /// </summary>
+        [Display(Name = "drawingNoVer")]
+        [MaxLength(10)]
+        [Column(TypeName = "nvarchar(10)")]
+        [Editable(true)]
+        public string drawingNoVer { get; set; }
 
         /// <summary>
         ///浜у搧鍚嶇О
         /// </summary>
-        [Display(Name ="productName")]
-       [MaxLength(40)]
-       [Column(TypeName="nvarchar(40)")]
-       [Editable(true)]
-       public string productName { get; set; }
+        [Display(Name = "productName")]
+        [MaxLength(40)]
+        [Column(TypeName = "nvarchar(40)")]
+        [Editable(true)]
+        public string productName { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="quantity")]
-       [Column(TypeName="int")]
-       [Editable(true)]
-       public int? quantity { get; set; }
+        /// <summary>
+        ///搴撳尯
+        /// </summary>
+        [Display(Name = "搴撳尯")]
+        [MaxLength(15)]
+        [Column(TypeName = "nvarchar(15)")]
+        public string area { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Display(Name ="typeID")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string typeID { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "quantity")]
+        [Column(TypeName = "int")]
+        [Editable(true)]
+        public int? quantity { get; set; }
 
-       /// <summary>
-       ///
-       /// </summary>
-       [Key]
-       [Display(Name ="stackNoRange")]
-       [Column(TypeName="int")]
-       [Editable(true)]
-       [Required(AllowEmptyStrings=false)]
-       public int stackNoRange { get; set; }
+        /// <summary>
+        ///
+        /// </summary>
+        [Display(Name = "typeID")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string typeID { get; set; }
+
+        /// <summary>
+        ///
+        /// </summary>
+        [Key]
+        [Display(Name = "stackNoRange")]
+        [Column(TypeName = "int")]
+        [Editable(true)]
+        [Required(AllowEmptyStrings = false)]
+        public int stackNoRange { get; set; }
 
         /// <summary>
         ///宸ュ崟绫诲瀷 (17-鏈哄姞宸� 28-妫�娴嬬嚎 101-绉诲簱澶栧崗)
         /// </summary>
-        [Display(Name ="processCode")]
-       [MaxLength(20)]
-       [Column(TypeName="nvarchar(20)")]
-       [Editable(true)]
-       public string processCode { get; set; }
+        [Display(Name = "processCode")]
+        [MaxLength(20)]
+        [Column(TypeName = "nvarchar(20)")]
+        [Editable(true)]
+        public string processCode { get; set; }
 
-       
+
     }
 }
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
index b1824b5..d2a3af3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
@@ -171,7 +171,7 @@
                 ////绌烘墭浠诲姟闇�淇敼閫昏緫
                 if (station2.stationCode.Contains("X"))
                     station2.quantity = 0;// task.agv_tasktype.Contains("TaskType_EmptyPallet") ? 0 : task.agv_qty; //task.agv_qty;
-                else if (station2.area == "10" || station2.area == "11") //鍏ュ簱绌烘墭浠诲姟
+                else if (station2.area == "10" || station2.area == "11" || (station2.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet")) //鍏ュ簱绌烘墭浠诲姟
                     station2.quantity = station2.quantity + task.agv_qty;
                 else
                     station2.quantity = task.agv_qty;
@@ -199,7 +199,7 @@
                 //    station1.quantity = 0;
                 #endregion
 
-                if (station1.area == "10" || station1.area == "11") //鍑哄簱绌烘墭浠诲姟
+                if (station1.area == "10" || station1.area == "11" || (station1.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet")) //鍑哄簱绌烘墭浠诲姟
                 {
                     station1.location_state = LocationStateEnum.Stroge.ToString();
                     station1.quantity = station1.quantity - 1;
@@ -212,6 +212,7 @@
                 {
                     station1.location_state = LocationStateEnum.Empty.ToString();
                     station1.Number = string.Empty;
+                    station1.billetID = string.Empty;
                     station1.heatNumber = string.Empty;
                     station1.stationType = string.Empty;
                     station1.tray_status = string.Empty;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
index dc51536..ca5afa7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
@@ -119,6 +119,7 @@
             station.stationType = saveModel.MainData["stationType"].ToString();
             station.heatNumber = saveModel.MainData["heatNumber"].ToString();
             station.Number = saveModel.MainData["Number"].ToString();
+            station.billetID = saveModel.MainData["billetID"].ToString();
             station.remark = saveModel.MainData["remark"].ToString();
             station.tray_type = saveModel.MainData["tray_type"].ToString();
             if (list.Count == 0)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
index 16b2404..371f541 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs"
@@ -12,7 +12,7 @@
         [Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 5, /*IsEnabled = true,*/ SkipWhileExecuting = true)]
         public void TaskTime()
         {
-            //AGVServer.SendAgvTask();
+            AGVServer.SendAgvTask();
         }
     }
 }

--
Gitblit v1.9.3