From 06e0e3b7d61e95902a6129de2490461cd0693e1d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 15 十月 2025 15:06:40 +0800
Subject: [PATCH] 新增异步方法并优化服务调用逻辑在多个数据库文件中进行了二进制文件的修改、删除和新增操作,可能涉及数据库内容的更新或重建。在 HttpsClient.cs文件中新增了 PostNotLimitAsync方法,用于发送支持 JSON 格式的异步 HTTP POST 请求,并记录请求和响应参数。在 AgingInOrOutInputService.cs文件中,将 HttpsClient.PostAsync替换为PostNotLimitAsync,以利用新方法的功能特性。同时删除了不再需要的注释代码。
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 76 +++++++++++++++++++++++++++----------
1 files changed, 55 insertions(+), 21 deletions(-)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index 23dc750..bb94546 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -23,6 +23,7 @@
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_SignalR;
@@ -306,7 +307,7 @@
try
{
// 杈撳嚭璀﹀憡淇℃伅锛岃〃绀轰换鍔″凡鍒拌揪瀛愯澶囧苟璇锋眰鎵爜鍏ュ簱
- var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�";
+ var log = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�";
ConsoleHelper.WriteWarningLine(log);
// 鍙戦�侀�氱煡
await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
@@ -333,7 +334,7 @@
conveyorLine.SendCommand(taskCommand, childDeviceCode);
// 杈撳嚭璀﹀憡淇℃伅锛岃〃绀轰换鍔″凡鍒拌揪瀛愯澶囧苟璇锋眰鎵爜鍏ュ簱锛屼笅涓�鐩爣鍦板潃
- var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
+ var logs = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
ConsoleHelper.WriteWarningLine(logs);
await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
@@ -375,13 +376,13 @@
/// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
public void RequestInNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
{
- var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傚叆搴撲笅涓�鍦板潃";
+ var log = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傚叆搴撲笅涓�鍦板潃";
ConsoleHelper.WriteWarningLine(log);
_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
WriteInfo(conveyorLine.DeviceName, log);
- Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+ Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
if (task != null)
{
if (command.Barcode == task.PalletCode)
@@ -402,6 +403,7 @@
WriteInfo(conveyorLine.DeviceName, logs);
conveyorLine.SendCommand(taskCommand, childDeviceCode);
+ _taskService.UpdateData(newTask);
}
}
}
@@ -420,27 +422,17 @@
{
try
{
- var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚";
+ var log = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚";
ConsoleHelper.WriteWarningLine(log);
_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
WriteInfo(conveyorLine.DeviceName, log);
- var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+ var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
{
if (command.Barcode == task.PalletCode && childDeviceCode == task.NextAddress)
{
- conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode);
-
- var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�";
- ConsoleHelper.WriteWarningLine(logs);
-
- _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
- WriteInfo(conveyorLine.DeviceName, logs);
-
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
{
int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
@@ -453,10 +445,36 @@
task.ModifyDate = DateTime.Now;
task.Modifier = "System";
_taskRepository.UpdateData(task);
+
+ conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode);
+
+ var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�";
+ ConsoleHelper.WriteWarningLine(logs);
+
+ _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
+ WriteInfo(conveyorLine.DeviceName, logs);
+
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
}
else
{
WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
+ WriteInfo(conveyorLine.DeviceName, content.ToJsonString());
+ if (!content.Status)
+ {
+ ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,浠诲姟鎵ц澶辫触{JsonConvert.SerializeObject(content)}");
+ return;
+ }
+
+ conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode);
+
+ var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�";
+ ConsoleHelper.WriteWarningLine(logs);
+
+ _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
+ WriteInfo(conveyorLine.DeviceName, logs);
+
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
Console.Out.WriteLine(content.ToJsonString());
}
}
@@ -486,7 +504,7 @@
var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
// 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮佸拰瀛愯澶囦唬鐮侊紝浠ュ強浠诲姟淇℃伅
- var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,task{task.ToJsonString()}";
+ var logs = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,task{task.ToJsonString()}";
ConsoleHelper.WriteSuccessLine(logs);
_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
@@ -521,7 +539,7 @@
_taskService.UpdateTaskStatusToNext(task);
// 濡傛灉浠诲姟鐨勭洰鏍囧湴鍧�鏄�"1020-1"锛屽垯鍐嶆鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬�
- if (task.TargetAddress == "1020-1")
+ if (task.TargetAddress == "1020-1"|| task.TargetAddress == "1049-8")
{
_taskService.UpdateTaskStatusToNext(task);
}
@@ -548,7 +566,7 @@
WriteInfo(conveyorLine.DeviceName, log);
// 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟锛屾牴鎹换鍔″彿鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅
- Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+ Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
// 濡傛灉浠诲姟瀛樺湪
if (task != null)
@@ -583,6 +601,8 @@
// 鏍囪杈撻�佺嚎鍙戦�佷换鍔″畬鎴�
ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+
+ _taskService.UpdateData(newTask);
}
}
}
@@ -606,7 +626,7 @@
WriteInfo(conveyorLine.DeviceName, logs);
// 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟
- var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+ var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode);
// 濡傛灉浠诲姟瀛樺湪
if (task != null)
@@ -768,13 +788,26 @@
}
var wmsIpAddress = wmsBase + requestTrayOutTask;
- var device = _deviceInfoRepository.QueryData(x => x.DeviceStatus == "1");
+
+ List<Dt_DeviceInfo> device;
+ if (platform.Roadway != null)
+ {
+ List<string> strings = platform.Roadway.Split(',').ToList();
+ device = _deviceInfoRepository.QueryData(x => x.DeviceStatus == "1" && strings.Contains(x.DeviceCode));
+ }
+ else
+ {
+ device = _deviceInfoRepository.QueryData(x => x.DeviceStatus == "1");
+ }
var deviceCode = device.Select(x => x.DeviceCode).ToList();
// 鍙戦�丠TTP POST璇锋眰鑾峰彇浠诲姟鏁版嵁
var result = await HttpHelper.PostAsync(wmsIpAddress, new { position = childDeviceCode, tag = (int)taskType, areaCdoe = platform.Stacker, AreaCdoes = deviceCode, platform.ProductionLine }.ToJsonString());
// 瑙f瀽杩斿洖鐨凧SON鏁版嵁
WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+
+ Console.WriteLine($"{JsonConvert.SerializeObject(content)}鍛煎彨鎴愬姛");
// 妫�鏌ヨ繑鍥炵姸鎬侊紝濡傛灉澶辫触鍒欒繑鍥�
if (!content.Status)
@@ -785,6 +818,7 @@
#endregion 璋冪敤WMS鑾峰彇鍑哄簱浠诲姟
+
// 鍒涘缓骞跺彂閫佷换鍔�
CreateAndSendTask(taskDTO);
}
--
Gitblit v1.9.3