From 627371d0ffdf50239313f2c86d022a0c5c69550d Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 21 四月 2026 19:43:46 +0800
Subject: [PATCH] refactor(logging): 重构日志记录模块,统一使用Serilog和QuartzLogHelper
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs | 16
Code/.omc/state/mission-state.json | 170 +++++++++++
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RobotTaskService.cs | 30 +
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs | 55 +++
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/QuartzLogHelper.cs | 24 +
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs | 20
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs | 18
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotJob.cs | 24 -
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs | 53 +--
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs | 116 +++++--
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotStateManager.cs | 11
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs | 20 -
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotClientManager.cs | 20
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json | 17
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs | 33 +
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs | 16
Code/.omc/state/last-tool-error.json | 6
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 13
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs | 42 +-
Code/.omc/state/subagent-tracking.json | 87 +++++
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs | 44 ++
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Status.cs | 10
22 files changed, 610 insertions(+), 235 deletions(-)
diff --git a/Code/.omc/state/last-tool-error.json b/Code/.omc/state/last-tool-error.json
index 778c26d..5f72dd0 100644
--- a/Code/.omc/state/last-tool-error.json
+++ b/Code/.omc/state/last-tool-error.json
@@ -1,7 +1,7 @@
{
"tool_name": "Bash",
- "tool_input_preview": "{\"command\":\"cd \\\"D:/Git/ShanMeiXinNengYuan/Code\\\" && dotnet build WMS/WIDESEA_WMSServer/WIDESEA_WMSServer.sln 2>&1\",\"timeout\":120000,\"description\":\"Build WMS solution to verify changes\"}",
- "error": "Exit code 1\n 姝e湪纭畾瑕佽繕鍘熺殑椤圭洰鈥r\n 鎵�鏈夐」鐩潎鏄渶鏂扮殑锛屾棤娉曡繕鍘熴�俓r\nD:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\AOP\\LogAOP.cs(169,123): warning CS8625: 鏃犳硶灏� null 瀛楅潰閲忚浆鎹负闈� null 鐨勫紩鐢ㄧ被鍨嬨�� [D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\WIDESEA_Core.csproj]\r\nD:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Authorization\\AuthorizationResponse.cs(21,30): warning CS8625: 鏃犳硶灏� null 瀛楅潰閲忚浆鎹负闈� null 鐨勫紩鐢ㄧ被鍨嬨�� [D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\WIDES...",
- "timestamp": "2026-04-20T16:56:32.862Z",
+ "tool_input_preview": "{\"command\":\"cd \\\"D:/Git/ShanMeiXinNengYuan/Code\\\" && dotnet build WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln 2>&1\",\"timeout\":120000,\"description\":\"Build WCS solution to verify compilation\"}",
+ "error": "Exit code 1\n 姝e湪纭畾瑕佽繕鍘熺殑椤圭洰鈥r\n 鎵�鏈夐」鐩潎鏄渶鏂扮殑锛屾棤娉曡繕鍘熴�俓r\n WIDESEAWCS_Common -> D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\bin\\Debug\\net8.0\\WIDESEAWCS_Common.dll\r\n WIDESEAWCS_Communicator -> D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\bin\\Debug\\net8.0\\WIDESEAWCS_Communicator.dll\r\n WIDESEAWCS_Core -> D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\bin\\Debug\\net8.0\\WIDESEAWCS_Core.dll\r\n WIDESEAWCS_Model -> D:\\Git\\ShanMeiXinN...",
+ "timestamp": "2026-04-21T09:39:52.122Z",
"retry_count": 1
}
\ No newline at end of file
diff --git a/Code/.omc/state/mission-state.json b/Code/.omc/state/mission-state.json
index 5fe9719..1228a50 100644
--- a/Code/.omc/state/mission-state.json
+++ b/Code/.omc/state/mission-state.json
@@ -1,5 +1,5 @@
{
- "updatedAt": "2026-04-20T17:02:18.624Z",
+ "updatedAt": "2026-04-21T11:39:09.598Z",
"missions": [
{
"id": "session:9007b9ea-1eb6-4d24-8fe7-2c3a949eac88:none",
@@ -2350,6 +2350,174 @@
"sourceKey": "session-stop:a82856d42f4ef095b"
}
]
+ },
+ {
+ "id": "session:4b203ec2-4358-4df5-9d57-f3bf8801fd43:none",
+ "source": "session",
+ "name": "none",
+ "objective": "Session mission",
+ "createdAt": "2026-04-21T08:05:57.739Z",
+ "updatedAt": "2026-04-21T11:39:09.598Z",
+ "status": "done",
+ "workerCount": 9,
+ "taskCounts": {
+ "total": 9,
+ "pending": 0,
+ "blocked": 0,
+ "inProgress": 0,
+ "completed": 9,
+ "failed": 0
+ },
+ "agents": [
+ {
+ "name": "general-purpose:adfd244",
+ "role": "general-purpose",
+ "ownership": "adfd244986e678c43",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T11:39:09.598Z"
+ },
+ {
+ "name": "general-purpose:afe58ad",
+ "role": "general-purpose",
+ "ownership": "afe58add5c15b5456",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T08:10:25.852Z"
+ },
+ {
+ "name": "code-reviewer:a5f227d",
+ "role": "code-reviewer",
+ "ownership": "a5f227d0165c2b9d7",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T08:15:02.522Z"
+ },
+ {
+ "name": "general-purpose:a9be028",
+ "role": "general-purpose",
+ "ownership": "a9be028ac5ebd371e",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T08:16:40.974Z"
+ },
+ {
+ "name": "general-purpose:a1284f6",
+ "role": "general-purpose",
+ "ownership": "a1284f6498da348c8",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T08:17:29.877Z"
+ },
+ {
+ "name": "code-reviewer:a4003ef",
+ "role": "code-reviewer",
+ "ownership": "a4003ef7b99171bad",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T08:20:36.471Z"
+ },
+ {
+ "name": "general-purpose:a05860c",
+ "role": "general-purpose",
+ "ownership": "a05860ca07c208160",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T09:36:30.257Z"
+ },
+ {
+ "name": "general-purpose:afb9663",
+ "role": "general-purpose",
+ "ownership": "afb9663c306b7ffb2",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T09:37:29.377Z"
+ },
+ {
+ "name": "code-reviewer:a5387bf",
+ "role": "code-reviewer",
+ "ownership": "a5387bf0397247d5c",
+ "status": "done",
+ "currentStep": null,
+ "latestUpdate": "completed",
+ "completedSummary": null,
+ "updatedAt": "2026-04-21T09:39:25.226Z"
+ }
+ ],
+ "timeline": [
+ {
+ "id": "session-start:afb9663c306b7ffb2:2026-04-21T09:36:45.991Z",
+ "at": "2026-04-21T09:36:45.991Z",
+ "kind": "update",
+ "agent": "general-purpose:afb9663",
+ "detail": "started general-purpose:afb9663",
+ "sourceKey": "session-start:afb9663c306b7ffb2"
+ },
+ {
+ "id": "session-stop:afb9663c306b7ffb2:2026-04-21T09:37:29.377Z",
+ "at": "2026-04-21T09:37:29.377Z",
+ "kind": "completion",
+ "agent": "general-purpose:afb9663",
+ "detail": "completed",
+ "sourceKey": "session-stop:afb9663c306b7ffb2"
+ },
+ {
+ "id": "session-start:a5387bf0397247d5c:2026-04-21T09:37:41.613Z",
+ "at": "2026-04-21T09:37:41.613Z",
+ "kind": "update",
+ "agent": "code-reviewer:a5387bf",
+ "detail": "started code-reviewer:a5387bf",
+ "sourceKey": "session-start:a5387bf0397247d5c"
+ },
+ {
+ "id": "session-stop:a5387bf0397247d5c:2026-04-21T09:39:25.226Z",
+ "at": "2026-04-21T09:39:25.226Z",
+ "kind": "completion",
+ "agent": "code-reviewer:a5387bf",
+ "detail": "completed",
+ "sourceKey": "session-stop:a5387bf0397247d5c"
+ },
+ {
+ "id": "session-stop:a93c9aa6de8251ecb:2026-04-21T09:43:18.886Z",
+ "at": "2026-04-21T09:43:18.886Z",
+ "kind": "completion",
+ "agent": "general-purpose:adfd244",
+ "detail": "completed",
+ "sourceKey": "session-stop:a93c9aa6de8251ecb"
+ },
+ {
+ "id": "session-stop:a34767c74aa84d9d8:2026-04-21T11:30:52.701Z",
+ "at": "2026-04-21T11:30:52.701Z",
+ "kind": "completion",
+ "agent": "general-purpose:adfd244",
+ "detail": "completed",
+ "sourceKey": "session-stop:a34767c74aa84d9d8"
+ },
+ {
+ "id": "session-stop:aecf873500f38d936:2026-04-21T11:39:09.598Z",
+ "at": "2026-04-21T11:39:09.598Z",
+ "kind": "completion",
+ "agent": "general-purpose:adfd244",
+ "detail": "completed",
+ "sourceKey": "session-stop:aecf873500f38d936"
+ }
+ ]
}
]
}
\ No newline at end of file
diff --git a/Code/.omc/state/subagent-tracking.json b/Code/.omc/state/subagent-tracking.json
index 585696f..beafb92 100644
--- a/Code/.omc/state/subagent-tracking.json
+++ b/Code/.omc/state/subagent-tracking.json
@@ -1454,10 +1454,91 @@
"status": "completed",
"completed_at": "2026-04-20T16:32:32.484Z",
"duration_ms": 67195
+ },
+ {
+ "agent_id": "adfd244986e678c43",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-21T08:05:57.739Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T08:08:07.653Z",
+ "duration_ms": 129914
+ },
+ {
+ "agent_id": "afe58add5c15b5456",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-21T08:08:38.524Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T08:10:25.851Z",
+ "duration_ms": 107327
+ },
+ {
+ "agent_id": "a5f227d0165c2b9d7",
+ "agent_type": "oh-my-claudecode:code-reviewer",
+ "started_at": "2026-04-21T08:11:16.482Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T08:15:02.520Z",
+ "duration_ms": 226038
+ },
+ {
+ "agent_id": "a9be028ac5ebd371e",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-21T08:15:35.687Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T08:16:40.972Z",
+ "duration_ms": 65285
+ },
+ {
+ "agent_id": "a1284f6498da348c8",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-21T08:16:53.264Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T08:17:29.876Z",
+ "duration_ms": 36612
+ },
+ {
+ "agent_id": "a4003ef7b99171bad",
+ "agent_type": "oh-my-claudecode:code-reviewer",
+ "started_at": "2026-04-21T08:17:42.837Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T08:20:36.470Z",
+ "duration_ms": 173633
+ },
+ {
+ "agent_id": "a05860ca07c208160",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-21T09:35:41.894Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T09:36:30.255Z",
+ "duration_ms": 48361
+ },
+ {
+ "agent_id": "afb9663c306b7ffb2",
+ "agent_type": "general-purpose",
+ "started_at": "2026-04-21T09:36:45.991Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T09:37:29.375Z",
+ "duration_ms": 43384
+ },
+ {
+ "agent_id": "a5387bf0397247d5c",
+ "agent_type": "oh-my-claudecode:code-reviewer",
+ "started_at": "2026-04-21T09:37:41.613Z",
+ "parent_mode": "none",
+ "status": "completed",
+ "completed_at": "2026-04-21T09:39:25.224Z",
+ "duration_ms": 103611
}
],
- "total_spawned": 135,
- "total_completed": 157,
+ "total_spawned": 144,
+ "total_completed": 166,
"total_failed": 0,
- "last_updated": "2026-04-21T06:46:41.255Z"
+ "last_updated": "2026-04-21T11:39:09.704Z"
}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/QuartzLogHelper.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/QuartzLogHelper.cs
similarity index 83%
rename from Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/QuartzLogHelper.cs
rename to Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/QuartzLogHelper.cs
index cc0c9a5..d9bd5d9 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/QuartzLogHelper.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/QuartzLogHelper.cs
@@ -42,6 +42,18 @@
}
/// <summary>
+ /// 璁板綍閿欒鏃ュ織锛堜笉甯﹀紓甯稿璞★級
+ /// </summary>
+ /// <param name="logger">ILogger 瀹炰緥</param>
+ /// <param name="loggerMessage">ILogger 鐨勭粨鏋勫寲鏃ュ織妯℃澘锛堟敮鎸佸崰浣嶇锛�</param>
+ /// <param name="deviceCode">璁惧缂栫爜</param>
+ public static void LogError(ILogger logger, string loggerMessage, string deviceCode)
+ {
+ logger.Error(loggerMessage);
+ QuartzLogger.Error(loggerMessage, deviceCode);
+ }
+
+ /// <summary>
/// 璁板綍淇℃伅鏃ュ織
/// </summary>
/// <param name="logger">ILogger 瀹炰緥</param>
@@ -83,6 +95,18 @@
}
/// <summary>
+ /// 璁板綍璀﹀憡鏃ュ織
+ /// </summary>
+ /// <param name="logger">ILogger 瀹炰緥</param>
+ /// <param name="loggerMessage">ILogger 鐨勭粨鏋勫寲鏃ュ織妯℃澘锛堟敮鎸佸崰浣嶇锛�</param>
+ /// <param name="deviceCode">璁惧缂栫爜</param>
+ public static void LogWarn(ILogger logger, string loggerMessage,string deviceCode)
+ {
+ logger.Warning(loggerMessage);
+ QuartzLogger.Warn(loggerMessage, deviceCode);
+ }
+
+ /// <summary>
/// 璁板綍璋冭瘯鏃ュ織
/// </summary>
/// <param name="logger">ILogger 瀹炰緥</param>
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
index 15c9114..dbf23e7 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
@@ -1,21 +1,5 @@
-锘縰sing Newtonsoft.Json;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
-using Quartz;
-using SqlSugar;
-using System;
+锘縰sing SqlSugar;
using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEAWCS_Communicator;
-using WIDESEAWCS_Core.Enums;
-using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_QuartzJob.DeviceBase;
-using WIDESEAWCS_QuartzJob.DeviceEnum;
namespace WIDESEAWCS_QuartzJob
{
@@ -62,4 +46,4 @@
return Pro_Devices.Where(x => deviceCodes.Contains(x.DeviceCode)).ToList();
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
index 9d1eeae..6468d80 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -5,19 +5,20 @@
"Default": "Information",
"Override": {
"Microsoft": "Information",
- "Microsoft.AspNetCore": "Warning",
- "Microsoft.AspNetCore.Routing": "Warning",
- "Microsoft.AspNetCore.Mvc": "Warning",
- "Microsoft.AspNetCore.Mvc.Infrastructure": "Warning",
- "Microsoft.AspNetCore.Mvc.Filters": "Warning",
- "Microsoft.AspNetCore.Mvc.ModelBinding": "Warning",
- "Microsoft.EntityFrameworkCore": "Warning"
+ "Microsoft.AspNetCore": "Information",
+ "Microsoft.AspNetCore.Routing": "Information",
+ "Microsoft.AspNetCore.Mvc": "Information",
+ "Microsoft.AspNetCore.Mvc.Infrastructure": "Information",
+ "Microsoft.AspNetCore.Mvc.Filters": "Information",
+ "Microsoft.AspNetCore.Mvc.ModelBinding": "Information",
+ "Microsoft.EntityFrameworkCore": "Information",
+ "Quartz": "Debug"
}
}
},
"Logging": {
"LogLevel": {
- "Default": "Information",
+ "Default": "Debug",
"Microsoft.AspNetCore": "Warning",
"Quartz": "Debug"
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
index 69c8796..d2468b3 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/InboundTaskFlowService.cs
@@ -1,4 +1,5 @@
锘縰sing System.Diagnostics.CodeAnalysis;
+using Serilog;
using WIDESEAWCS_Common.HttpEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEA_Core;
@@ -10,6 +11,7 @@
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_Tasks;
namespace WIDESEAWCS_TaskInfoService.Flows
{
@@ -21,16 +23,18 @@
{
private readonly IRouterService _routerService;
private readonly HttpClientHelper _httpClientHelper;
+ private readonly ILogger _logger;
/// <summary>
/// 鍒濆鍖栧叆搴撲换鍔℃祦绋嬫湇鍔°��
/// </summary>
/// <param name="routerService">璺敱鏈嶅姟銆�</param>
/// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
- public InboundTaskFlowService(IRouterService routerService, HttpClientHelper httpClientHelper)
+ public InboundTaskFlowService(IRouterService routerService, HttpClientHelper httpClientHelper, ILogger logger)
{
_routerService = routerService;
_httpClientHelper = httpClientHelper;
+ _logger = logger;
}
/// <summary>
@@ -100,9 +104,11 @@
if (!result.IsSuccess || !result.Data.Status)
{
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆怚nboundFinishTaskAsync銆�,璇锋眰鍙傛暟:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愬け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
}
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆怚nboundFinishTaskAsync銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:0ms", "InboundTaskFlowService");
return content.OK($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
}
@@ -113,12 +119,21 @@
/// <returns>璋冪敤缁撴灉銆�</returns>
private WebResponseContent GetWMSInboundLocation(Dt_Task task)
{
+ string configKey = nameof(ConfigKey.GetTasksLocation);
+ string requestParam = new CreateTaskDto { PalletCode = task.PalletCode }.ToJson();
+ DateTime startTime = DateTime.Now;
+
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.GetTasksLocation),
- new CreateTaskDto { PalletCode = task.PalletCode }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鑾峰彇浠诲姟鐩爣鍦板潃澶辫触,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "InboundTaskFlowService");
string? nextAddress = result.Data.Data?.ToString();
if (string.IsNullOrEmpty(nextAddress))
@@ -138,13 +153,21 @@
/// <returns>鍚屾缁撴灉銆�</returns>
private WebResponseContent UpdateWMSTaskStatus(Dt_Task task)
{
+ string configKey = nameof(ConfigKey.UpdateTaskByStatus);
+ string requestParam = new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson();
+ DateTime startTime = DateTime.Now;
+
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.UpdateTaskByStatus),
- new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "InboundTaskFlowService");
return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "InboundTaskFlowService");
return WebResponseContent.Instance.OK();
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
index c1f3ba9..dbe7256 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
@@ -1,5 +1,6 @@
锘縰sing Autofac;
using Newtonsoft.Json;
+using Serilog;
using System.Diagnostics.CodeAnalysis;
using WIDESEA_Core;
using WIDESEAWCS_Common.HttpEnum;
@@ -15,6 +16,7 @@
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_Tasks;
namespace WIDESEAWCS_TaskInfoService.Flows
{
@@ -29,6 +31,7 @@
private readonly IRobotTaskService _robotTaskService;
private readonly IComponentContext _componentContext;
private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly ILogger _logger;
/// <summary>
/// 鍒濆鍖栧嚭搴撲换鍔℃祦绋嬫湇鍔°��
@@ -37,13 +40,14 @@
/// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
/// <param name="robotTaskService">鏈烘鎵嬩换鍔℃湇鍔°��</param>
/// <param name="componentContext">Autofac缁勪欢涓婁笅鏂囷紙鐢ㄤ簬寤惰繜瑙f瀽ITaskService浠ラ伩鍏嶅惊鐜緷璧栵級銆�</param>
- public OutboundTaskFlowService(IRouterService routerService, HttpClientHelper httpClientHelper, IRobotTaskService robotTaskService, IComponentContext componentContext, IUnitOfWorkManage unitOfWorkManage)
+ public OutboundTaskFlowService(IRouterService routerService, HttpClientHelper httpClientHelper, IRobotTaskService robotTaskService, IComponentContext componentContext, IUnitOfWorkManage unitOfWorkManage, ILogger logger)
{
_routerService = routerService;
_httpClientHelper = httpClientHelper;
_robotTaskService = robotTaskService;
_componentContext = componentContext;
_unitOfWorkManage = unitOfWorkManage;
+ _logger = logger;
}
/// <summary>
@@ -148,14 +152,21 @@
private WebResponseContent NotifyWMSOutboundFinish(Dt_Task task)
{
WebResponseContent content = new WebResponseContent();
+ string configKey = nameof(ConfigKey.OutboundFinishTaskAsync);
+ string requestParam = new StockInfoDTO { PalletCode = task.PalletCode, TaskNum = task.TaskNum }.ToJson();
+ DateTime startTime = DateTime.Now;
- // 閫氱煡WMS鍑哄簱瀹屾垚骞惰幏鍙栬繑鍥炵粨鏋�
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.OutboundFinishTaskAsync),
- new StockInfoDTO { PalletCode = task.PalletCode, TaskNum = task.TaskNum }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "OutboundTaskFlowService");
return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄嚭搴撳畬鎴愬け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "OutboundTaskFlowService");
// 澶勭悊WMS杩斿洖鐨勫叆搴撲换鍔★紙濡傛灉鏈夛級
if (result.Data?.Data != null)
{
@@ -195,13 +206,21 @@
{
int warehouseId = _robotTaskService.MapWarehouseIdConfigKey(task.TargetAddress);
string sourceLineNo = _robotTaskService.ResolveRobotRuleValue(task.TargetAddress, "AddressSourceLineNoMap", task.TargetAddress);
+ string configKey = nameof(ConfigKey.GetOutBoundTrayTaskAsync);
+ string requestParam = new CreateTaskDto { WarehouseId = warehouseId, TargetAddress = sourceLineNo }.ToJson();
+ DateTime startTime = DateTime.Now;
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.GetOutBoundTrayTaskAsync),
- new CreateTaskDto { WarehouseId = warehouseId, TargetAddress = sourceLineNo }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "OutboundTaskFlowService");
return WebResponseContent.Instance.Error($"鑾峰彇WMS绯荤粺绌烘墭鐩樺嚭搴撲换鍔″け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "OutboundTaskFlowService");
WMSTaskDTO? wMSTask = JsonConvert.DeserializeObject<WMSTaskDTO>(result.Data.Data?.ToString() ?? string.Empty);
if (wMSTask == null)
@@ -217,13 +236,21 @@
/// <returns>鍚屾缁撴灉銆�</returns>
private WebResponseContent UpdateWMSTaskStatus(Dt_Task task)
{
+ string configKey = nameof(ConfigKey.UpdateTaskByStatus);
+ string requestParam = new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson();
+ DateTime startTime = DateTime.Now;
+
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.UpdateTaskByStatus),
- new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "OutboundTaskFlowService");
return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "OutboundTaskFlowService");
return WebResponseContent.Instance.OK();
}
@@ -234,13 +261,21 @@
/// <returns>鍚屾缁撴灉銆�</returns>
private WebResponseContent OutboundFinishTaskTray(Dt_Task task)
{
+ string configKey = nameof(ConfigKey.OutboundFinishTaskTray);
+ string requestParam = new CreateTaskDto { PalletCode = task.PalletCode, SourceAddress = task.SourceAddress }.ToJson();
+ DateTime startTime = DateTime.Now;
+
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.OutboundFinishTaskTray),
- new CreateTaskDto { PalletCode = task.PalletCode, SourceAddress = task.SourceAddress }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "OutboundTaskFlowService");
return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "OutboundTaskFlowService");
return WebResponseContent.Instance.OK();
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs
index 0556392..3f74943 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/RelocationTaskFlowService.cs
@@ -1,4 +1,5 @@
锘縰sing System.Diagnostics.CodeAnalysis;
+using Serilog;
using WIDESEAWCS_Common.HttpEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEA_Core;
@@ -8,6 +9,7 @@
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Tasks;
namespace WIDESEAWCS_TaskInfoService.Flows
{
@@ -18,14 +20,16 @@
public class RelocationTaskFlowService : IRelocationTaskFlowService
{
private readonly HttpClientHelper _httpClientHelper;
+ private readonly ILogger _logger;
/// <summary>
/// 鍒濆鍖栫Щ搴撲换鍔℃祦绋嬫湇鍔°��
/// </summary>
/// <param name="httpClientHelper">WMS鎺ュ彛璋冪敤甯姪绫汇��</param>
- public RelocationTaskFlowService(HttpClientHelper httpClientHelper)
+ public RelocationTaskFlowService(HttpClientHelper httpClientHelper, ILogger logger)
{
_httpClientHelper = httpClientHelper;
+ _logger = logger;
}
/// <summary>
@@ -101,13 +105,21 @@
/// <returns>鍚屾缁撴灉銆�</returns>
private WebResponseContent UpdateWMSTaskStatus(Dt_Task task)
{
+ string configKey = nameof(ConfigKey.UpdateTaskByStatus);
+ string requestParam = new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson();
+ DateTime startTime = DateTime.Now;
+
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.UpdateTaskByStatus),
- new UpdateTaskDto { Id = task.TaskNum, NewStatus = task.TaskStatus, NextAddress = task.NextAddress, CurrentAddress = task.CurrentAddress }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RelocationTaskFlowService");
return WebResponseContent.Instance.Error($"璋冪敤WMS鎺ュ彛鏇存柊浠诲姟鐘舵�佸け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RelocationTaskFlowService");
return WebResponseContent.Instance.OK();
}
@@ -118,20 +130,28 @@
/// <returns>閫氱煡缁撴灉銆�</returns>
private WebResponseContent NotifyWMSRelocationFinish(Dt_Task task)
{
+ string configKey = nameof(ConfigKey.RelocationFinishTask);
+ string requestParam = new CreateTaskDto
+ {
+ PalletCode = task.PalletCode,
+ SourceAddress = task.CurrentAddress,
+ TargetAddress = task.TargetAddress,
+ Roadway = task.Roadway,
+ TaskType = task.TaskType
+ }.ToJson();
+ DateTime startTime = DateTime.Now;
+
var result = _httpClientHelper.Post<WebResponseContent>(
- nameof(ConfigKey.RelocationFinishTask),
- new CreateTaskDto
- {
- PalletCode = task.PalletCode,
- SourceAddress = task.CurrentAddress,
- TargetAddress = task.TargetAddress,
- Roadway = task.Roadway,
- TaskType = task.TaskType
- }.ToJson());
+ configKey,
+ requestParam);
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RelocationTaskFlowService");
return WebResponseContent.Instance.Error($"閫氱煡WMS绯荤粺绉诲簱瀹屾垚澶辫触,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RelocationTaskFlowService");
return WebResponseContent.Instance.OK();
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RobotTaskService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RobotTaskService.cs
index 494541e..1e60a39 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RobotTaskService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/RobotTaskService.cs
@@ -20,7 +20,9 @@
using MapsterMapper;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
+using Serilog;
using SqlSugar;
+using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using WIDESEA_Core;
using WIDESEAWCS_Common.HttpEnum;
@@ -36,6 +38,7 @@
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_Tasks;
namespace WIDESEAWCS_TaskInfoService
{
@@ -44,6 +47,7 @@
private readonly IMapper _mapper;
private readonly HttpClientHelper _httpClientHelper;
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+ private readonly ILogger _logger;
private Dictionary<string, OrderByType> _taskOrderBy = new()
{
@@ -60,11 +64,12 @@
public List<int> TaskRobotTypes => typeof(TaskOtherTypeEnum).GetEnumIndexList();
- public RobotTaskService(IRobotTaskRepository BaseDal, IMapper mapper, HttpClientHelper httpClientHelper, ITaskExecuteDetailService taskExecuteDetailService) : base(BaseDal)
+ public RobotTaskService(IRobotTaskRepository BaseDal, IMapper mapper, HttpClientHelper httpClientHelper, ITaskExecuteDetailService taskExecuteDetailService, ILogger logger) : base(BaseDal)
{
_mapper = mapper;
_httpClientHelper = httpClientHelper;
_taskExecuteDetailService = taskExecuteDetailService;
+ _logger = logger;
}
public WebResponseContent ReceiveWMSTask([NotNull] WMSTaskDTO taskDTO, StockDTO stockDTO)
@@ -80,13 +85,13 @@
Dt_RobotTask task = new Dt_RobotTask
{
RobotTaskNum = taskDTO.TaskNum,
- RobotSourceAddressLineCode = stockDTO.SourceLineNo,
- RobotTargetAddressLineCode = stockDTO.TargetLineNo,
- RobotRoadway = stockDTO.Roadway,
+ RobotSourceAddressLineCode = stockDTO?.SourceLineNo ?? string.Empty,
+ RobotTargetAddressLineCode = stockDTO?.TargetLineNo ?? string.Empty,
+ RobotRoadway = stockDTO?.Roadway ?? string.Empty,
RobotSourceAddress = taskDTO.SourceAddress,
RobotTargetAddress = taskDTO.TargetAddress,
- RobotSourceAddressPalletCode = stockDTO.SourcePalletNo,
- RobotTargetAddressPalletCode = stockDTO.TargetPalletNo,
+ RobotSourceAddressPalletCode = stockDTO?.SourcePalletNo ?? string.Empty,
+ RobotTargetAddressPalletCode = stockDTO?.TargetPalletNo ?? string.Empty,
RobotTaskType = taskDTO.TaskType,
RobotTaskState = taskDTO.TaskStatus,
RobotGrade = taskDTO.Grade,
@@ -131,13 +136,20 @@
{
string configKey = ResolveRobotTaskConfigKey(task.TargetAddress);
StockDTO stock = BuildRobotTaskStock(task, configKey);
+ string requestParam = stock.ToJson();
+ var stopwatch = Stopwatch.StartNew();
- var result = _httpClientHelper.Post<WebResponseContent>(configKey, stock.ToJson());
-
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+ stopwatch.Stop();
if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskService");
return WebResponseContent.Instance.Error($"鑾峰彇WMS绯荤粺鏈烘鎵嬩换鍔″け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,鐩爣鍦板潃:銆恵task.TargetAddress}銆�,鎺ュ彛:銆恵configKey}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�");
+ }
- var wMSTask = JsonConvert.DeserializeObject<WMSTaskDTO>(result.Data.Data?.ToString() ?? string.Empty);
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{stopwatch.ElapsedMilliseconds}ms", "RobotTaskService");
+
+ var wMSTask = JsonConvert.DeserializeObject<WMSTaskDTO>(result?.Data?.Data?.ToString() ?? string.Empty);
if (wMSTask == null)
return WebResponseContent.Instance.Error($"鑾峰彇WMS绯荤粺鏈烘鎵嬩换鍔″け璐�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�,閿欒淇℃伅:銆怶MS鏈繑鍥炴湁鏁堜换鍔℃暟鎹��");
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Status.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Status.cs
index f466db3..c4cc9d3 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Status.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Status.cs
@@ -2,18 +2,9 @@
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Enums;
-using WIDESEAWCS_DTO;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
-using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_Core;
-using WIDESEAWCS_Core.Enums;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_QuartzJob.Models;
-using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_TaskInfoService;
@@ -164,7 +155,6 @@
string oldCurrentPos = task.CurrentAddress;
string oldNextPos = task.NextAddress;
-
Dt_Router routers = _routerService.QueryNextRoute(oldNextPos, task.TargetAddress);
if (routers == null) throw new Exception($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
index 79096d3..07fb90d 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
@@ -198,23 +198,31 @@
{
// 娌℃湁浠诲姟锛屽悜 WMS 璇锋眰鍑哄簱鎵樼洏浠诲姟
var position = checkPalletPositions.FirstOrDefault(x => x.Code == childDeviceCode);
- //QuartzLogHelper.LogInfo(_logger, "Execute锛氭鏌ユ墭鐩樹綅缃� {ChildDeviceCode}锛岃姹俉MS鍑哄簱鎵樼洏浠诲姟", $"妫�鏌ユ墭鐩樹綅缃� {childDeviceCode}锛岃姹俉MS鍑哄簱鎵樼洏浠诲姟", conveyorLine.DeviceCode, childDeviceCode);
- var responseResult = _httpClientHelper.Post<WebResponseContent>("GetOutBoundTrayTaskAsync", new CreateTaskDto()
+ string configKey = "GetOutBoundTrayTaskAsync";
+ string requestParam = new CreateTaskDto()
{
WarehouseId = position.WarehouseId,
TargetAddress = childDeviceCode
- }.Serialize());
+ }.Serialize();
+ DateTime startTime = DateTime.Now;
+
+ var responseResult = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
_lastPalletCheckTime[childDeviceCode] = DateTime.Now;
// 濡傛灉璇锋眰鎴愬姛锛屾帴鏀� WMS 杩斿洖鐨勪换鍔�
if (responseResult.IsSuccess && responseResult.Data.Status)
{
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,鍝嶅簲鏁版嵁:銆恵responseResult.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", conveyorLine.DeviceCode);
var wmsTask = JsonConvert.DeserializeObject<WMSTaskDTO>(responseResult.Data.Data.ToString());
List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO> { wmsTask };
if (wmsTask != null)
_taskService.ReceiveWMSTask(taskDTOs);
+ }
+ else
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵responseResult.Data?.Message}銆�", conveyorLine.DeviceCode);
}
}
}
@@ -236,7 +244,7 @@
var task = _taskService.QueryManualInboundTask(childDeviceCode);
if (task != null)
{
- var handler = new ManualInboundTaskHandler(_taskService);
+ var handler = new ManualInboundTaskHandler(_taskService, _logger);
handler.WriteTaskToPlc(conveyorLine, childDeviceCode, task);
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs
index f97e8bf..4b8b7fe 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs
@@ -1,3 +1,4 @@
+using Serilog;
using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -20,12 +21,19 @@
private readonly ITaskService _taskService;
/// <summary>
+ /// 鏃ュ織璁板綍鍣�
+ /// </summary>
+ private readonly ILogger _logger;
+
+ /// <summary>
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="taskService">浠诲姟鏈嶅姟</param>
- public ManualInboundTaskHandler(ITaskService taskService)
+ /// <param name="logger">鏃ュ織璁板綍鍣�</param>
+ public ManualInboundTaskHandler(ITaskService taskService, ILogger logger)
{
_taskService = taskService;
+ _logger = logger;
}
/// <summary>
@@ -38,7 +46,7 @@
{
if (conveyorLine == null || string.IsNullOrEmpty(childDeviceCode) || task == null)
{
- QuartzLogger.Error("ManualInboundTaskHandler.WriteTaskToPlc: 鍙傛暟涓虹┖", "ManualInbound");
+ QuartzLogHelper.LogError(_logger, "ManualInboundTaskHandler.WriteTaskToPlc: 鍙傛暟涓虹┖", "ManualInbound");
return;
}
@@ -57,18 +65,18 @@
var updateResult = _taskService.UpdateTaskStatusToNext(task);
if (!updateResult.Status)
{
- QuartzLogger.Error($"ManualInboundTaskHandler: 鏇存柊浠诲姟鐘舵�佸け璐ワ紝浠诲姟鍙枫�恵task.TaskNum}銆戯紝閿欒淇℃伅:{updateResult.Message}", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogError(_logger, $"ManualInboundTaskHandler: 鏇存柊浠诲姟鐘舵�佸け璐ワ紝浠诲姟鍙枫�恵task.TaskNum}銆戯紝閿欒淇℃伅:{updateResult.Message}", conveyorLine.DeviceCode);
return;
}
// 鍐欏叆ACK鏍囧織
conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
- QuartzLogger.Info($"ManualInboundTaskHandler: 鎵嬪姩浠诲姟鍐欏叆PLC鎴愬姛锛屼换鍔″彿銆恵task.TaskNum}銆戯紝婧愬湴鍧�銆恵task.SourceAddress}銆�", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogInfo(_logger, $"ManualInboundTaskHandler: 鎵嬪姩浠诲姟鍐欏叆PLC鎴愬姛锛屼换鍔″彿銆恵task.TaskNum}銆戯紝婧愬湴鍧�銆恵task.SourceAddress}銆�", conveyorLine.DeviceCode);
}
catch (Exception ex)
{
- QuartzLogger.Error($"ManualInboundTaskHandler: 鍐欏叆杈撻�佺嚎浠诲姟寮傚父锛岄敊璇俊鎭�:{ex.Message}", "ManualInbound");
+ QuartzLogHelper.LogError(_logger, ex, $"ManualInboundTaskHandler: 鍐欏叆杈撻�佺嚎浠诲姟寮傚父", $"ManualInboundTaskHandler: 鍐欏叆杈撻�佺嚎浠诲姟寮傚父锛岄敊璇俊鎭�:{ex.Message}", "ManualInbound");
}
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotClientManager.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotClientManager.cs
index 1d952e3..c021204 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotClientManager.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotClientManager.cs
@@ -1,6 +1,6 @@
+using Serilog;
using System.Collections.Concurrent;
using System.Net.Sockets;
-using Microsoft.Extensions.Logging;
using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
@@ -101,8 +101,7 @@
// 娓呯悊璇ュ鎴风鐨� HandleClientAsync 鍚姩鏍囧織
// 浠ヤ究涓嬫閲嶈繛鏃跺彲浠ラ噸鏂板惎鍔ㄥ鐞�
_handleClientStarted.TryRemove(ipAddress, out _);
- _logger.LogDebug("瀹㈡埛绔湭杩炴帴锛孖P: {IpAddress}", ipAddress);
- QuartzLogger.Debug($"瀹㈡埛绔湭杩炴帴锛孖P: {ipAddress}", robotCrane.DeviceName);
+ QuartzLogHelper.LogDebug(_logger, $"瀹㈡埛绔湭杩炴帴锛孖P: {ipAddress}", robotCrane.DeviceName);
return false;
}
@@ -113,8 +112,7 @@
// 缁戝畾瀹㈡埛绔柇寮�杩炴帴鐨勪簨浠跺鐞�
_tcpSocket.RobotReceived += OnRobotReceived;
// 璁板綍鏃ュ織锛氫簨浠惰闃呮垚鍔�
- _logger.LogInformation("鏈烘鎵婽CP娑堟伅浜嬩欢宸茶闃咃紝璁惧: {DeviceName}", robotCrane.DeviceName);
- QuartzLogger.Info($"鏈烘鎵婽CP娑堟伅浜嬩欢宸茶闃�", robotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鏈烘鎵婽CP娑堟伅浜嬩欢宸茶闃�", robotCrane.DeviceName);
}
// 浠� TCP 鏈嶅姟鍣ㄧ殑瀹㈡埛绔瓧鍏镐腑鑾峰彇 TcpClient 瀵硅薄
@@ -126,8 +124,7 @@
{
// 绉婚櫎鍚姩鏍囧織锛岃繑鍥� false 琛ㄧず瀹㈡埛绔笉鍙敤
_handleClientStarted.TryRemove(ipAddress, out _);
- _logger.LogWarning("鑾峰彇TcpClient澶辫触锛孖P: {IpAddress}", ipAddress);
- QuartzLogger.Warn($"鑾峰彇TcpClient澶辫触锛孖P: {ipAddress}", robotCrane.DeviceName);
+ QuartzLogHelper.LogWarn(_logger, $"鑾峰彇TcpClient澶辫触锛孖P: {ipAddress}", robotCrane.DeviceName);
return false;
}
@@ -138,8 +135,7 @@
if (!alreadyStarted)
{
// 璁板綍鏃ュ織锛氬惎鍔ㄦ秷鎭鐞�
- _logger.LogInformation("鍚姩瀹㈡埛绔秷鎭鐞嗭紝IP: {IpAddress}", ipAddress);
- QuartzLogger.Info($"鍚姩瀹㈡埛绔秷鎭鐞�", robotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍚姩瀹㈡埛绔秷鎭鐞嗭紝IP: {ipAddress}", robotCrane.DeviceName);
// 鑾峰彇鏈�鏂扮殑鐘舵�佸璞�
var latestStateForSubscribe = _stateManager.GetState(ipAddress);
@@ -157,8 +153,7 @@
if (t.IsFaulted)
{
// 璁板綍閿欒鏃ュ織
- _logger.LogError(t.Exception, "鐩戝惉瀹㈡埛绔秷鎭簨浠跺紓甯革紝IP: {IpAddress}", ipAddress);
- QuartzLogger.Error($"鐩戝惉瀹㈡埛绔秷鎭簨浠跺紓甯�", robotCrane.DeviceName, t.Exception);
+ QuartzLogHelper.LogError(_logger, t.Exception, $"鐩戝惉瀹㈡埛绔秷鎭簨浠跺紓甯革紝IP: {ipAddress}", $"鐩戝惉瀹㈡埛绔秷鎭簨浠跺紓甯革紝IP: {ipAddress}", robotCrane.DeviceName);
// 鍙戠敓閿欒鏃讹紝绉婚櫎鍚姩鏍囧織锛屽厑璁镐笅娆¢噸璇�
_handleClientStarted.TryRemove(ipAddress, out _);
}
@@ -195,8 +190,7 @@
_handleClientStarted.TryRemove(clientId, out _);
// 璁板綍鏃ュ織锛氬鎴风鏂紑杩炴帴
- _logger.LogInformation("瀹㈡埛绔柇寮�杩炴帴锛孖P: {ClientId}", clientId);
- QuartzLogger.Info($"瀹㈡埛绔柇寮�杩炴帴", clientId);
+ QuartzLogHelper.LogInfo(_logger, $"瀹㈡埛绔柇寮�杩炴帴锛孖P: {clientId}", clientId);
// 閲嶇疆璇ュ鎴风鐨勭姸鎬佷俊鎭�
_stateManager.TryUpdateStateSafely(clientId, state =>
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotJob.cs
index ead2ab1..8daf967 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotJob.cs
@@ -1,13 +1,10 @@
-using Microsoft.Extensions.Logging;
using Quartz;
+using Serilog;
using WIDESEA_Core;
using WIDESEAWCS_Common;
-using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_Core.LogHelper;
-using WIDESEAWCS_ITaskInfoService;
-using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_Tasks.SocketServer;
using WIDESEAWCS_Tasks.Workflow;
@@ -85,7 +82,7 @@
/// <summary>
/// 鏃ュ織璁板綍鍣�
/// </summary>
- private readonly ILogger<RobotJob> _logger;
+ private readonly ILogger _logger;
/// <summary>
/// 鏋勯�犲嚱鏁�
@@ -106,7 +103,7 @@
ITaskService taskService,
IRobotStateRepository robotStateRepository,
HttpClientHelper httpClientHelper,
- ILogger<RobotJob> logger,
+ ILogger logger,
IFakeBatteryPositionService fakeBatteryPositionService)
{
// 鍒濆鍖栫姸鎬佺鐞嗗櫒锛屼紶鍏ヤ粨鍌ㄦ湇鍔�
@@ -125,9 +122,9 @@
// 鍒濆鍖栧懡浠ゅ鐞嗗櫒
// 绠�鍗曞懡浠ゅ鐞嗗櫒锛氬鐞嗙姸鎬佹洿鏂扮瓑绠�鍗曞懡浠�
- var simpleCommandHandler = new RobotSimpleCommandHandler(_taskProcessor, socketGateway);
+ var simpleCommandHandler = new RobotSimpleCommandHandler(_taskProcessor, socketGateway, _logger);
// 鍓嶇紑鍛戒护澶勭悊鍣細澶勭悊 pickfinished銆乸utfinished 绛夊甫鍙傛暟鐨勫懡浠�
- var prefixCommandHandler = new RobotPrefixCommandHandler(robotTaskService, _taskProcessor, _stateManager, socketGateway, fakeBatteryPositionService);
+ var prefixCommandHandler = new RobotPrefixCommandHandler(robotTaskService, _taskProcessor, _stateManager, socketGateway, fakeBatteryPositionService, _logger);
// 鍒濆鍖栨秷鎭矾鐢卞櫒
_messageRouter = new RobotMessageHandler(socketGateway, _stateManager, simpleCommandHandler, prefixCommandHandler, logger);
@@ -144,8 +141,7 @@
{
// 灏嗘秷鎭矾鐢卞櫒鐨勫鐞嗘柟娉曠粦瀹氬埌 TCP 鏈嶅姟鍣ㄧ殑娑堟伅鎺ユ敹浜嬩欢
tcpSocket.MessageReceived += _messageRouter.HandleMessageReceivedAsync;
- _logger.LogError("鏈哄櫒鎵婽CP娑堟伅浜嬩欢宸茶闃�");
- QuartzLogger.Error($"鏈哄櫒鎵婽CP娑堟伅浜嬩欢宸茶闃�");
+ QuartzLogHelper.LogError(_logger, $"鏈哄櫒鎵婽CP娑堟伅浜嬩欢宸茶闃�", "Unknown");
}
}
@@ -159,8 +155,7 @@
/// <param name="state">鏂紑杩炴帴鐨勬満姊版墜鐘舵��</param>
private void OnClientDisconnected(object? sender, RobotSocketState state)
{
- _logger.LogError("瀹㈡埛绔凡鏂紑杩炴帴");
- QuartzLogger.Error($"瀹㈡埛绔凡鏂紑杩炴帴", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogError(_logger, $"瀹㈡埛绔凡鏂紑杩炴帴", state.RobotCrane.DeviceName);
}
/// <summary>
@@ -246,8 +241,7 @@
{
// 寮傚父澶勭悊宸插湪缁勪欢鍐呴儴杩涜锛孞ob 灞備繚鎸佸厹搴曡涔�
// 璁板綍寮傚父鑰屼笉鏄潤榛樺悶鎺夛紝渚夸簬鎺掓煡闂
- _logger?.LogError(ex, "RobotJob鎵ц寮傚父锛孖P: {IpAddress}", ipAddress);
- QuartzLogger.Error($"RobotJob鎵ц寮傚父锛孖P: {ipAddress}", state.RobotCrane.DeviceName, ex);
+ QuartzLogHelper.LogError(_logger, ex, $"RobotJob鎵ц寮傚父锛孖P: {ipAddress}", $"RobotJob鎵ц寮傚父锛孖P: {ipAddress}", state.RobotCrane.DeviceName);
}
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs
index e67abf1..62ea8ee 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotMessageHandler.cs
@@ -1,8 +1,6 @@
-using Microsoft.Extensions.Logging;
+using Serilog;
using System.Net.Sockets;
using WIDESEAWCS_Common;
-using WIDESEAWCS_Core.LogHelper;
-using WIDESEAWCS_Model.Models;
using WIDESEAWCS_Tasks.Workflow.Abstractions;
namespace WIDESEAWCS_Tasks
@@ -45,7 +43,7 @@
/// <summary>
/// 鏃ュ織璁板綍鍣�
/// </summary>
- private readonly ILogger<RobotJob> _logger;
+ private readonly ILogger _logger;
/// <summary>
/// 鏋勯�犲嚱鏁�
@@ -60,7 +58,7 @@
RobotStateManager stateManager,
IRobotSimpleCommandHandler simpleCommandHandler,
IRobotPrefixCommandHandler prefixCommandHandler,
- ILogger<RobotJob> logger)
+ ILogger logger)
{
_socketClientGateway = socketClientGateway;
_stateManager = stateManager;
@@ -91,20 +89,18 @@
public async Task<string?> HandleMessageReceivedAsync(string message, bool isJson, TcpClient client)
{
var state = _stateManager.GetState(client.Client.RemoteEndPoint.ToString());
- if(state.OperStatus == message)
+ if (state.OperStatus == message)
{
// 澶勭悊鎴愬姛鍚庯紝灏嗗師娑堟伅鍥炲啓鍒板鎴风锛堜繚鎸佸師鏈夎涓猴級
await _socketClientGateway.SendMessageAsync(client, message);
}
// 璁板綍鎺ユ敹鍒扮殑娑堟伅鏃ュ織
- _logger.LogInformation($"鎺ユ敹鍒板鎴风銆恵state.RobotCrane?.DeviceName}銆戝彂閫佹秷鎭�恵message}銆�");
- QuartzLogger.Info($"鎺ユ敹鍒板鎴风娑堟伅銆恵message}銆�", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鎺ユ敹鍒板鎴风銆恵state.RobotCrane?.DeviceName}銆戝彂閫佹秷鎭�恵message}銆�", state.RobotCrane?.DeviceName);
// 妫�鏌ヤ换鍔℃�绘暟鏄惁鏈揪鍒颁笂闄�
if (state.RobotTaskTotalNum > RobotConst.MaxTaskTotalNum)
{
- _logger.LogInformation($"鎺ユ敹鍒板鎴风銆恵state.RobotCrane?.DeviceName}銆戝彂閫佹秷鎭�恵message}銆�");
- QuartzLogger.Info($"鎺ユ敹鍒板鎴风娑堟伅銆恵message}銆�", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鎺ユ敹鍒板鎴风銆恵state.RobotCrane?.DeviceName}銆戝彂閫佹秷鎭�恵message}銆�", state.RobotCrane?.DeviceName);
await _socketClientGateway.SendMessageAsync(client, message);
return null;
}
@@ -116,11 +112,11 @@
// 绠�鍗曞懡浠ゅ寘鎷細homing銆乭omed銆乺unning銆乸ausing銆乺unmode銆乧ontrolmode 绛�
if (await _simpleCommandHandler.HandleAsync(messageLower, state))
{
- if(messageLower != "batteryarrived")
+ if (messageLower != "batteryarrived")
{
// 澶勭悊鎴愬姛鍚庯紝灏嗗師娑堟伅鍥炲啓鍒板鎴风锛堜繚鎸佸師鏈夎涓猴級
await _socketClientGateway.SendMessageAsync(client, message);
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆恵message}銆�", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆恵message}銆�", state.RobotCrane?.DeviceName);
}
// 瀹夊叏鏇存柊鐘舵�佸埌鏁版嵁搴�
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotStateManager.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotStateManager.cs
index 4aaae62..5c1ecba 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotStateManager.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotStateManager.cs
@@ -1,6 +1,5 @@
-using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
-using WIDESEAWCS_Core.LogHelper;
+using Serilog;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_Model.Models;
@@ -94,8 +93,7 @@
if (currentEntity == null)
{
_repository.GetOrCreate(newState.IPAddress, newState.RobotCrane ?? new RobotCraneDevice());
- _logger.LogDebug("TryUpdateStateSafely锛氬垱寤烘柊鐘舵�侊紝IP: {IpAddress}", ipAddress);
- QuartzLogger.Debug($"鍒涘缓鏂扮姸鎬侊紝IP: {ipAddress}", ipAddress);
+ QuartzLogHelper.LogDebug(_logger, $"鍒涘缓鏂扮姸鎬侊紝IP: {ipAddress}", ipAddress);
return true;
}
@@ -112,8 +110,7 @@
if (!success)
{
- _logger.LogWarning("TryUpdateStateSafely锛氱増鏈啿绐侊紝鏇存柊澶辫触锛孖P: {IpAddress}锛屾湡鏈涚増鏈�: {ExpectedVersion}", ipAddress, expectedVersion);
- QuartzLogger.Warn($"鐗堟湰鍐茬獊锛屾洿鏂板け璐ワ紝IP: {ipAddress}", ipAddress);
+ QuartzLogHelper.LogWarn(_logger, $"TryUpdateStateSafely锛氱増鏈啿绐侊紝鏇存柊澶辫触锛孖P: {ipAddress}锛屾湡鏈涚増鏈�: {expectedVersion}", ipAddress);
}
return success;
@@ -161,4 +158,4 @@
return _repository.ToSocketState(entity);
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 104a1bb..84113a2 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -1,5 +1,5 @@
-using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
+using Serilog;
using WIDESEA_Core;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.HttpEnum;
@@ -176,8 +176,7 @@
if (result)
{
// 鍙戦�佹垚鍔燂紝璁板綍 Info 鏃ュ織
- _logger.LogInformation("涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
// 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘墽琛屼腑"
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
@@ -200,8 +199,7 @@
else
{
// 鍙戦�佸け璐ワ紝璁板綍 Error 鏃ュ織
- _logger.LogError("涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
}
}
@@ -224,7 +222,7 @@
{
if (positions == null || positions.Count == 0)
{
- _logger.LogWarning("SendSocketRobotFakeBatteryPickAsync锛氬钩闈㈢偣浣嶅垪琛ㄤ负绌猴紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
+ QuartzLogHelper.LogWarn(_logger, $"SendSocketRobotFakeBatteryPickAsync锛氬钩闈㈢偣浣嶅垪琛ㄤ负绌猴紝浠诲姟鍙�: {task.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return;
}
@@ -241,9 +239,7 @@
if (result)
{
- _logger.LogInformation("涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {TaskString}锛岀偣浣�: {Positions}锛岃澶�: {DeviceName}",
- taskString, string.Join(",", positions), state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛岀偣浣�: {string.Join(",", positions)}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
// 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘墽琛屼腑"
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
@@ -258,8 +254,7 @@
}
else
{
- _logger.LogError("涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
}
}
@@ -324,9 +319,7 @@
if (result)
{
- _logger.LogInformation("涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {TaskString}锛屾壒娆�: {Range}锛岃澶�: {DeviceName}",
- taskString, range, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
state.CurrentTask = task;
@@ -338,8 +331,7 @@
}
else
{
- _logger.LogError("涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
}
}
@@ -371,9 +363,7 @@
if (result)
{
- _logger.LogInformation("涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {TaskString}锛屾壒娆�: {Range}锛岃澶�: {DeviceName}",
- taskString, range, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛屾壒娆�: {range}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
state.CurrentTask = task;
@@ -385,8 +375,7 @@
}
else
{
- _logger.LogError("涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
}
}
@@ -419,9 +408,7 @@
if (result)
{
- _logger.LogInformation("涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {TaskString}锛屾壒娆�: {Range}锛岃澶�: {DeviceName}",
- taskString, range, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
state.CurrentTask = task;
@@ -433,9 +420,7 @@
}
else
{
- _logger.LogError("涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}",
- taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}", state.RobotCrane?.DeviceName);
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
}
}
@@ -462,8 +447,7 @@
var currentTask = state.CurrentTask;
if (currentTask == null)
{
- _logger.LogDebug("HandleInboundTaskAsync锛氬綋鍓嶄换鍔′负绌�");
- QuartzLogger.Debug($"HandleInboundTaskAsync锛氬綋鍓嶄换鍔′负绌�", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogDebug(_logger, $"HandleInboundTaskAsync锛氬綋鍓嶄换鍔′负绌�", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -573,17 +557,27 @@
};
// 璁板綍鏃ュ織锛氬紑濮嬭皟鐢� WMS 鍒涘缓鍏ュ簱浠诲姟
- _logger.LogInformation("HandleInboundTaskAsync锛氳皟鐢╓MS鍒涘缓鍏ュ簱浠诲姟锛屾墭鐩樼爜: {PalletCode}锛屼换鍔$被鍨�: {TaskType}", PalletCode, taskType);
- QuartzLogger.Info($"璋冪敤WMS鍒涘缓鍏ュ簱浠诲姟锛屾墭鐩樼爜: {PalletCode}锛屼换鍔$被鍨�: {taskType}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogInfo(_logger, $"HandleInboundTaskAsync锛氳皟鐢╓MS鍒涘缓鍏ュ簱浠诲姟锛屾墭鐩樼爜: {PalletCode}锛屼换鍔$被鍨�: {taskType}", state.RobotCrane?.DeviceName ?? "Unknown");
// 璋冪敤 WMS 鎺ュ彛鍒涘缓鍏ュ簱浠诲姟
- var result = _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.CreateTaskInboundAsync), taskDto.ToJson());
+ string configKey = nameof(ConfigKey.CreateTaskInboundAsync);
+ string requestParam = taskDto.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", state.RobotCrane?.DeviceName ?? "Unknown");
+ return false;
+ }
+
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", state.RobotCrane?.DeviceName ?? "Unknown");
// 濡傛灉璋冪敤澶辫触鎴栬繑鍥為敊璇姸鎬�
if (!result.Data.Status && result.IsSuccess)
{
- _logger.LogError("HandleInboundTaskAsync锛歐MS杩斿洖閿欒鐘舵�侊紝Status: {Status}", result.Data.Status);
- QuartzLogger.Error($"HandleInboundTaskAsync锛歐MS杩斿洖閿欒鐘舵��", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"HandleInboundTaskAsync锛歐MS杩斿洖閿欒鐘舵�侊紝Status: {result.Data.Status}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -594,8 +588,7 @@
var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
if (!content.Status)
{
- _logger.LogError("HandleInboundTaskAsync锛氭帴鏀禬MS浠诲姟澶辫触");
- QuartzLogger.Error($"HandleInboundTaskAsync锛氭帴鏀禬MS浠诲姟澶辫触", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"HandleInboundTaskAsync锛氭帴鏀禬MS浠诲姟澶辫触", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -698,7 +691,18 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostSplitPalletAsync(StockDTO stockDTO)
{
- return _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.SplitPalletAsync), stockDTO.ToJson());
+ string configKey = nameof(ConfigKey.SplitPalletAsync);
+ string requestParam = stockDTO.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
/// <summary>
@@ -717,7 +721,17 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostGroupPalletAsync(string configKey, StockDTO stockDTO)
{
- return _httpClientHelper.Post<WebResponseContent>(configKey, stockDTO.ToJson());
+ string requestParam = stockDTO.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
/// <summary>
@@ -731,8 +745,19 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostSplitPalletConfirmAsync(string palletCode, string deviceName)
{
+ string configKey = nameof(ConfigKey.SplitPalletConfirm);
var request = new { PalletCode = palletCode, DeviceName = deviceName };
- return _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.SplitPalletConfirm), request.ToJson());
+ string requestParam = request.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
/// <summary>
@@ -746,8 +771,19 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostGroupPalletConfirmAsync(string palletCode, string deviceName)
{
+ string configKey = nameof(ConfigKey.GroupPalletConfirm);
var request = new { PalletCode = palletCode, DeviceName = deviceName };
- return _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.GroupPalletConfirm), request.ToJson());
+ string requestParam = request.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
index d7aa124..cf749d9 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
@@ -1,7 +1,9 @@
using System.Net.Sockets;
+using Serilog;
using WIDESEAWCS_Common.HttpEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_Tasks.Workflow.Abstractions;
@@ -66,6 +68,11 @@
private readonly IFakeBatteryPositionService _fakeBatteryPositionService;
/// <summary>
+ /// 鏃ュ織璁板綍鍣�
+ /// </summary>
+ private readonly ILogger _logger;
+
+ /// <summary>
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="robotTaskService">浠诲姟鏈嶅姟</param>
@@ -73,18 +80,21 @@
/// <param name="stateManager">鐘舵�佺鐞嗗櫒</param>
/// <param name="socketClientGateway">Socket 缃戝叧</param>
/// <param name="fakeBatteryPositionService">鍋囩數鑺綅缃湇鍔�</param>
+ /// <param name="logger">鏃ュ織璁板綍鍣�</param>
public RobotPrefixCommandHandler(
IRobotTaskService robotTaskService,
RobotTaskProcessor taskProcessor,
RobotStateManager stateManager,
ISocketClientGateway socketClientGateway,
- IFakeBatteryPositionService fakeBatteryPositionService)
+ IFakeBatteryPositionService fakeBatteryPositionService,
+ ILogger logger)
{
_robotTaskService = robotTaskService;
_taskProcessor = taskProcessor;
_stateManager = stateManager;
_socketClientGateway = socketClientGateway;
_fakeBatteryPositionService = fakeBatteryPositionService;
+ _logger = logger;
}
/// <summary>
@@ -164,13 +174,13 @@
}
else
{
- Console.WriteLine($"RobotJob HandleAsync Warning: Current task not found for RobotTaskId {state.CurrentTask.RobotTaskId}");
+ QuartzLogHelper.LogWarn(_logger, $"RobotJob HandleAsync Warning: Current task not found for RobotTaskId {state.CurrentTask.RobotTaskId}", state.RobotCrane?.DeviceName ?? "Unknown");
}
}
catch (Exception ex)
{
// 鎹曡幏骞惰褰曞紓甯革紝闃叉寮傚父鍚戜笂浼犳挱瀵艰嚧娑堟伅澶勭悊涓柇
- Console.WriteLine($"RobotJob MessageReceived Error: {ex.Message}");
+ QuartzLogHelper.LogError(_logger, ex, $"RobotJob MessageReceived Error: {ex.Message}", $"RobotJob MessageReceived Error: {ex.Message}", state.RobotCrane?.DeviceName ?? "Unknown");
}
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
index 767805f..9f8efa0 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
@@ -1,3 +1,4 @@
+using Serilog;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_Model.Models;
@@ -36,13 +37,20 @@
private readonly ISocketClientGateway _socketClientGateway;
/// <summary>
+ /// 鏃ュ織璁板綍鍣�
+ /// </summary>
+ private readonly ILogger _logger;
+
+ /// <summary>
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="taskProcessor">浠诲姟澶勭悊鍣ㄥ疄渚�</param>
- public RobotSimpleCommandHandler(RobotTaskProcessor taskProcessor, ISocketClientGateway socketClientGateway)
+ /// <param name="logger">鏃ュ織璁板綍鍣�</param>
+ public RobotSimpleCommandHandler(RobotTaskProcessor taskProcessor, ISocketClientGateway socketClientGateway, ILogger logger)
{
_taskProcessor = taskProcessor;
_socketClientGateway = socketClientGateway;
+ _logger = logger;
}
/// <summary>
@@ -157,7 +165,7 @@
var confirmResult = _taskProcessor.PostSplitPalletConfirmAsync(sourcePallet, state.RobotCrane?.DeviceName);
if (!confirmResult.IsSuccess)
{
- QuartzLogger.Error($"鎵归噺鎷嗙洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"鎵归噺鎷嗙洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -171,12 +179,12 @@
if (_taskProcessor.DeleteTask(currentTask.RobotTaskId) != true)
{
- QuartzLogger.Error($"allpickfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"allpickfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Swap,diskFinished");
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
state.CurrentTask = null;
state.RobotTaskTotalNum = 0;
@@ -206,12 +214,12 @@
if (_taskProcessor.DeleteTask(currentTask.RobotTaskId) != true)
{
- QuartzLogger.Error($"allpickfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"allpickfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Swap,diskFinished");
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
state.ChangePalletPhase = 0;
state.CurrentBatchIndex = 1;
@@ -227,7 +235,7 @@
var confirmResult = _taskProcessor.PostSplitPalletConfirmAsync(sourcePallet, state.RobotCrane?.DeviceName);
if (!confirmResult.IsSuccess)
{
- QuartzLogger.Error($"鎵归噺鎷嗙洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"鎵归噺鎷嗙洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -239,12 +247,12 @@
// 鍏ュ簱鎴愬姛锛屽垹闄や换鍔¤褰�
if (_taskProcessor.DeleteTask(currentTask.RobotTaskId) != true)
{
- QuartzLogger.Error($"allpickfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"allpickfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Swap,diskFinished");
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
return true;
}
return false;
@@ -274,7 +282,7 @@
var confirmResult = _taskProcessor.PostGroupPalletConfirmAsync(targetPallet, state.RobotCrane?.DeviceName);
if (!confirmResult.IsSuccess)
{
- QuartzLogger.Error($"鎵归噺缁勭洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"鎵归噺缁勭洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -288,7 +296,7 @@
if (_taskProcessor.DeleteTask(currentTask.RobotTaskId) != true)
{
- QuartzLogger.Error($"allputfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"allputfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -297,7 +305,7 @@
state.CellBarcode = new List<string>();
await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Swap,diskFinished");
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
state.ChangePalletPhase = 0;
state.CurrentBatchIndex = 1;
@@ -324,7 +332,7 @@
if (_taskProcessor.DeleteTask(currentTask.RobotTaskId) != true)
{
- QuartzLogger.Error($"allputfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"allputfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -333,7 +341,7 @@
state.CellBarcode = new List<string>();
await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Swap,diskFinished");
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆怱wap,diskFinished銆�", state.RobotCrane.DeviceName);
state.ChangePalletPhase = 0;
state.CurrentBatchIndex = 1;
@@ -349,7 +357,7 @@
var confirmResult = _taskProcessor.PostGroupPalletConfirmAsync(targetPallet, state.RobotCrane?.DeviceName);
if (!confirmResult.IsSuccess)
{
- QuartzLogger.Error($"鎵归噺缁勭洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"鎵归噺缁勭洏纭澶辫触: {confirmResult.ErrorMessage}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -363,7 +371,7 @@
// 鍏ュ簱鎴愬姛锛屽垹闄や换鍔¤褰�
if (_taskProcessor.DeleteTask(currentTask.RobotTaskId) != true)
{
- QuartzLogger.Error($"allputfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"allputfinished锛氬垹闄や换鍔¤褰曞け璐ワ紝浠诲姟鍙�: {currentTask.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -373,7 +381,7 @@
state.CellBarcode = new List<string>(); // 娓呯┖鏉$爜鍒楄〃
await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Group,diskFinished");
- QuartzLogger.Info($"鍙戦�佹秷鎭細銆怗roup,diskFinished銆�", state.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"鍙戦�佹秷鎭細銆怗roup,diskFinished銆�", state.RobotCrane.DeviceName);
return true;
}
return false;
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
index 2f516f6..158d35c 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
@@ -1,11 +1,9 @@
-using Microsoft.Extensions.Logging;
-using WIDESEA_Core;
+using Serilog;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_Tasks.SocketServer;
using WIDESEAWCS_Tasks.Workflow.Abstractions;
namespace WIDESEAWCS_Tasks.Workflow
@@ -123,8 +121,7 @@
&& (latestState.RobotArmObject.IsNullOrEmpty() || latestState.RobotArmObject == 1)
&& task.RobotTaskState == TaskRobotStatusEnum.RobotPickFinish.GetHashCode())
{
- _logger.LogInformation("ExecuteAsync锛氭弧瓒虫斁璐ф潯浠讹紝寮�濮嬩笅鍙戞斁璐т换鍔★紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
- QuartzLogger.Info($"ExecuteAsync锛氭弧瓒虫斁璐ф潯浠讹紝寮�濮嬩笅鍙戞斁璐т换鍔�", latestState.RobotCrane?.DeviceName ?? ipAddress);
+ QuartzLogHelper.LogInfo(_logger, $"ExecuteAsync锛氭弧瓒虫斁璐ф潯浠讹紝寮�濮嬩笅鍙戞斁璐т换鍔�,浠诲姟鍙�: {task.RobotTaskNum}", latestState.RobotCrane?.DeviceName ?? ipAddress);
// 鍙戦�佹斁璐ф寚浠�
await HandlePickFinishedStateAsync(task, ipAddress);
}
@@ -137,11 +134,9 @@
// - 浠诲姟鐘舵�佷负 RobotPutFinish 鎴栦笉鏄� RobotExecuting
else if ((latestState.CurrentAction == "PutFinished" || latestState.CurrentAction == "AllPutFinished" || latestState.CurrentAction.IsNullOrEmpty())
&& (latestState.RobotArmObject.IsNullOrEmpty() || latestState.RobotArmObject == 0)
- && (task.RobotTaskState == TaskRobotStatusEnum.RobotPutFinish.GetHashCode() || task.RobotTaskState != TaskRobotStatusEnum.RobotExecuting.GetHashCode())
- && latestState.BatteryArrived)
+ && (task.RobotTaskState == TaskRobotStatusEnum.RobotPutFinish.GetHashCode() || task.RobotTaskState != TaskRobotStatusEnum.RobotExecuting.GetHashCode()))
{
- _logger.LogInformation("ExecuteAsync锛氭弧瓒冲彇璐ф潯浠讹紝寮�濮嬩笅鍙戝彇璐т换鍔★紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
- QuartzLogger.Info($"ExecuteAsync锛氭弧瓒冲彇璐ф潯浠讹紝寮�濮嬩笅鍙戝彇璐т换鍔�", latestState.RobotCrane?.DeviceName ?? ipAddress);
+ QuartzLogHelper.LogInfo(_logger, $"ExecuteAsync锛氭弧瓒冲彇璐ф潯浠讹紝寮�濮嬩笅鍙戝彇璐т换鍔★紝浠诲姟鍙�: {task.RobotTaskNum}", latestState.RobotCrane?.DeviceName ?? ipAddress);
// 鍙戦�佸彇璐ф寚浠�
await HandlePutFinishedStateAsync(task, ipAddress);
}
@@ -229,7 +224,7 @@
var positions = _taskProcessor.GetNextAvailableFakeBatteryPositions(Math.Min(4, remainingFake));
if (positions.Count == 0)
{
- _logger.LogError("HandlePickFinishedStateAsync锛氭棤鍙敤鍋囩數鑺偣浣嶏紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePickFinishedStateAsync锛氭棤鍙敤鍋囩數鑺偣浣嶏紝浠诲姟鍙�: {task.RobotTaskNum}", state?.RobotCrane?.DeviceName ?? ipAddress);
return;
}
@@ -267,8 +262,7 @@
if (result)
{
- _logger.LogInformation("HandlePickFinishedStateAsync锛氫笅鍙戞斁璐ф寚浠ゆ垚鍔燂紝鎸囦护: {TaskString}锛屼换鍔″彿: {TaskNum}", taskString, task.RobotTaskNum);
- QuartzLogger.Info($"涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}", task.RobotRoadway);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePickFinishedStateAsync锛氫笅鍙戞斁璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛屼换鍔″彿: {task.RobotTaskNum}", state?.RobotCrane?.DeviceName ?? ipAddress);
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
@@ -285,8 +279,7 @@
}
else
{
- _logger.LogError("HandlePickFinishedStateAsync锛氫笅鍙戞斁璐ф寚浠ゅけ璐ワ紝鎸囦护: {TaskString}锛屼换鍔″彿: {TaskNum}", taskString, task.RobotTaskNum);
- QuartzLogger.Error($"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}", task.RobotRoadway);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePickFinishedStateAsync锛氫笅鍙戞斁璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛屼换鍔″彿: {task.RobotTaskNum}", state?.RobotCrane?.DeviceName ?? ipAddress);
}
}
@@ -315,8 +308,7 @@
RobotSocketState? stateForUpdate = _stateManager.GetState(ipAddress);
if (stateForUpdate == null)
{
- _logger.LogWarning("HandlePutFinishedStateAsync锛氳幏鍙栫姸鎬佸け璐ワ紝IP: {IpAddress}", ipAddress);
- QuartzLogger.Warn($"HandlePutFinishedStateAsync锛氳幏鍙栫姸鎬佸け璐ワ紝IP: {ipAddress}", ipAddress);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氳幏鍙栫姸鎬佸け璐ワ紝IP: {ipAddress}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
return;
}
@@ -346,10 +338,7 @@
{
if (stateForUpdate.CellBarcode.Contains(trayBarcode1) || stateForUpdate.CellBarcode.Contains(trayBarcode2))
{
- _logger.LogError("HandlePutFinishedStateAsync锛氳鍙栫殑鎵樼洏鏉$爜宸插瓨鍦紝鍙兘瀛樺湪閲嶅锛屼换鍔″彿: {TaskNum}", task.RobotTaskNum);
- QuartzLogger.Error($"璇诲彇鐨勬墭鐩樻潯鐮佸凡瀛樺湪锛屽彲鑳藉瓨鍦ㄩ噸澶�", stateForUpdate.RobotCrane.DeviceName);
-
- // 鏉$爜閲嶅锛岃褰曢敊璇棩蹇楀苟鍋滄鍚庣画鎿嶄綔(鍚庣画鏀捐揣鏃朵細鐢ㄥ埌杩欎簺鏉$爜淇℃伅锛屼緵鍚庣画鏀捐揣鏃朵娇鐢紝璋冭瘯鍚庡彲鑳戒細鍙栨秷姝ら�昏緫)
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氳鍙栫殑鎵樼洏鏉$爜宸插瓨鍦紝鍙兘瀛樺湪閲嶅锛屼换鍔″彿: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
// 鍙戦�佸彇璐ф寚浠� 鏍囪鎵爜NG锛屾斁璐ф椂涓嶄娇鐢ㄨ繖浜涙潯鐮侊紝骞舵斁鍏G鍙�
//await _taskProcessor.SendSocketRobotPickAsync(task, stateForUpdate, true);
@@ -357,8 +346,7 @@
}
else
{
- _logger.LogInformation("HandlePutFinishedStateAsync锛氳鍙栫殑鎵樼洏鏉$爜鍞竴锛岀户缁墽琛岋紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
- QuartzLogger.Info($"璇诲彇鐨勬墭鐩樻潯鐮佸敮涓�锛岀户缁墽琛�", stateForUpdate.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氳鍙栫殑鎵樼洏鏉$爜鍞竴锛岀户缁墽琛岋紝浠诲姟鍙�: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
// 灏嗘潯鐮佹坊鍔犲埌鐘舵�佷腑锛屼緵鍚庣画鏀捐揣鏃朵娇鐢�
stateForUpdate.CellBarcode = new List<string>()
@@ -368,8 +356,7 @@
}
// 璁板綍鏃ュ織锛氳鍙栨墭鐩樻潯鐮佹垚鍔�
- _logger.LogInformation("HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佹垚鍔�: {Barcode1}+{Barcode2}锛屼换鍔″彿: {TaskNum}", trayBarcode1, trayBarcode2, task.RobotTaskNum);
- QuartzLogger.Info($"璇诲彇鎵樼洏鏉$爜鎴愬姛: {trayBarcode1}+{trayBarcode2}", stateForUpdate.RobotCrane.DeviceName);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佹垚鍔�: 銆恵trayBarcode1}銆�-----銆恵trayBarcode2}銆戯紝浠诲姟鍙�: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
// 鍙戦�佸彇璐ф寚浠�
await _taskProcessor.SendSocketRobotPickAsync(task, stateForUpdate);
@@ -377,9 +364,7 @@
else
{
// 鏉$爜璇诲彇澶辫触锛岃褰曢敊璇棩蹇�
- _logger.LogError("HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佸け璐ワ紝浠诲姟鍙�: {TaskNum}锛屼竴鍙蜂綅: {trayBarcode1}锛屼簩鍙蜂綅: {trayBarcode2}", task.RobotTaskNum,trayBarcode1,trayBarcode2);
- QuartzLogger.Error($"璇诲彇鎵樼洏鏉$爜澶辫触,涓�鍙蜂綅锛歿trayBarcode1},浜屽彿浣嶏細{trayBarcode2}", stateForUpdate.RobotCrane.DeviceName);
-
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佸け璐ワ紝銆恵trayBarcode1}銆�-----銆恵trayBarcode2}銆戯紝浠诲姟鍙�: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
// 鍙戦�佸彇璐ф寚浠� 鏍囪鎵爜NG锛屾斁璐ф椂涓嶄娇鐢ㄨ繖浜涙潯鐮侊紝骞舵斁鍏G鍙�
//await _taskProcessor.SendSocketRobotPickAsync(task, stateForUpdate, true);
@@ -409,8 +394,8 @@
{
stateForUpdate.ChangePalletPhase = 1;
stateForUpdate.CurrentBatchIndex = 1;
- _logger.LogInformation("HandlePutFinishedStateAsync锛氭崲鐩樹换鍔¤繘鍏ユ壒娆℃ā寮忥紝浠诲姟鍙�: {TaskNum}锛屾祦鍚�: {Flow}",
- task.RobotTaskNum, isFlowA ? "A" : "B");
+
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氭崲鐩樹换鍔¤繘鍏ユ壒娆℃ā寮忥紝浠诲姟鍙�: {{TaskNum}}锛屾祦鍚�: {(isFlowA ? "A" : "B")}锛屼换鍔″彿: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
_stateManager.TryUpdateStateSafely(ipAddress, stateForUpdate);
}
@@ -423,7 +408,8 @@
// 姝e父鐢佃姱鍙栧畬锛屽垏鎹㈠埌 Phase 3 鍙栧亣鐢佃姱
stateForUpdate.ChangePalletPhase = 3;
stateForUpdate.CurrentBatchIndex = 1; // 鍋囩數鑺壒娆′粠澶村紑濮�
- _logger.LogInformation("HandlePutFinishedStateAsync锛氭甯哥數鑺彇瀹岋紝鍒囨崲鍒癙hase 3鍙栧亣鐢佃姱锛屼换鍔″彿: {TaskNum}", task.RobotTaskNum);
+
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氭甯哥數鑺彇瀹岋紝鍒囨崲鍒癙hase 3鍙栧亣鐢佃姱锛屼换鍔″彿: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
_stateManager.TryUpdateStateSafely(ipAddress, stateForUpdate);
return;
}
@@ -451,7 +437,8 @@
{
// 鍋囩數鑺叏閮ㄥ鐞嗗畬锛屽垏鎹㈠埌 Phase 5 绛夊緟鍏ュ簱
stateForUpdate.ChangePalletPhase = 5;
- _logger.LogInformation("HandlePutFinishedStateAsync锛氬亣鐢佃姱澶勭悊瀹屾瘯锛屽垏鎹㈠埌Phase 5绛夊緟鍏ュ簱锛屼换鍔″彿: {TaskNum}", task.RobotTaskNum);
+
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氬亣鐢佃姱澶勭悊瀹屾瘯锛屽垏鎹㈠埌Phase 5绛夊緟鍏ュ簱锛屼换鍔″彿: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
_stateManager.TryUpdateStateSafely(ipAddress, stateForUpdate);
return;
}
@@ -462,7 +449,7 @@
var positions = _taskProcessor.GetNextAvailableFakeBatteryPositions(Math.Min(4, remainingFake));
if (positions.Count == 0)
{
- _logger.LogError("HandlePutFinishedStateAsync锛氭棤鍙敤鍋囩數鑺偣浣嶏紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
+ QuartzLogHelper.LogInfo(_logger, $"HandlePutFinishedStateAsync锛氭棤鍙敤鍋囩數鑺偣浣嶏紝浠诲姟鍙�: {task.RobotTaskNum}", stateForUpdate?.RobotCrane?.DeviceName ?? ipAddress);
return;
}
await _taskProcessor.SendSocketRobotFakeBatteryPickAsync(task, stateForUpdate, positions);
@@ -496,4 +483,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index cba170a..7fc1361 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -174,9 +174,8 @@
bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
if (!flag || value is not CommonStackerCrane commonStackerCrane)
{
- _logger.Information("Execute锛氬弬鏁版棤鏁堬紝鏈壘鍒� JobParams 鎴栫被鍨嬩笉鍖归厤");
// 鍙傛暟鏃犳晥锛岀洿鎺ヨ繑鍥�
- QuartzLogHelper.LogWarn(_logger, "Execute锛氬弬鏁版棤鏁�", "Execute锛氬弬鏁版棤鏁�", "CommonStackerCraneJob");
+ QuartzLogHelper.LogInfo(_logger, "Execute锛氬弬鏁版棤鏁�", "CommonStackerCraneJob");
return Task.CompletedTask;
}
@@ -218,7 +217,7 @@
if (stackerCraneTaskCommand == null)
{
// 鍛戒护鏋勫缓澶辫触
- QuartzLogHelper.LogWarn(_logger, "Execute锛氬懡浠ゆ瀯寤哄け璐ワ紝璁惧: {DeviceCode}锛屼换鍔″彿: {TaskNum}", $"鍛戒护鏋勫缓澶辫触锛屼换鍔″彿: {task.TaskNum}", _deviceCode, _deviceCode, task.TaskNum);
+ QuartzLogHelper.LogInfo(_logger, $"Execute锛氬懡浠ゆ瀯寤哄け璐ワ紝璁惧: {_deviceCode}锛屼换鍔″彿: {task.TaskNum}", _deviceCode);
return Task.CompletedTask;
}
@@ -232,17 +231,17 @@
commonStackerCrane.LastTaskType = task.TaskType;
_taskService.UpdateTaskStatusToNext(task.TaskNum);
- QuartzLogHelper.LogInfo(_logger, "Execute锛氬懡浠ゅ彂閫佹垚鍔燂紝璁惧: {DeviceCode}锛屼换鍔″彿: {TaskNum}", $"鍛戒护鍙戦�佹垚鍔燂紝浠诲姟鍙�: {task.TaskNum}", _deviceCode, _deviceCode, task.TaskNum);
+ QuartzLogHelper.LogInfo(_logger, $"Execute锛氬懡浠ゅ彂閫佹垚鍔燂紝璁惧: {_deviceCode}锛屼换鍔″彿: {task.TaskNum}", _deviceCode);
}
else
{
- QuartzLogHelper.LogError(_logger, "Execute锛氬懡浠ゅ彂閫佸け璐ワ紝璁惧: {DeviceCode}锛屼换鍔″彿: {TaskNum}", $"鍛戒护鍙戦�佸け璐�", _deviceCode, _deviceCode, task.TaskNum);
+ QuartzLogHelper.LogInfo(_logger, $"Execute锛氬懡浠ゅ彂閫佸け璐ワ紝璁惧: {_deviceCode}锛屼换鍔″彿: {task.TaskNum}", _deviceCode);
}
}
catch (Exception ex)
{
// 璁板綍寮傚父
- QuartzLogHelper.LogError(_logger, ex, "Execute锛氭墽琛屽紓甯革紝璁惧: {DeviceCode}", $"鎵ц寮傚父: {ex.Message}", _deviceCode, _deviceCode);
+ QuartzLogHelper.LogError(_logger, ex, $"Execute锛氭墽琛屽紓甯革紝璁惧: {_deviceCode}", $"鎵ц寮傚父: {ex.Message}", _deviceCode, _deviceCode);
}
finally
{
@@ -270,7 +269,7 @@
if (stackerCrane != null)
{
// 璁板綍鏃ュ織
- QuartzLogHelper.LogInfo(_logger, "CommonStackerCrane_StackerCraneTaskCompletedEventHandler锛氫换鍔″畬鎴愶紝浠诲姟鍙�: {TaskNum}", $"浠诲姟瀹屾垚锛屼换鍔″彿: {e.TaskNum}", stackerCrane.DeviceCode, e.TaskNum);
+ QuartzLogHelper.LogInfo(_logger, $"CommonStackerCrane_StackerCraneTaskCompletedEventHandler锛氫换鍔″畬鎴愶紝浠诲姟鍙�: {e.TaskNum}", stackerCrane.DeviceCode);
// 鏇存柊浠诲姟鐘舵�佷负瀹屾垚
if (_taskService.StackCraneTaskCompleted(e.TaskNum).Status)
--
Gitblit v1.9.3