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/Z_TBSB_UPTask.cs | 186 ++++++++++++++++++++++++----------------------
1 files changed, 97 insertions(+), 89 deletions(-)
diff --git a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_UPTask.cs b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_UPTask.cs
index 176ccb5..8258c82 100644
--- a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_UPTask.cs
+++ b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/Equipment/Z_TBSB_UPTask.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
+using System.Threading.Tasks;
using WIDESEA_Common;
using WIDESEA_Common.DBHelper;
using WIDESEA_Common.LoctionEnum;
@@ -26,105 +27,112 @@
{
if (Interlocked.Exchange(ref _readZTBSignalsoZ, 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);
- List<string> TBSBS = new List<string> { "娑傚竷鏈烘鏋�1", "娑傚竷鏈烘鏋�2", "娑傚竷鏈烘鏋�3", "娑傚竷鏈烘鏋�4" };
-
- //寰幆澶勭悊娑傚竷璁惧涓婃枡璇锋眰
- foreach (var TBSB in TBSBS)
+ try
{
- string SB_Up_Location = "ZJSL-TBSB" + TBSB.Replace("娑傚竷鏈烘鏋�", "");//鎷兼帴娑傚竷涓婃枡鍙�
- if (WCSService.Clients == null)
- {
- return;
- }
- PLCClient plc = WCSService.Clients.Find(v => v.PLCName == TBSB);
- if (plc == null)
- {
- continue;
- }
- //褰撳墠璁惧鏈夋病鏈変笂鏂欒姹�
- bool GYR_RFX = plc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11093.00").Content;
- //Convert.ToBoolean(plc.ReadValue("R_Feedingrequest".ToString(), SB_Up_Location));
- if (GYR_RFX)
- {
- //鏌ョ湅褰撳墠娑傚竷鏈鸿澶囨槸鍚︽湁AGV浠诲姟
- var SBtask = agvRepository.FindFirst(f => f.agv_fromaddress == SB_Up_Location || f.agv_toaddress == SB_Up_Location);
- //鏈夌粨鏉熸湰娆″惊鐜� if (SBtask != null) { continue; }
- List<base_routing_table> Routing_Table = routingRepository.Find(d => d.route_end == SB_Up_Location);
+ 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);
+ List<string> TBSBS = new List<string> { "娑傚竷鏈烘鏋�1", "娑傚竷鏈烘鏋�2", "娑傚竷鏈烘鏋�3", "娑傚竷鏈烘鏋�4" };
- //鎵惧埌瀵瑰簲绠旀潗搴撹揣浣嶏紙36鍙蜂綅缃級锛屽苟纭鏈夋枡
- base_ware_location location_36 = locRepository.FindFirst(t => t.upper_code == "ZJ-BCHCJ34" && t.location_state == LoctionStateEnum.LocationState_Stored.ToString() && t.status == 1 && t.logic_col == 1 && t.task == 2);
- if (location_36 != null)
+ //寰幆澶勭悊娑傚竷璁惧涓婃枡璇锋眰
+ foreach (var TBSB in TBSBS)
+ {
+ string SB_Up_Location = "ZJSL-TBSB" + TBSB.Replace("娑傚竷鏈烘鏋�", "");//鎷兼帴娑傚竷涓婃枡鍙�
+ if (WCSService.Clients == null)
{
- dt_agvtask agvtask_36 = agvRepository.Find(t => t.agv_fromaddress == location_36.upper_code).FirstOrDefault();
- if (agvtask_36 != null)
- {
- return;
- }
- //鐢熸垚娑傚竷鏈轰笂鏂欎换鍔�
- dt_agvtask agvtask = new dt_agvtask()
- {
- agv_id = Guid.NewGuid(),
- agv_tasknum = "KH-" + IdenxManager.GetTaskNo(),
- agv_fromaddress = location_36.upper_code,
- agv_toaddress = SB_Up_Location,
- agv_code = "姝f瀬AGV璋冨害",
- agv_remark = "娑傚竷涓婃枡浠诲姟",
- agv_taskstate = AGVTaskStateEnum.Create.ToString(),
- agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString(),
- agv_worktype = 1,//宸ヤ綔绫诲瀷
- agv_materielid = "",
- agv_qty = 1,
- agv_createtime = DateTime.Now,
- agv_grade = 0,//浠诲姟浼樺厛绾�
- agv_userid = "WCS",
- agv_barcode = "",
- };
- //WriteLog.GetLog($"浠诲姟鐢熸垚璁板綍").Write($"浠诲姟鍙凤細{agvtask.agv_tasknum}锛岃捣鐐箋location_36.upper_code}鍏夌數锛歿location_36.created_user}=>缁堢偣锛歿SB_Up_Location}锛屼换鍔″凡鐢熸垚", "浠诲姟鐢熸垚璁板綍");
-
+ return;
+ }
+ PLCClient plc = WCSService.Clients.Find(v => v.PLCName == TBSB);
+ if (plc == null)
+ {
+ continue;
+ }
+ //褰撳墠璁惧鏈夋病鏈変笂鏂欒姹�
+ bool GYR_RFX = plc.OmronPLCClient.OmronFinsNetClient.ReadBool("D11093.00").Content;
+ //Convert.ToBoolean(plc.ReadValue("R_Feedingrequest".ToString(), SB_Up_Location));
+ if (GYR_RFX)
+ {
+ //鏌ョ湅褰撳墠娑傚竷鏈鸿澶囨槸鍚︽湁AGV浠诲姟
+ var SBtask = agvRepository.FindFirst(f => f.agv_fromaddress == SB_Up_Location || f.agv_toaddress == SB_Up_Location);
+ //鏈夌粨鏉熸湰娆″惊鐜�
+ if (SBtask != null) { continue; }
+ #region 璁板綍涓婃枡璇锋眰淇″彿
+ WriteLog.GetLog().Write($"{plc.PLCName}涓婃枡璇锋眰锛歿GYR_RFX}---{DateTime.Now}", $"姝f瀬娑傚竷涓婃枡璇锋眰");
+ #endregion
+ List<base_routing_table> Routing_Table = routingRepository.Find(d => d.route_end == SB_Up_Location);
- location_36.task = 1;
- location_36.update_time = DateTime.Now;
-
- int a= locRepository.Update(location_36, d => new { d.task, d.update_time }, true);
- if (a==1)
+ //鎵惧埌瀵瑰簲绠旀潗搴撹揣浣嶏紙36鍙蜂綅缃級锛屽苟纭鏈夋枡
+ base_ware_location location_36 = locRepository.FindFirst(t => t.upper_code == "ZJ-BCHCJ34" && t.location_state == LoctionStateEnum.LocationState_Stored.ToString() && t.status == 1 && t.logic_col == 1 && t.task == 2);
+ if (location_36 != null)
{
+ dt_agvtask agvtask_36 = agvRepository.Find(t => t.agv_fromaddress == location_36.upper_code).FirstOrDefault();
+ if (agvtask_36 != null)
+ {
+ return;
+ }
+ //鐢熸垚娑傚竷鏈轰笂鏂欎换鍔�
+ dt_agvtask agvtask = new dt_agvtask()
+ {
+ agv_id = Guid.NewGuid(),
+ agv_tasknum = "KH-" + IdenxManager.GetTaskNo(),
+ agv_fromaddress = location_36.upper_code,
+ agv_toaddress = SB_Up_Location,
+ agv_code = "姝f瀬AGV璋冨害",
+ agv_remark = "娑傚竷涓婃枡浠诲姟",
+ agv_taskstate = AGVTaskStateEnum.Create.ToString(),
+ agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString(),
+ agv_worktype = 1,//宸ヤ綔绫诲瀷
+ agv_materielid = "",
+ agv_qty = 1,
+ agv_createtime = DateTime.Now,
+ agv_grade = 0,//浠诲姟浼樺厛绾�
+ agv_userid = "WCS",
+ agv_barcode = "",
+ };
+ //WriteLog.GetLog($"浠诲姟鐢熸垚璁板綍").Write($"浠诲姟鍙凤細{agvtask.agv_tasknum}锛岃捣鐐箋location_36.upper_code}鍏夌數锛歿location_36.created_user}=>缁堢偣锛歿SB_Up_Location}锛屼换鍔″凡鐢熸垚", "浠诲姟鐢熸垚璁板綍");
+
+
+ location_36.task = 1;
+ location_36.update_time = DateTime.Now;
+
+ int a = locRepository.Update(location_36, d => new { d.task, d.update_time }, true);
+ if (a == 1)
+ {
agvRepository.Add(agvtask, true);
- WriteDBLog.Info($"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum},璧风偣璐т綅銆恵location_36.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_36.tpgd},鐘舵�侊細{location_36.location_state},鏇存柊鏃堕棿锛歿location_36.wireless_time}", $"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�");
- WriteDBLog.Info($"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛 {DateTime.Now} -------------- {Environment.NewLine}", $"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�");
-
- }
- //WriteLog.GetLog("璁惧鍛煎彨").Write($"璁惧 {TBSB} 鍛煎彨鎴愬姛锛屼换鍔agvtask.agv_tasknum}鐢熸垚", "璁惧鍛煎彨");
- break;
- }
- else
- {
- //WriteLog.GetLog("璁惧鍛煎彨").Write($"璁惧 {TBSB} 涓婃枡鍛煎彨锛屾湭鎵惧埌婊¤冻鎼繍鏉′欢鐨勮揣鏋讹紝浠诲姟鐢熸垚澶辫触", "璁惧鍛煎彨");
- }
+ //WriteDBLog.Info($"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�").Write($"鐢熸垚浠诲姟:{agvtask.agv_tasknum},璧风偣璐т綅銆恵location_36.upper_code}銆戠姸鎬侊細鎵樼洏鍏夌數妫�娴嬶細{location_36.tpgd},鐘舵�侊細{location_36.location_state},鏇存柊鏃堕棿锛歿location_36.wireless_time}", $"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�");
+ //WriteDBLog.Info($"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�").Write($"----------------浠诲姟鐢熸垚鎴愬姛 {DateTime.Now} -------------- {Environment.NewLine}", $"銆恵TBSB}銆戜笂鏂欎换鍔$敓鎴�");
+ }
+ //WriteLog.GetLog("璁惧鍛煎彨").Write($"璁惧 {TBSB} 鍛煎彨鎴愬姛锛屼换鍔agvtask.agv_tasknum}鐢熸垚", "璁惧鍛煎彨");
+ break;
+ }
+ else
+ {
+ //WriteLog.GetLog("璁惧鍛煎彨").Write($"璁惧 {TBSB} 涓婃枡鍛煎彨锛屾湭鎵惧埌婊¤冻鎼繍鏉′欢鐨勮揣鏋讹紝浠诲姟鐢熸垚澶辫触", "璁惧鍛煎彨");
+ }
+
+ }
+ //else
+ //{
+
+ // //WriteLog.GetLog("TBZ涓婃枡鍛煎彨").Write($"璁惧锛歿TBSB} 鍐呭锛氭棤鍛煎彨璇锋眰 鏃堕棿璁板綍:{DateTime.Now}", "TBZ涓婃枡鍛煎彨");
+ //}
}
- //else
- //{
-
- // //WriteLog.GetLog("TBZ涓婃枡鍛煎彨").Write($"璁惧锛歿TBSB} 鍐呭锛氭棤鍛煎彨璇锋眰 鏃堕棿璁板綍:{DateTime.Now}", "TBZ涓婃枡鍛煎彨");
- //}
}
- }
- catch (Exception)
- {
-
- throw;
- }
- finally
- {
- Interlocked.Exchange(ref _readZTBSignalsoZ, 0);
- }
+ catch (Exception ex)
+ {
+ WriteLog.GetLog().Write($"姝f瀬娑傚竷涓婃枡锛歿DateTime.Now} --------------{ex}", $"姝f瀬娑傚竷涓婃枡");
+ }
+ finally
+ {
+ Interlocked.Exchange(ref _readZTBSignalsoZ, 0);
+ }
+ });
+
}
}
--
Gitblit v1.9.3