获取发票结算详情

dev
嵇文龙 2 months ago
parent 7d3d52e00e
commit 3e14752753

@ -1,12 +1,13 @@
using System.Runtime.Serialization;
using DS.WMS.Core.Application.Dtos;
using SqlSugar;
namespace DS.WMS.Core.Settlement.Dtos
{
/// <summary>
/// 付费申请结算
/// 结算
/// </summary>
public class PaymentSettlementDto : SettlementDto
public class ApplicationSettlementDto : SettlementDto
{
/// <summary>
/// 汇率
@ -122,6 +123,7 @@ namespace DS.WMS.Core.Settlement.Dtos
/// </summary>
public decimal? AdvanceAmount { get; set; }
/// <summary>
/// 是否导出凭证
/// </summary>
@ -142,6 +144,12 @@ namespace DS.WMS.Core.Settlement.Dtos
/// </summary>
public bool IsGenerateCheck { get; set; }
/// <summary>
/// 凭证备注
/// </summary>
public string? VoucherRemark { get; set; }
[IgnoreDataMember]
public List<CurrencyAmount> UnInvoiceList { get; set; }
@ -151,9 +159,9 @@ namespace DS.WMS.Core.Settlement.Dtos
public string UnInvoiceAmount => string.Join(" ", UnInvoiceList ?? []);
/// <summary>
/// 结算明细
/// 结算明细(发票开出/收、付费申请)
/// </summary>
public List<SettlementDetailDto>? Details { get; set; }
public List<SettlementDetailDto>? SettlementDetails { get; set; }
}
/// <summary>

@ -17,7 +17,7 @@ namespace DS.WMS.Core.Settlement.Dtos
/// <summary>
/// 申请单号
/// </summary>
public string ApplicationNO { get; set; }
public string? ApplicationNO { get; set; }
/// <summary>
/// 状态
@ -30,15 +30,31 @@ namespace DS.WMS.Core.Settlement.Dtos
public string StatusText { get; set; }
/// <summary>
/// 结算金额
/// 币别
/// </summary>
public decimal SettlementAmount { get; set; }
public string Currency { get; set; }
/// <summary>
/// 原始币别
/// </summary>
public string OriginalCurrency { get; set; }
/// <summary>
/// 已结算金额
/// </summary>
public decimal SettlementAmount { get; set; }
/// <summary>
/// 发票申请金额
/// </summary>
public decimal InvoiceApplyAmount { get; set; }
/// <summary>
/// 发票开票金额
/// </summary>
public decimal InvoiceAmount { get; set; }
/// <summary>
/// 原始金额
/// </summary>
@ -87,11 +103,6 @@ namespace DS.WMS.Core.Settlement.Dtos
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// 开票金额
/// </summary>
public decimal InvoiceAmount { get; set; }
/// <summary>
/// 发票抬头
/// </summary>

@ -32,7 +32,6 @@ namespace DS.WMS.Core.Settlement.Dtos
/// <summary>
/// 客户银行账号ID
/// </summary>
[IgnoreDataMember]
public long? CustomerBankId { get; set; }
/// <summary>
@ -156,7 +155,6 @@ namespace DS.WMS.Core.Settlement.Dtos
/// <summary>
/// 所属分部ID
/// </summary>
[IgnoreDataMember]
public long? SaleDeptId { get; set; }
/// <summary>

@ -15,14 +15,14 @@ namespace DS.WMS.Core.Settlement.Interface
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<DataResult<List<PaymentSettlementDto>>> GetListAsync(PageRequest request);
Task<DataResult<List<ApplicationSettlementDto>>> GetListAsync(PageRequest request);
/// <summary>
/// 获取付费申请结算单
/// </summary>
/// <param name="id">结算单ID</param>
/// <returns></returns>
Task<DataResult<PaymentSettlementDto>> GetAsync(long id);
Task<DataResult<ApplicationSettlementDto>> GetAsync(long id);
/// <summary>
/// 获取付费结算明细

@ -30,7 +30,7 @@ namespace DS.WMS.Core.Settlement.Interface
/// </summary>
/// <param name="id">结算单ID</param>
/// <returns></returns>
Task<DataResult<PaymentSettlementDto>> GetAsync(long id);
Task<DataResult<ApplicationSettlementDto>> GetAsync(long id);
/// <summary>
/// 获取付费结算明细

@ -16,7 +16,7 @@ namespace DS.WMS.Core.Settlement.Interface
/// </summary>
/// <param name="id">结算单ID</param>
/// <returns></returns>
Task<DataResult<PaymentSettlementDto>> GetAsync(long id);
Task<DataResult<ApplicationSettlementDto>> GetAsync(long id);
/// <summary>
/// 获取待结算的发票申请列表

@ -35,9 +35,9 @@ namespace DS.WMS.Core.Settlement.Method
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<DataResult<List<PaymentSettlementDto>>> GetListAsync(PageRequest request)
public async Task<DataResult<List<ApplicationSettlementDto>>> GetListAsync(PageRequest request)
{
var query = TenantDb.Queryable<ApplicationSettlement>().Select(x => new PaymentSettlementDto
var query = TenantDb.Queryable<ApplicationSettlement>().Select(x => new ApplicationSettlementDto
{
SettlementTypeName = x.SettlementType.StlName, //结算方式
RMBAmount = SqlFunc.Subqueryable<ApplicationDetail>().Where(y => y.ApplicationId == x.Id && y.Currency == FeeCurrency.RMB_CODE)
@ -85,33 +85,36 @@ namespace DS.WMS.Core.Settlement.Method
/// </summary>
/// <param name="id">结算单ID</param>
/// <returns></returns>
public async Task<DataResult<PaymentSettlementDto>> GetAsync(long id)
public async Task<DataResult<ApplicationSettlementDto>> GetAsync(long id)
{
var model = await TenantDb.Queryable<ApplicationSettlement>().Select(x => new PaymentSettlementDto
var model = await TenantDb.Queryable<ApplicationSettlement>().Select(x => new ApplicationSettlementDto
{
SettlementTypeName = x.SettlementType.StlName, //结算方式
CustomerBankName = x.CustomerBank.BankName,
CustomerAccount = x.CustomerBank.Account
}, true).FirstAsync(x => x.Id == id);
if (model != null)
{
model.Details = await GetSettlementDetails(id);
if (model.Details.Count > 0)
model.SettlementDetails = await GetSettlementDetails(id);
if (model.SettlementDetails.Count > 0)
{
//关联用户名称
var userIds = model.Details.Select(x => x.CreateBy).Distinct();
var userIds = model.SettlementDetails.Select(x => x.CreateBy).Distinct();
var users = await Db.Queryable<SysUser>().Where(x => userIds.Contains(x.Id)).Select(x => new { x.Id, x.UserName }).ToListAsync();
foreach (var item in model.Details)
foreach (var item in model.SettlementDetails)
{
item.CreateByName = users.Find(x => x.Id == item.CreateBy)?.UserName;
}
}
}
return DataResult<PaymentSettlementDto>.Success(model);
return DataResult<ApplicationSettlementDto>.Success(model);
}
//获取结算明细
protected virtual async Task<List<SettlementDetailDto>> GetSettlementDetails(long id)
protected override async Task<List<SettlementDetailDto>> GetSettlementDetails(long id)
{
var list = await TenantDb.Queryable<ApplicationDetail>()
.InnerJoin<ApplicationDetail>((d, pd) => d.DetailId == pd.Id)

@ -229,9 +229,9 @@ namespace DS.WMS.Core.Settlement.Method
/// </summary>
/// <param name="id">结算单ID</param>
/// <returns></returns>
public async Task<DataResult<PaymentSettlementDto>> GetAsync(long id)
public async Task<DataResult<ApplicationSettlementDto>> GetAsync(long id)
{
var model = await TenantDb.Queryable<ApplicationSettlement>().Select(x => new PaymentSettlementDto
var model = await TenantDb.Queryable<ApplicationSettlement>().Select(x => new ApplicationSettlementDto
{
Id = x.Id,
ApplicationNO = x.ApplicationNO, //申请编号
@ -373,8 +373,11 @@ namespace DS.WMS.Core.Settlement.Method
return DataResult<FreeSettlement>.Success(model);
}
protected override async Task<DataResult> PreSaveAsync(Entity.ApplicationSettlement settlement)
protected override Task<List<SettlementDetailDto>> GetSettlementDetails(long id)
{
throw new NotImplementedException();
}
protected override async Task<DataResult> PreSaveAsync(ApplicationSettlement settlement)
{
//settlement.Mode = SettlementMode.FreeSettlement;
//settlement.BillType = SettlementBillType.Payment;
@ -417,7 +420,7 @@ namespace DS.WMS.Core.Settlement.Method
return sb.Length > 0 ? DataResult.Failed(sb.ToString()) : DataResult.Success;
}
protected override DataResult PreDelete(List<Entity.ApplicationSettlement> settlements)
protected override DataResult PreDelete(List<ApplicationSettlement> settlements)
{
if (settlements.Any(x => x.IsLocked))
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.SettlementIsLocked));

@ -34,10 +34,13 @@ namespace DS.WMS.Core.Settlement.Method
/// </summary>
/// <param name="id">结算单ID</param>
/// <returns></returns>
public async Task<DataResult<PaymentSettlementDto>> GetAsync(long id)
public async Task<DataResult<ApplicationSettlementDto>> GetAsync(long id)
{
var model = await TenantDb.Queryable<ApplicationSettlement>().Select(x => new PaymentSettlementDto
var model = await TenantDb.Queryable<ApplicationSettlement>().Select(x => new ApplicationSettlementDto
{
SettlementTypeName = x.SettlementType.StlName, //结算方式
CustomerBankName = x.CustomerBank.BankName,
CustomerAccount = x.CustomerBank.Account
}, true).FirstAsync(x => x.Id == id);
if (model != null)
@ -46,21 +49,21 @@ namespace DS.WMS.Core.Settlement.Method
model.SaleDeptName = await Db.Queryable<SysOrg>().Where(x => x.Id == model.SaleDeptId.Value)
.Select(x => x.OrgName).FirstAsync();
model.Details = await GetSettlementDetails(id);
if (model.Details.Count > 0)
model.SettlementDetails = await GetSettlementDetails(id);
if (model.SettlementDetails.Count > 0)
{
//关联用户名称
var userIds = model.Details.Select(x => x.CreateBy).Distinct();
var userIds = model.SettlementDetails.Select(x => x.CreateBy).Distinct();
var users = await Db.Queryable<SysUser>().Where(x => userIds.Contains(x.Id)).Select(x => new { x.Id, x.UserName }).ToListAsync();
foreach (var item in model.Details)
foreach (var item in model.SettlementDetails)
{
item.CreateByName = users.Find(x => x.Id == item.CreateBy)?.UserName;
}
}
}
return DataResult<PaymentSettlementDto>.Success(model);
return DataResult<ApplicationSettlementDto>.Success(model);
}
/// <summary>
@ -183,80 +186,20 @@ namespace DS.WMS.Core.Settlement.Method
protected override async Task<List<SettlementDetailDto>> GetSettlementDetails(long id)
{
var list = await TenantDb.Queryable<ApplicationDetail>()
.InnerJoin<ApplicationDetail>((d, pd) => d.DetailId == pd.Id)
.InnerJoin<Invoice.Entity.Invoice>((d, pd, i) => pd.ApplicationId == i.Id)
.Where(d => d.ApplicationId == id)
.Select((d, pd, i) => new
{
d.Id,
d.ApplicationId,
d.ApplyAmount,
d.Currency,
d.OriginalCurrency,
d.OriginalAmount,
i.CustomerName,
i.InvoiceAmount,
i.InvoiceHeader,
i.InvoiceDate,
i.InvoiceNO,
i.BillNO,
i.CreateTime,
i.CreateBy,
i.Note
}).ToListAsync();
var details = new List<SettlementDetailDto>();
if (list.Count == 0)
return details;
var gp = list.GroupBy(d => d.ApplicationId);
var uids = list.Select(x => x.CreateBy).Distinct();
var users = await Db.Queryable<SysUser>().Where(x => uids.Contains(x.Id)).Select(x => new
{
x.Id,
x.UserName
}).ToListAsync();
foreach (var g in gp)
{
var firstItem = g.FirstOrDefault();
var dto = new SettlementDetailDto
var list = await TenantDb.Queryable<Invoice.Entity.Invoice>()
.InnerJoin<ApplicationDetail>((i, d1) => i.Id == d1.ApplicationId)
.InnerJoin<ApplicationDetail>((i, d1, d2) => d1.ApplicationId == d2.RefId)
.Where((i, d1, d2) => d2.ApplicationId == id &&
d2.Category == DetailCategory.InvoiceSettlement && d1.Category == DetailCategory.InvoiceIssuance)
.GroupBy((i, d1, d2) => i.Id)
.Select((i, d1, d2) => new SettlementDetailDto
{
ApplicationId = g.Key,
RMBApplyAmount = g.Where(x => x.OriginalCurrency == FeeCurrency.RMB_CODE).Sum(x => x.ApplyAmount),
USDApplyAmount = g.Where(x => x.OriginalCurrency == FeeCurrency.USD_CODE).Sum(x => x.ApplyAmount),
BillNO = firstItem.BillNO,
InvoiceNO = firstItem.InvoiceNO,
CreateTime = firstItem?.CreateTime,
CreateBy = firstItem?.CreateBy,
CreateByName = users.Find(x => x.Id == firstItem?.CreateBy)?.UserName,
PaymentDate = firstItem?.CreateTime,
Note = firstItem?.Note
};
//包含多个币别
if (g.GroupBy(x => x.OriginalCurrency).Select(x => x.Key).Count() > 1)
{
//原始币别=不等于结算单币别的首个币别参考DS7
dto.OriginalCurrency = g.Select(x => x.OriginalCurrency).FirstOrDefault();
//原始金额=当前结算单的币别合计
dto.OriginalAmount = g.Sum(x => x.ApplyAmount);
}
else
{
dto.OriginalCurrency = firstItem?.OriginalCurrency;
dto.OriginalAmount = g.Where(x => x.OriginalCurrency == dto.OriginalCurrency).Sum(x => x.ApplyAmount);
}
//结算金额=原申请的原始币别合计
dto.SettlementAmount = g.Where(x => x.OriginalCurrency == dto.OriginalCurrency).Sum(x => x.ApplyAmount);
details.Add(dto);
}
InvoiceApplyAmount = i.ApplyAmount,
InvoiceAmount = i.InvoiceAmount,
SettlementAmount = SqlFunc.Subqueryable<ApplicationDetail>().Where(d3 => d3.ApplicationId == i.Id).Sum(d3 => d3.ApplyAmount)
}, true).ToListAsync();
return details;
return list;
}

@ -24,7 +24,7 @@ namespace DS.WMS.Core.Settlement.Method
/// 结算基础实现
/// </summary>
/// <typeparam name="TEntity">实体的类型声明</typeparam>
public class SettlementService<TEntity> : FeeServiceBase, ISettlementService<TEntity>
public abstract class SettlementService<TEntity> : FeeServiceBase, ISettlementService<TEntity>
where TEntity : SettlementBase, new()
{
readonly Lazy<ICommonService> CommonService;

@ -31,7 +31,7 @@ namespace DS.WMS.FeeApi.Controllers
/// <param name="id">结算单ID</param>
/// <returns></returns>
[HttpGet, Route("Get")]
public async Task<DataResult<PaymentSettlementDto>> GetAsync(long id)
public async Task<DataResult<ApplicationSettlementDto>> GetAsync(long id)
{
return await _service.GetAsync(id);
}

@ -54,7 +54,7 @@ namespace DS.WMS.FeeApi.Controllers
/// <param name="id">结算单ID</param>
/// <returns></returns>
[HttpGet, Route("Get")]
public async Task<DataResult<PaymentSettlementDto>> GetAsync(long id)
public async Task<DataResult<ApplicationSettlementDto>> GetAsync(long id)
{
return await _service.GetAsync(id);
}

@ -30,7 +30,7 @@ namespace DS.WMS.FeeApi.Controllers
/// <param name="request"></param>
/// <returns></returns>
[HttpPost, Route("GetList")]
public async Task<DataResult<List<PaymentSettlementDto>>> ListAsync([FromBody] PageRequest request)
public async Task<DataResult<List<ApplicationSettlementDto>>> ListAsync([FromBody] PageRequest request)
{
return await _service.GetListAsync(request);
}
@ -41,7 +41,7 @@ namespace DS.WMS.FeeApi.Controllers
/// <param name="id">结算单ID</param>
/// <returns></returns>
[HttpGet, Route("Get")]
public async Task<DataResult<PaymentSettlementDto>> GetAsync(long id)
public async Task<DataResult<ApplicationSettlementDto>> GetAsync(long id)
{
return await _service.GetAsync(id);
}

@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl>
<History>True|2024-09-27T05:48:17.2817346Z||;True|2024-09-27T11:51:46.8193040+08:00||;True|2024-09-27T10:58:33.1059648+08:00||;True|2024-09-27T10:37:35.0336563+08:00||;False|2024-09-27T10:31:52.6302264+08:00||;True|2024-09-26T19:50:15.5513195+08:00||;True|2024-09-26T19:47:14.0781788+08:00||;True|2024-09-26T19:01:26.5428388+08:00||;True|2024-09-26T18:35:28.7455319+08:00||;True|2024-09-26T18:24:30.8084807+08:00||;True|2024-09-26T18:20:47.3005460+08:00||;True|2024-09-26T18:04:39.8012913+08:00||;True|2024-09-26T17:48:13.8526872+08:00||;True|2024-09-26T16:08:20.1746970+08:00||;True|2024-09-26T16:01:01.1501975+08:00||;False|2024-09-26T16:00:34.1516745+08:00||;True|2024-09-26T14:33:03.4007570+08:00||;True|2024-09-25T19:14:27.8906774+08:00||;True|2024-09-25T18:57:40.1435131+08:00||;True|2024-09-25T17:38:44.0915841+08:00||;True|2024-09-25T15:33:58.4630618+08:00||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||;True|2024-09-13T14:31:12.4598160+08:00||;True|2024-09-13T10:44:56.1241214+08:00||;False|2024-09-13T10:44:26.6088271+08:00||;False|2024-09-13T10:44:06.1615137+08:00||;False|2024-09-13T10:43:19.2432517+08:00||;False|2024-09-13T10:38:18.1663387+08:00||;True|2024-09-06T18:49:17.9435308+08:00||;True|2024-09-06T17:01:39.6646353+08:00||;True|2024-09-06T10:27:36.9990456+08:00||;True|2024-09-06T09:48:23.4236094+08:00||;True|2024-09-05T13:57:23.8452431+08:00||;True|2024-09-05T10:21:34.6675149+08:00||;True|2024-09-05T09:12:44.5610882+08:00||;True|2024-09-04T10:07:38.3707398+08:00||;True|2024-09-04T09:52:47.0574599+08:00||;True|2024-09-03T16:41:23.7516960+08:00||;True|2024-09-03T15:22:31.8718097+08:00||;True|2024-09-03T10:01:09.7656702+08:00||;False|2024-09-03T09:46:46.8956531+08:00||;True|2024-09-02T17:07:41.0268500+08:00||;True|2024-09-02T13:50:22.0203254+08:00||;True|2024-09-02T13:34:23.3441546+08:00||;True|2024-08-30T11:25:14.7431645+08:00||;True|2024-08-29T16:38:26.3491372+08:00||;True|2024-08-29T16:32:31.8580864+08:00||;False|2024-08-29T16:30:41.4763198+08:00||;True|2024-08-09T09:18:05.8484398+08:00||;True|2024-08-09T08:45:38.7858906+08:00||;True|2024-08-05T11:37:07.3133020+08:00||;True|2024-07-24T16:45:58.2272340+08:00||;True|2024-07-24T15:48:52.0128987+08:00||;True|2024-07-23T17:41:01.7494842+08:00||;True|2024-07-23T17:25:11.8773492+08:00||;True|2024-07-23T17:07:16.5460273+08:00||;True|2024-07-22T08:59:23.3235603+08:00||;True|2024-07-12T17:35:11.1225017+08:00||;True|2024-07-11T11:40:17.3581147+08:00||;True|2024-07-04T17:20:50.0175739+08:00||;True|2024-07-02T11:26:14.2092751+08:00||;True|2024-07-02T09:21:51.3513605+08:00||;True|2024-07-01T17:47:56.0407256+08:00||;True|2024-07-01T16:42:55.7374984+08:00||;True|2024-07-01T15:49:58.9266967+08:00||;True|2024-07-01T14:35:48.1117178+08:00||;True|2024-07-01T11:41:52.2969338+08:00||;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||;</History>
<History>True|2024-09-27T05:51:24.9197626Z||;True|2024-09-27T13:48:17.2817346+08:00||;True|2024-09-27T11:51:46.8193040+08:00||;True|2024-09-27T10:58:33.1059648+08:00||;True|2024-09-27T10:37:35.0336563+08:00||;False|2024-09-27T10:31:52.6302264+08:00||;True|2024-09-26T19:50:15.5513195+08:00||;True|2024-09-26T19:47:14.0781788+08:00||;True|2024-09-26T19:01:26.5428388+08:00||;True|2024-09-26T18:35:28.7455319+08:00||;True|2024-09-26T18:24:30.8084807+08:00||;True|2024-09-26T18:20:47.3005460+08:00||;True|2024-09-26T18:04:39.8012913+08:00||;True|2024-09-26T17:48:13.8526872+08:00||;True|2024-09-26T16:08:20.1746970+08:00||;True|2024-09-26T16:01:01.1501975+08:00||;False|2024-09-26T16:00:34.1516745+08:00||;True|2024-09-26T14:33:03.4007570+08:00||;True|2024-09-25T19:14:27.8906774+08:00||;True|2024-09-25T18:57:40.1435131+08:00||;True|2024-09-25T17:38:44.0915841+08:00||;True|2024-09-25T15:33:58.4630618+08:00||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||;True|2024-09-13T14:31:12.4598160+08:00||;True|2024-09-13T10:44:56.1241214+08:00||;False|2024-09-13T10:44:26.6088271+08:00||;False|2024-09-13T10:44:06.1615137+08:00||;False|2024-09-13T10:43:19.2432517+08:00||;False|2024-09-13T10:38:18.1663387+08:00||;True|2024-09-06T18:49:17.9435308+08:00||;True|2024-09-06T17:01:39.6646353+08:00||;True|2024-09-06T10:27:36.9990456+08:00||;True|2024-09-06T09:48:23.4236094+08:00||;True|2024-09-05T13:57:23.8452431+08:00||;True|2024-09-05T10:21:34.6675149+08:00||;True|2024-09-05T09:12:44.5610882+08:00||;True|2024-09-04T10:07:38.3707398+08:00||;True|2024-09-04T09:52:47.0574599+08:00||;True|2024-09-03T16:41:23.7516960+08:00||;True|2024-09-03T15:22:31.8718097+08:00||;True|2024-09-03T10:01:09.7656702+08:00||;False|2024-09-03T09:46:46.8956531+08:00||;True|2024-09-02T17:07:41.0268500+08:00||;True|2024-09-02T13:50:22.0203254+08:00||;True|2024-09-02T13:34:23.3441546+08:00||;True|2024-08-30T11:25:14.7431645+08:00||;True|2024-08-29T16:38:26.3491372+08:00||;True|2024-08-29T16:32:31.8580864+08:00||;False|2024-08-29T16:30:41.4763198+08:00||;True|2024-08-09T09:18:05.8484398+08:00||;True|2024-08-09T08:45:38.7858906+08:00||;True|2024-08-05T11:37:07.3133020+08:00||;True|2024-07-24T16:45:58.2272340+08:00||;True|2024-07-24T15:48:52.0128987+08:00||;True|2024-07-23T17:41:01.7494842+08:00||;True|2024-07-23T17:25:11.8773492+08:00||;True|2024-07-23T17:07:16.5460273+08:00||;True|2024-07-22T08:59:23.3235603+08:00||;True|2024-07-12T17:35:11.1225017+08:00||;True|2024-07-11T11:40:17.3581147+08:00||;True|2024-07-04T17:20:50.0175739+08:00||;True|2024-07-02T11:26:14.2092751+08:00||;True|2024-07-02T09:21:51.3513605+08:00||;True|2024-07-01T17:47:56.0407256+08:00||;True|2024-07-01T16:42:55.7374984+08:00||;True|2024-07-01T15:49:58.9266967+08:00||;True|2024-07-01T14:35:48.1117178+08:00||;True|2024-07-01T11:41:52.2969338+08:00||;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||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>
Loading…
Cancel
Save