diff --git a/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs b/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs index 8b2ead1..16dcf73 100644 --- a/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs +++ b/WcsMain/ApiClient/Shuttle/ShuttleWebApiAction.cs @@ -29,7 +29,7 @@ public class ShuttleWebApiAction(ShuttleBaseWebApi webApiPost) { RequestId = requestId, Key = (requestId + ApplicationBaseConfig.SHUTTLE_PWD).MD5Encrypt32(), - WmsTaskId = wmsTask.TaskId, + WmsTaskId = wmsTask.WcsId, FromCellNo = wmsTask.Origin, TaskType = "3", ToCell = wmsTask.Destination, diff --git a/WcsMain/ApiServe/Dto/Container/TaskStateNoticeRequest.cs b/WcsMain/ApiServe/Dto/Container/TaskStateNoticeRequest.cs index 9bbcc5b..f5a5b78 100644 --- a/WcsMain/ApiServe/Dto/Container/TaskStateNoticeRequest.cs +++ b/WcsMain/ApiServe/Dto/Container/TaskStateNoticeRequest.cs @@ -23,7 +23,7 @@ public class TaskStateNoticeRequest /// WMS任务号 /// [JsonPropertyName("wmstaskid")] - public string? WmsTaskId { get; set; } + public long? WmsTaskId { get; set; } /// /// 最终到达位置 @@ -39,7 +39,7 @@ public class TaskStateNoticeRequest /// 21 - 取消 /// [JsonPropertyName("taskstate")] - public string? TaskState { get; set; } + public int? TaskState { get; set; } diff --git a/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs b/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs index 671ed77..fee8faa 100644 --- a/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs +++ b/WcsMain/ApiServe/Service/ContainerService/ContainerService.cs @@ -33,13 +33,13 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task } AppWmsTask wmsTask = wmsTasks.First(); /* 更新状态为前往终点 */ - var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.toMid, ModifyTime = DateTime.Now }); + var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.toDestination, ModifyTime = DateTime.Now }); ConsoleLog.Success($"API更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}"); return new() { Code = "200", Message = "操作成功", - WmsTaskId = wmsTask.TaskId, + WmsTaskId = wmsTask.WcsId, PalletNo = wmsTask.VehicleNo, FromCellNo = request.FormCellNo, ToCellNo = wmsTask.Destination, @@ -53,11 +53,11 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task /// public TaskStateNoticeResponse TaskStateNotice(TaskStateNoticeRequest request) { - if(string.IsNullOrEmpty(request.TaskState) || string.IsNullOrEmpty(request.WmsTaskId) || string.IsNullOrEmpty(request.FactendCell)) + if(string.IsNullOrEmpty(request.TaskState?.ToString()) || string.IsNullOrEmpty(request.WmsTaskId?.ToString()) || string.IsNullOrEmpty(request.FactendCell)) { return new() { Code = "400", Message = "缺少必须的参数" }; } - List? appWmsTasks = wmsTaskDao.Select(new() { TaskId = request.WmsTaskId }); + List? appWmsTasks = wmsTaskDao.Select(new() { WcsId = request.WmsTaskId?.ToString() }); if(appWmsTasks == null) { return new() { Code = "400", Message = "数据连接异常,请稍后再试" }; @@ -67,18 +67,29 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task return new() { Code = "400", Message = $"该任务号不存在:{request.WmsTaskId}" }; } AppWmsTask wmsTask = appWmsTasks.First(); - if (wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask || wmsTask.TaskType == (int)WmsTaskTypeEnum.moveTask) + if(request.TaskState?.ToString() == "20") { - /* 入库/移库 完成需要反馈WMS任务完成,更新任务状态为完成 */ - string? errText = taskExecuteEvent.CompleteTaskEvent(wmsTask, "四向车上报完成", request.FactendCell); - return new() { Code = string.IsNullOrEmpty(errText) ? "200" : "400", Message = string.IsNullOrEmpty(errText) ? "成功" : errText, WmsTaskId = request.WmsTaskId }; + if (wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask || wmsTask.TaskType == (int)WmsTaskTypeEnum.moveTask) + { + /* 入库/移库 完成需要反馈WMS任务完成,更新任务状态为完成 */ + string? errText = taskExecuteEvent.CompleteTaskEvent(wmsTask, "四向车上报完成", request.FactendCell); + return new() { Code = string.IsNullOrEmpty(errText) ? "200" : "400", Message = string.IsNullOrEmpty(errText) ? "成功" : errText, WmsTaskId = request.WmsTaskId?.ToString() }; + } + if (wmsTask.TaskType == (int)WmsTaskTypeEnum.outTask) + { + /* 更新任务状态为到达中间点 */ + int updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.arriveMid, ModifyTime = DateTime.Now, TaskMsg = "四向车上报到达中间点" }); + return new() { Code = updateResult > 0 ? "200" : "400", Message = updateResult > 0 ? "成功" : "数据异常", WmsTaskId = request.WmsTaskId?.ToString() }; + } + return new() { Code = "400", Message = $"该任务不支持的类型:{request.WmsTaskId}" }; } - if(wmsTask.TaskType == (int)WmsTaskTypeEnum.outTask) + if (request.TaskState?.ToString() == "21") { - /* 更新任务状态为到达中间点 */ - int updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.arriveMid, ModifyTime = DateTime.Now }); - return new() { Code = updateResult > 0 ? "200" : "400", Message = updateResult > 0 ? "成功" : "数据异常", WmsTaskId = request.WmsTaskId }; + /* 更新任务状态为取消 */ + int updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.err, TaskMsg = "四向车取消", ModifyTime = DateTime.Now }); + return new() { Code = updateResult > 0 ? "200" : "400", Message = updateResult > 0 ? "成功" : "数据异常", WmsTaskId = request.WmsTaskId?.ToString() }; } - return new() { Code = "400", Message = $"该任务不支持的类型:{request.WmsTaskId}" }; + return new() { Code = "400", Message = $"不支持的状态类型:{request.TaskState}" }; } + } diff --git a/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs b/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs index 16b5163..d76d06a 100644 --- a/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs +++ b/WcsMain/ApiServe/Service/WcsService/WmsTaskService.cs @@ -63,6 +63,7 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa AppWmsTask wmsTask = new() { TaskId = request.TaskId, + WcsId = dataBaseData.GetNewUUID2(), TaskType = request.TaskType, TaskStatus = (int)WmsTaskStatusEnum.create, Priority = request.Priority ?? 0, diff --git a/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs b/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs index d0e8851..bcc4dda 100644 --- a/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs +++ b/WcsMain/ApiServe/Service/WmsService/WmsTaskService.cs @@ -12,6 +12,7 @@ using WcsMain.StaticData; using WcsMain.Utils.Plugins; using WcsMain.Constant.WcsAttribute.AutoFacAttribute; using WcsMain.Constant.ExtendMethod; +using WcsMain.Common.DataService; namespace WcsMain.ApiServe.Service.WmsService; @@ -19,7 +20,7 @@ namespace WcsMain.ApiServe.Service.WmsService; /// Wms任务接口逻辑 /// [Service] -public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDao) +public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDao, DataBaseData dataBaseData) { /// /// 接收WMS任务数据处理 @@ -74,6 +75,7 @@ public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDa wmsTasks.Add(new AppWmsTask() { TaskId = taskData.TaskId, + WcsId = dataBaseData.GetNewUUID2(), TaskType = taskData.TaskType, TaskStatus = (int)WmsTaskStatusEnum.create, Priority = taskData.Priority ?? -1, diff --git a/WcsMain/Business/CommonAction/WCSTaskExecuteEvent.cs b/WcsMain/Business/CommonAction/WCSTaskExecuteEvent.cs index 2cd7ae8..d182229 100644 --- a/WcsMain/Business/CommonAction/WCSTaskExecuteEvent.cs +++ b/WcsMain/Business/CommonAction/WCSTaskExecuteEvent.cs @@ -159,6 +159,7 @@ public class WCSTaskExecuteEvent(TaskDao taskDao, SendWmsTaskStatus sendWmsTaskS public string? CompleteTaskEvent(AppWmsTask task, string msg, string? destination) { /* 更新任务信息,任务完成 */ + task.Destination = string.IsNullOrEmpty(destination) ? task.Destination : task.Destination + "_" + destination; string? errText = taskDao.ComlpeteTask(task, msg); if (!string.IsNullOrEmpty(errText)) { @@ -172,6 +173,22 @@ public class WCSTaskExecuteEvent(TaskDao taskDao, SendWmsTaskStatus sendWmsTaskS return errText; } + public string? CancelTaskEvent(AppWmsTask task, string msg, string? destination) + { + /* 更新任务信息,任务完成 */ + int updateResult = wmsTaskDao.Update(new() { TaskId = task.TaskId, TaskStatus = task.TaskType = (int)WmsTaskStatusEnum.err, TaskMsg = msg, ModifyTime = DateTime.Now }); + if (updateResult < 1) + { + ConsoleLog.Warning($"【异常】任务取消更新WMS任务状态失败"); + } + //if (task.CreatePerson == StaticData.StaticString.WMS) + //{ + // /* 上报WMS */ + // sendWmsTaskStatus.SendTaskComplete(task.TaskId, destination: destination); + //} + return "更新信息失败"; + } + /// /// 发送任务离开起始位置 /// @@ -182,7 +199,7 @@ public class WCSTaskExecuteEvent(TaskDao taskDao, SendWmsTaskStatus sendWmsTaskS int updateResult = wmsTaskDao.Update(new() { TaskId = task.TaskId, TaskStatus = task.TaskType == (int)WmsTaskTypeEnum.moveTask ? (int)WmsTaskStatusEnum.toDestination : (int)WmsTaskStatusEnum.toMid, ModifyTime = DateTime.Now }); if (updateResult < 1) { - ConsoleLog.Warning($"【异常】任务完成更新WMS任务状态失败"); + ConsoleLog.Warning($"【异常】任务离开起点更新WMS任务状态失败"); } if (task.CreatePerson == StaticData.StaticString.WMS) { diff --git a/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs b/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs index a926a57..27f51ac 100644 --- a/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs +++ b/WcsMain/CirculationJob/Stacker/ExecuteWmsTask.cs @@ -75,7 +75,7 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta } ConsoleLog.Success($"AGV点对点搬运请求AGV服务成功,任务号:{wmsTask.TaskId}"); /* 更新任务状态为执行中 */ - var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.running, ModifyTime = DateTime.Now }); + var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.running, StartTime = DateTime.Now, ModifyTime = DateTime.Now }); ConsoleLog.Success($"更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}"); } @@ -97,7 +97,7 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta } ConsoleLog.Success($"入库搬运请求AGV成功,任务号:{wmsTask.TaskId}"); /* 更新任务状态为前往中间点,更新中间点 */ - var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, MidPoint = midPoint, TaskStatus = (int)WmsTaskStatusEnum.toMid, ModifyTime = DateTime.Now }); + var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, MidPoint = midPoint, TaskStatus = (int)WmsTaskStatusEnum.toMid, StartTime = DateTime.Now, ModifyTime = DateTime.Now }); ConsoleLog.Success($"更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}"); /* 四向车任务有接口返回给四向车 */ } @@ -111,15 +111,15 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta string? midPoint = GetEmptyOutLift(wmsTask.Origin); if (string.IsNullOrEmpty(midPoint)) return; // 没有可用站台 /* 发送四向车搬运任务 */ - string? errText = containerAction.ExecuteOutTask(wmsTask.TaskId, wmsTask.Origin, midPoint, wmsTask.VehicleNo); + string? errText = containerAction.ExecuteOutTask(wmsTask.WcsId, wmsTask.Origin, midPoint, wmsTask.VehicleNo); if (!string.IsNullOrEmpty(errText)) { ConsoleLog.Warning($"【警告】出库请求四向车搬运失败,任务号:{wmsTask.TaskId},异常信息:{errText}"); return; } - ConsoleLog.Success($"出库搬运请求四向车成功,任务号:{wmsTask.TaskId}"); + ConsoleLog.Success($"出库搬运请求四向车成功,任务号:{wmsTask.TaskId}/{wmsTask.WcsId}"); /* 更新任务状态为前往中间点,更新中间点 */ - var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, MidPoint = midPoint, TaskStatus = (int)WmsTaskStatusEnum.toMid, ModifyTime = DateTime.Now }); + var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, MidPoint = midPoint, TaskStatus = (int)WmsTaskStatusEnum.toMid, StartTime = DateTime.Now, ModifyTime = DateTime.Now }); ConsoleLog.Success($"更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}"); /* AGV接续任务由定时器触发 */ } @@ -134,12 +134,12 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta string errText = containerAction.ExecuteMoveTask(wmsTask); if (!string.IsNullOrEmpty(errText)) { - ConsoleLog.Warning($"四向车移库任务请求四向车服务失败,任务号:{wmsTask.TaskId},异常信息:{errText}"); + ConsoleLog.Warning($"四向车移库任务请求四向车服务失败,任务号:{wmsTask.TaskId}/{wmsTask.WcsId},异常信息:{errText}"); return; } - ConsoleLog.Success($"四向车移库任务请求四向车服务成功,任务号:{wmsTask.TaskId}"); + ConsoleLog.Success($"四向车移库任务请求四向车服务成功,任务号:{wmsTask.TaskId}/{wmsTask.WcsId}"); /* 更新任务状态为执行中 */ - var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.running, ModifyTime = DateTime.Now }); + var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.running, StartTime = DateTime.Now, ModifyTime = DateTime.Now }); ConsoleLog.Success($"更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}"); } @@ -236,11 +236,11 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta ConsoleLog.Warning($"【警告】提升机站台信息获取失败,异常信息:{errText}"); continue; } - if (model != 2 || allowAction != (short)TrueFalseEnum.TRUE || errCode != 0) continue; + if (model != 2 || allowAction != (short)TrueFalseEnum.FALSE || errCode != 0) continue; /* 检验任务是否是第一层,若是不是第一层不能分配第一层出入口 */ if (!origin.EndsWith("1")) { - if (liftInfo.LiftMode != 2) continue; + if (liftInfo.LiftMode == 2) continue; } /* 获取这个站台的任务.并计数 */ List? tasks = wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag, TaskStatus = (int)WmsTaskStatusEnum.toMid }); diff --git a/WcsMain/Common/DataService/DataBaseData.cs b/WcsMain/Common/DataService/DataBaseData.cs index 05ba6d7..6c6e7d0 100644 --- a/WcsMain/Common/DataService/DataBaseData.cs +++ b/WcsMain/Common/DataService/DataBaseData.cs @@ -141,7 +141,7 @@ public class DataBaseData(AppSettingsDao settingsDao) { wcsId = "0"; } - string timeTick = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); + string timeTick = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString(); if (timeTick != lasTimeTick2) { lasTimeTick2 = timeTick; diff --git a/WcsMain/DataBase/Dao/AppWmsTaskDao.cs b/WcsMain/DataBase/Dao/AppWmsTaskDao.cs index 6b09034..7242f21 100644 --- a/WcsMain/DataBase/Dao/AppWmsTaskDao.cs +++ b/WcsMain/DataBase/Dao/AppWmsTaskDao.cs @@ -84,6 +84,7 @@ public class AppWmsTaskDao { var sqlFuc = CommonTool.DbServe.Queryable() .WhereIF(!string.IsNullOrEmpty(appWmsTask.TaskId), w => w.TaskId == appWmsTask.TaskId) + .WhereIF(appWmsTask.WcsId != null, w => w.WcsId == appWmsTask.WcsId) .WhereIF(appWmsTask.TaskType != null, w => w.TaskType == appWmsTask.TaskType) .WhereIF(appWmsTask.TaskStatus != null, w => w.TaskStatus == appWmsTask.TaskStatus) .WhereIF(!string.IsNullOrEmpty(appWmsTask.Origin), w => w.Origin == appWmsTask.Origin) @@ -208,6 +209,7 @@ public class AppWmsTaskDao var sqlFuc = CommonTool.DbServe.Queryable() .WhereIF(!string.IsNullOrEmpty(pageRequest.SearchStr), w => w.Destination!.Contains(pageRequest.SearchStr!) + || w.WcsId!.Contains(pageRequest.SearchStr!) || w.Origin!.Contains(pageRequest.SearchStr!) || w.VehicleNo!.Contains(pageRequest.SearchStr!) || w.TaskId!.Contains(pageRequest.SearchStr!) diff --git a/WcsMain/DataBase/MixDao/TaskDao.cs b/WcsMain/DataBase/MixDao/TaskDao.cs index bb1214e..6e42701 100644 --- a/WcsMain/DataBase/MixDao/TaskDao.cs +++ b/WcsMain/DataBase/MixDao/TaskDao.cs @@ -218,7 +218,7 @@ public class TaskDao { var updateResult = CommonTool.DbServe .Updateable(new AppWmsTask() - { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.complete, EndTime = DateTime.Now, TaskMsg = msg }) + { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.complete, Destination = wmsTask.Destination, EndTime = DateTime.Now, TaskMsg = msg }) .IgnoreColumns(ignoreAllNullColumns: true) .ExecuteCommand(); return updateResult > 0 ? null : "失败"; diff --git a/WcsMain/DataBase/TableEntity/AppWmsTask.cs b/WcsMain/DataBase/TableEntity/AppWmsTask.cs index 9d60c94..e0dba5d 100644 --- a/WcsMain/DataBase/TableEntity/AppWmsTask.cs +++ b/WcsMain/DataBase/TableEntity/AppWmsTask.cs @@ -19,6 +19,13 @@ public class AppWmsTask [JsonPropertyName("taskId")] public string? TaskId { get; set; } + /// + /// WCS 的任务Id,给四向车用的,他们必须int64格式 + /// + [SugarColumn(ColumnName = "wcs_id")] + [JsonPropertyName("wcsId")] + public string? WcsId { get; set; } + /// /// 任务类型 /// diff --git a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user index 9cfcf3e..eb86787 100644 --- a/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user +++ b/WcsMain/Properties/PublishProfiles/FolderProfile2.pubxml.user @@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. <_PublishTargetUrl>F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\bin\Release\net8.0\publish\ - True|2024-11-15T09:47:10.4630939Z||;True|2024-11-15T17:42:25.6985733+08:00||;True|2024-11-15T17:39:43.9409305+08:00||;True|2024-11-15T17:26:18.2886475+08:00||;True|2024-11-15T17:23:05.3112513+08:00||;True|2024-11-15T17:16:40.2960771+08:00||;True|2024-11-15T17:14:12.3416383+08:00||;True|2024-11-15T17:09:43.2642034+08:00||;True|2024-11-15T17:05:04.4694932+08:00||;False|2024-11-15T17:04:34.2335564+08:00||;False|2024-11-15T17:04:12.5281280+08:00||;True|2024-11-15T17:01:49.4325408+08:00||;False|2024-11-15T17:01:29.1872712+08:00||;True|2024-11-15T16:00:18.8617729+08:00||;True|2024-11-15T15:56:13.9285180+08:00||;True|2024-11-15T15:50:53.6121456+08:00||;True|2024-11-15T15:17:41.0508047+08:00||;True|2024-11-15T13:50:06.8021767+08:00||;True|2024-11-15T13:17:48.2695650+08:00||;True|2023-12-21T15:04:28.6290873+08:00||;True|2023-12-21T14:59:03.4454135+08:00||;True|2023-12-21T14:51:08.6690406+08:00||;True|2023-12-21T14:26:42.6801144+08:00||;False|2023-12-21T14:26:14.3256943+08:00||;True|2023-12-21T14:13:42.5511801+08:00||;True|2023-12-21T13:56:38.5871005+08:00||;True|2023-12-19T12:19:57.9900187+08:00||;True|2023-12-19T11:53:33.6930379+08:00||;True|2023-12-17T12:51:32.6510827+08:00||;False|2023-12-17T12:49:32.9022541+08:00||; + True|2024-11-16T06:31:14.2653894Z||;True|2024-11-16T14:16:17.4271635+08:00||;True|2024-11-16T14:16:08.1284507+08:00||;True|2024-11-16T14:08:02.8639352+08:00||;True|2024-11-16T14:07:06.6785776+08:00||;True|2024-11-16T13:14:33.8282571+08:00||;True|2024-11-16T13:14:09.9233077+08:00||;True|2024-11-16T12:49:45.5891890+08:00||;True|2024-11-16T12:19:05.5997384+08:00||;True|2024-11-16T11:49:43.2660430+08:00||;True|2024-11-16T11:49:12.7318514+08:00||;True|2024-11-16T11:43:41.8128931+08:00||;True|2024-11-16T10:39:25.1387254+08:00||;True|2024-11-16T10:24:19.4879139+08:00||;True|2024-11-15T17:47:10.4630939+08:00||;True|2024-11-15T17:42:25.6985733+08:00||;True|2024-11-15T17:39:43.9409305+08:00||;True|2024-11-15T17:26:18.2886475+08:00||;True|2024-11-15T17:23:05.3112513+08:00||;True|2024-11-15T17:16:40.2960771+08:00||;True|2024-11-15T17:14:12.3416383+08:00||;True|2024-11-15T17:09:43.2642034+08:00||;True|2024-11-15T17:05:04.4694932+08:00||;False|2024-11-15T17:04:34.2335564+08:00||;False|2024-11-15T17:04:12.5281280+08:00||;True|2024-11-15T17:01:49.4325408+08:00||;False|2024-11-15T17:01:29.1872712+08:00||;True|2024-11-15T16:00:18.8617729+08:00||;True|2024-11-15T15:56:13.9285180+08:00||;True|2024-11-15T15:50:53.6121456+08:00||;True|2024-11-15T15:17:41.0508047+08:00||;True|2024-11-15T13:50:06.8021767+08:00||;True|2024-11-15T13:17:48.2695650+08:00||;True|2023-12-21T15:04:28.6290873+08:00||;True|2023-12-21T14:59:03.4454135+08:00||;True|2023-12-21T14:51:08.6690406+08:00||;True|2023-12-21T14:26:42.6801144+08:00||;False|2023-12-21T14:26:14.3256943+08:00||;True|2023-12-21T14:13:42.5511801+08:00||;True|2023-12-21T13:56:38.5871005+08:00||;True|2023-12-19T12:19:57.9900187+08:00||;True|2023-12-19T11:53:33.6930379+08:00||;True|2023-12-17T12:51:32.6510827+08:00||;False|2023-12-17T12:49:32.9022541+08:00||; \ No newline at end of file