From c09b29add326e1cd7c9dcba4fa5fc62736130977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B5=87=E6=96=87=E9=BE=99?= Date: Mon, 1 Jul 2024 13:36:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=98=E8=B4=B9=E7=94=B3=E8=AF=B7=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=A2=9E=E5=8A=A0=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Constants/MultiLanguageConst.cs | 6 ++ .../Method/ApplicationService`1.cs | 27 +++++++-- .../Method/InvoiceApplicationService.cs | 8 ++- .../Method/PaymentApplicationService.cs | 10 ++-- .../DS.WMS.Core/Fee/Dtos/AuditRequest.cs | 22 +++++++- .../DS.WMS.Core/Fee/Method/FeeAuditService.cs | 9 ++- .../Fee/Method/FeeRecordService.cs | 2 +- .../Flow/Method/FlowInstanceService.cs | 5 +- .../DS.WMS.FeeApi/Logs/internal-nlog.txt | 56 +++++++++++++++++++ .../FolderProfile1.pubxml.user | 2 +- 10 files changed, 125 insertions(+), 22 deletions(-) diff --git a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs index 265d1610..4e87ece0 100644 --- a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs +++ b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs @@ -556,6 +556,8 @@ public static class MultiLanguageConst #region 申请相关 [Description("申请单明细的结算对象有且只能有一个")] public const string ApplicationCustomerOnlyOne = "Application_Customer_OnlyOne"; + [Description("申请单明细每次只能对一条费用记录")] + public const string ApplicationRecordOnlyOne = "Application_Record_OnlyOne"; [Description("提交审批时必须包含费用明细")] public const string ApplicationMustHaveDetail = "Application_MustHave_Detail"; [Description("只能提交状态为:未提交/审核驳回的申请单")] @@ -566,6 +568,10 @@ public static class MultiLanguageConst public const string ApplicationDeleteStatusError = "Application_Delete_StatusError"; [Description("申请明细的结算对象需与申请单一致")] 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}】的费用信息")] public const string ApplicationCannotRelateFee = "Application_Cannot_Relate_Fee"; [Description("费用【{0}】的金额已全部申请完毕")] diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs b/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs index ead32288..7da47890 100644 --- a/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs +++ b/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs @@ -10,6 +10,7 @@ using DS.WMS.Core.Flow.Dtos; using DS.WMS.Core.Flow.Entity; using DS.WMS.Core.Flow.Interface; using DS.WMS.Core.Sys.Interface; +using Masuit.Tools.Models; using Microsoft.Extensions.DependencyInjection; 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) return DataResult.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.FailedWithDesc(nameof(MultiLanguageConst.ApplicationRecordOnlyOne)); + + //申请金额禁止为0 + if (application.Details.Any(x => x.Amount == 0)) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.AmountCannotBeZero)); + + var ids = application.Details.Select(x => x.RecordId).Distinct().ToList(); fees = await TenantDb.Queryable().Where(x => ids.Contains(x.Id)).Select(x => new FeeRecord { Id = x.Id, @@ -85,10 +93,12 @@ namespace DS.WMS.Core.Application.Method ExchangeRate = x.ExchangeRate, OrderAmount = x.OrderAmount, OrderSettlementAmount = x.OrderSettlementAmount, - SettlementAmount = x.SettlementAmount, - + SettlementAmount = x.SettlementAmount }).ToListAsync(); + if (fees.Count != application.Details.Count) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.FeeRecordNone)); + if (application.Id == 0) { //填充申请单信息 @@ -102,13 +112,20 @@ namespace DS.WMS.Core.Application.Method var fee = fees.Find(x => x.Id == detail.RecordId); detail.BusinessId = fee.BusinessId; detail.BusinessType = fee.BusinessType; - detail.Currency = application.Currency.IsNullOrEmpty() ? fee.Currency : application.Currency; detail.ExchangeRate = detail.ExchangeRate ?? fee.ExchangeRate; detail.FeeId = fee.FeeId; detail.FeeName = fee.FeeName; detail.FeeType = fee.FeeType; detail.CustomerName = application.CustomerName; - detail.OriginalCurrency = fee.Currency; + + //原币申请 + if (application.Currency.IsNullOrEmpty()) + { + detail.OriginalAmount = detail.Amount; + + if (detail.OriginalCurrency.IsNullOrEmpty()) + detail.OriginalCurrency = fee.Currency; + } } result = CalculateAmount(application, fees); diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs b/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs index 7c5dd6ef..f5198e77 100644 --- a/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs +++ b/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs @@ -435,8 +435,12 @@ namespace DS.WMS.Core.Application.Method if (fees == null) return DataResult.Success; - if (fees.Any(x => x.CustomerId != application.CustomerId)) - return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerDetail)); + //if (fees.Any(x => x.CustomerId != application.CustomerId)) + // return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerDetail)); + + //原始金额为0,则禁止提交 + if (application.Details.Any(x => x.OriginalAmount == 0)) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.OriginalAmountCannotBeZero)); StringBuilder sb = new(); foreach (var detail in application.Details) diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs b/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs index 7e8cf708..ec6cbf99 100644 --- a/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs +++ b/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs @@ -169,8 +169,8 @@ namespace DS.WMS.Core.Application.Method BusinessType = BusinessType.OceanShippingExport, CntrTotal = s.CntrTotal, CreateBy = s.CreateBy, - CustomerId = s.CustomerId,//费用对象 - CustomerName = s.CustomerName, + CustomerId = s.CustomerId, + CustomerName = s.CustomerName,//费用对象 CustomerNo = s.CustomerNo, DischargePort = s.DischargePort, ETD = s.ETD, @@ -258,6 +258,7 @@ namespace DS.WMS.Core.Application.Method foreach (var item in list) { 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) return DataResult.Success; - if (fees.Any(x => x.CustomerId != application.CustomerId)) - return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ApplicationCustomerDetail)); + //非原币申请且原始金额为0,则禁止提交 + if (application.Details.Any(x => x.OriginalAmount == 0 && !application.Currency.IsNullOrEmpty())) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.OriginalAmountCannotBeZero)); StringBuilder sb = new(); foreach (var detail in application.Details) diff --git a/ds-wms-service/DS.WMS.Core/Fee/Dtos/AuditRequest.cs b/ds-wms-service/DS.WMS.Core/Fee/Dtos/AuditRequest.cs index fc573a7a..814274aa 100644 --- a/ds-wms-service/DS.WMS.Core/Fee/Dtos/AuditRequest.cs +++ b/ds-wms-service/DS.WMS.Core/Fee/Dtos/AuditRequest.cs @@ -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 { @@ -46,6 +47,8 @@ namespace DS.WMS.Core.Fee.Dtos public class BizItem { + public static readonly BizItemComparer DefaultComparer = new BizItemComparer(); + /// /// 业务ID /// @@ -55,6 +58,23 @@ namespace DS.WMS.Core.Fee.Dtos /// 业务类型 /// public BusinessType BusinessType { get; set; } + + + public class BizItemComparer : IEqualityComparer + { + 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 diff --git a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeAuditService.cs b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeAuditService.cs index cb99904c..fe9bc7ac 100644 --- a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeAuditService.cs +++ b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeAuditService.cs @@ -55,7 +55,7 @@ namespace DS.WMS.Core.Fee.Method if (string.Equals(request.OtherQueryCondition, Audit_Only)) { 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) @@ -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 intersects = request.Items.Intersect(bizList); - if (!intersects.Any()) + //取所选业务与过滤条件所产生的交集 + var intersects = request.Items.Intersect(bizList, BizItem.DefaultComparer).ToList(); + if (intersects.Count == 0) return DataResult.Failed(MultiLanguageConst.NoAuditItems); var list1 = intersects.Select(x => x.Id).ToList(); var list2 = intersects.Select(x => x.BusinessType).Distinct().ToList(); - var recordIds = await TenantDb.Queryable().Where(x => list1.Contains(x.BusinessId) && list2.Contains(x.BusinessType) && AuditStatusArray.Contains(x.FeeStatus)) .Select(x => x.Id).ToArrayAsync(); diff --git a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs index 7726ebec..bf7a03f3 100644 --- a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs +++ b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs @@ -496,7 +496,7 @@ namespace DS.WMS.Core.Fee.Method var template = await FindTemplateAsync(AuditType.FeeModify); if (template == null) - return DataResult. ); + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TemplateNotFound)); DateTime dtNow = DateTime.Now; await TenantDb.Ado.BeginTranAsync(); diff --git a/ds-wms-service/DS.WMS.Core/Flow/Method/FlowInstanceService.cs b/ds-wms-service/DS.WMS.Core/Flow/Method/FlowInstanceService.cs index 072ce475..4f562142 100644 --- a/ds-wms-service/DS.WMS.Core/Flow/Method/FlowInstanceService.cs +++ b/ds-wms-service/DS.WMS.Core/Flow/Method/FlowInstanceService.cs @@ -453,10 +453,9 @@ public class FlowInstanceService : IFlowInstanceService } //更新回调执行标识 + var id = instance.Id; db.Updateable().SetColumns(it => new FlowInstance { IsCallbackExecuted = true }) - .Where(it => it.Id == instance.Id).ExecuteCommand(); - //instance.IsCallbackExecuted = true; - //await db.Updateable(instance).UpdateColumns(x => new { x.IsCallbackExecuted }).ExecuteCommandAsync(); + .Where(it => it.Id == id).ExecuteCommand(); } catch (Exception ex) { diff --git a/ds-wms-service/DS.WMS.FeeApi/Logs/internal-nlog.txt b/ds-wms-service/DS.WMS.FeeApi/Logs/internal-nlog.txt index 8bcdeec5..a110d37a 100644 --- a/ds-wms-service/DS.WMS.FeeApi/Logs/internal-nlog.txt +++ b/ds-wms-service/DS.WMS.FeeApi/Logs/internal-nlog.txt @@ -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 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-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. diff --git a/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user b/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user index 4d14be95..2898b545 100644 --- a/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user +++ b/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user @@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. <_PublishTargetUrl>D:\Publish\DS8\FeeApi - 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||; + 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||; \ No newline at end of file