diff --git a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs
index 72ed54a9..52bc3231 100644
--- a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs
+++ b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs
@@ -692,6 +692,9 @@ public static class MultiLanguageConst
[Description("请通过用户管理功能设置证件号码后再提交开票")]
public const string DrawerIDNumberIsNull = "Drawer_IDNumber_IsNull";
+
+ [Description("税率不一致,禁止提交")]
+ public const string InconsistentTaxRates= "Inconsistent_Tax_Rates";
#endregion
#region 预订舱API
diff --git a/ds-wms-service/DS.WMS.Core/Invoice/Dtos/InvoiceDto.cs b/ds-wms-service/DS.WMS.Core/Invoice/Dtos/InvoiceDto.cs
index 84300bbb..cb870a9b 100644
--- a/ds-wms-service/DS.WMS.Core/Invoice/Dtos/InvoiceDto.cs
+++ b/ds-wms-service/DS.WMS.Core/Invoice/Dtos/InvoiceDto.cs
@@ -168,6 +168,11 @@ namespace DS.WMS.Core.Invoice.Dtos
///
public string? TaxID { get; set; }
+ ///
+ /// 客户纳税人识别号
+ ///
+ public string? CustomerTaxID { get; set; }
+
///
/// 客户地址
///
diff --git a/ds-wms-service/DS.WMS.Core/Invoice/Entity/Invoice.cs b/ds-wms-service/DS.WMS.Core/Invoice/Entity/Invoice.cs
index 7bd93c2c..9dc039de 100644
--- a/ds-wms-service/DS.WMS.Core/Invoice/Entity/Invoice.cs
+++ b/ds-wms-service/DS.WMS.Core/Invoice/Entity/Invoice.cs
@@ -158,16 +158,16 @@ namespace DS.WMS.Core.Invoice.Entity
public string? TaxID { get; set; }
///
- /// 客户地址
+ /// 客户纳税人识别号
///
- [SugarColumn(ColumnDescription = "客户地址", Length = 200, IsNullable = true)]
- public string? CustomerAddress { get; set; }
+ [SugarColumn(ColumnDescription = "客户纳税人识别号", Length = 60, IsNullable = true)]
+ public string? CustomerTaxID { get; set; }
///
- /// 客户电话
+ /// 客户地址电话
///
- [SugarColumn(ColumnDescription = "客户电话", Length = 20, IsNullable = true)]
- public string? CustomerPhone { get; set; }
+ [SugarColumn(ColumnDescription = "客户地址电话", Length = 200, IsNullable = true)]
+ public string? CustomerAddressTel { get; set; }
///
/// 客户银行名称
diff --git a/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceIssuanceService.cs b/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceIssuanceService.cs
index c52fab4c..dd31f7d2 100644
--- a/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceIssuanceService.cs
+++ b/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceIssuanceService.cs
@@ -59,8 +59,8 @@ namespace DS.WMS.Core.Invoice.Method
email = x.Email,
buyerTaxNum = x.TaxID,
buyerName = x.InvoiceHeader,
- buyerAddress = x.CustomerAddress,
- buyerTel = x.CustomerPhone,
+ buyerAddress = x.CustomerAddressTel,
+ buyerTel = "",
gmfkhh = x.CustomerBankName,
gmfzh = x.CustomerAccount,
skyhmc = x.BankName,
diff --git a/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceService`1.cs b/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceService`1.cs
index 92e2e886..90b1da59 100644
--- a/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceService`1.cs
+++ b/ds-wms-service/DS.WMS.Core/Invoice/Method/InvoiceService`1.cs
@@ -5,6 +5,7 @@ using DS.WMS.Core.Application.Dtos;
using DS.WMS.Core.Application.Entity;
using DS.WMS.Core.Application.Method;
using DS.WMS.Core.Fee.Entity;
+using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Invoice.Interface;
using DS.WMS.Core.Sys.Entity;
@@ -152,8 +153,6 @@ namespace DS.WMS.Core.Invoice.Method
public async Task> SaveAsync(InvoiceRequest request)
{
var invoice = request.Invoice;
- if (invoice.InvoiceDate == default)
- invoice.InvoiceDate = DateTime.Now;
if (invoice.Currency.IsNullOrEmpty())
invoice.Currency = FeeCurrency.RMB_CODE;
@@ -172,14 +171,21 @@ namespace DS.WMS.Core.Invoice.Method
if (!result.Succeeded)
return DataResult.Failed(result.Message, result.MultiCode);
+ if (invoice.InvoiceDate == default)
+ invoice.InvoiceDate = DateTime.Now;
+
+ invoice.OperatorId ??= long.Parse(User.UserId);
+
//按发票申请
if (request.Applications != null && request.Applications.Count > 0)
{
var ids = request.Applications.Select(x => x.ApplicationId);
var details = await TenantDb.Queryable()
.InnerJoin((x, y) => x.ApplicationId == y.Id)
- .Where((x, y) => ids.Contains(x.ApplicationId) && x.Category == DetailCategory.InvoiceApplication)
- .Select((x, y) => new
+ .LeftJoin((x, y, z) => y.CustomerId == z.ClientId && z.Currency == invoice.Currency &&
+ z.IsInvoiceDefault.GetValueOrDefault())
+ .Where((x, y, z) => ids.Contains(x.ApplicationId) && x.Category == DetailCategory.InvoiceApplication)
+ .Select((x, y, z) => new
{
x.Id,
x.ApplicationId,
@@ -194,26 +200,56 @@ namespace DS.WMS.Core.Invoice.Method
x.OriginalCurrency,
x.ProcessedAmount,
x.OriginalProcessedAmount,
- y.CustomerId
+
+ y.CustomerId,
+ y.TaxRate,
+ y.TaxID,
+ y.InvoiceHeader,
+ y.CustomerAddTel,
+ y.SaleDeptId,
+ y.PushMode,
+ y.CellPhoneNO,
+ y.Email,
+
+ z.BankAccountNo,
+ z.BankName
}).ToListAsync();
- invoice.Details ??= new List(details.Count);
+ //税率不一致
+ if (details.GroupBy(x => x.TaxRate).Select(x => x.Key).Count() > 1)
+ return DataResult.FailedWithDesc(nameof(MultiLanguageConst.InvoiceCustomerOnlyOne));
+ invoice.Details ??= new List(details.Count);
foreach (var item in details)
{
- if (request.Invoice.CustomerId == 0)
+ if (invoice.CustomerId == 0)
{
- request.Invoice.CustomerId = item.CustomerId;
- request.Invoice.CustomerName = item.CustomerName;
+ invoice.CustomerId = item.CustomerId;
+ invoice.CustomerName = item.CustomerName;
+ invoice.TaxRate = item.TaxRate;
+ invoice.InvoiceHeader = item.InvoiceHeader;
+ invoice.CustomerTaxID = item.TaxID;
+ invoice.CustomerAddressTel = item.CustomerAddTel;
+ invoice.CustomerAccount = item.BankAccountNo;
+ invoice.CustomerBankName = item.BankName;
+ invoice.SaleDeptId = item.SaleDeptId;
+ invoice.PushMode = item.PushMode;
+ invoice.CellPhoneNO = item.CellPhoneNO;
+ invoice.Email = item.Email;
}
- else if (request.Invoice.CustomerId != item.CustomerId) //校验开票单位是否一致
+ else if (invoice.CustomerId != item.CustomerId) //校验开票单位是否一致
{
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.InvoiceCustomerOnlyOne));
}
+ else if (invoice.TaxRate != item.TaxRate) //校验税率是否一致
+ {
+ return DataResult.FailedWithDesc(nameof(MultiLanguageConst.InconsistentTaxRates));
+ }
+
//需转换为费用明细
var detail = new ApplicationDetail
{
- ApplicationId = request.Invoice.Id,
+ ApplicationId = invoice.Id,
RefId = item.ApplicationId,
DetailId = item.Id,
RecordId = item.RecordId,
@@ -222,7 +258,7 @@ namespace DS.WMS.Core.Invoice.Method
FeeId = item.FeeId,
FeeName = item.FeeName,
FeeType = item.FeeType,
- Currency = FeeCurrency.RMB_CODE,
+ Currency = invoice.Currency,
OriginalCurrency = item.Currency,
ApplyAmount = item.ApplyAmount - item.ProcessedAmount,
OriginalAmount = item.OriginalAmount - item.OriginalProcessedAmount
@@ -250,6 +286,12 @@ namespace DS.WMS.Core.Invoice.Method
invoice.CustomerName = first.CustomerName;
}
+ var ids = request.Details.Select(x => x.RecordId).Distinct();
+ var fees = await TenantDb.Queryable().Where(x => ids.Contains(x.Id)).Select(x => new { x.Id, x.TaxRate }).ToListAsync();
+ //税率不一致
+ if (fees.GroupBy(x => x.TaxRate).Select(x => x.Key).Count() > 1 || (invoice.Id > 0 && invoice.TaxRate != fees[0].TaxRate))
+ return DataResult.FailedWithDesc(nameof(MultiLanguageConst.InvoiceCustomerOnlyOne));
+
//将请求明细转换为数据库的费用明细
invoice.Details = request.Details.Select(x => new ApplicationDetail
{
@@ -269,6 +311,41 @@ namespace DS.WMS.Core.Invoice.Method
OriginalAmount = x.OriginalAmount,
OriginalCurrency = x.OriginalCurrency ?? (invoice.Currency.IsNullOrEmpty() ? x.Currency : invoice.Currency),
}).ToList();
+
+ //补充购方信息
+ invoice.CustomerTaxID = await TenantDb.Queryable().Where(x => x.Id == invoice.CustomerId)
+ .Select(x => x.TaxNo).FirstAsync();
+ var header = await TenantDb.Queryable().Where(x => x.RelativeId == invoice.CustomerId)
+ .OrderByDescending(x => x.Id).FirstAsync();
+ if (header != null)
+ {
+ invoice.InvoiceHeader = header.Header;
+ invoice.CustomerAddressTel = header.AddressTel;
+ }
+ var clientBank = await TenantDb.Queryable().Where(x => x.ClientId == invoice.CustomerId && x.Currency == invoice.Currency)
+ .OrderByDescending(x => x.IsInvoiceDefault).Select(x => new
+ {
+ x.Account,
+ x.BankName
+ }).FirstAsync();
+ if (clientBank != null)
+ {
+ invoice.CustomerAccount = clientBank.Account;
+ invoice.CustomerBankName = clientBank.BankName;
+ }
+ }
+
+ //补充销方信息
+ invoice.TaxID = await Db.Queryable().Where(x => x.Id == User.OrgId).Select(x => x.LicenseCode).FirstAsync();
+ var orgBank = await Db.Queryable().Where(x => x.LinkId == User.OrgId && x.Currency == invoice.Currency).OrderByDescending(x => x.IsDefault).Select(x => new
+ {
+ x.BankAccountNo,
+ x.BankName
+ }).FirstAsync();
+ if (orgBank != null)
+ {
+ invoice.BankName = orgBank.BankName;
+ invoice.Account = orgBank.BankAccountNo;
}
if (invoice.Details?.Count > 0)
@@ -301,9 +378,8 @@ namespace DS.WMS.Core.Invoice.Method
//创建时需要生成申请单编号
var sequence = CommonService.Value.GetSequenceNext();
if (!sequence.Succeeded)
- {
return DataResult.Failed(sequence.Message, MultiLanguageConst.SequenceSetNotExist);
- }
+
invoice.BillNO = sequence.Data;
//关联导航属性插入
await TenantDb.InsertNav(invoice).Include(x => x.Details).ExecuteCommandAsync();
@@ -313,25 +389,20 @@ namespace DS.WMS.Core.Invoice.Method
buildOption = BuildOption.Update;
await TenantDb.Updateable(invoice).UpdateColumns(x => new
{
- x.InvoiceNO,
x.InvoiceDate,
- x.Account,
- x.BankName,
- //x.Currency,
x.ReceiptCurrency,
- x.CustomerId,
- x.CustomerName,
x.AutualCustomerName,
- x.InvoiceHeader,
- x.CustomerAddress,
- x.CustomerPhone,
- x.CustomerBankName,
- x.CustomerAccount,
x.OperatorId,
- x.TaxID,
- x.TaxRate,
- x.OrgId,
- x.SaleDeptId
+ x.SaleDeptId,
+ x.Category,
+ x.CategoryCode,
+ x.IsOverseasInvoice,
+ x.Payee,
+ x.Checker,
+ x.PushMode,
+ x.CellPhoneNO,
+ x.Email,
+ x.Note
}).ExecuteCommandAsync();
if (invoice.Details?.Count > 0)
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 a6b9dd3a..e62cf9a9 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
- False|2024-09-19T06:15:42.9318446Z||;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||;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-09-19T08:08:21.7225571Z||;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||;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||;
\ No newline at end of file