cjy 4 months ago
commit 4f0d4ecf51

@ -253,5 +253,11 @@ namespace DS.Module.Core
/// </summary>
[Description("发票申请")]
InvoiceApplication,
/// <summary>
/// 海运出口
/// </summary>
[Description("海运出口")]
SeaExport,
}
}

@ -2,6 +2,6 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ActiveDebugProfile>https</ActiveDebugProfile>
<NameOfLastUsedPublishProfile>D:\Code\DS\ds8-solution-pro\ds-wms-service\DS.WMS.AdminApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>D:\Source\Repos\DS8\ds-wms-service\DS.WMS.AdminApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
</PropertyGroup>
</Project>

@ -16,7 +16,7 @@ namespace DS.WMS.Core.Application.Method
public class ApplicationAuditService<TEntity> : FeeServiceBase, IApplicationAuditService<TEntity>
where TEntity : ApplicationForm, new()
{
internal static readonly string[] AuditTypes = [AuditType.PaidApplication.ToString()];
internal static readonly AuditType[] AuditTypes = [AuditType.PaidApplication];
readonly IClientFlowInstanceService flowService;
/// <summary>

@ -125,7 +125,7 @@ namespace DS.WMS.Core.Application.Method
protected override async Task OnUpdateStatusAsync(FlowCallback callback, InvoiceApplication application)
{
var auditType = callback.AuditType.ToEnum<AuditType>();
var auditType = callback.Type;
if (auditType != AuditType.PaidApplication)
return;

@ -333,7 +333,7 @@ namespace DS.WMS.Core.Application.Method
protected override async Task OnUpdateStatusAsync(FlowCallback callback, PaymentApplication application)
{
var auditType = callback.AuditType.ToEnum<AuditType>();
var auditType = callback.Type;
if (auditType != AuditType.PaidApplication)
return;

@ -29,7 +29,7 @@ namespace DS.WMS.Core.Fee.Method
public static readonly FeeStatus[] AuditStatusArray = [FeeStatus.AuditSubmitted, FeeStatus.ApplyDeletion, FeeStatus.ApplyModification];
//一键审核支持的类型
static readonly string[] AuditTypes = [AuditType.FeeAudit.ToString(), AuditType.FeeModify.ToString(), AuditType.FeeDelete.ToString()];
static readonly AuditType[] AuditTypes = [AuditType.FeeAudit, AuditType.FeeModify, AuditType.FeeDelete];
readonly IClientFlowInstanceService flowService;
readonly IFeeRecordService feeService;
@ -191,7 +191,7 @@ namespace DS.WMS.Core.Fee.Method
List<FlowInstance> flowList = null;
if (string.Equals(request.OtherQueryCondition, Audit_Only))
{
flowList = await GetCurrentFlowsQuery([AuditType.FeeBusiness.ToString()])
flowList = await GetCurrentFlowsQuery([AuditType.FeeBusiness])
.Select(x => new FlowInstance { BusinessId = x.BusinessId, BusinessType = x.BusinessType }).ToListAsync();
//没有待审批的列表直接返回不再执行后续查询
@ -588,8 +588,7 @@ namespace DS.WMS.Core.Fee.Method
return DataResult.Failed(MultiLanguageConst.BusinessAuditStatusError);
var fIdArr = bizList.Select(x => x.FlowId).ToArray();
string auditType = AuditType.FeeBusiness.ToString();
var flows = await Db.Queryable<FlowInstance>().Where(x => fIdArr.Contains(x.Id) && x.AuditType == auditType).ToListAsync();
var flows = await Db.Queryable<FlowInstance>().Where(x => fIdArr.Contains(x.Id) && x.Type == AuditType.FeeBusiness).ToListAsync();
if (flows.Count == 0)
return DataResult.Failed(MultiLanguageConst.FlowNotFound);
@ -639,7 +638,7 @@ namespace DS.WMS.Core.Fee.Method
/// <returns></returns>
public async Task<DataResult> UpdateStatusAsync(FlowCallback callback)
{
var auditType = callback.AuditType.ToEnum<AuditType>();
var auditType = callback.Type;
FeeRecord fee = null;
BusinessFeeStatus biz = null;
if (auditType == AuditType.FeeBusiness)

@ -242,11 +242,9 @@ namespace DS.WMS.Core.Fee.Method
/// </summary>
/// <param name="auditType">审批类型</param>
/// <returns></returns>
protected async Task<FlowTemplateTenant> FindTemplateAsync(AuditType auditType)
protected internal async Task<FlowTemplateTenant> FindTemplateAsync(AuditType auditType)
{
string typeStr = auditType.ToString();
return await Db.Queryable<FlowTemplateTenant>().FirstAsync(x =>
x.Status == StatusEnum.Enable && x.AuditType == typeStr);
return await Db.Queryable<FlowTemplateTenant>().FirstAsync(x => x.Status == StatusEnum.Enable && x.AuditType == auditType);
}
/// <summary>
@ -254,7 +252,7 @@ namespace DS.WMS.Core.Fee.Method
/// </summary>
/// <param name="items"></param>
/// <returns></returns>
protected async Task FetchExchangeRateAsync(IEnumerable<FeeRecord> items)
protected internal async Task FetchExchangeRateAsync(IEnumerable<FeeRecord> items)
{
var exRecords = items.Where(x => !x.ExchangeRate.HasValue && x.Currency != x.LocalCurrency).ToList();
if (exRecords.Count > 0)
@ -287,10 +285,10 @@ namespace DS.WMS.Core.Fee.Method
/// </summary>
/// <param name="auditTypes">审核类型</param>
/// <returns></returns>
protected ISugarQueryable<FlowInstance> GetCurrentFlowsQuery(string[] auditTypes)
protected ISugarQueryable<FlowInstance> GetCurrentFlowsQuery(AuditType[] auditTypes)
{
return Db.Queryable<FlowInstance>().Where(x => x.FlowStatus == FlowStatusEnum.Running
&& SqlFunc.SplitIn(x.MakerList, User.UserId) && auditTypes.Contains(x.AuditType))
&& SqlFunc.SplitIn(x.MakerList, User.UserId) && auditTypes.Contains(x.Type.Value))
.Select(x => new FlowInstance { Id = x.Id, BusinessId = x.BusinessId, BusinessType = x.BusinessType });
}
}

@ -24,9 +24,9 @@ namespace DS.WMS.Core.Flow.Dtos
public BusinessType? BusinessType { get; set; }
/// <summary>
/// 审核类型
/// 工作流类型
/// </summary>
public string AuditType { get; set; }
public AuditType? Type { get; set; }
/// <summary>
/// 审核状态

@ -92,10 +92,10 @@ public class FlowInstance : BaseTenantModel<long>
public string? CallbackURL { get; set; }
/// <summary>
/// 审批类型
/// 工作流类型
/// </summary>
[SugarColumn(ColumnDescription = "审批类型", IsNullable = true, Length = 50)]
public string AuditType { get; set; }
[SugarColumn(ColumnDescription = "工作流类型", IsNullable = true, Length = 50)]
public AuditType? Type { get; set; }
/// <summary>
/// 是否已执行回调

@ -55,5 +55,5 @@ public class FlowTemplate : BaseModel<long>
/// 审批类型
/// </summary>
[SugarColumn(ColumnDescription = "审批类型", IsNullable = true, Length = 50)]
public string AuditType { get; set; }
public AuditType? AuditType { get; set; }
}

@ -55,5 +55,5 @@ public class FlowTemplateTenant : BaseTenantModel<long>
/// 审批类型
/// </summary>
[SugarColumn(ColumnDescription = "审批类型", IsNullable = true, Length = 50)]
public string AuditType { get; set; }
public AuditType? AuditType { get; set; }
}

@ -40,7 +40,7 @@ public class ClientFlowInstanceService : FlowInstanceService, IClientFlowInstanc
ColumnView = template.ColumnView,
Content = template.Content,
CallbackURL = template.CallbackURL,
AuditType = template.AuditType
Type = template.AuditType
};
}
@ -88,7 +88,7 @@ public class ClientFlowInstanceService : FlowInstanceService, IClientFlowInstanc
{
Id = x.Id,
Content = x.Content,
AuditType = x.AuditType,
Type = x.Type,
//CreateBy = x.CreateBy,
//CreateTime = x.CreateTime
}).ToList();

@ -95,7 +95,7 @@ public class FlowInstanceService : IFlowInstanceService
ColumnView = template.ColumnView,
Content = template.Content,
CallbackURL = template.CallbackURL,
AuditType = template.AuditType
Type = template.AuditType
};
}
@ -435,8 +435,8 @@ public class FlowInstanceService : IFlowInstanceService
InstanceId = instance.Id,
BusinessId = instance.BusinessId,
BusinessType = instance.BusinessType,
AuditType = instance.AuditType,
FlowStatus = (FlowStatusEnum)instance.FlowStatus,
Type = instance.Type,
FlowStatus = instance.FlowStatus,
RejectReason = instance.Note
};

@ -1,6 +1,9 @@
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.WMS.Core.Fee.Method;
using DS.WMS.Core.Flow.Dtos;
using DS.WMS.Core.Flow.Entity;
using DS.WMS.Core.Flow.Interface;
using DS.WMS.Core.Op.Dtos.TaskInteraction;
using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Op.Entity.TaskInteraction;
@ -19,6 +22,7 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
public class SeaExportTaskService : FeeServiceBase
{
ITaskManageService taskService;
Lazy<IClientFlowInstanceService> flowService;
/// <summary>
/// 初始化
@ -27,6 +31,7 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
public SeaExportTaskService(IServiceProvider provider) : base(provider)
{
taskService = provider.GetRequiredService<ITaskManageService>();
flowService = new Lazy<IClientFlowInstanceService>(provider.GetRequiredService<IClientFlowInstanceService>());
}
/// <summary>
@ -93,7 +98,7 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
if (!result.Succeeded)
return result;
var businessTask = new BusinessTask
task = new BusinessTask
{
BusinessId = request.BusinessId,
BusinessType = request.BusinessType,
@ -102,20 +107,32 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
CreateBy = long.Parse(User.UserId),
CreateTime = DateTime.Now
};
businessTask.NextType = GetNextType(businessTask);
await TenantDb.Insertable(businessTask).ExecuteCommandAsync();
task.NextType = GetNextType(task);
await TenantDb.Insertable(task).ExecuteCommandAsync();
if (request.TaskType == TaskBaseTypeEnum.WAIT_ORDER_AUDIT)
{
//待审核,需创建工作流
var template = await FindTemplateAsync(AuditType.SeaExport);
if (template == null)
return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TemplateNotFound));
}
else if (request.TaskType == TaskBaseTypeEnum.WAIT_BILL_CONFIRM)
{
//根据业务所选服务,生成子任务
result = flowService.Value.CreateFlowInstance(new CreateFlowInstanceReq
{
BusinessId = request.BusinessId,
BusinessType = BusinessType.OceanShippingExport,
TemplateId = template.Id
});
if (result.Succeeded)
{
var instance = result.Data as FlowInstance;
task.FlowId = instance.Id;
await TenantDb.Updateable(task).UpdateColumns(x => x.FlowId).ExecuteCommandAsync();
}
}
await TenantDb.Ado.CommitTranAsync();
return DataResult.Success;
}
catch (Exception ex)
@ -160,6 +177,12 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
await CreateTaskAsync(req);
}
//放舱结束,根据业务所选服务,生成子任务
if (request.TaskType == TaskBaseTypeEnum.WAIT_SPACE_RELEASE)
{
}
return DataResult.Success;
}
catch (Exception ex)
@ -184,12 +207,20 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction
.OrderByDescending(x => x.CreateTime).Take(1).FirstAsync();
}
/// <summary>
/// 获取给定任务的下一任务类型
/// </summary>
/// <param name="current">任务信息</param>
/// <returns></returns>
internal static TaskBaseTypeEnum? GetNextType(BusinessTask current)
{
if (current.TaskType == TaskBaseTypeEnum.WAIT_VGM)
if (current.TaskType == TaskBaseTypeEnum.WAIT_CHECKOUT_BILL)
return null;
int currentTypeVal = (int)current.TaskType;
if (currentTypeVal >= 300) //300开始的枚举值为可选服务项目不存在前后关联性
return null;
return (TaskBaseTypeEnum)currentTypeVal++;
}
}

@ -21,6 +21,7 @@ using Newtonsoft.Json;
using System.Data;
using DS.WMS.Core.Info.Dtos;
using NPOI.SS.Formula.Functions;
using DS.WMS.Core.Flow.Dtos;
namespace DS.WMS.Core.Sys.Method;
@ -99,6 +100,7 @@ public class CommonService : ICommonService
Name = db.Queryable<SysUser>().Filter(null, true).First(x => x.Id == userId).UserName,
// OrgId = userInfo.OrgId,
// GID = userInfo.GID,
TenantName = user.TenantName,
TenantId = tenantId.ToString(),
};
var refreshToken = JwtHelper.Encrypt(tokenModel, true,false);

@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl>
<History>True|2024-07-23T09:41:01.7494842Z||;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-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-24T08:45:58.2272340Z||;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-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 />
</PropertyGroup>
</Project>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<NameOfLastUsedPublishProfile>E:\MyCode\Dongsheng8\ds-wms-service\DS.WMS.MainApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>D:\Source\Repos\DS8\ds-wms-service\DS.WMS.MainApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
</PropertyGroup>
</Project>

@ -6,7 +6,7 @@
<Project>
<PropertyGroup>
<_PublishTargetUrl>D:\Code\PublishCopy\ds8-mainapi</_PublishTargetUrl>
<History>True|2024-07-24T01:40:52.9333341Z||;True|2024-07-24T09:32:35.6165520+08:00||;True|2024-07-19T12:03:03.1399057+08:00||;True|2024-07-19T11:47:36.2698405+08:00||;True|2024-07-18T15:59:36.7010783+08:00||;True|2024-07-16T18:17:43.9220347+08:00||;True|2024-06-18T17:36:34.9035076+08:00||;True|2024-06-18T16:25:54.2461596+08:00||;True|2024-06-18T10:09:37.3872162+08:00||;True|2024-06-18T10:00:43.4402179+08:00||;True|2024-06-18T08:55:07.3014083+08:00||;True|2024-06-18T08:40:51.6182342+08:00||;True|2024-06-13T19:48:34.0429148+08:00||;True|2024-06-13T19:09:39.6804400+08:00||;True|2024-06-13T15:41:56.9502735+08:00||;True|2024-06-13T15:23:59.4555910+08:00||;True|2024-06-13T15:12:55.6093356+08:00||;True|2024-06-11T17:08:01.8930314+08:00||;True|2024-06-07T15:23:11.1389680+08:00||;True|2024-06-07T10:23:59.6079620+08:00||;True|2024-06-06T17:42:56.1843783+08:00||;True|2024-06-04T14:20:46.7742295+08:00||;True|2024-05-31T17:57:35.6858600+08:00||;True|2024-05-31T15:25:20.8503086+08:00||;True|2024-05-30T17:22:52.2563382+08:00||;True|2024-05-30T17:05:35.7504154+08:00||;True|2024-05-29T17:17:39.6966826+08:00||;</History>
<History>True|2024-07-24T08:48:30.7465251Z||;True|2024-07-24T09:40:52.9333341+08:00||;True|2024-07-24T09:32:35.6165520+08:00||;True|2024-07-19T12:03:03.1399057+08:00||;True|2024-07-19T11:47:36.2698405+08:00||;True|2024-07-18T15:59:36.7010783+08:00||;True|2024-07-16T18:17:43.9220347+08:00||;True|2024-06-18T17:36:34.9035076+08:00||;True|2024-06-18T16:25:54.2461596+08:00||;True|2024-06-18T10:09:37.3872162+08:00||;True|2024-06-18T10:00:43.4402179+08:00||;True|2024-06-18T08:55:07.3014083+08:00||;True|2024-06-18T08:40:51.6182342+08:00||;True|2024-06-13T19:48:34.0429148+08:00||;True|2024-06-13T19:09:39.6804400+08:00||;True|2024-06-13T15:41:56.9502735+08:00||;True|2024-06-13T15:23:59.4555910+08:00||;True|2024-06-13T15:12:55.6093356+08:00||;True|2024-06-11T17:08:01.8930314+08:00||;True|2024-06-07T15:23:11.1389680+08:00||;True|2024-06-07T10:23:59.6079620+08:00||;True|2024-06-06T17:42:56.1843783+08:00||;True|2024-06-04T14:20:46.7742295+08:00||;True|2024-05-31T17:57:35.6858600+08:00||;True|2024-05-31T15:25:20.8503086+08:00||;True|2024-05-30T17:22:52.2563382+08:00||;True|2024-05-30T17:05:35.7504154+08:00||;True|2024-05-29T17:17:39.6966826+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>
Loading…
Cancel
Save