From 8f392cc88b0768b74efca3b68785cf5aa1c38e70 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 06 十一月 2024 14:28:20 +0800
Subject: [PATCH] 代码更新

---
 wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_BCK_Task.cs |  509 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 269 insertions(+), 240 deletions(-)

diff --git a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_BCK_Task.cs b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_BCK_Task.cs
index 459d0d3..f0ca42f 100644
--- a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_BCK_Task.cs
+++ b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_BCK_Task.cs
@@ -3,6 +3,7 @@
 using System;
 using System.Linq;
 using System.Threading;
+using System.Threading.Tasks;
 using WIDESEA_Common;
 using WIDESEA_Common.DBHelper;
 using WIDESEA_Common.LoctionEnum;
@@ -27,192 +28,51 @@
         {
             if (Interlocked.Exchange(ref _readZBCKSignalsoZ, 1) == 0)
             {
-
-                try
+                Task.Run(() =>
                 {
-                    FreeDB freeDB = new FreeDB();
-                    VOLContext Context = new VOLContext();
-                    Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context);
-                    Ibase_routing_tableRepository routingRepository = new base_routing_tableRepository(Context);
-                    Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context);
-
-                    //34鍑哄彛锛屼緵缁欒緤鍒嗕笂鏂欏彛
-                    var location_34 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ32" && t.task == 2 && t.status == 1).First();
-                    //34绌烘灦绔嬪嵆琛ユ枡
-                    if (location_34 != null)
+                    try
                     {
-                        if (location_34.location_state == LoctionStateEnum.LocationState_Empty.ToString() && location_34.tpgd == 0)
+                        FreeDB freeDB = new FreeDB();
+                        VOLContext Context = new VOLContext();
+                        Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context);
+                        Ibase_routing_tableRepository routingRepository = new base_routing_tableRepository(Context);
+                        Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context);
+
+                        //34鍑哄彛锛屼緵缁欒緤鍒嗕笂鏂欏彛
+                        var location_34 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ32" && t.task == 2 && t.status == 1).First();
+                        //34绌烘灦绔嬪嵆琛ユ枡
+                        dt_agvtask dt_Agvtask34 = agvRepository.FindFirst(x => x.agv_toaddress == "ZJ-BCHCJ32");
+                        if (dt_Agvtask34 != null && location_34.task == 2)
                         {
-                            var location_34_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Stored" && t.logic_row.ToString() == "TBXL-BCK" && t.logic_col == 1/*姝e父鏂�*/  && t.status == 1 && t.upper_code.Contains("ZJ-BCHCJ") && t.status == 1 && t.light_color != "SB" && t.task == 2).OrderBy(t => t.update_time).First();
-
-                            //dt_agvtask task_34 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ34" || t.agv_toaddress == "FJ-BCHCJ34").FirstOrDefault();
-
-                            if (location_34_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟
+                            location_34.update_time = DateTime.Now;
+                            location_34.task = 1;
+                            location_34.logic_col = 1;
+                            var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                            if (entrys != null)
                             {
-
-                                //34璐т綅琛ユ枡浠诲姟
-                                dt_agvtask agvtask = new dt_agvtask();
-                                agvtask.agv_id = Guid.NewGuid();
-                                agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
-                                agvtask.agv_fromaddress = location_34_cp.upper_code;
-                                agvtask.agv_toaddress = location_34.upper_code;
-                                agvtask.agv_code = "姝f瀬AGV璋冨害";
-                                agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(34琛ユ枡)";
-                                agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
-                                agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
-                                agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷
-                                agvtask.agv_materielid = "";
-                                agvtask.agv_qty = 1;
-                                agvtask.agv_createtime = DateTime.Now;
-                                agvtask.agv_grade = 0;//浠诲姟浼樺厛绾�
-                                agvtask.agv_userid = "WCS";
-                                agvtask.agv_barcode = "";
-
-                                //閿佸畾棣栧熬璐т綅
-                                location_34_cp.task = 1;
-
-                                location_34_cp.update_time = DateTime.Now;
-                                var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
-                                if (entry != null)
-                                {
-                                    entry.State = EntityState.Detached;
-                                }
-                             int begin=   locRepository.Update(location_34_cp, d => new { d.update_time, d.task }, true);
-
-                                location_34.task = 1;
-                                location_34.logic_col = 1;
-                                location_34.update_time = DateTime.Now;
-                                var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
-                                if (entrys != null)
-                                {
-                                    entrys.State = EntityState.Detached;
-                                }
-                              int end= locRepository.Update(location_34, d => new { d.update_time, d.task, d.logic_col }, true);
-                                if (begin == 1 && end == 1)
-                                {
-
-                                    agvRepository.Add(agvtask, true);
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_34_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_34_cp.tpgd},鐘舵�侊細{location_34_cp.location_state},鏇存柊鏃堕棿锛歿location_34_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_34.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_34.tpgd},鐘舵�侊細{location_34.location_state},鏇存柊鏃堕棿锛歿location_34.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
-                                }
+                                entrys.State = EntityState.Detached;
                             }
-
+                            int end = locRepository.Update(location_34, true);
                         }
-                    }
-
-                    //36鍑哄彛锛屼緵缁欐秱甯冧笂鏂欏彛
-                    var location_36 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ34" && t.task == 2 && t.status == 1 ).First();
-                    //36绌烘灦绔嬪嵆琛ユ枡
-                    if (location_36 != null)
-                    {
-                        if (location_36.location_state == LoctionStateEnum.LocationState_Empty.ToString() && location_36.tpgd == 0)
+                        if (location_34 != null && dt_Agvtask34 == null)
                         {
-                            var location_36_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Stored" && t.logic_row.ToString() == "TSJXL-BCK" && t.logic_col == 1 && t.status == 1 && t.upper_code.Contains("ZJ-BCHCJ") && t.light_color != "SB" && t.task == 2).OrderBy(t => t.update_time).First();
-
-                            //dt_agvtask task_36 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ36" || t.agv_toaddress == "FJ-BCHCJ36").FirstOrDefault();
-
-                            if (location_36_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟
+                            if (location_34.location_state == LoctionStateEnum.LocationState_Empty.ToString() && location_34.tpgd == 0)
                             {
+                                var location_34_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Stored" && t.logic_row.ToString() == "TBXL-BCK" && t.logic_col == 1/*姝e父鏂�*/  && t.status == 1 && t.upper_code.Contains("ZJ-BCHCJ") && t.status == 1 && t.light_color != "SB" && t.task == 2).OrderBy(t => t.update_time).First();
 
-                                //36璐т綅琛ユ枡浠诲姟
-                                dt_agvtask agvtask = new dt_agvtask();
-                                agvtask.agv_id = Guid.NewGuid();
-                                agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
-                                agvtask.agv_fromaddress = location_36_cp.upper_code;
-                                agvtask.agv_toaddress = location_36.upper_code;
-                                agvtask.agv_code = "姝f瀬AGV璋冨害";
-                                agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(36琛ユ枡)";
-                                agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
-                                agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
-                                agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷
-                                agvtask.agv_materielid = "";
-                                agvtask.agv_qty = 1;
-                                agvtask.agv_createtime = DateTime.Now;
-                                agvtask.agv_grade = 0;//浠诲姟浼樺厛绾�
-                                agvtask.agv_userid = "WCS";
-                                agvtask.agv_barcode = "";
-        
-                                //閿佸畾棣栧熬璐т綅
-                                location_36_cp.update_time = DateTime.Now;
-                                location_36_cp.task = 1;
+                                //dt_agvtask task_34 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ34" || t.agv_toaddress == "FJ-BCHCJ34").FirstOrDefault();
 
-                                var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
-                                if (entrys != null)
+                                if (location_34_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟
                                 {
-                                    entrys.State = EntityState.Detached;
-                                }
-                              int begin=  locRepository.Update(location_36_cp, d => new { d.update_time, d.task }, true);
 
-                                location_36.update_time = DateTime.Now;
-                                location_36.task = 1;
-                                location_36.logic_col = 1;
-                                var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
-                                if (entry != null)
-                                {
-                                    entry.State = EntityState.Detached;
-                                }
-                             int end=   locRepository.Update(location_36, d => new { d.update_time, d.task, d.logic_col }, true);
-                                if (begin == 1 && end == 1)
-                                {
-                                    agvRepository.Add(agvtask, true);
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_36_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_36_cp.tpgd},鐘舵�侊細{location_36_cp.location_state},鏇存柊鏃堕棿锛歿location_36_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_36.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_36.tpgd},鐘舵�侊細{location_36.location_state},鏇存柊鏃堕棿锛歿location_36.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
-
-                                    WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
-                                }
-                            }
-
-                        }
-                    }
-                    //35鍏ュ彛锛屼緵娑傚竷涓嬫枡
-                    var location_35 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ33" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2).First();
-                    //35鏈夋枡绔嬪嵆鎼蛋
-                    if (location_35 != null)
-                    {
-                        if (location_35.location_state == LocationStateEnum.LocationState_Stored.ToString() && location_35.tpgd == 1 && (location_35.logic_row == "TBXL-BCK" || location_35.logic_col == 1))
-                        {
-                            int index = 0;
-                            int b = 7;
-                            DateTime time = DateTime.Now;
-                            Double STAMP = 0;
-                            do
-                            {
-                                DateTime time2 = DateTime.Now;
-                                STAMP = (time2 - time).TotalSeconds;
-                                base_ware_location ware_Location = locRepository.FindFirst(d => d.upper_code == location_35.upper_code
-                    && d.location_state == LocationStateEnum.LocationState_Stored.ToString() && d.status == 1 && location_35.tpgd == 1 && (location_35.logic_row == "TBXL-BCK" || location_35.logic_col == 1) && d.task == 2);
-                                if (ware_Location == null)
-                                {
-                                    index = 3;
-                                    break;
-                                }
-
-                            } while (STAMP < b);
-                            if (index != 3)
-                            {
-                                var location_35_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Empty" && t.upper_code.Contains("ZJ-BCHCJ") && t.status == 1 && t.light_color != "SB" && t.task == 2).OrderBy(d => Int32.Parse(d.light_color)).First();
-                                //dt_agvtask task_35 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ35" || t.agv_toaddress == "FJ-BCHCJ35").FirstOrDefault();
-
-                                if (location_35_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚鎼繍浠诲姟
-                                {
-                                    //35璐т綅琛ユ枡浠诲姟
+                                    //34璐т綅琛ユ枡浠诲姟
                                     dt_agvtask agvtask = new dt_agvtask();
                                     agvtask.agv_id = Guid.NewGuid();
                                     agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
-                                    agvtask.agv_fromaddress = location_35.upper_code;
-                                    agvtask.agv_toaddress = location_35_cp.upper_code;
+                                    agvtask.agv_fromaddress = location_34_cp.upper_code;
+                                    agvtask.agv_toaddress = location_34.upper_code;
                                     agvtask.agv_code = "姝f瀬AGV璋冨害";
-                                    agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(35)";
+                                    agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(34琛ユ枡)";
                                     agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
                                     agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
                                     agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷
@@ -224,80 +84,78 @@
                                     agvtask.agv_barcode = "";
 
                                     //閿佸畾棣栧熬璐т綅
-                                    location_35_cp.task = 1;
-                                    location_35_cp.update_time = DateTime.Now;
-                                    //location_35_cp.logic_row = "TBXL-BCK";
+                                    location_34_cp.task = 1;
+
+                                    location_34_cp.update_time = DateTime.Now;
                                     var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
                                     if (entry != null)
                                     {
                                         entry.State = EntityState.Detached;
                                     }
-                                   int end= locRepository.Update(location_35_cp, d => new { d.update_time, d.task }, true);
+                                    int begin = locRepository.Update(location_34_cp, d => new { d.update_time, d.task }, true);
 
-                                    location_35.update_time = DateTime.Now;
-                                    location_35.task = 1;
+                                    location_34.task = 1;
+                                    location_34.logic_col = 1;
+                                    location_34.update_time = DateTime.Now;
                                     var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
                                     if (entrys != null)
                                     {
                                         entrys.State = EntityState.Detached;
                                     }
-                                 int begin=  locRepository.Update(location_35, d => new { d.update_time, d.task }, true);
-
+                                    int end = locRepository.Update(location_34, d => new { d.update_time, d.task, d.logic_col }, true);
                                     if (begin == 1 && end == 1)
                                     {
+
                                         agvRepository.Add(agvtask, true);
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_35.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_35.tpgd},鐘舵�侊細{location_35.location_state},鏇存柊鏃堕棿锛歿location_35.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_34_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_34_cp.tpgd},鐘舵�侊細{location_34_cp.location_state},鏇存柊鏃堕棿锛歿location_34_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_35_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_35_cp.tpgd},鐘舵�侊細{location_35_cp.location_state},鏇存柊鏃堕棿锛歿location_35_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_34.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_34.tpgd},鐘舵�侊細{location_34.location_state},鏇存柊鏃堕棿锛歿location_34.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
                                     }
                                 }
+
                             }
                         }
-                    }
 
-                    //37鍏ュ彛锛屼緵鎻愬崌鏈轰笅鏂�
-                    var location_37 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ35" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2).First();
-                    //37鏈夋枡绔嬪嵆鎼蛋
-                    if (location_37 != null)
-                    {
-                        if (location_37.location_state == LocationStateEnum.LocationState_Stored.ToString() && location_37.tpgd == 1 && (location_37.logic_row == "TSJXL-BCK" || location_37.logic_col == 1))
+                        //36鍑哄彛锛屼緵缁欐秱甯冧笂鏂欏彛
+                        var location_36 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ34" && t.task == 2 && t.status == 1).First();
+                        //36绌烘灦绔嬪嵆琛ユ枡
+                        dt_agvtask dt_Agvtask36 = agvRepository.FindFirst(x => x.agv_toaddress == "ZJ-BCHCJ34");
+                        if (dt_Agvtask36 != null && location_36.task == 2)
                         {
-                            int index = 0;
-                            int b = 7;
-                            DateTime time = DateTime.Now;
-                            Double STAMP = 0;
-                            do
+                            location_36.update_time = DateTime.Now;
+                            location_36.task = 1;
+                            location_36.logic_col = 1;
+                            var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                            if (entrys != null)
                             {
-                                DateTime time2 = DateTime.Now;
-                                STAMP = (time2 - time).TotalSeconds;
-                                base_ware_location ware_Location = locRepository.FindFirst(d => d.upper_code == location_37.upper_code
-                    && d.location_state == LocationStateEnum.LocationState_Stored.ToString() && location_37.tpgd == 1 && d.status == 1 && (location_37.logic_row == "TSJXL-BCK" || location_37.logic_col == 1) && d.task == 2);
-                                if (ware_Location == null)
-                                {
-                                    index = 3;
-                                    break;
-                                }
+                                entrys.State = EntityState.Detached;
+                            }
+                            int end = locRepository.Update(location_36, true);
+                        }
+                        if (location_36 != null && dt_Agvtask36==null)
+                        {
+                            if (location_36.location_state == LoctionStateEnum.LocationState_Empty.ToString() && location_36.tpgd == 0)
+                            {
+                                var location_36_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Stored" && t.logic_row.ToString() == "TSJXL-BCK" && t.logic_col == 1 && t.status == 1 && t.upper_code.Contains("ZJ-BCHCJ") && t.light_color != "SB" && t.task == 2).OrderBy(t => t.update_time).First();
 
-                            } while (STAMP < b);
-                            if (index != 3)
-                            {
-                                var location_37_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Empty" && t.upper_code.Contains("ZJ-BCHCJ") && t.status == 1 && t.light_color != "SB" && t.task == 2).OrderBy(d => Int32.Parse(d.light_color)).First();
-                                //dt_agvtask task_37 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ37" || t.agv_toaddress == "FJ-BCHCJ37").FirstOrDefault();
-                                if (location_37_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚鎼繍浠诲姟
+                                //dt_agvtask task_36 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ36" || t.agv_toaddress == "FJ-BCHCJ36").FirstOrDefault();
+
+                                if (location_36_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟
                                 {
+
                                     //36璐т綅琛ユ枡浠诲姟
                                     dt_agvtask agvtask = new dt_agvtask();
                                     agvtask.agv_id = Guid.NewGuid();
                                     agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
-                                    agvtask.agv_fromaddress = location_37.upper_code;
-                                    agvtask.agv_toaddress = location_37_cp.upper_code;
+                                    agvtask.agv_fromaddress = location_36_cp.upper_code;
+                                    agvtask.agv_toaddress = location_36.upper_code;
                                     agvtask.agv_code = "姝f瀬AGV璋冨害";
-                                    agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(37)";
+                                    agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(36琛ユ枡)";
                                     agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
                                     agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
                                     agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷
@@ -309,56 +167,227 @@
                                     agvtask.agv_barcode = "";
 
                                     //閿佸畾棣栧熬璐т綅
-                                    location_37_cp.task = 1;
-                                    location_37_cp.update_time = DateTime.Now;
-                                    //location_37_cp.logic_row = "TSJXL-BCK";
-                                    var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
-                                    if (entry != null)
-                                    {
-                                        entry.State = EntityState.Detached;
-                                    }
-                                  int end=  locRepository.Update(location_37_cp, d => new { d.task, d.update_time }, true);
+                                    location_36_cp.update_time = DateTime.Now;
+                                    location_36_cp.task = 1;
 
-                                    location_37.task = 1;
-                                    location_37.update_time = DateTime.Now;
                                     var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
                                     if (entrys != null)
                                     {
                                         entrys.State = EntityState.Detached;
                                     }
-                                  int begin=  locRepository.Update(location_37, d => new { d.task, d.update_time }, true);
+                                    int begin = locRepository.Update(location_36_cp, d => new { d.update_time, d.task }, true);
 
-
-
+                                    location_36.update_time = DateTime.Now;
+                                    location_36.task = 1;
+                                    location_36.logic_col = 1;
+                                    var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                                    if (entry != null)
+                                    {
+                                        entry.State = EntityState.Detached;
+                                    }
+                                    int end = locRepository.Update(location_36, d => new { d.update_time, d.task, d.logic_col }, true);
                                     if (begin == 1 && end == 1)
                                     {
                                         agvRepository.Add(agvtask, true);
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_37.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_37.tpgd},鐘舵�侊細{location_37.location_state},鏇存柊鏃堕棿锛歿location_37.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_36_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_36_cp.tpgd},鐘舵�侊細{location_36_cp.location_state},鏇存柊鏃堕棿锛歿location_36_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_37_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_37_cp.tpgd},鐘舵�侊細{location_37_cp.location_state},鏇存柊鏃堕棿锛歿location_37_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_36.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_36.tpgd},鐘舵�侊細{location_36.location_state},鏇存柊鏃堕棿锛歿location_36.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
 
-                                        WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                    }
+                                }
+
+                            }
+                        }
+                        //35鍏ュ彛锛屼緵娑傚竷涓嬫枡
+                        var location_35 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ33" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2).First();
+                        //35鏈夋枡绔嬪嵆鎼蛋
+                        if (location_35 != null)
+                        {
+                            if (location_35.location_state == LocationStateEnum.LocationState_Stored.ToString() && location_35.tpgd == 1 && (location_35.logic_row == "TBXL-BCK" || location_35.logic_col == 1))
+                            {
+                                int index = 0;
+                                int b = 7;
+                                DateTime time = DateTime.Now;
+                                Double STAMP = 0;
+                                do
+                                {
+                                    DateTime time2 = DateTime.Now;
+                                    STAMP = (time2 - time).TotalSeconds;
+                                    base_ware_location ware_Location = locRepository.FindFirst(d => d.upper_code == location_35.upper_code
+                        && d.location_state == LocationStateEnum.LocationState_Stored.ToString() && d.status == 1 && location_35.tpgd == 1 && (location_35.logic_row == "TBXL-BCK" || location_35.logic_col == 1) && d.task == 2);
+                                    if (ware_Location == null)
+                                    {
+                                        index = 3;
+                                        break;
+                                    }
+
+                                } while (STAMP < b);
+                                if (index != 3)
+                                {
+                                    var location_35_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Empty" && t.upper_code.Contains("ZJ-BCHCJ") && t.status == 1 && t.light_color != "SB" && t.task == 2).OrderBy(d => Int32.Parse(d.light_color)).First();
+                                    //dt_agvtask task_35 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ35" || t.agv_toaddress == "FJ-BCHCJ35").FirstOrDefault();
+
+                                    if (location_35_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚鎼繍浠诲姟
+                                    {
+                                        //35璐т綅琛ユ枡浠诲姟
+                                        dt_agvtask agvtask = new dt_agvtask();
+                                        agvtask.agv_id = Guid.NewGuid();
+                                        agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
+                                        agvtask.agv_fromaddress = location_35.upper_code;
+                                        agvtask.agv_toaddress = location_35_cp.upper_code;
+                                        agvtask.agv_code = "姝f瀬AGV璋冨害";
+                                        agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(35)";
+                                        agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
+                                        agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
+                                        agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷
+                                        agvtask.agv_materielid = "";
+                                        agvtask.agv_qty = 1;
+                                        agvtask.agv_createtime = DateTime.Now;
+                                        agvtask.agv_grade = 0;//浠诲姟浼樺厛绾�
+                                        agvtask.agv_userid = "WCS";
+                                        agvtask.agv_barcode = "";
+
+                                        //閿佸畾棣栧熬璐т綅
+                                        location_35_cp.task = 1;
+                                        location_35_cp.update_time = DateTime.Now;
+                                        //location_35_cp.logic_row = "TBXL-BCK";
+                                        var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                                        if (entry != null)
+                                        {
+                                            entry.State = EntityState.Detached;
+                                        }
+                                        int end = locRepository.Update(location_35_cp, d => new { d.update_time, d.task }, true);
+
+                                        location_35.update_time = DateTime.Now;
+                                        location_35.task = 1;
+                                        var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                                        if (entrys != null)
+                                        {
+                                            entrys.State = EntityState.Detached;
+                                        }
+                                        int begin = locRepository.Update(location_35, d => new { d.update_time, d.task }, true);
+
+                                        if (begin == 1 && end == 1)
+                                        {
+                                            agvRepository.Add(agvtask, true);
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_35.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_35.tpgd},鐘舵�侊細{location_35.location_state},鏇存柊鏃堕棿锛歿location_35.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_35_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_35_cp.tpgd},鐘舵�侊細{location_35_cp.location_state},鏇存柊鏃堕棿锛歿location_35_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        }
                                     }
                                 }
                             }
+                        }
+
+                        //37鍏ュ彛锛屼緵鎻愬崌鏈轰笅鏂�
+                        var location_37 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "ZJ-BCHCJ35" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2).First();
+                        //37鏈夋枡绔嬪嵆鎼蛋
+                        if (location_37 != null)
+                        {
+                            if (location_37.location_state == LocationStateEnum.LocationState_Stored.ToString() && location_37.tpgd == 1 && (location_37.logic_row == "TSJXL-BCK" || location_37.logic_col == 1))
+                            {
+                                int index = 0;
+                                int b = 7;
+                                DateTime time = DateTime.Now;
+                                Double STAMP = 0;
+                                do
+                                {
+                                    DateTime time2 = DateTime.Now;
+                                    STAMP = (time2 - time).TotalSeconds;
+                                    base_ware_location ware_Location = locRepository.FindFirst(d => d.upper_code == location_37.upper_code
+                        && d.location_state == LocationStateEnum.LocationState_Stored.ToString() && location_37.tpgd == 1 && d.status == 1 && (location_37.logic_row == "TSJXL-BCK" || location_37.logic_col == 1) && d.task == 2);
+                                    if (ware_Location == null)
+                                    {
+                                        index = 3;
+                                        break;
+                                    }
+
+                                } while (STAMP < b);
+                                if (index != 3)
+                                {
+                                    var location_37_cp = freeDB.Select<base_ware_location>().Where(t => t.location_state == "LocationState_Empty" && t.upper_code.Contains("ZJ-BCHCJ") && t.status == 1 && t.light_color != "SB" && t.task == 2).OrderBy(d => Int32.Parse(d.light_color)).First();
+                                    //dt_agvtask task_37 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ37" || t.agv_toaddress == "FJ-BCHCJ37").FirstOrDefault();
+                                    if (location_37_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚鎼繍浠诲姟
+                                    {
+                                        //36璐т綅琛ユ枡浠诲姟
+                                        dt_agvtask agvtask = new dt_agvtask();
+                                        agvtask.agv_id = Guid.NewGuid();
+                                        agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
+                                        agvtask.agv_fromaddress = location_37.upper_code;
+                                        agvtask.agv_toaddress = location_37_cp.upper_code;
+                                        agvtask.agv_code = "姝f瀬AGV璋冨害";
+                                        agvtask.agv_remark = "姝f瀬绠旀潗搴撴惉杩�(37)";
+                                        agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
+                                        agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
+                                        agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷
+                                        agvtask.agv_materielid = "";
+                                        agvtask.agv_qty = 1;
+                                        agvtask.agv_createtime = DateTime.Now;
+                                        agvtask.agv_grade = 0;//浠诲姟浼樺厛绾�
+                                        agvtask.agv_userid = "WCS";
+                                        agvtask.agv_barcode = "";
+
+                                        //閿佸畾棣栧熬璐т綅
+                                        location_37_cp.task = 1;
+                                        location_37_cp.update_time = DateTime.Now;
+                                        //location_37_cp.logic_row = "TSJXL-BCK";
+                                        var entry = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                                        if (entry != null)
+                                        {
+                                            entry.State = EntityState.Detached;
+                                        }
+                                        int end = locRepository.Update(location_37_cp, d => new { d.task, d.update_time }, true);
+
+                                        location_37.task = 1;
+                                        location_37.update_time = DateTime.Now;
+                                        var entrys = locRepository.DbContext.ChangeTracker.Entries<base_ware_location>().FirstOrDefault();
+                                        if (entrys != null)
+                                        {
+                                            entrys.State = EntityState.Detached;
+                                        }
+                                        int begin = locRepository.Update(location_37, d => new { d.task, d.update_time }, true);
 
 
+
+                                        if (begin == 1 && end == 1)
+                                        {
+                                            agvRepository.Add(agvtask, true);
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum}", $"绠旀潗搴撲换鍔$敓鎴�");
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"璧风偣璐т綅銆恵location_37.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_37.tpgd},鐘舵�侊細{location_37.location_state},鏇存柊鏃堕棿锛歿location_37.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"缁堢偣璐т綅銆恵location_37_cp.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_37_cp.tpgd},鐘舵�侊細{location_37_cp.location_state},鏇存柊鏃堕棿锛歿location_37_cp.wireless_time}", $"绠旀潗搴撲换鍔$敓鎴�");
+
+                                            //WriteDBLog.Info($"绠旀潗搴撲换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛  {DateTime.Now} -------------- {Environment.NewLine}", $"绠旀潗搴撲换鍔$敓鎴�");
+                                        }
+                                    }
+                                }
+
+
+                            }
                         }
                     }
-                }
-                catch (Exception ex)
-                {
+                    catch (Exception ex)
+                    {
+                        WriteLog.GetLog().Write($"绠旀潗搴撲换鍔$敓鎴愶細{DateTime.Now} --------------{ex}", $"绠旀潗搴撲换鍔$敓鎴�");
+                    }
+                    finally
+                    {
 
-                    throw new Exception(ex.Message);
-                }
-                finally
-                {
-
-                    Interlocked.Exchange(ref _readZBCKSignalsoZ, 0);
-                }
+                        Interlocked.Exchange(ref _readZBCKSignalsoZ, 0);
+                    }
+                });
+                
             }
         }
 

--
Gitblit v1.9.3