付费申请提交增加逻辑判断

usertest
嵇文龙 5 months ago
parent b884841013
commit c09b29add3

@ -556,6 +556,8 @@ public static class MultiLanguageConst
#region 申请相关 #region 申请相关
[Description("申请单明细的结算对象有且只能有一个")] [Description("申请单明细的结算对象有且只能有一个")]
public const string ApplicationCustomerOnlyOne = "Application_Customer_OnlyOne"; public const string ApplicationCustomerOnlyOne = "Application_Customer_OnlyOne";
[Description("申请单明细每次只能对一条费用记录")]
public const string ApplicationRecordOnlyOne = "Application_Record_OnlyOne";
[Description("提交审批时必须包含费用明细")] [Description("提交审批时必须包含费用明细")]
public const string ApplicationMustHaveDetail = "Application_MustHave_Detail"; public const string ApplicationMustHaveDetail = "Application_MustHave_Detail";
[Description("只能提交状态为:未提交/审核驳回的申请单")] [Description("只能提交状态为:未提交/审核驳回的申请单")]
@ -566,6 +568,10 @@ public static class MultiLanguageConst
public const string ApplicationDeleteStatusError = "Application_Delete_StatusError"; public const string ApplicationDeleteStatusError = "Application_Delete_StatusError";
[Description("申请明细的结算对象需与申请单一致")] [Description("申请明细的结算对象需与申请单一致")]
public const string ApplicationCustomerDetail = "Application_Customer_Detail"; public const string ApplicationCustomerDetail = "Application_Customer_Detail";
[Description("申请明细的金额不能为零")]
public const string AmountCannotBeZero = "Amount_CannotBe_Zero";
[Description("申请明细需要设置原始申请金额")]
public const string OriginalAmountCannotBeZero = "OriginalAmount_CannotBe_Zero";
[Description("未能关联明细【{0}】的费用信息")] [Description("未能关联明细【{0}】的费用信息")]
public const string ApplicationCannotRelateFee = "Application_Cannot_Relate_Fee"; public const string ApplicationCannotRelateFee = "Application_Cannot_Relate_Fee";
[Description("费用【{0}】的金额已全部申请完毕")] [Description("费用【{0}】的金额已全部申请完毕")]

@ -10,6 +10,7 @@ using DS.WMS.Core.Flow.Dtos;
using DS.WMS.Core.Flow.Entity; using DS.WMS.Core.Flow.Entity;
using DS.WMS.Core.Flow.Interface; using DS.WMS.Core.Flow.Interface;
using DS.WMS.Core.Sys.Interface; using DS.WMS.Core.Sys.Interface;
using Masuit.Tools.Models;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using SqlSugar; using SqlSugar;
@ -69,7 +70,14 @@ namespace DS.WMS.Core.Application.Method
if (application.Details.GroupBy(x => x.CustomerName).Select(x => x.Key).Count() > 1) if (application.Details.GroupBy(x => x.CustomerName).Select(x => x.Key).Count() > 1)
return DataResult<TEntity>.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerOnlyOne)); return DataResult<TEntity>.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerOnlyOne));
var ids = application.Details.Select(x => x.RecordId).ToList(); if (application.Details.GroupBy(x => x.RecordId).Select(x => x.Key).Count() > 1)
return DataResult<TEntity>.FailedWithDesc(nameof(MultiLanguageConst.ApplicationRecordOnlyOne));
//申请金额禁止为0
if (application.Details.Any(x => x.Amount == 0))
return DataResult<TEntity>.FailedWithDesc(nameof(MultiLanguageConst.AmountCannotBeZero));
var ids = application.Details.Select(x => x.RecordId).Distinct().ToList();
fees = await TenantDb.Queryable<FeeRecord>().Where(x => ids.Contains(x.Id)).Select(x => new FeeRecord fees = await TenantDb.Queryable<FeeRecord>().Where(x => ids.Contains(x.Id)).Select(x => new FeeRecord
{ {
Id = x.Id, Id = x.Id,
@ -85,10 +93,12 @@ namespace DS.WMS.Core.Application.Method
ExchangeRate = x.ExchangeRate, ExchangeRate = x.ExchangeRate,
OrderAmount = x.OrderAmount, OrderAmount = x.OrderAmount,
OrderSettlementAmount = x.OrderSettlementAmount, OrderSettlementAmount = x.OrderSettlementAmount,
SettlementAmount = x.SettlementAmount, SettlementAmount = x.SettlementAmount
}).ToListAsync(); }).ToListAsync();
if (fees.Count != application.Details.Count)
return DataResult<TEntity>.FailedWithDesc(nameof(MultiLanguageConst.FeeRecordNone));
if (application.Id == 0) if (application.Id == 0)
{ {
//填充申请单信息 //填充申请单信息
@ -102,14 +112,21 @@ namespace DS.WMS.Core.Application.Method
var fee = fees.Find(x => x.Id == detail.RecordId); var fee = fees.Find(x => x.Id == detail.RecordId);
detail.BusinessId = fee.BusinessId; detail.BusinessId = fee.BusinessId;
detail.BusinessType = fee.BusinessType; detail.BusinessType = fee.BusinessType;
detail.Currency = application.Currency.IsNullOrEmpty() ? fee.Currency : application.Currency;
detail.ExchangeRate = detail.ExchangeRate ?? fee.ExchangeRate; detail.ExchangeRate = detail.ExchangeRate ?? fee.ExchangeRate;
detail.FeeId = fee.FeeId; detail.FeeId = fee.FeeId;
detail.FeeName = fee.FeeName; detail.FeeName = fee.FeeName;
detail.FeeType = fee.FeeType; detail.FeeType = fee.FeeType;
detail.CustomerName = application.CustomerName; detail.CustomerName = application.CustomerName;
//原币申请
if (application.Currency.IsNullOrEmpty())
{
detail.OriginalAmount = detail.Amount;
if (detail.OriginalCurrency.IsNullOrEmpty())
detail.OriginalCurrency = fee.Currency; detail.OriginalCurrency = fee.Currency;
} }
}
result = CalculateAmount(application, fees); result = CalculateAmount(application, fees);
if (!result.Succeeded) if (!result.Succeeded)

@ -435,8 +435,12 @@ namespace DS.WMS.Core.Application.Method
if (fees == null) if (fees == null)
return DataResult.Success; return DataResult.Success;
if (fees.Any(x => x.CustomerId != application.CustomerId)) //if (fees.Any(x => x.CustomerId != application.CustomerId))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerDetail)); // return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerDetail));
//原始金额为0则禁止提交
if (application.Details.Any(x => x.OriginalAmount == 0))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.OriginalAmountCannotBeZero));
StringBuilder sb = new(); StringBuilder sb = new();
foreach (var detail in application.Details) foreach (var detail in application.Details)

@ -169,8 +169,8 @@ namespace DS.WMS.Core.Application.Method
BusinessType = BusinessType.OceanShippingExport, BusinessType = BusinessType.OceanShippingExport,
CntrTotal = s.CntrTotal, CntrTotal = s.CntrTotal,
CreateBy = s.CreateBy, CreateBy = s.CreateBy,
CustomerId = s.CustomerId,//费用对象 CustomerId = s.CustomerId,
CustomerName = s.CustomerName, CustomerName = s.CustomerName,//费用对象
CustomerNo = s.CustomerNo, CustomerNo = s.CustomerNo,
DischargePort = s.DischargePort, DischargePort = s.DischargePort,
ETD = s.ETD, ETD = s.ETD,
@ -258,6 +258,7 @@ namespace DS.WMS.Core.Application.Method
foreach (var item in list) foreach (var item in list)
{ {
item.CreateByName = users.Find(x => x.Id == item.CreateBy)?.UserName; item.CreateByName = users.Find(x => x.Id == item.CreateBy)?.UserName;
item.ApplyAmount = item.RestAmount; //申请金额默认=剩余金额
} }
} }
@ -423,8 +424,9 @@ namespace DS.WMS.Core.Application.Method
if (fees == null) if (fees == null)
return DataResult.Success; return DataResult.Success;
if (fees.Any(x => x.CustomerId != application.CustomerId)) //非原币申请且原始金额为0则禁止提交
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerDetail)); if (application.Details.Any(x => x.OriginalAmount == 0 && !application.Currency.IsNullOrEmpty()))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.OriginalAmountCannotBeZero));
StringBuilder sb = new(); StringBuilder sb = new();
foreach (var detail in application.Details) foreach (var detail in application.Details)

@ -1,4 +1,5 @@
using DS.WMS.Core.Op.Entity; using System.Diagnostics.CodeAnalysis;
using DS.WMS.Core.Op.Entity;
namespace DS.WMS.Core.Fee.Dtos namespace DS.WMS.Core.Fee.Dtos
{ {
@ -46,6 +47,8 @@ namespace DS.WMS.Core.Fee.Dtos
public class BizItem public class BizItem
{ {
public static readonly BizItemComparer DefaultComparer = new BizItemComparer();
/// <summary> /// <summary>
/// 业务ID /// 业务ID
/// </summary> /// </summary>
@ -55,6 +58,23 @@ namespace DS.WMS.Core.Fee.Dtos
/// 业务类型 /// 业务类型
/// </summary> /// </summary>
public BusinessType BusinessType { get; set; } public BusinessType BusinessType { get; set; }
public class BizItemComparer : IEqualityComparer<BizItem>
{
public bool Equals(BizItem? x, BizItem? y)
{
if (x == null || y == null)
return false;
return x.Id == y.Id && x.BusinessType == y.BusinessType;
}
public int GetHashCode([DisallowNull] BizItem obj)
{
return obj.Id.GetHashCode() ^ (int)obj.BusinessType;
}
}
} }
public class BizOperation public class BizOperation

@ -55,7 +55,7 @@ namespace DS.WMS.Core.Fee.Method
if (string.Equals(request.OtherQueryCondition, Audit_Only)) if (string.Equals(request.OtherQueryCondition, Audit_Only))
{ {
flowList = await GetCurrentFlowsQuery(AuditTypes) flowList = await GetCurrentFlowsQuery(AuditTypes)
.Select(x=>new FlowInstance { BusinessId = x.BusinessId, BusinessType = x.BusinessType } ).ToListAsync(); .Select(x => new FlowInstance { BusinessId = x.BusinessId, BusinessType = x.BusinessType }).ToListAsync();
//没有待审批的列表直接返回不再执行后续查询 //没有待审批的列表直接返回不再执行后续查询
if (flowList.Count == 0) if (flowList.Count == 0)
@ -541,14 +541,13 @@ namespace DS.WMS.Core.Fee.Method
} }
var bizList = await query.Select(x => new BizItem { Id = x.Id, BusinessType = x.BusinessType }).ToArrayAsync(); var bizList = await query.Select(x => new BizItem { Id = x.Id, BusinessType = x.BusinessType }).ToArrayAsync();
//取所选业务与过滤条件所产生的 //取所选业务与过滤条件所产生的
var intersects = request.Items.Intersect(bizList); var intersects = request.Items.Intersect(bizList, BizItem.DefaultComparer).ToList();
if (!intersects.Any()) if (intersects.Count == 0)
return DataResult.Failed(MultiLanguageConst.NoAuditItems); return DataResult.Failed(MultiLanguageConst.NoAuditItems);
var list1 = intersects.Select(x => x.Id).ToList(); var list1 = intersects.Select(x => x.Id).ToList();
var list2 = intersects.Select(x => x.BusinessType).Distinct().ToList(); var list2 = intersects.Select(x => x.BusinessType).Distinct().ToList();
var recordIds = await TenantDb.Queryable<FeeRecord>().Where(x => var recordIds = await TenantDb.Queryable<FeeRecord>().Where(x =>
list1.Contains(x.BusinessId) && list2.Contains(x.BusinessType) && AuditStatusArray.Contains(x.FeeStatus)) list1.Contains(x.BusinessId) && list2.Contains(x.BusinessType) && AuditStatusArray.Contains(x.FeeStatus))
.Select(x => x.Id).ToArrayAsync(); .Select(x => x.Id).ToArrayAsync();

@ -496,7 +496,7 @@ namespace DS.WMS.Core.Fee.Method
var template = await FindTemplateAsync(AuditType.FeeModify); var template = await FindTemplateAsync(AuditType.FeeModify);
if (template == null) if (template == null)
return DataResult. ); return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TemplateNotFound));
DateTime dtNow = DateTime.Now; DateTime dtNow = DateTime.Now;
await TenantDb.Ado.BeginTranAsync(); await TenantDb.Ado.BeginTranAsync();

@ -453,10 +453,9 @@ public class FlowInstanceService : IFlowInstanceService
} }
//更新回调执行标识 //更新回调执行标识
var id = instance.Id;
db.Updateable<FlowInstance>().SetColumns(it => new FlowInstance { IsCallbackExecuted = true }) db.Updateable<FlowInstance>().SetColumns(it => new FlowInstance { IsCallbackExecuted = true })
.Where(it => it.Id == instance.Id).ExecuteCommand(); .Where(it => it.Id == id).ExecuteCommand();
//instance.IsCallbackExecuted = true;
//await db.Updateable(instance).UpdateColumns(x => new { x.IsCallbackExecuted }).ExecuteCommandAsync();
} }
catch (Exception ex) catch (Exception ex)
{ {

@ -1699,3 +1699,59 @@
2024-06-28 16:32:46.9414 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config 2024-06-28 16:32:46.9414 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-06-28 16:32:46.9414 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile 2024-06-28 16:32:46.9414 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-06-28 16:32:46.9414 Info Configuration initialized. 2024-06-28 16:32:46.9414 Info Configuration initialized.
2024-07-01 10:13:57.2536 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 10:13:57.2869 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 10:13:57.2869 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 10:13:57.3024 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 10:13:57.3024 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 10:13:57.3115 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 10:13:57.3115 Info Configuration initialized.
2024-07-01 10:18:50.9670 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 10:18:51.0065 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 10:18:51.0065 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 10:18:51.0276 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 10:18:51.0356 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 10:18:51.0356 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 10:18:51.0462 Info Configuration initialized.
2024-07-01 10:26:00.1136 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 10:26:00.1481 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 10:26:00.1481 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 10:26:00.1646 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 10:26:00.1646 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 10:26:00.1646 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 10:26:00.1646 Info Configuration initialized.
2024-07-01 11:06:43.2248 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 11:06:43.2493 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 11:06:43.2865 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 11:06:43.2865 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 11:06:43.2865 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 11:06:43.3078 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 11:06:43.3078 Info Configuration initialized.
2024-07-01 11:18:02.0068 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 11:18:02.0357 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 11:18:02.0357 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 11:18:02.0501 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 11:18:02.0501 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 11:18:02.0501 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 11:18:02.0633 Info Configuration initialized.
2024-07-01 11:45:29.7038 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 11:45:29.7339 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 11:45:29.7339 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 11:45:29.7515 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 11:45:29.7515 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 11:45:29.7515 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 11:45:29.7670 Info Configuration initialized.
2024-07-01 11:52:02.6546 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 11:52:02.6919 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 11:52:02.6919 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 11:52:02.7062 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 11:52:02.7062 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 11:52:02.7062 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 11:52:02.7197 Info Configuration initialized.
2024-07-01 13:33:51.0181 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-01 13:33:51.0477 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-01 13:33:51.0477 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-01 13:33:51.0477 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-01 13:33:51.0663 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Source\Repos\DS8\ds-wms-service\DS.WMS.FeeApi\bin\Debug\net8.0\nlog.config
2024-07-01 13:33:51.0663 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-01 13:33:51.0663 Info Configuration initialized.

@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl> <_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl>
<History>True|2024-06-28T07:28:43.1470725Z||;True|2024-06-28T15:16:20.1999596+08:00||;True|2024-06-28T15:14:56.2534743+08:00||;True|2024-06-28T15:02:41.3033806+08:00||;True|2024-06-28T13:37:28.2462742+08:00||;True|2024-06-28T11:06:30.7400535+08:00||;True|2024-06-26T15:24:17.1939896+08:00||;True|2024-06-26T14:33:06.3530466+08:00||;True|2024-06-26T09:45:24.4055568+08:00||;True|2024-06-25T15:45:57.6052473+08:00||;True|2024-06-25T10:17:17.7408916+08:00||;False|2024-06-25T10:16:23.5639654+08:00||;False|2024-06-25T10:15:28.3857721+08:00||;False|2024-06-25T10:10:59.5536995+08:00||;False|2024-06-25T10:07:10.4050937+08:00||;True|2024-06-24T15:22:18.2672769+08:00||;True|2024-06-24T15:01:04.8153621+08:00||;False|2024-06-24T15:00:29.9618848+08:00||;True|2024-06-24T14:07:19.9401637+08:00||;False|2024-06-24T14:06:36.1250570+08:00||;True|2024-06-21T15:13:57.4273503+08:00||;True|2024-06-21T15:04:37.8218608+08:00||;True|2024-06-21T14:12:48.0266638+08:00||;True|2024-06-21T13:52:30.0950155+08:00||;True|2024-06-20T11:02:42.9508506+08:00||;True|2024-06-19T11:43:01.1899282+08:00||;True|2024-06-19T11:23:01.2938141+08:00||;True|2024-06-18T08:51:21.6222152+08:00||;True|2024-06-17T09:20:35.0804494+08:00||;True|2024-06-17T08:41:58.1319484+08:00||;True|2024-06-17T08:38:09.0137102+08:00||;True|2024-06-14T15:19:45.7395180+08:00||;True|2024-06-14T14:38:49.7094421+08:00||;True|2024-06-14T14:27:39.2815370+08:00||;True|2024-06-14T09:42:21.5397525+08:00||;True|2024-06-13T16:03:39.8475642+08:00||;True|2024-06-13T14:12:10.1725629+08:00||;True|2024-06-13T10:46:52.6971321+08:00||;True|2024-06-11T17:03:44.8328978+08:00||;True|2024-06-06T17:41:51.1810315+08:00||;True|2024-06-06T10:57:27.8273617+08:00||;True|2024-06-04T14:23:21.3742450+08:00||;True|2024-05-31T17:01:42.4717460+08:00||;True|2024-05-31T13:56:03.0734064+08:00||;True|2024-05-31T08:45:52.3549394+08:00||;True|2024-05-30T17:16:32.8907958+08:00||;True|2024-05-30T16:18:06.9957657+08:00||;True|2024-05-29T15:44:18.4051203+08:00||;True|2024-05-29T15:11:03.1518632+08:00||;True|2024-05-29T14:52:26.0823495+08:00||;True|2024-05-29T11:17:20.2245101+08:00||;True|2024-05-29T08:36:28.9569161+08:00||;True|2024-05-28T08:44:31.4427261+08:00||;False|2024-05-28T08:44:02.5254826+08:00||;True|2024-05-27T15:16:32.9413631+08:00||;True|2024-05-27T15:03:42.9803879+08:00||;True|2024-05-27T08:49:54.3933663+08:00||;True|2024-05-27T08:46:13.5862236+08:00||;True|2024-05-23T17:19:32.8154451+08:00||;True|2024-05-23T17:19:01.4587615+08:00||;True|2024-05-22T16:52:42.2166228+08:00||;True|2024-05-22T15:19:49.1773202+08:00||;True|2024-05-22T15:13:31.9485525+08:00||;True|2024-05-22T13:29:02.1355808+08:00||;True|2024-05-22T09:48:40.8753914+08:00||;True|2024-05-22T09:25:06.2068137+08:00||;True|2024-05-22T09:18:53.0759815+08:00||;True|2024-05-21T17:13:36.4091775+08:00||;True|2024-05-21T14:41:18.8486299+08:00||;True|2024-05-21T11:04:27.3649637+08:00||;</History> <History>True|2024-07-01T03:41:52.2969338Z||;True|2024-07-01T11:13:02.6561160+08:00||;True|2024-06-28T15:28:43.1470725+08:00||;True|2024-06-28T15:16:20.1999596+08:00||;True|2024-06-28T15:14:56.2534743+08:00||;True|2024-06-28T15:02:41.3033806+08:00||;True|2024-06-28T13:37:28.2462742+08:00||;True|2024-06-28T11:06:30.7400535+08:00||;True|2024-06-26T15:24:17.1939896+08:00||;True|2024-06-26T14:33:06.3530466+08:00||;True|2024-06-26T09:45:24.4055568+08:00||;True|2024-06-25T15:45:57.6052473+08:00||;True|2024-06-25T10:17:17.7408916+08:00||;False|2024-06-25T10:16:23.5639654+08:00||;False|2024-06-25T10:15:28.3857721+08:00||;False|2024-06-25T10:10:59.5536995+08:00||;False|2024-06-25T10:07:10.4050937+08:00||;True|2024-06-24T15:22:18.2672769+08:00||;True|2024-06-24T15:01:04.8153621+08:00||;False|2024-06-24T15:00:29.9618848+08:00||;True|2024-06-24T14:07:19.9401637+08:00||;False|2024-06-24T14:06:36.1250570+08:00||;True|2024-06-21T15:13:57.4273503+08:00||;True|2024-06-21T15:04:37.8218608+08:00||;True|2024-06-21T14:12:48.0266638+08:00||;True|2024-06-21T13:52:30.0950155+08:00||;True|2024-06-20T11:02:42.9508506+08:00||;True|2024-06-19T11:43:01.1899282+08:00||;True|2024-06-19T11:23:01.2938141+08:00||;True|2024-06-18T08:51:21.6222152+08:00||;True|2024-06-17T09:20:35.0804494+08:00||;True|2024-06-17T08:41:58.1319484+08:00||;True|2024-06-17T08:38:09.0137102+08:00||;True|2024-06-14T15:19:45.7395180+08:00||;True|2024-06-14T14:38:49.7094421+08:00||;True|2024-06-14T14:27:39.2815370+08:00||;True|2024-06-14T09:42:21.5397525+08:00||;True|2024-06-13T16:03:39.8475642+08:00||;True|2024-06-13T14:12:10.1725629+08:00||;True|2024-06-13T10:46:52.6971321+08:00||;True|2024-06-11T17:03:44.8328978+08:00||;True|2024-06-06T17:41:51.1810315+08:00||;True|2024-06-06T10:57:27.8273617+08:00||;True|2024-06-04T14:23:21.3742450+08:00||;True|2024-05-31T17:01:42.4717460+08:00||;True|2024-05-31T13:56:03.0734064+08:00||;True|2024-05-31T08:45:52.3549394+08:00||;True|2024-05-30T17:16:32.8907958+08:00||;True|2024-05-30T16:18:06.9957657+08:00||;True|2024-05-29T15:44:18.4051203+08:00||;True|2024-05-29T15:11:03.1518632+08:00||;True|2024-05-29T14:52:26.0823495+08:00||;True|2024-05-29T11:17:20.2245101+08:00||;True|2024-05-29T08:36:28.9569161+08:00||;True|2024-05-28T08:44:31.4427261+08:00||;False|2024-05-28T08:44:02.5254826+08:00||;True|2024-05-27T15:16:32.9413631+08:00||;True|2024-05-27T15:03:42.9803879+08:00||;True|2024-05-27T08:49:54.3933663+08:00||;True|2024-05-27T08:46:13.5862236+08:00||;True|2024-05-23T17:19:32.8154451+08:00||;True|2024-05-23T17:19:01.4587615+08:00||;True|2024-05-22T16:52:42.2166228+08:00||;True|2024-05-22T15:19:49.1773202+08:00||;True|2024-05-22T15:13:31.9485525+08:00||;True|2024-05-22T13:29:02.1355808+08:00||;True|2024-05-22T09:48:40.8753914+08:00||;True|2024-05-22T09:25:06.2068137+08:00||;True|2024-05-22T09:18:53.0759815+08:00||;True|2024-05-21T17:13:36.4091775+08:00||;True|2024-05-21T14:41:18.8486299+08:00||;True|2024-05-21T11:04:27.3649637+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>
Loading…
Cancel
Save