From febcd0c73b51b17f484ff9a9a189b1f85130c2f7 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 17 三月 2026 13:52:06 +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