diff --git a/ds-wms-service/DS.WMS.Core/Application/Interface/IApplicationAuditService`1.cs b/ds-wms-service/DS.WMS.Core/Application/Interface/IApplicationAuditService`1.cs
index 6bf67e07..7a372350 100644
--- a/ds-wms-service/DS.WMS.Core/Application/Interface/IApplicationAuditService`1.cs
+++ b/ds-wms-service/DS.WMS.Core/Application/Interface/IApplicationAuditService`1.cs
@@ -13,10 +13,9 @@ namespace DS.WMS.Core.Application.Interface
///
/// 一键审核当前登录用户的所有待审核项
///
- /// 审批结果:1=通过,2=驳回
- /// 备注
+ /// 备注
///
- Task AuditAsync(int yesOrNo, string? remark);
+ Task AuditAsync(AuditConditionRequest request);
///
/// 费用申请单审核
diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationAuditService`1.cs b/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationAuditService`1.cs
index 1b2d5a47..214ee78d 100644
--- a/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationAuditService`1.cs
+++ b/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationAuditService`1.cs
@@ -39,17 +39,16 @@ namespace DS.WMS.Core.Application.Method
///
/// 一键审核当前登录用户的所有待审核项
///
- /// 审批结果:1=通过,2=驳回
- /// 备注
+ ///
///
- public async Task AuditAsync(int yesOrNo, string? remark)
+ public async Task AuditAsync(AuditConditionRequest request)
{
- var recordIds = await GetCurrentFlowsQuery([AuditType]).Select(x => x.BusinessId).ToArrayAsync();
+ var ids = await GetCurrentFlowsQuery([AuditType]).Select(x => x.BusinessId).ToArrayAsync();
//没有待审批的列表直接返回不再执行后续查询
- if (recordIds.Length == 0)
+ if (ids.Length == 0)
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.NoAuditItems));
- return await AuditAsync(new AuditRequest { Ids = recordIds, Remark = remark, Result = yesOrNo });
+ return await AuditAsync(new AuditRequest { Ids = ids, Remark = request.Remark, Result = request.Result });
}
///
diff --git a/ds-wms-service/DS.WMS.Core/Settlement/Interface/IApplicationSettlementService.cs b/ds-wms-service/DS.WMS.Core/Settlement/Interface/IApplicationSettlementService.cs
index eb905519..d16d84d4 100644
--- a/ds-wms-service/DS.WMS.Core/Settlement/Interface/IApplicationSettlementService.cs
+++ b/ds-wms-service/DS.WMS.Core/Settlement/Interface/IApplicationSettlementService.cs
@@ -50,7 +50,7 @@ namespace DS.WMS.Core.Settlement.Interface
///
/// 申请单明细ID
///
- Task>> GetSettlementDetailsAsync(params long[] ids);
+ Task>> GetSettlementFeeDetailsAsync(params long[] ids);
///
/// 获取发票费用明细的原始币别
diff --git a/ds-wms-service/DS.WMS.Core/Settlement/Method/ApplicationSettlementService.cs b/ds-wms-service/DS.WMS.Core/Settlement/Method/ApplicationSettlementService.cs
index 1aacc89f..19ed0af1 100644
--- a/ds-wms-service/DS.WMS.Core/Settlement/Method/ApplicationSettlementService.cs
+++ b/ds-wms-service/DS.WMS.Core/Settlement/Method/ApplicationSettlementService.cs
@@ -160,36 +160,43 @@ namespace DS.WMS.Core.Settlement.Method
}
///
- /// 获取结算单费用明细
+ /// 根据申请获取费用明细
///
- /// 申请单明细ID
+ /// 申请单ID
///
- public async Task>> GetSettlementDetailsAsync(long[] ids)
+ public async Task>> GetSettlementFeeDetailsAsync(params long[] ids)
{
- var details = await TenantDb.Queryable().Where(d => ids.Contains(d.Id))
- .LeftJoin((d, f) => d.RecordId == f.Id)
- .LeftJoin((d, f, b) => f.BusinessId == b.BusinessId && f.BusinessType == b.BusinessType)
- .LeftJoin((d, f, b, p) => d.ApplicationId == p.Id)
- .Select((d, f, b, p) => new PaymentApplicationDetailDto
- {
- Id = d.Id,
- ApplicationId = d.ApplicationId,
- BusinessId = f.BusinessId,
- BusinessType = f.BusinessType,
- RecordId = d.RecordId,
- FeeName = d.FeeName,
- FeeType = d.FeeType, //收付
- ApplyAmount = d.ApplyAmount, //结算金额
- CustomerId = f.CustomerId,
- CustomerName = d.CustomerName,
- OriginalCurrency = d.OriginalCurrency, //原始币别
- OriginalRate = f.ExchangeRate, //原始汇率
- ExchangeRate = d.ExchangeRate, //折算汇率
- OriginalAmount = d.OriginalAmount, //原始金额
- InvoiceNO = p.InvoiceNO //发票号
- }).ToListAsync();
-
- await FulfillDetailsAsync(details);
+ var details = await CreateApplicationDetailQuery((d, f, s) => ids.Contains(d.ApplicationId))
+ .LeftJoin((d, pa) => d.ApplicationId == pa.Id)
+ .Select((d, pa) => new PaymentApplicationDetailDto
+ {
+ Id = d.Id,
+ ApplicationId = d.ApplicationId,
+ BusinessId = d.BusinessId,
+ BusinessType = d.BusinessType,
+ RecordId = d.RecordId,
+ FeeName = d.FeeName,
+ FeeType = d.FeeType,
+ Amount = d.Amount, //总金额
+ ApplyAmount = d.ApplyAmount, //已结算金额
+ RestAmount = d.ApplyAmount - d.ProcessedAmount, //剩余结算金额
+ CustomerId = d.CustomerId,
+ CustomerName = d.CustomerName,
+ OriginalCurrency = d.OriginalCurrency, //原始币别
+ OriginalRate = d.ExchangeRate, //原始汇率
+ ExchangeRate = d.ExchangeRate, //折算汇率
+ OriginalAmount = d.OriginalAmount, //原始金额
+ CustomerNo = d.CustomerNo,
+ MBLNO = d.MBLNO,
+ HBLNO = d.HBLNO,
+ ETD = d.ETD,
+ SourceName = d.SourceName,
+ SaleName = d.SaleName,
+ AccountDate = d.AccountDate,
+ Vessel = d.Vessel,
+ Voyage = d.Voyage,
+ InvoiceNO = pa.InvoiceNO
+ }).ToListAsync();
return DataResult>.Success(details);
}
@@ -268,7 +275,7 @@ namespace DS.WMS.Core.Settlement.Method
public async Task>> GetApplicationDetailsAsync(long id)
{
var details = await TenantDb.Queryable().Where(d => d.ApplicationId == id && (d.ApplyAmount - d.ProcessedAmount) != 0)
- .LeftJoin((d, f) => d.RecordId == f.Id)
+ .InnerJoin((d, f) => d.RecordId == f.Id)
.Select((d, f) => new PaymentApplicationDetailDto
{
Id = d.Id,
diff --git a/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs b/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs
index 505db6f7..7c44ccce 100644
--- a/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs
+++ b/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs
@@ -51,13 +51,10 @@ namespace DS.WMS.Core.Settlement.Method
{
x.BusinessId,
x.BusinessType,
+ x.CustomerId,
x.Currency,
x.FeeType,
- //x.Amount,
- //x.OrderAmount,
- //x.SettlementAmount,
- //x.OrderSettlementAmount,
- x.InvoiceAmount,
+ UnInvoiceAmount = x.Amount - x.InvoiceAmount - x.OrderInvoiceAmount + x.OrderInvSettlementAmount,
UnSettledAmount = x.Amount - x.SettlementAmount - x.OrderAmount + x.OrderSettlementAmount //剩余待结算
}).ToListAsync();
@@ -72,14 +69,14 @@ namespace DS.WMS.Core.Settlement.Method
foreach (var item in result.Data)
{
- item.UnpaidRMB = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency == FeeCurrency.RMB_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnSettledAmount);
- item.UnpaidUSD = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency == FeeCurrency.USD_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnSettledAmount);
- item.UnpaidOther = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency != FeeCurrency.RMB_CODE && x.Currency != FeeCurrency.USD_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnSettledAmount);
- item.UnchargedRMB = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency == FeeCurrency.RMB_CODE && x.FeeType == FeeType.Receivable).Sum(x => x.UnSettledAmount);
- item.UnchargedUSD = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency == FeeCurrency.USD_CODE && x.FeeType == FeeType.Receivable).Sum(x => x.UnSettledAmount);
- item.UnchargedOther = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency != FeeCurrency.RMB_CODE && x.Currency != FeeCurrency.USD_CODE && x.FeeType == FeeType.Receivable).Sum(x => x.UnSettledAmount);
- item.UnpaidInvoiceRMB = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency == FeeCurrency.RMB_CODE && x.FeeType == FeeType.Payable && x.UnSettledAmount == 0).Sum(x => x.InvoiceAmount);
- item.UnpaidInvoiceUSD = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.Currency == FeeCurrency.USD_CODE && x.FeeType == FeeType.Payable && x.UnSettledAmount == 0).Sum(x => x.InvoiceAmount);
+ item.UnpaidRMB = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency == FeeCurrency.RMB_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnSettledAmount);
+ item.UnpaidUSD = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency == FeeCurrency.USD_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnSettledAmount);
+ item.UnpaidOther = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency != FeeCurrency.RMB_CODE && x.Currency != FeeCurrency.USD_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnSettledAmount);
+ item.UnchargedRMB = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency == FeeCurrency.RMB_CODE && x.FeeType == FeeType.Receivable).Sum(x => x.UnSettledAmount);
+ item.UnchargedUSD = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency == FeeCurrency.USD_CODE && x.FeeType == FeeType.Receivable).Sum(x => x.UnSettledAmount);
+ item.UnchargedOther = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency != FeeCurrency.RMB_CODE && x.Currency != FeeCurrency.USD_CODE && x.FeeType == FeeType.Receivable).Sum(x => x.UnSettledAmount);
+ item.UnpaidInvoiceRMB = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency == FeeCurrency.RMB_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnInvoiceAmount);
+ item.UnpaidInvoiceUSD = fees.FindAll(x => x.BusinessId == item.BusinessId && x.BusinessType == item.BusinessType && x.CustomerId == item.CustomerId && x.Currency == FeeCurrency.USD_CODE && x.FeeType == FeeType.Payable).Sum(x => x.UnInvoiceAmount);
item.CreateByName = users.Find(x => x.Id == item.CreateBy)?.UserName;
item.Operator = users.Find(x => x.Id == item.OperatorId)?.UserName;
diff --git a/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs b/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs
index 9eed37b2..4f881de0 100644
--- a/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs
+++ b/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs
@@ -246,7 +246,7 @@ namespace DS.WMS.Core.Settlement.Method
//执行结算费用分配
foreach (var doc in request.Documents)
{
- var details2 = settlement.Mode != SettlementMode.FreeSettlement ?
+ var details2 = settlement.Mode != SettlementMode.FreeSettlement ?
details1.Where(x => x.RefId == doc.Id).OrderBy(x => x.ApplyAmount) :
details1.Where(x => x.BusinessId == doc.Id && x.BusinessType == doc.BusinessType && x.CustomerName == doc.CustomerName).OrderBy(x => x.ApplyAmount);
@@ -625,18 +625,17 @@ namespace DS.WMS.Core.Settlement.Method
List list = new(fees.Count);
foreach (var item in fees)
{
- var restAmount = item.Amount - item.SettlementAmount - item.OrderAmount + item.OrderSettlementAmount;
- if (restAmount == 0)
+ if (item.SettlementAmount == item.Amount)
{
item.FeeStatus = FeeStatus.SettlementCompleted;
list.Add(item);
}
- else if (restAmount != item.Amount)
+ else if (item.Amount - item.SettlementAmount != 0)
{
item.FeeStatus = FeeStatus.PartialSettlement;
list.Add(item);
}
- else if (restAmount == item.Amount)
+ else if (item.SettlementAmount == 0)
{
item.FeeStatus = FeeStatus.AuditPassed;
list.Add(item);
@@ -745,13 +744,13 @@ namespace DS.WMS.Core.Settlement.Method
/// 关联条件1
/// 查询对象
protected virtual ISugarQueryable CreateApplicationDetailQuery(
- Expression>? expr1 = null)
+ Expression>? expr1)
{
//海运出口
var query1 = TenantDb.Queryable()
.InnerJoin((d, f) => d.RecordId == f.Id)
.LeftJoin((d, f, s) => f.BusinessId == s.Id && f.BusinessType == BusinessType.OceanShippingExport)
- .WhereIF(expr1 != null, expr1)
+ .Where(expr1)
.Select((d, f, s) => new SettlementDetailDto
{
//---------------明细表--------------
@@ -770,6 +769,7 @@ namespace DS.WMS.Core.Settlement.Method
OriginalCurrency = d.OriginalCurrency,
ProcessedAmount = d.ProcessedAmount,
OriginalProcessedAmount = d.OriginalProcessedAmount,
+ RestAmount = d.ProcessedAmount - d.OriginalProcessedAmount,
//---------------费用表--------------
OriginalRate = f.ExchangeRate,
Amount = f.Amount,
@@ -790,6 +790,9 @@ namespace DS.WMS.Core.Settlement.Method
CustomerNo = s.CustomerNo,
ClientName = s.CustomerName, //委托单位
ETD = s.ETD,
+ ETA = s.ETA,
+ Forwarder = s.Forwarder,
+ Operator = s.OperatorName,
MBLNO = s.MBLNO,
HBLNO = s.HBLNO,
LoadPort = s.LoadPort,
diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskJob.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskJob.cs
new file mode 100644
index 00000000..dcf86876
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskJob.cs
@@ -0,0 +1,13 @@
+using DS.WMS.Core.TaskInteraction.Dtos;
+using DS.WMS.Core.TaskInteraction.Interface;
+
+namespace DS.WMS.Core.TaskInteraction.Method
+{
+ public class FeeBillTaskJob : ITaskJob
+ {
+ public async Task Execute(TaskJobContext context)
+ {
+
+ }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskService.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskService.cs
index 1fb1121b..df586315 100644
--- a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskService.cs
+++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/FeeBillTaskService.cs
@@ -199,7 +199,7 @@ namespace DS.WMS.Core.TaskInteraction.Method
};
req.Jobs.Add(new TaskJob
{
- TypeName = "",
+ TypeName = typeof(FeeBillTaskJob).FullName!,
NextTriggerTime = dtNow.AddMinutes(60)
});
//生成账单任务
diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs
index b035c60e..7ce40c70 100644
--- a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs
+++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs
@@ -433,9 +433,9 @@ namespace DS.WMS.Core.TaskInteraction.Method
if (string.IsNullOrEmpty(svcItem))
return [];
- var svcItems = svcItem.Split(',', StringSplitOptions.RemoveEmptyEntries);
- List requests = new List(svcItems.Length);
- for (int i = 0; i < svcItems.Length; i++)
+ var svcItems = svcItem.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => "WAIT_" + x.ToUpperInvariant()).ToList();
+ List requests = new List(svcItems.Count);
+ for (int i = 0; i < svcItems.Count; i++)
{
if (Enum.TryParse(svcItems[i], true, out TaskBaseTypeEnum taskType))
{
diff --git a/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentApplicationAuditController.cs b/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentApplicationAuditController.cs
index 7d54da0e..52b38325 100644
--- a/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentApplicationAuditController.cs
+++ b/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentApplicationAuditController.cs
@@ -5,6 +5,7 @@ using DS.WMS.Core.Application.Interface;
using DS.WMS.Core.Fee.Dtos;
using DS.WMS.Core.Flow.Dtos;
using DS.WMS.Core.Op.Entity;
+using LanguageExt.Common;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.FeeApi.Controllers
@@ -87,16 +88,15 @@ namespace DS.WMS.FeeApi.Controllers
///
///一键审核当前登录用户的所有待审核项
///
- /// 审批结果: 1=通过 2=驳回
- /// 审批备注
+ ///
///
[HttpPost, Route("OneClickAudit")]
- public async Task OneClickAuditAsync(int status, string remark)
+ public async Task OneClickAuditAsync([FromBody] AuditConditionRequest request)
{
- if (status != 1 && status != 2)
+ if (request.Result != 1 && request.Result != 2)
return DataResult.Failed("参数无效", MultiLanguageConst.IllegalRequest);
- return await _auditService.AuditAsync(status, remark);
+ return await _auditService.AuditAsync(request);
}
///
diff --git a/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentSettlementController.cs b/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentSettlementController.cs
index 53e34675..d004c582 100644
--- a/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentSettlementController.cs
+++ b/ds-wms-service/DS.WMS.FeeApi/Controllers/PaymentSettlementController.cs
@@ -82,12 +82,12 @@ namespace DS.WMS.FeeApi.Controllers
}
///
- /// 获取结算明细的费用明细
+ /// 根据申请获取费用明细
///
/// 申请明细ID
///
[HttpPost, Route("GetApplicationDetailsByDetail")]
- public async Task>> GetApplicationDetailsAsync([FromBody] IdModel model)
+ public async Task>> GetSettlementFeeDetailsAsync([FromBody] IdModel model)
{
if (!ModelState.IsValid)
{
@@ -95,7 +95,7 @@ namespace DS.WMS.FeeApi.Controllers
ModelState.GetErrorMessage(), MultiLanguageConst.IllegalRequest);
}
- return await _service.GetSettlementDetailsAsync(model.Ids);
+ return await _service.GetSettlementFeeDetailsAsync(model.Ids?.Length > 0 ? model.Ids : [long.Parse(model.Id)]);
}
///
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 0957f56c..a94673d6 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-11-06T01:40:38.5643842Z||;True|2024-11-05T19:07:36.6125691+08:00||;True|2024-11-05T18:46:33.8702047+08:00||;True|2024-11-05T18:42:41.4519018+08:00||;True|2024-11-05T18:16:03.1698058+08:00||;True|2024-11-05T11:48:07.5089999+08:00||;True|2024-11-04T17:39:07.1315345+08:00||;True|2024-11-04T17:32:28.9239052+08:00||;True|2024-11-04T15:49:58.6422421+08:00||;True|2024-11-04T15:39:25.1892907+08:00||;True|2024-11-04T15:21:49.7395112+08:00||;True|2024-11-04T11:26:53.4821041+08:00||;True|2024-11-04T11:19:48.8467193+08:00||;True|2024-11-04T11:01:39.9398452+08:00||;True|2024-11-04T10:30:55.0743204+08:00||;True|2024-11-02T21:17:44.8575190+08:00||;True|2024-11-02T20:54:29.9931812+08:00||;True|2024-11-02T20:39:20.4100370+08:00||;True|2024-11-02T18:33:41.0724285+08:00||;True|2024-11-02T18:21:55.8561639+08:00||;True|2024-11-02T17:36:24.3401782+08:00||;True|2024-11-02T16:38:03.0054105+08:00||;True|2024-11-02T16:26:26.1698304+08:00||;True|2024-11-02T16:15:20.2872358+08:00||;True|2024-11-02T15:19:14.9663838+08:00||;True|2024-11-02T14:39:47.8808708+08:00||;False|2024-11-02T14:22:04.2841792+08:00||;True|2024-11-02T11:50:48.2452805+08:00||;True|2024-10-29T18:52:12.7978878+08:00||;True|2024-10-29T10:27:49.1623527+08:00||;True|2024-10-25T15:09:27.7029075+08:00||;True|2024-10-25T10:29:26.9218878+08:00||;True|2024-10-22T17:58:39.9582805+08:00||;True|2024-10-21T17:57:21.7047579+08:00||;True|2024-10-21T14:30:54.4520206+08:00||;True|2024-10-21T10:19:05.7405749+08:00||;True|2024-10-18T16:11:05.4049685+08:00||;True|2024-10-18T14:59:49.1162741+08:00||;True|2024-10-16T16:29:15.3185348+08:00||;True|2024-10-16T14:12:58.1754214+08:00||;True|2024-10-16T14:08:06.5805581+08:00||;True|2024-10-16T11:55:29.8273176+08:00||;True|2024-10-15T17:39:40.4090324+08:00||;True|2024-10-15T17:06:43.0181578+08:00||;True|2024-10-15T15:07:38.9601925+08:00||;True|2024-10-12T13:33:32.4412583+08:00||;True|2024-10-11T17:00:54.0916209+08:00||;True|2024-10-11T10:54:50.3307087+08:00||;True|2024-10-11T10:45:07.8181500+08:00||;True|2024-10-11T10:40:44.2066046+08:00||;True|2024-10-11T10:21:25.7226983+08:00||;True|2024-10-11T10:09:05.5257478+08:00||;True|2024-10-10T14:58:29.1228618+08:00||;True|2024-10-10T14:05:59.4501659+08:00||;True|2024-10-10T11:08:58.9765455+08:00||;True|2024-10-08T17:59:07.5583287+08:00||;True|2024-09-27T19:01:59.6945760+08:00||;True|2024-09-27T18:45:48.2812860+08:00||;True|2024-09-27T18:10:25.5697467+08:00||;True|2024-09-27T17:39:06.3169139+08:00||;True|2024-09-27T17:30:14.1043193+08:00||;True|2024-09-27T16:02:09.0703159+08:00||;True|2024-09-27T15:53:05.1789245+08:00||;True|2024-09-27T15:32:52.1934490+08:00||;True|2024-09-27T13:51:24.9197626+08:00||;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-11-06T04:00:32.4812370Z||;True|2024-11-06T11:20:40.3736064+08:00||;True|2024-11-06T10:10:34.5300344+08:00||;True|2024-11-06T09:40:38.5643842+08:00||;True|2024-11-05T19:07:36.6125691+08:00||;True|2024-11-05T18:46:33.8702047+08:00||;True|2024-11-05T18:42:41.4519018+08:00||;True|2024-11-05T18:16:03.1698058+08:00||;True|2024-11-05T11:48:07.5089999+08:00||;True|2024-11-04T17:39:07.1315345+08:00||;True|2024-11-04T17:32:28.9239052+08:00||;True|2024-11-04T15:49:58.6422421+08:00||;True|2024-11-04T15:39:25.1892907+08:00||;True|2024-11-04T15:21:49.7395112+08:00||;True|2024-11-04T11:26:53.4821041+08:00||;True|2024-11-04T11:19:48.8467193+08:00||;True|2024-11-04T11:01:39.9398452+08:00||;True|2024-11-04T10:30:55.0743204+08:00||;True|2024-11-02T21:17:44.8575190+08:00||;True|2024-11-02T20:54:29.9931812+08:00||;True|2024-11-02T20:39:20.4100370+08:00||;True|2024-11-02T18:33:41.0724285+08:00||;True|2024-11-02T18:21:55.8561639+08:00||;True|2024-11-02T17:36:24.3401782+08:00||;True|2024-11-02T16:38:03.0054105+08:00||;True|2024-11-02T16:26:26.1698304+08:00||;True|2024-11-02T16:15:20.2872358+08:00||;True|2024-11-02T15:19:14.9663838+08:00||;True|2024-11-02T14:39:47.8808708+08:00||;False|2024-11-02T14:22:04.2841792+08:00||;True|2024-11-02T11:50:48.2452805+08:00||;True|2024-10-29T18:52:12.7978878+08:00||;True|2024-10-29T10:27:49.1623527+08:00||;True|2024-10-25T15:09:27.7029075+08:00||;True|2024-10-25T10:29:26.9218878+08:00||;True|2024-10-22T17:58:39.9582805+08:00||;True|2024-10-21T17:57:21.7047579+08:00||;True|2024-10-21T14:30:54.4520206+08:00||;True|2024-10-21T10:19:05.7405749+08:00||;True|2024-10-18T16:11:05.4049685+08:00||;True|2024-10-18T14:59:49.1162741+08:00||;True|2024-10-16T16:29:15.3185348+08:00||;True|2024-10-16T14:12:58.1754214+08:00||;True|2024-10-16T14:08:06.5805581+08:00||;True|2024-10-16T11:55:29.8273176+08:00||;True|2024-10-15T17:39:40.4090324+08:00||;True|2024-10-15T17:06:43.0181578+08:00||;True|2024-10-15T15:07:38.9601925+08:00||;True|2024-10-12T13:33:32.4412583+08:00||;True|2024-10-11T17:00:54.0916209+08:00||;True|2024-10-11T10:54:50.3307087+08:00||;True|2024-10-11T10:45:07.8181500+08:00||;True|2024-10-11T10:40:44.2066046+08:00||;True|2024-10-11T10:21:25.7226983+08:00||;True|2024-10-11T10:09:05.5257478+08:00||;True|2024-10-10T14:58:29.1228618+08:00||;True|2024-10-10T14:05:59.4501659+08:00||;True|2024-10-10T11:08:58.9765455+08:00||;True|2024-10-08T17:59:07.5583287+08:00||;True|2024-09-27T19:01:59.6945760+08:00||;True|2024-09-27T18:45:48.2812860+08:00||;True|2024-09-27T18:10:25.5697467+08:00||;True|2024-09-27T17:39:06.3169139+08:00||;True|2024-09-27T17:30:14.1043193+08:00||;True|2024-09-27T16:02:09.0703159+08:00||;True|2024-09-27T15:53:05.1789245+08:00||;True|2024-09-27T15:32:52.1934490+08:00||;True|2024-09-27T13:51:24.9197626+08:00||;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||;
\ No newline at end of file