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/F_BCK_Task.cs | 517 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 258 insertions(+), 259 deletions(-) diff --git a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/F_BCK_Task.cs b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/F_BCK_Task.cs index f71eb1f..74a0cf3 100644 --- a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/F_BCK_Task.cs +++ b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/F_BCK_Task.cs @@ -4,6 +4,7 @@ using System; using System.Linq; using System.Threading; +using System.Threading.Tasks; using WIDESEA_Common; using WIDESEA_Common.DBHelper; using WIDESEA_Common.Tools; @@ -27,53 +28,22 @@ { if (Interlocked.Exchange(ref _readFBCKSignalsoZBCK, 1) == 0) { - - try + Task.Run(() => { - FreeDB freeDB = new FreeDB(); - VOLContext Context = new VOLContext(); - Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context); - Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context); - - //34鍑哄彛锛屼緵缁欒緤鍒嗕笂鏂欏彛 - var location_34 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ34" && t.location_state == "LocationState_Empty" && t.status == 1 && t.task == 2 && t.tpgd == 0).First(); - //36绌烘灦绔嬪嵆琛ユ枡 - //34绌烘灦绔嬪嵆琛ユ枡 - if (location_34 != null) + try { + FreeDB freeDB = new FreeDB(); + VOLContext Context = new VOLContext(); + Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context); + Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context); - 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.upper_code.Contains("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && 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)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟 + //34鍑哄彛锛屼緵缁欒緤鍒嗕笂鏂欏彛 + var location_34 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ34" && t.location_state == "LocationState_Empty" && t.status == 1 && t.task == 2 && t.tpgd == 0).First(); + //36绌烘灦绔嬪嵆琛ユ枡 + //34绌烘灦绔嬪嵆琛ユ枡 + dt_agvtask dt_Agvtask34 = agvRepository.FindFirst(x=>x.agv_toaddress== "FJ-BCHCJ34"); + if (dt_Agvtask34 != null && location_34.task==2) { - //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 = "璐熸瀬AGV璋冨害"; - agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(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.update_time = DateTime.Now; - location_34_cp.task = 1; - 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.update_time = DateTime.Now; location_34.task = 1; location_34.logic_col = 1; @@ -82,127 +52,95 @@ { 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}", $"绠旀潗搴撲换鍔$敓鎴�"); - } - + int end = locRepository.Update(location_34, true); } - - } - - //36鍑哄彛锛屼緵缁欐秱甯冧笂鏂欏彛 - var location_36 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ36" && t.location_state == "LocationState_Empty" && t.status == 1 && t.task == 2 && t.tpgd == 0).First(); - //36绌烘灦绔嬪嵆琛ユ枡 - if (location_36 != 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.upper_code.Contains("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && 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 != null && dt_Agvtask34==null) { - //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 = "璐熸瀬AGV璋冨害"; - agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(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 = ""; + 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.upper_code.Contains("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && 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)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟 + { + //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 = "璐熸瀬AGV璋冨害"; + agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(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_36_cp.update_time = DateTime.Now; - location_36_cp.task = 1; + location_34_cp.update_time = DateTime.Now; + location_34_cp.task = 1; + 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.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) + { + 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); + } + + } + + } + + //36鍑哄彛锛屼緵缁欐秱甯冧笂鏂欏彛 + var location_36 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ36" && t.location_state == "LocationState_Empty" && t.status == 1 && t.task == 2 && t.tpgd == 0).First(); + //36绌烘灦绔嬪嵆琛ユ枡 + dt_agvtask dt_Agvtask36 = agvRepository.FindFirst(x => x.agv_toaddress == "FJ-BCHCJ36"); + if (dt_Agvtask36 != null && location_36.task == 2) + { + 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) { 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}", $"绠旀潗搴撲换鍔$敓鎴�"); - } + int end = locRepository.Update(location_36, true); } - - - } - - - //35鍏ュ彛锛屼緵娑傚竷涓嬫枡 - var location_35 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ35" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2 && t.tpgd == 1 && (t.logic_row == "TBXL-BCK" || t.logic_col == 1)).First(); - //35鏈夋枡绔嬪嵆鎼蛋 - if (location_35 != null) - { - - int index = 0; - int b = 7; - DateTime time = DateTime.Now; - Double STAMP = 0; - do + if (location_36 != null && dt_Agvtask36 == null) { - 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 == "LocationState_Stored" && location_35.tpgd == 1 && d.status == 1 && (location_35.logic_row == "TBXL-BCK" || location_35.logic_col == 1)); - 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("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && t.task == 2).First(); - if (location_35_cp != 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.upper_code.Contains("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && 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)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚琛ユ枡鎼繍浠诲姟 { - //35璐т綅琛ユ枡浠诲姟 + + //36璐т綅琛ユ枡浠诲姟 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_36_cp.upper_code; + agvtask.agv_toaddress = location_36.upper_code; agvtask.agv_code = "璐熸瀬AGV璋冨害"; - agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(35)"; + agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(36琛ユ枡)"; agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString(); agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString(); agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷 @@ -214,137 +152,198 @@ agvtask.agv_barcode = ""; - location_35_cp.update_time = DateTime.Now; - location_35_cp.task = 1; - //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; + location_36_cp.update_time = DateTime.Now; + location_36_cp.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); + 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_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}", $"绠旀潗搴撲换鍔$敓鎴�"); } } + + } + //35鍏ュ彛锛屼緵娑傚竷涓嬫枡 + var location_35 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ35" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2 && t.tpgd == 1 && (t.logic_row == "TBXL-BCK" || t.logic_col == 1)).First(); + //35鏈夋枡绔嬪嵆鎼蛋 + if (location_35 != null) + { + + 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 == "LocationState_Stored" && location_35.tpgd == 1 && d.status == 1 && (location_35.logic_row == "TBXL-BCK" || location_35.logic_col == 1)); + 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("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && t.task == 2).First(); + 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 = "璐熸瀬AGV璋冨害"; + agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(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.update_time = DateTime.Now; + location_35_cp.task = 1; + //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); + } + } + } + + + } + + //37鍏ュ彛锛屼緵鎻愬崌鏈轰笅鏂� + var location_37 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ37" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2 && t.tpgd == 1 && (t.logic_row == "TSJXL-BCK" || t.logic_col == 1)).First(); + + //37鏈夋枡绔嬪嵆鎼蛋 + if (location_37 != null) + { + + 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)); + 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("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && t.task == 2).First(); + //dt_agvtask task_37 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ37" || t.agv_toaddress == "FJ-BCHCJ37").FirstOrDefault(); + if (location_37_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚鎼繍浠诲姟 + { + //37璐т綅鎼繍浠诲姟 + 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 = "璐熸瀬AGV璋冨害"; + agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(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.update_time = DateTime.Now; + location_37_cp.task = 1; + //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.update_time = DateTime.Now; + location_37.task = 1; + 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); + } + } + } + + + } } - - //37鍏ュ彛锛屼緵鎻愬崌鏈轰笅鏂� - var location_37 = freeDB.Select<base_ware_location>().Where(t => t.upper_code == "FJ-BCHCJ37" && t.location_state == "LocationState_Stored" && t.status == 1 && t.task == 2 && t.tpgd == 1 && (t.logic_row == "TSJXL-BCK" || t.logic_col == 1)).First(); - - //37鏈夋枡绔嬪嵆鎼蛋 - if (location_37 != null) + catch (Exception ex) { - - 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)); - 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("FJ-BCHCJ") && t.light_color != "SB" && t.status == 1 && t.task == 2).First(); - //dt_agvtask task_37 = agvRepository.Find(t => t.agv_fromaddress == "FJ-BCHCJ37" || t.agv_toaddress == "FJ-BCHCJ37").FirstOrDefault(); - if (location_37_cp != null)//鎵惧埌鍚堥�傝揣浣嶏紝鐢熸垚鎼繍浠诲姟 - { - //37璐т綅鎼繍浠诲姟 - 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 = "璐熸瀬AGV璋冨害"; - agvtask.agv_remark = "璐熸瀬绠旀潗搴撴惉杩�(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.update_time = DateTime.Now; - location_37_cp.task = 1; - //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.update_time = DateTime.Now; - location_37.task = 1; - 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}", $"绠旀潗搴撲换鍔$敓鎴�"); - } - } - } - - + WriteLog.GetLog().Write($"璐熸瀬娉婃潗锛歿DateTime.Now} --------------{ex}", $"璐熸瀬娉婃潗璋冨害"); } - } - catch (Exception ex) - { + finally + { - throw new Exception(ex.Message); - } - finally - { - - Interlocked.Exchange(ref _readFBCKSignalsoZBCK, 0); - } + Interlocked.Exchange(ref _readFBCKSignalsoZBCK, 0); + } + }); + } } -- Gitblit v1.9.3