20241124日调试
This commit is contained in:
parent
2492eaa9df
commit
6d98f3b987
|
|
@ -22,6 +22,7 @@ public class AGVWebApiAction(AGVBaseWebApi webApiPost)
|
|||
/// <returns></returns>
|
||||
public string Send_NO_VERIFY_BUCKET_MOVE(AppWmsTask wmsTask)
|
||||
{
|
||||
string vehicleNo = wmsTask.VehicleNo ?? "";
|
||||
AGVTaskRequest<AGVBucketMove> request = new()
|
||||
{
|
||||
RobotJobId = wmsTask.TaskId,
|
||||
|
|
@ -39,9 +40,10 @@ public class AGVWebApiAction(AGVBaseWebApi webApiPost)
|
|||
EndArea = wmsTask.Destination,
|
||||
EndPoint = wmsTask.Destination,
|
||||
EndPointName = null,
|
||||
BucketTypeCode = "TP",
|
||||
BucketTypeCode = vehicleNo.StartsWith("TP") ? "TP" : "ZYLJ", //
|
||||
LetDownFlag = 2,
|
||||
NeedOut = stand.Contains(wmsTask.Destination) ? 2 : null
|
||||
NeedOut = stand.Contains(wmsTask.Destination) ? 1 : 0,
|
||||
CheckCode = vehicleNo.StartsWith("TP") ? null : 1,
|
||||
}
|
||||
};
|
||||
var response = webApiPost.HttpPost<List<AGVTaskRequest<AGVBucketMove>>, AGVResponseBody<List<AGVTaskResponse>>> ([request], CommonData.AppApiBaseInfos.GetAddress("AGV_NO_VERIFY_BUCKET_MOVE") ?? "");
|
||||
|
|
@ -106,6 +108,17 @@ public class AGVWebApiAction(AGVBaseWebApi webApiPost)
|
|||
}
|
||||
|
||||
|
||||
public void Send_AGV_Action(string? agvCode, string? commond)
|
||||
{
|
||||
AGVActionRequest actionRequest = new()
|
||||
{
|
||||
AgvCode = agvCode,
|
||||
FeedbackCommand = commond,
|
||||
};
|
||||
webApiPost.HttpPost<AGVActionRequest, object>(actionRequest, CommonData.AppApiBaseInfos.GetAddress("AGV_ACTION") ?? "");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
14
WcsMain/ApiClient/AGV/Dto/AGVActionRequest.cs
Normal file
14
WcsMain/ApiClient/AGV/Dto/AGVActionRequest.cs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
using Newtonsoft.Json;
|
||||
|
||||
namespace WcsMain.ApiClient.AGV.Dto;
|
||||
|
||||
public class AGVActionRequest
|
||||
{
|
||||
[JsonProperty("agvCode")]
|
||||
public string? AgvCode { get; set; }
|
||||
|
||||
[JsonProperty("feedbackCommand")]
|
||||
public string? FeedbackCommand{ get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -20,10 +20,16 @@ public class AGVController(AGVService agvService) : ControllerBase
|
|||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("taskCallBack")]
|
||||
public AGVResponseLayout<AGVResponseLayout<object>> TaskCallBack(ApiServe.Dto.AGV.AGVRequestLayout<AGVRequestBodyLayout<AGVNoVeBuckMoveRequest>> request) => agvService.TaskCallBack(request);
|
||||
|
||||
public AGVResponseLayout<AGVResponseLayout<object>> TaskCallBack([FromBody] Dto.AGV.AGVRequestLayout<AGVRequestBodyLayout<AGVNoVeBuckMoveRequest>> request) => agvService.TaskCallBack(request);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// AGV在点位请求动作
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("requestAction")]
|
||||
public AGVResponseLayout<AGVResponseLayout<object>> RequestAction([FromBody] Dto.AGV.AGVRequestLayout<AGVRequestBodyBaseLayout<AGVRequestActionRequest>> request) => agvService.RequestAction(request);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
16
WcsMain/ApiServe/Dto/AGV/AGVRequestActionRequest.cs
Normal file
16
WcsMain/ApiServe/Dto/AGV/AGVRequestActionRequest.cs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace WcsMain.ApiServe.Dto.AGV;
|
||||
|
||||
public class AGVRequestActionRequest
|
||||
{
|
||||
[JsonPropertyName("agvCode")]
|
||||
public string? AgvCode { get; set; }
|
||||
|
||||
[JsonPropertyName("command")]
|
||||
public string? Command { get; set; }
|
||||
|
||||
[JsonPropertyName("jobId")]
|
||||
public string? JobId { get; set; }
|
||||
|
||||
}
|
||||
|
|
@ -16,6 +16,19 @@ public class AGVRequestBodyLayout<T>
|
|||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class AGVRequestBodyBaseLayout<T>
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 数据
|
||||
/// </summary>
|
||||
[JsonPropertyName("event")]
|
||||
public T? Event { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,10 +6,11 @@ using WcsMain.DataBase.Dao;
|
|||
using WcsMain.DataBase.TableEntity;
|
||||
using WcsMain.Constant.WcsAttribute.AutoFacAttribute;
|
||||
using WcsMain.EquipOperation.StackerConvey;
|
||||
using WcsMain.ApiClient.AGV;
|
||||
namespace WcsMain.ApiServe.Service.AGVService;
|
||||
|
||||
[Service]
|
||||
public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecuteEvent, StackerConveyOperation stackerConveyOperation)
|
||||
public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecuteEvent, StackerConveyOperation stackerConveyOperation, AGVWebApiAction webApiAction)
|
||||
{
|
||||
/// <summary>
|
||||
/// AGV 任务回告
|
||||
|
|
@ -85,7 +86,9 @@ public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecut
|
|||
if (status == "DONE" && (wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask || wmsTask.TaskType == (int)WmsTaskTypeEnum.agv))
|
||||
{
|
||||
string? setLocation = wmsTask.TaskType == (int)WmsTaskTypeEnum.inTask ? wmsTask.MidPoint : wmsTask.Destination;
|
||||
stackerConveyOperation.SetVehicelComplete(setLocation ?? "");
|
||||
string plcLocation = setLocation == null ? "" : setLocation.Trim().Split('_')[0];
|
||||
string? plcErrtext = stackerConveyOperation.SetVehicelComplete(plcLocation ?? "");
|
||||
ConsoleLog.Info($"AGV 放货完成通知PLC结果:{(string.IsNullOrEmpty(plcErrtext) ? "成功" : plcErrtext)},站台:{plcLocation},箱号:{wmsTask.VehicleNo}");
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -156,4 +159,88 @@ public class AGVService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecut
|
|||
Body = new() { Code = "ERROR", Success = false, Message = $"操作异常数据更新失败" }
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AGV请求动作
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public AGVResponseLayout<AGVResponseLayout<object>> RequestAction(Dto.AGV.AGVRequestLayout<AGVRequestBodyBaseLayout<AGVRequestActionRequest>> request)
|
||||
{
|
||||
string? agvCode = request.Body?.Event?.AgvCode;
|
||||
string? location = request.Body?.Event?.Command;
|
||||
if(string.IsNullOrWhiteSpace(agvCode)|| string.IsNullOrWhiteSpace(location))
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Header = new() { RequestId = request.Header?.RequestId, Version = request.Header?.version, TimeStamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") },
|
||||
Body = new() { Code = "ERROR", Success = false, Message = $"数据无法解析" }
|
||||
};
|
||||
}
|
||||
// [TODO]
|
||||
webApiAction.Send_AGV_Action(agvCode, "TRUE");
|
||||
return new()
|
||||
{
|
||||
Header = new() { RequestId = request.Header?.RequestId, Version = request.Header?.version, TimeStamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") },
|
||||
Body = new() { Code = "SUCCESS", Success = true, Message = "操作成功" }
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public void test()
|
||||
{
|
||||
Dictionary<string, int> locationIndex = [];
|
||||
/*--------------- 拣选站台 ----------------*/
|
||||
locationIndex.TryAdd("WWYPYA", 0); // 1-1
|
||||
locationIndex.TryAdd("wDj7k3", 1); // 1-2
|
||||
locationIndex.TryAdd("5sNjZj", 2); // 1-3
|
||||
locationIndex.TryAdd("x3hmTx", 3); // 1-4
|
||||
locationIndex.TryAdd("TrkieR", 4); // 2-1
|
||||
locationIndex.TryAdd("fED33G", 5); // 2-2
|
||||
locationIndex.TryAdd("SAwJWb", 6); // 2-3
|
||||
locationIndex.TryAdd("kSyBN2", 7); // 2-4
|
||||
locationIndex.TryAdd("tZQJmY", 8); // 3-1
|
||||
locationIndex.TryAdd("aHB3A4", 9); // 3-2
|
||||
locationIndex.TryAdd("WAdrMA", 10);// 3-3
|
||||
locationIndex.TryAdd("EdW8JH", 11);// 3-4
|
||||
locationIndex.TryAdd("rK5RbX", 12);// 4-1
|
||||
locationIndex.TryAdd("rThaME", 13);// 4-2
|
||||
locationIndex.TryAdd("28PW7p", 14);// 4-3
|
||||
locationIndex.TryAdd("rNH2Bb", 15);// 4-4
|
||||
locationIndex.TryAdd("ZbkKHC", 16);// 5-1
|
||||
locationIndex.TryAdd("YeSNEd", 17);// 5-2
|
||||
locationIndex.TryAdd("QCECwK", 18);// 5-3
|
||||
locationIndex.TryAdd("heYrie", 19);// 5-4
|
||||
locationIndex.TryAdd("byBDnX", 20);// 6
|
||||
/*----------------- 翻包区 -----------------*/
|
||||
locationIndex.TryAdd("TQzNDN", 21);
|
||||
locationIndex.TryAdd("SsNakz", 22);
|
||||
locationIndex.TryAdd("TjtsJf", 23);
|
||||
locationIndex.TryAdd("dM28J8", 24);
|
||||
locationIndex.TryAdd("jAiFNS", 25);
|
||||
locationIndex.TryAdd("AHQGKW", 26);
|
||||
locationIndex.TryAdd("ACEMTS", 27);
|
||||
locationIndex.TryAdd("6HbTKm", 28);
|
||||
/*----------------- 出入库口 -----------------*/
|
||||
locationIndex.TryAdd("FaaZHG", 29);
|
||||
locationIndex.TryAdd("kzxhes", 30);
|
||||
locationIndex.TryAdd("yDN8ZZ", 31);
|
||||
locationIndex.TryAdd("6cDXzi", 32);
|
||||
locationIndex.TryAdd("ranQyi", 33);
|
||||
locationIndex.TryAdd("SxjX8e", 34);
|
||||
locationIndex.TryAdd("jC6x3C", 35);
|
||||
locationIndex.TryAdd("MSP3te", 36);
|
||||
|
||||
locationIndex.TryAdd("611", 29);
|
||||
locationIndex.TryAdd("511", 30);
|
||||
locationIndex.TryAdd("513", 31);
|
||||
locationIndex.TryAdd("411", 32);
|
||||
locationIndex.TryAdd("311", 33);
|
||||
locationIndex.TryAdd("213", 34);
|
||||
locationIndex.TryAdd("211", 35);
|
||||
locationIndex.TryAdd("111", 36);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,11 +8,12 @@ using WcsMain.ApiClient.WMS;
|
|||
using WcsMain.ApiClient.WMS.Dto;
|
||||
using WcsMain.Common;
|
||||
using WcsMain.Constant.ExtendMethod;
|
||||
using WcsMain.EquipOperation.StackerConvey;
|
||||
|
||||
namespace WcsMain.ApiServe.Service.ContainerService;
|
||||
|
||||
[Service]
|
||||
public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecuteEvent, WmsBaseWebApi wmsBaseWebApi)
|
||||
public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent taskExecuteEvent, WmsBaseWebApi wmsBaseWebApi, StackerConveyOperation stackerConveyOperation)
|
||||
{
|
||||
/// <summary>
|
||||
/// 请求四向车任务
|
||||
|
|
@ -31,6 +32,7 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task
|
|||
{
|
||||
return new() { Code = "400", Message = "数据连接失败,请重试" };
|
||||
}
|
||||
bool apply = false;
|
||||
if (wmsTasks.Count == 0)
|
||||
{
|
||||
/* 请求WMS获取任务 */
|
||||
|
|
@ -49,6 +51,7 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task
|
|||
Thread.Sleep(1000);
|
||||
wmsTasks = wmsTaskDao.Select(new() { VehicleNo = request.PalleetNo, TaskStatus = (int)WmsTaskStatusEnum.create })?.OrderByDescending(o => o.CreateTime).ToList();
|
||||
if (wmsTasks == null || wmsTasks.Count < 1) continue;
|
||||
apply = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -59,8 +62,17 @@ public class ContainerService(AppWmsTaskDao wmsTaskDao, WCSTaskExecuteEvent task
|
|||
}
|
||||
AppWmsTask wmsTask = wmsTasks.First();
|
||||
/* 更新状态为前往终点 */
|
||||
var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, TaskStatus = (int)WmsTaskStatusEnum.toDestination, ModifyTime = DateTime.Now });
|
||||
var updateResult = wmsTaskDao.Update(new() { TaskId = wmsTask.TaskId, StartTime = apply ? DateTime.Now : null, TaskStatus = (int)WmsTaskStatusEnum.toDestination, ModifyTime = DateTime.Now });
|
||||
ConsoleLog.Success($"API更新任务状态结果:{(updateResult > 0 ? "成功" : "失败")},任务号:{wmsTask.TaskId}");
|
||||
//Task.Factory.StartNew(() =>
|
||||
//{
|
||||
// // 给PLC写完成,原因是四向车给PLC经常写入失败。
|
||||
// Thread.Sleep(500);
|
||||
// for (int i = 0; i < 3; i++)
|
||||
// {
|
||||
// stackerConveyOperation.StandTaskApplyComplete(request.FormCellNo);
|
||||
// }
|
||||
//});
|
||||
return new()
|
||||
{
|
||||
Code = "200",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System.Text.RegularExpressions;
|
||||
using System.Runtime;
|
||||
using System.Text.RegularExpressions;
|
||||
using CirculateTool.Attribute;
|
||||
using WcsMain.ApiClient.AGV;
|
||||
using WcsMain.ApiClient.Shuttle;
|
||||
|
|
@ -68,6 +69,15 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta
|
|||
/// <param name="wmsTask"></param>
|
||||
private void ExecuteAGVTask(AppWmsTask wmsTask)
|
||||
{
|
||||
string[] stand = ["FaaZHG", "kzxhes", "yDN8ZZ", "6cDXzi", "ranQyi", "SxjX8e", "jC6x3C", "MSP3te"];
|
||||
if (string.IsNullOrEmpty(wmsTask.Destination)) return;
|
||||
if (stand.Contains(wmsTask.Destination))
|
||||
{
|
||||
// 获取终点的任务,没有任务可以发送
|
||||
List<AppWmsTask> tasks = [];
|
||||
tasks.AddRange(wmsTaskDao.SelectRunningTask(wmsTask.Destination) ?? []);
|
||||
if (tasks == default || tasks.Count > 0) return;
|
||||
}
|
||||
string errText = agvAction.Send_NO_VERIFY_BUCKET_MOVE(wmsTask);
|
||||
if (!string.IsNullOrEmpty(errText))
|
||||
{
|
||||
|
|
@ -211,14 +221,16 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta
|
|||
}
|
||||
if (model != 1 || allowAction != (short)TrueFalseEnum.TRUE || errCode != 0) continue;
|
||||
/* 检验任务是否是第一层,若是不是第一层不能分配第一层出入口 */
|
||||
if (destination.EndsWith("1"))
|
||||
if (!destination.EndsWith('1'))
|
||||
{
|
||||
if (liftInfo.LiftMode != 2) continue;
|
||||
if (liftInfo.LiftMode == 2) continue;
|
||||
}
|
||||
/* 获取这个站台的任务.没有占用任务即可重新使用 */
|
||||
List<AppWmsTask> tasks = [];
|
||||
tasks.AddRange(wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag!.Split(',')[0], TaskStatus = (int)WmsTaskStatusEnum.toMid }) ?? []);
|
||||
tasks.AddRange(wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag!.Split(',')[1], TaskStatus = (int)WmsTaskStatusEnum.toMid }) ?? []);
|
||||
tasks.AddRange(wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag!.Split(',')[0], TaskStatus = (int)WmsTaskStatusEnum.arriveMid }) ?? []);
|
||||
tasks.AddRange(wmsTaskDao.Select(new() { MidPoint = liftInfo.Tag!.Split(',')[1], TaskStatus = (int)WmsTaskStatusEnum.arriveMid }) ?? []);
|
||||
if (tasks == default || tasks.Count > 0) continue;
|
||||
string location = "";
|
||||
if (!string.IsNullOrEmpty(liftInfo.Tag))
|
||||
|
|
@ -251,7 +263,7 @@ public class ExecuteWmsTask(AppWmsTaskDao wmsTaskDao, StackerConveyOperation sta
|
|||
}
|
||||
if (model != 2 || allowAction != (short)TrueFalseEnum.FALSE || errCode != 0) continue;
|
||||
/* 检验任务是否是第一层,若是不是第一层不能分配第一层出入口 */
|
||||
if (!origin.EndsWith("1"))
|
||||
if (!origin.EndsWith('1'))
|
||||
{
|
||||
if (liftInfo.LiftMode == 2) continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,6 +110,43 @@ public class AppWmsTaskDao
|
|||
}
|
||||
|
||||
|
||||
public List<AppWmsTask>? SelectRunningTask(string? destination)
|
||||
{
|
||||
try
|
||||
{
|
||||
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>()
|
||||
.Where(w => (w.MidPoint!.Contains(destination!) || w.Destination!.Contains(destination!))
|
||||
&& (w.TaskStatus == (int)WmsTaskStatusEnum.toMid || w.TaskStatus == (int)WmsTaskStatusEnum.arriveMid))
|
||||
.OrderBy(o => o.CreateTime);
|
||||
_ = sqlFuc.ToSql();
|
||||
return sqlFuc.ToList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_ = ex;
|
||||
return default;
|
||||
}
|
||||
}
|
||||
|
||||
public List<AppWmsTask>? SelectRunningTask2(string? location)
|
||||
{
|
||||
try
|
||||
{
|
||||
var sqlFuc = CommonTool.DbServe.Queryable<AppWmsTask>()
|
||||
.Where(w => location!.Contains(w.MidPoint!)
|
||||
&& (w.TaskStatus == (int)WmsTaskStatusEnum.toMid || w.TaskStatus == (int)WmsTaskStatusEnum.arriveMid))
|
||||
.OrderBy(o => o.CreateTime);
|
||||
_ = sqlFuc.ToSql();
|
||||
return sqlFuc.ToList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_ = ex;
|
||||
return default;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查找所有数据
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -92,6 +92,20 @@ public class StackerConveyOperation
|
|||
return writeResult.Message;
|
||||
}
|
||||
|
||||
public string? StandTaskApplyComplete(string location)
|
||||
{
|
||||
if (!CommonData.IsConnectPlc || CommonTool.Siemens == default)
|
||||
{
|
||||
return "设备尚未连接"; // 未连接PLC
|
||||
}
|
||||
(var writeResult, byte[]? data) = CommonTool.Siemens.WritePlcWhithName($"站台任务申请完成{location}", (short)1);
|
||||
if (writeResult.Success)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
return writeResult.Message;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取输送机任务号
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<_PublishTargetUrl>F:\A开发项目\A菲达宝开项目\2024-08_上汽试制仓\应用程序\WcsService\WcsMain\bin\Release\net8.0\publish\</_PublishTargetUrl>
|
||||
<History>True|2024-11-22T04:34:16.7539579Z||;True|2024-11-22T12:31:12.2247208+08:00||;True|2024-11-22T10:08:38.6674414+08:00||;True|2024-11-22T09:58:07.3694815+08:00||;True|2024-11-22T09:40:25.3466460+08:00||;True|2024-11-21T16:33:23.0082958+08:00||;True|2024-11-21T16:21:46.1852307+08:00||;True|2024-11-21T13:56:06.5543719+08:00||;True|2024-11-21T11:41:50.4634584+08:00||;True|2024-11-21T11:30:54.9747290+08:00||;False|2024-11-21T11:30:18.2738127+08:00||;True|2024-11-21T10:45:42.5524544+08:00||;True|2024-11-20T17:08:23.7162943+08:00||;True|2024-11-20T16:54:01.3629057+08:00||;True|2024-11-20T16:40:49.6894280+08:00||;True|2024-11-20T16:37:47.3670812+08:00||;False|2024-11-20T16:37:04.0777763+08:00||;True|2024-11-20T16:25:26.3145915+08:00||;True|2024-11-20T16:10:13.7558526+08:00||;True|2024-11-20T16:07:37.8681228+08:00||;True|2024-11-20T15:55:28.7196074+08:00||;True|2024-11-20T15:52:40.6653904+08:00||;True|2024-11-20T15:30:21.5138564+08:00||;True|2024-11-20T15:24:40.6286995+08:00||;True|2024-11-18T21:16:47.1821173+08:00||;True|2024-11-18T21:14:40.1209255+08:00||;True|2024-11-18T21:11:32.0010536+08:00||;True|2024-11-18T21:10:56.2142485+08:00||;True|2024-11-18T20:59:50.6846634+08:00||;True|2024-11-16T14:31:14.2653894+08:00||;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||;</History>
|
||||
<History>True|2024-11-24T07:54:22.8370880Z||;True|2024-11-24T13:25:56.1353533+08:00||;True|2024-11-24T11:18:32.6506847+08:00||;True|2024-11-24T10:50:39.8134466+08:00||;True|2024-11-23T15:05:38.5131893+08:00||;True|2024-11-23T14:13:58.0382497+08:00||;True|2024-11-23T14:12:00.7634049+08:00||;True|2024-11-23T13:14:24.2275063+08:00||;True|2024-11-23T12:53:07.7352348+08:00||;True|2024-11-23T12:48:43.3192685+08:00||;True|2024-11-23T12:01:19.9580187+08:00||;True|2024-11-23T11:57:28.7283976+08:00||;True|2024-11-22T12:34:16.7539579+08:00||;True|2024-11-22T12:31:12.2247208+08:00||;True|2024-11-22T10:08:38.6674414+08:00||;True|2024-11-22T09:58:07.3694815+08:00||;True|2024-11-22T09:40:25.3466460+08:00||;True|2024-11-21T16:33:23.0082958+08:00||;True|2024-11-21T16:21:46.1852307+08:00||;True|2024-11-21T13:56:06.5543719+08:00||;True|2024-11-21T11:41:50.4634584+08:00||;True|2024-11-21T11:30:54.9747290+08:00||;False|2024-11-21T11:30:18.2738127+08:00||;True|2024-11-21T10:45:42.5524544+08:00||;True|2024-11-20T17:08:23.7162943+08:00||;True|2024-11-20T16:54:01.3629057+08:00||;True|2024-11-20T16:40:49.6894280+08:00||;True|2024-11-20T16:37:47.3670812+08:00||;False|2024-11-20T16:37:04.0777763+08:00||;True|2024-11-20T16:25:26.3145915+08:00||;True|2024-11-20T16:10:13.7558526+08:00||;True|2024-11-20T16:07:37.8681228+08:00||;True|2024-11-20T15:55:28.7196074+08:00||;True|2024-11-20T15:52:40.6653904+08:00||;True|2024-11-20T15:30:21.5138564+08:00||;True|2024-11-20T15:24:40.6286995+08:00||;True|2024-11-18T21:16:47.1821173+08:00||;True|2024-11-18T21:14:40.1209255+08:00||;True|2024-11-18T21:11:32.0010536+08:00||;True|2024-11-18T21:10:56.2142485+08:00||;True|2024-11-18T20:59:50.6846634+08:00||;True|2024-11-16T14:31:14.2653894+08:00||;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||;</History>
|
||||
<LastFailureDetails />
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
Loading…
Reference in New Issue
Block a user