From f45293a0c3c9838567d6ff01eae53157a9ed5284 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 05 三月 2026 10:59:38 +0800
Subject: [PATCH] 1
---
项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 242 ++++++++++++++++++++++++++++++------------------
1 files changed, 152 insertions(+), 90 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index b4e8964..eaab7f1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -61,10 +61,11 @@
private readonly ICacheService _cacheService;
private readonly INoticeService _noticeService;
private readonly IDt_needBarcodeRepository _needBarcodeRepository;
+ private readonly IDt_StationManagerRepository _stationManagerRepository;
private static List<string>? userTokenIds;
private static List<int>? userIds;
- public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository)
+ public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository, IDt_StationManagerRepository stationManagerRepository)
{
_taskService = taskService;
_taskExecuteDetailService = taskExecuteDetailService;
@@ -76,6 +77,7 @@
_cacheService = cacheService;
_noticeService = noticeService;
_needBarcodeRepository = needBarcodeRepository;
+ _stationManagerRepository = stationManagerRepository;
}
public async Task Execute(IJobExecutionContext context)
@@ -89,18 +91,78 @@
foreach (var station in stationManagers)
{
- var request = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.EntApply, station.stationChildCode);
- DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString());
-
- if (deviceProtocolDetails != null)
+ if (station.stationType == 8) //鐒婅鎺ヨ溅閫昏緫澶勭悊
{
- MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
- if (method != null)
+ var request = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.EntApply, station.stationChildCode);
+ if (request)
{
- method.Invoke(this, new object[] { conveyorLine, conveyorLine, station });
+ var palletcode = conveyorLine.GetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.SkidNo, station.stationChildCode);
+ var pvi = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.PVI, station.stationChildCode);
+
+ WebResponseContent response = _taskService.RequestWhiteBody(palletcode.ToString(), pvi, station).Result;
+ if (response.Status)
+ {
+ conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode);
+ }
}
}
+ if (station.stationType == 5) //鐒婅鎻愬崌鏈洪�昏緫澶勭悊
+ {
+ var request = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.EntApply, station.stationChildCode);
+ if (request)
+ {
+ var palletcode = conveyorLine.GetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.SkidNo, station.stationChildCode);
+ var pvi = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.PVI, station.stationChildCode);
+
+ WebResponseContent response = _taskService.RequestRoadWayTask(palletcode.ToString(), pvi, station).Result;
+ if (response.Status)
+ {
+ var task = _taskService.QueryBarCodeConveyorLineTask(palletcode.ToString(), station.stationChildCode);
+ if (task != null)
+ {
+ var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
+ conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare6, 3, station.stationChildCode);
+ Thread.Sleep(300);
+ conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare5, Convert.ToInt16(stationInfo.stationTCLocation), station.stationChildCode);
+ conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode);
+
+ _taskService.UpdateTaskStatusToNext(task);
+ }
+ }
+ }
+ //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInboundRoadWayNo)?.ConfigValue;
+ //if (wmsBase == null || requestTask == null)
+ //{
+ // throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ //}
+ //var wmsIpAddrss = wmsBase + requestTask;
+
+ //var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletcode, Roadways = station.Roadway, area = station.stationArea, Position = station.stationChildCode, PVI = pvi }.ToJsonString());
+ //WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ //if (!content.Status)
+ //{
+ // return;
+ //}
+
+ ////鐒婃秱鎻愬崌鏈� 鐩撮�氫汉娑傝-2 鍏ュ簱-3
+ //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare6, 3, station.stationChildCode);
+ //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare5, 5, station.stationChildCode);
+ //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode);
+ }
+
+ //DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString());
+
+ //if (deviceProtocolDetails != null)
+ //{
+ // MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
+ // if (method != null)
+ // {
+ // method.Invoke(this, new object[] { conveyorLine, conveyorLine, station });
+ // }
+ //}
//ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
//command.PVI.Replace("/0", "").Replace("\"\\u0010\\u000f", "");
@@ -154,44 +216,44 @@
return;
}
- /// <summary>
- /// 杈撻�佺嚎璇锋眰鍏ュ簱
- /// </summary>
- /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
- /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
- /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo)
- {
- var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
- ConsoleHelper.WriteSuccessLine(log);
+ ///// <summary>
+ ///// 杈撻�佺嚎璇锋眰鍏ュ簱
+ ///// </summary>
+ ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
+ ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
+ ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
+ //public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo)
+ //{
+ // var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
+ // ConsoleHelper.WriteSuccessLine(log);
- //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
- WriteInfo(conveyorLine.DeviceName, log);
- //if()
- var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode);
- var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
- if (taskNew == null)
- {
- if (_taskService.RequestTask(palletcode, stationInfo).Result.Status)
- {
- Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
- if (task != null)
- {
- //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+ // //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+ // WriteInfo(conveyorLine.DeviceName, log);
+ // //if()
+ // var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode);
+ // var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
+ // if (taskNew == null)
+ // {
+ // if (_taskService.RequestTask(palletcode, stationInfo).Result.Status)
+ // {
+ // Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
+ // if (task != null)
+ // {
+ // //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
- //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
- //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ // //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+ // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
- _taskService.UpdateTaskStatusToNext(task);
- }
- }
- else
- {
- //濡傛灉浠诲姟璇锋眰澶辫触
- //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
- }
- }
- }
+ // _taskService.UpdateTaskStatusToNext(task);
+ // }
+ // }
+ // else
+ // {
+ // //濡傛灉浠诲姟璇锋眰澶辫触
+ // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+ // }
+ // }
+ //}
/// <summary>
/// 杈撻�佺嚎璇锋眰鍏ュ簱
@@ -199,38 +261,38 @@
/// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
/// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
/// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
- {
- var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
- ConsoleHelper.WriteSuccessLine(log);
+ //public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
+ //{
+ // var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
+ // ConsoleHelper.WriteSuccessLine(log);
- //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
- WriteInfo(conveyorLine.DeviceName, log);
- //if()
+ // //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+ // WriteInfo(conveyorLine.DeviceName, log);
+ // //if()
- var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
- if (taskNew == null)
- {
- if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status)
- {
- Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
- if (task != null)
- {
- //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+ // var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
+ // if (taskNew == null)
+ // {
+ // if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status)
+ // {
+ // Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
+ // if (task != null)
+ // {
+ // //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
- //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
- //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ // //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+ // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
- _taskService.UpdateTaskStatusToNext(task);
- }
- }
- else
- {
- //濡傛灉浠诲姟璇锋眰澶辫触
- //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
- }
- }
- }
+ // _taskService.UpdateTaskStatusToNext(task);
+ // }
+ // }
+ // else
+ // {
+ // //濡傛灉浠诲姟璇锋眰澶辫触
+ // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+ // }
+ // }
+ //}
/// <summary>
/// 杈撻�佺嚎鍏ュ簱瀹屾垚
@@ -238,26 +300,26 @@
/// <param name="conveyorLine"></param>
/// <param name="command"></param>
/// <param name="stationInfo"></param>
- public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
- {
- //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString();
- var task = _taskService.QueryExecutingTaskByBarcode(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
- if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
- {
- //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ //public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
+ //{
+ // //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString();
+ // var task = _taskService.QueryExecutingTaskByBarcode(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
+ // if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
+ // {
+ // //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
- ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
- if (content.Status)
- {
- //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
- }
- else
- {
- //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
- }
- }
- }
+ // WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
+ // ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
+ // if (content.Status)
+ // {
+ // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ // }
+ // else
+ // {
+ // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+ // }
+ // }
+ //}
/// <summary>
/// 杈撻�佺嚎璇锋眰鍑轰俊鎭�
--
Gitblit v1.9.3