LsitFormWorkflow
This commit is contained in:
parent
08a2297a66
commit
9a49f4df0f
18 changed files with 683 additions and 49 deletions
3
.github/instructions/ai.instructions.md
vendored
3
.github/instructions/ai.instructions.md
vendored
|
|
@ -101,7 +101,8 @@ Driven by:
|
||||||
- ListForm
|
- ListForm
|
||||||
- ListFormFields
|
- ListFormFields
|
||||||
- ListFormCustomization (UserUiFilter, GridState, ServerJoin, ServerWhere)
|
- ListFormCustomization (UserUiFilter, GridState, ServerJoin, ServerWhere)
|
||||||
- ListFormImport and ListFormImportExecute
|
- ListFormImport and ListFormImportLog
|
||||||
|
- ListFormWorkflow and ListFormWorkflowCriteria
|
||||||
- ListFormJsonRow operations
|
- ListFormJsonRow operations
|
||||||
|
|
||||||
Capabilities:
|
Capabilities:
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ using Volo.Abp.Application.Dtos;
|
||||||
|
|
||||||
namespace Sozsoft.Platform.ListForms;
|
namespace Sozsoft.Platform.ListForms;
|
||||||
|
|
||||||
public class ListFormImportExecuteDto : AuditedEntityDto<Guid>
|
public class ListFormImportLogDto : AuditedEntityDto<Guid>
|
||||||
{
|
{
|
||||||
public Guid ImportId { get; set; }
|
public Guid ImportId { get; set; }
|
||||||
public string BlobName { get; set; }
|
public string BlobName { get; set; }
|
||||||
|
|
@ -11,7 +11,7 @@ public interface IImportAppService
|
||||||
Task<ListFormsImportDto> GetAsync(Guid sessionId);
|
Task<ListFormsImportDto> GetAsync(Guid sessionId);
|
||||||
Task<List<ListFormsImportDto>> GetListByListFormCodeAsync(string name);
|
Task<List<ListFormsImportDto>> GetListByListFormCodeAsync(string name);
|
||||||
Task<ListFormsImportDto> UpdateAsync(Guid sessionId, ListFormsImportDto input);
|
Task<ListFormsImportDto> UpdateAsync(Guid sessionId, ListFormsImportDto input);
|
||||||
Task<ListFormImportExecuteDto> ExecuteAsync(ExecuteImportRequest request);
|
Task<ListFormImportLogDto> ExecuteAsync(ImportExecuteRequest request);
|
||||||
Task DeleteAsync(Guid id);
|
Task DeleteAsync(Guid id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Sozsoft.Platform.ListForms.ImportManager;
|
namespace Sozsoft.Platform.ListForms.ImportManager;
|
||||||
|
|
||||||
public class ExecuteImportRequest
|
public class ImportExecuteRequest
|
||||||
{
|
{
|
||||||
public Guid SessionId { get; set; }
|
public Guid SessionId { get; set; }
|
||||||
public string ListFormCode { get; set; }
|
public string ListFormCode { get; set; }
|
||||||
|
|
@ -43,7 +43,7 @@ public class ListFormAutoMapperProfile : Profile
|
||||||
CreateMap<ChartFontDto, ChartFont>();
|
CreateMap<ChartFontDto, ChartFont>();
|
||||||
|
|
||||||
CreateMap<ListFormImport, ListFormsImportDto>();
|
CreateMap<ListFormImport, ListFormsImportDto>();
|
||||||
CreateMap<ListFormImportExecute, ListFormImportExecuteDto>();
|
CreateMap<ListFormImportLog, ListFormImportLogDto>();
|
||||||
CreateMap<ImportValidationErrorDto, ImportValidationErrorDto>();
|
CreateMap<ImportValidationErrorDto, ImportValidationErrorDto>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,14 +24,14 @@ namespace Sozsoft.Platform.ListForms.ImportManager;
|
||||||
public class ListFormImportAppService : PlatformAppService, IImportAppService
|
public class ListFormImportAppService : PlatformAppService, IImportAppService
|
||||||
{
|
{
|
||||||
private readonly IRepository<ListFormImport, Guid> _importSessionRepository;
|
private readonly IRepository<ListFormImport, Guid> _importSessionRepository;
|
||||||
private readonly IRepository<ListFormImportExecute, Guid> _importSessionExecuteRepository;
|
private readonly IRepository<ListFormImportLog, Guid> _importSessionExecuteRepository;
|
||||||
private readonly IListFormAuthorizationManager _authManager;
|
private readonly IListFormAuthorizationManager _authManager;
|
||||||
private readonly IQueryManager _qManager;
|
private readonly IQueryManager _qManager;
|
||||||
private readonly BlobManager _blobContainer;
|
private readonly BlobManager _blobContainer;
|
||||||
|
|
||||||
public ListFormImportAppService(
|
public ListFormImportAppService(
|
||||||
IRepository<ListFormImport, Guid> importSessionRepository,
|
IRepository<ListFormImport, Guid> importSessionRepository,
|
||||||
IRepository<ListFormImportExecute, Guid> importSessionExecuteRepository,
|
IRepository<ListFormImportLog, Guid> importSessionExecuteRepository,
|
||||||
IListFormAuthorizationManager authManager,
|
IListFormAuthorizationManager authManager,
|
||||||
IQueryManager qManager,
|
IQueryManager qManager,
|
||||||
BlobManager blobContainer
|
BlobManager blobContainer
|
||||||
|
|
@ -134,7 +134,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService
|
||||||
}
|
}
|
||||||
|
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
public async Task<ListFormImportExecuteDto> ExecuteAsync([FromBody] ExecuteImportRequest request)
|
public async Task<ListFormImportLogDto> ExecuteAsync([FromBody] ImportExecuteRequest request)
|
||||||
{
|
{
|
||||||
var queryable = await _importSessionRepository.GetQueryableAsync();
|
var queryable = await _importSessionRepository.GetQueryableAsync();
|
||||||
var session = await AsyncExecuter.FirstOrDefaultAsync(queryable.Where(a => a.Id == request.SessionId))
|
var session = await AsyncExecuter.FirstOrDefaultAsync(queryable.Where(a => a.Id == request.SessionId))
|
||||||
|
|
@ -144,7 +144,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService
|
||||||
if (!await _authManager.CanAccess(request.ListFormCode, AuthorizationTypeEnum.Import))
|
if (!await _authManager.CanAccess(request.ListFormCode, AuthorizationTypeEnum.Import))
|
||||||
throw new Volo.Abp.UserFriendlyException(L[AppErrorCodes.NoAuth]);
|
throw new Volo.Abp.UserFriendlyException(L[AppErrorCodes.NoAuth]);
|
||||||
|
|
||||||
var execute = new ListFormImportExecute
|
var execute = new ListFormImportLog
|
||||||
{
|
{
|
||||||
ImportId = request.SessionId,
|
ImportId = request.SessionId,
|
||||||
BlobName = session.BlobName,
|
BlobName = session.BlobName,
|
||||||
|
|
@ -224,7 +224,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService
|
||||||
session.Status = errorCount > 0 ? "executed_with_errors" : "executed";
|
session.Status = errorCount > 0 ? "executed_with_errors" : "executed";
|
||||||
await _importSessionRepository.UpdateAsync(session, autoSave: true);
|
await _importSessionRepository.UpdateAsync(session, autoSave: true);
|
||||||
|
|
||||||
return ObjectMapper.Map<ListFormImportExecute, ListFormImportExecuteDto>(execute);
|
return ObjectMapper.Map<ListFormImportLog, ListFormImportLogDto>(execute);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
@ -241,7 +241,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<ListFormImportExecuteDto>> GetListExecutesAsync(Guid sessionId)
|
public async Task<List<ListFormImportLogDto>> GetListExecutesAsync(Guid sessionId)
|
||||||
{
|
{
|
||||||
var queryable = await _importSessionExecuteRepository.GetQueryableAsync();
|
var queryable = await _importSessionExecuteRepository.GetQueryableAsync();
|
||||||
var sessions = await AsyncExecuter.ToListAsync(
|
var sessions = await AsyncExecuter.ToListAsync(
|
||||||
|
|
@ -250,7 +250,7 @@ public class ListFormImportAppService : PlatformAppService, IImportAppService
|
||||||
.OrderByDescending(x => x.CreationTime)
|
.OrderByDescending(x => x.CreationTime)
|
||||||
);
|
);
|
||||||
|
|
||||||
return ObjectMapper.Map<List<ListFormImportExecute>, List<ListFormImportExecuteDto>>(sessions);
|
return ObjectMapper.Map<List<ListFormImportLog>, List<ListFormImportLogDto>>(sessions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task DeleteAsync(Guid id)
|
public async Task DeleteAsync(Guid id)
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,9 @@ public enum TableNameEnum
|
||||||
ListFormField,
|
ListFormField,
|
||||||
ListFormCustomization,
|
ListFormCustomization,
|
||||||
ListFormImport,
|
ListFormImport,
|
||||||
ListFormImportExecute,
|
ListFormImportLog,
|
||||||
|
ListFormWorkflow,
|
||||||
|
ListFormWorkflowCriteria,
|
||||||
Note,
|
Note,
|
||||||
ForumCategory,
|
ForumCategory,
|
||||||
ForumTopic,
|
ForumTopic,
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@ public static class TableNameResolver
|
||||||
{ nameof(TableNameEnum.ListFormField), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.ListFormField), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
{ nameof(TableNameEnum.ListFormCustomization), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.ListFormCustomization), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
{ nameof(TableNameEnum.ListFormImport), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.ListFormImport), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
{ nameof(TableNameEnum.ListFormImportExecute), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.ListFormImportLog), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
|
{ nameof(TableNameEnum.ListFormWorkflow), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
|
{ nameof(TableNameEnum.ListFormWorkflowCriteria), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
{ nameof(TableNameEnum.Notification), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.Notification), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
{ nameof(TableNameEnum.NotificationRule), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.NotificationRule), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
{ nameof(TableNameEnum.NotificationType), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
{ nameof(TableNameEnum.NotificationType), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ using Volo.Abp.Domain.Entities.Auditing;
|
||||||
|
|
||||||
namespace Sozsoft.Platform.Entities;
|
namespace Sozsoft.Platform.Entities;
|
||||||
|
|
||||||
public class ListFormImportExecute : FullAuditedEntity<Guid>
|
public class ListFormImportLog : FullAuditedEntity<Guid>
|
||||||
{
|
{
|
||||||
public Guid ImportId { get; set; }
|
public Guid ImportId { get; set; }
|
||||||
public string BlobName { get; set; }
|
public string BlobName { get; set; }
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Volo.Abp.Domain.Entities.Auditing;
|
||||||
|
|
||||||
|
namespace Sozsoft.Platform.Entities;
|
||||||
|
|
||||||
|
public class ListFormWorkflow : FullAuditedEntity<Guid>
|
||||||
|
{
|
||||||
|
public string ListFormCode { get; set; }
|
||||||
|
public int OrderNo { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
|
public decimal Amount { get; set; }
|
||||||
|
public string CurrentNodeId { get; set; }
|
||||||
|
public string AssignedApprover { get; set; }
|
||||||
|
public string InformedPerson { get; set; }
|
||||||
|
public string HistoryJson { get; set; }
|
||||||
|
|
||||||
|
public ICollection<ListFormWorkflowCriteria> Criteria { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using Volo.Abp.Domain.Entities.Auditing;
|
||||||
|
|
||||||
|
namespace Sozsoft.Platform.Entities;
|
||||||
|
|
||||||
|
public class ListFormWorkflowCriteria : FullAuditedEntity<Guid>
|
||||||
|
{
|
||||||
|
public string ListFormCode { get; set; }
|
||||||
|
public Guid WorkflowItemId { get; set; }
|
||||||
|
public ListFormWorkflow WorkflowItem { get; set; }
|
||||||
|
public string NodeId { get; set; }
|
||||||
|
public string Kind { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
public string Column { get; set; }
|
||||||
|
public string Operator { get; set; }
|
||||||
|
public decimal CompareValue { get; set; }
|
||||||
|
public string Approver { get; set; }
|
||||||
|
public string InformPerson { get; set; }
|
||||||
|
public string NextOnStart { get; set; }
|
||||||
|
public string NextOnTrue { get; set; }
|
||||||
|
public string NextOnFalse { get; set; }
|
||||||
|
public string NextOnApprove { get; set; }
|
||||||
|
public string NextOnReject { get; set; }
|
||||||
|
public int PositionX { get; set; }
|
||||||
|
public int PositionY { get; set; }
|
||||||
|
public string CompareOutcomesJson { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -54,7 +54,9 @@ public class PlatformDbContext :
|
||||||
public DbSet<ListFormField> ListFormFields { get; set; }
|
public DbSet<ListFormField> ListFormFields { get; set; }
|
||||||
public DbSet<ListFormCustomization> ListFormCustomization { get; set; }
|
public DbSet<ListFormCustomization> ListFormCustomization { get; set; }
|
||||||
public DbSet<ListFormImport> ListFormImports { get; set; }
|
public DbSet<ListFormImport> ListFormImports { get; set; }
|
||||||
public DbSet<ListFormImportExecute> ListFormImportExecutes { get; set; }
|
public DbSet<ListFormImportLog> ListFormImportLogs { get; set; }
|
||||||
|
public DbSet<ListFormWorkflow> ListFormWorkflows { get; set; }
|
||||||
|
public DbSet<ListFormWorkflowCriteria> ListFormWorkflowCriteria { get; set; }
|
||||||
public DbSet<BackgroundWorker> BackgroundWorkers { get; set; }
|
public DbSet<BackgroundWorker> BackgroundWorkers { get; set; }
|
||||||
public DbSet<ForumCategory> ForumCategories { get; set; }
|
public DbSet<ForumCategory> ForumCategories { get; set; }
|
||||||
public DbSet<ForumTopic> ForumTopics { get; set; }
|
public DbSet<ForumTopic> ForumTopics { get; set; }
|
||||||
|
|
@ -466,12 +468,12 @@ public class PlatformDbContext :
|
||||||
b.Property(x => x.BlobName).IsRequired().HasMaxLength(256);
|
b.Property(x => x.BlobName).IsRequired().HasMaxLength(256);
|
||||||
b.Property(x => x.Status).IsRequired().HasMaxLength(64);
|
b.Property(x => x.Status).IsRequired().HasMaxLength(64);
|
||||||
|
|
||||||
builder.Entity<ListFormImport>(b => { b.HasMany<ListFormImportExecute>().WithOne().HasForeignKey(x => x.ImportId).OnDelete(DeleteBehavior.Cascade); });
|
builder.Entity<ListFormImport>(b => { b.HasMany<ListFormImportLog>().WithOne().HasForeignKey(x => x.ImportId).OnDelete(DeleteBehavior.Cascade); });
|
||||||
});
|
});
|
||||||
|
|
||||||
builder.Entity<ListFormImportExecute>(b =>
|
builder.Entity<ListFormImportLog>(b =>
|
||||||
{
|
{
|
||||||
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ListFormImportExecute)), Prefix.DbSchema);
|
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ListFormImportLog)), Prefix.DbSchema);
|
||||||
b.ConfigureByConvention();
|
b.ConfigureByConvention();
|
||||||
|
|
||||||
b.Property(x => x.ImportId).IsRequired();
|
b.Property(x => x.ImportId).IsRequired();
|
||||||
|
|
@ -480,6 +482,59 @@ public class PlatformDbContext :
|
||||||
b.Property(x => x.ErrorsJson).HasColumnType("text");
|
b.Property(x => x.ErrorsJson).HasColumnType("text");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
builder.Entity<ListFormWorkflow>(b =>
|
||||||
|
{
|
||||||
|
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ListFormWorkflow)), Prefix.DbSchema);
|
||||||
|
b.ConfigureByConvention();
|
||||||
|
|
||||||
|
b.Property(x => x.ListFormCode).IsRequired().HasMaxLength(64);
|
||||||
|
b.Property(x => x.OrderNo).IsRequired();
|
||||||
|
b.Property(x => x.Title).IsRequired().HasMaxLength(150);
|
||||||
|
b.Property(x => x.Status).IsRequired().HasMaxLength(100);
|
||||||
|
b.Property(x => x.Amount).HasPrecision(18, 2);
|
||||||
|
b.Property(x => x.CurrentNodeId).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.AssignedApprover).IsRequired().HasMaxLength(250);
|
||||||
|
b.Property(x => x.InformedPerson).IsRequired().HasMaxLength(250);
|
||||||
|
b.Property(x => x.HistoryJson).HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasMany(x => x.Criteria)
|
||||||
|
.WithOne(x => x.WorkflowItem)
|
||||||
|
.HasForeignKey(x => x.WorkflowItemId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
|
builder.Entity<ListFormWorkflowCriteria>(b =>
|
||||||
|
{
|
||||||
|
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ListFormWorkflowCriteria)), Prefix.DbSchema);
|
||||||
|
b.ConfigureByConvention();
|
||||||
|
|
||||||
|
b.Property(x => x.ListFormCode).IsRequired().HasMaxLength(64);
|
||||||
|
b.Property(x => x.WorkflowItemId).IsRequired();
|
||||||
|
b.Property(x => x.NodeId).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.Kind).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.Title).IsRequired().HasMaxLength(250);
|
||||||
|
b.Property(x => x.Column).IsRequired().HasMaxLength(100);
|
||||||
|
b.Property(x => x.Operator).IsRequired().HasMaxLength(20);
|
||||||
|
b.Property(x => x.CompareValue).HasPrecision(18, 2);
|
||||||
|
b.Property(x => x.Approver).IsRequired().HasMaxLength(250);
|
||||||
|
b.Property(x => x.InformPerson).IsRequired().HasMaxLength(250);
|
||||||
|
b.Property(x => x.NextOnStart).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.NextOnTrue).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.NextOnFalse).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.NextOnApprove).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.NextOnReject).IsRequired().HasMaxLength(50);
|
||||||
|
b.Property(x => x.PositionX).IsRequired();
|
||||||
|
b.Property(x => x.PositionY).IsRequired();
|
||||||
|
b.Property(x => x.CompareOutcomesJson).HasColumnType("text");
|
||||||
|
|
||||||
|
b.HasIndex(x => new
|
||||||
|
{
|
||||||
|
x.ListFormCode,
|
||||||
|
x.WorkflowItemId,
|
||||||
|
x.NodeId
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
builder.Entity<Note>(b =>
|
builder.Entity<Note>(b =>
|
||||||
{
|
{
|
||||||
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Note)), Prefix.DbSchema);
|
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Note)), Prefix.DbSchema);
|
||||||
|
|
@ -685,7 +740,7 @@ public class PlatformDbContext :
|
||||||
b.Property(x => x.Rate).HasPrecision(18, 6);
|
b.Property(x => x.Rate).HasPrecision(18, 6);
|
||||||
b.Property(x => x.IsActive).HasDefaultValue(true);
|
b.Property(x => x.IsActive).HasDefaultValue(true);
|
||||||
|
|
||||||
b.HasIndex(x => new {x.Id, x.Name }).IsUnique().HasFilter("[IsDeleted] = 0");
|
b.HasIndex(x => new { x.Id, x.Name }).IsUnique().HasFilter("[IsDeleted] = 0");
|
||||||
});
|
});
|
||||||
|
|
||||||
builder.Entity<CountryGroup>(b =>
|
builder.Entity<CountryGroup>(b =>
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
|
||||||
namespace Sozsoft.Platform.Migrations
|
namespace Sozsoft.Platform.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(PlatformDbContext))]
|
[DbContext(typeof(PlatformDbContext))]
|
||||||
[Migration("20260517100701_Initial")]
|
[Migration("20260522085648_Initial")]
|
||||||
partial class Initial
|
partial class Initial
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
@ -3339,7 +3339,7 @@ namespace Sozsoft.Platform.Migrations
|
||||||
b.ToTable("Sas_H_ListFormImport", (string)null);
|
b.ToTable("Sas_H_ListFormImport", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportExecute", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportLog", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
@ -3406,7 +3406,212 @@ namespace Sozsoft.Platform.Migrations
|
||||||
|
|
||||||
b.HasIndex("ImportId");
|
b.HasIndex("ImportId");
|
||||||
|
|
||||||
b.ToTable("Sas_H_ListFormImportExecute", (string)null);
|
b.ToTable("Sas_H_ListFormImportLog", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflow", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<decimal>("Amount")
|
||||||
|
.HasPrecision(18, 2)
|
||||||
|
.HasColumnType("decimal(18,2)");
|
||||||
|
|
||||||
|
b.Property<string>("AssignedApprover")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("CreationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("CreatorId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("CreatorId");
|
||||||
|
|
||||||
|
b.Property<string>("CurrentNodeId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<Guid?>("DeleterId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("DeleterId");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("DeletionTime");
|
||||||
|
|
||||||
|
b.Property<string>("HistoryJson")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("InformedPerson")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bit")
|
||||||
|
.HasDefaultValue(false)
|
||||||
|
.HasColumnName("IsDeleted");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("LastModificationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("LastModificationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("LastModifierId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("LastModifierId");
|
||||||
|
|
||||||
|
b.Property<string>("ListFormCode")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(64)
|
||||||
|
.HasColumnType("nvarchar(64)");
|
||||||
|
|
||||||
|
b.Property<int>("OrderNo")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Status")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<string>("Title")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(150)
|
||||||
|
.HasColumnType("nvarchar(150)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Sas_H_ListFormWorkflow", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflowCriteria", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<string>("Approver")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<string>("Column")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<string>("CompareOutcomesJson")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<decimal>("CompareValue")
|
||||||
|
.HasPrecision(18, 2)
|
||||||
|
.HasColumnType("decimal(18,2)");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("CreationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("CreatorId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("CreatorId");
|
||||||
|
|
||||||
|
b.Property<Guid?>("DeleterId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("DeleterId");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("DeletionTime");
|
||||||
|
|
||||||
|
b.Property<string>("InformPerson")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bit")
|
||||||
|
.HasDefaultValue(false)
|
||||||
|
.HasColumnName("IsDeleted");
|
||||||
|
|
||||||
|
b.Property<string>("Kind")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("LastModificationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("LastModificationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("LastModifierId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("LastModifierId");
|
||||||
|
|
||||||
|
b.Property<string>("ListFormCode")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(64)
|
||||||
|
.HasColumnType("nvarchar(64)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnApprove")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnFalse")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnReject")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnStart")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnTrue")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NodeId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("Operator")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(20)
|
||||||
|
.HasColumnType("nvarchar(20)");
|
||||||
|
|
||||||
|
b.Property<int>("PositionX")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("PositionY")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Title")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<Guid>("WorkflowItemId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("WorkflowItemId");
|
||||||
|
|
||||||
|
b.HasIndex("ListFormCode", "WorkflowItemId", "NodeId");
|
||||||
|
|
||||||
|
b.ToTable("Sas_H_ListFormWorkflowCriteria", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.LogEntry", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.LogEntry", b =>
|
||||||
|
|
@ -8130,7 +8335,7 @@ namespace Sozsoft.Platform.Migrations
|
||||||
.IsRequired();
|
.IsRequired();
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportExecute", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportLog", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Sozsoft.Platform.Entities.ListFormImport", null)
|
b.HasOne("Sozsoft.Platform.Entities.ListFormImport", null)
|
||||||
.WithMany()
|
.WithMany()
|
||||||
|
|
@ -8139,6 +8344,17 @@ namespace Sozsoft.Platform.Migrations
|
||||||
.IsRequired();
|
.IsRequired();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflowCriteria", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Sozsoft.Platform.Entities.ListFormWorkflow", "WorkflowItem")
|
||||||
|
.WithMany("Criteria")
|
||||||
|
.HasForeignKey("WorkflowItemId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("WorkflowItem");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.OrderItem", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.OrderItem", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Sozsoft.Platform.Entities.Order", "Order")
|
b.HasOne("Sozsoft.Platform.Entities.Order", "Order")
|
||||||
|
|
@ -8574,6 +8790,11 @@ namespace Sozsoft.Platform.Migrations
|
||||||
b.Navigation("Events");
|
b.Navigation("Events");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflow", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Criteria");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.Order", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.Order", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Items");
|
b.Navigation("Items");
|
||||||
|
|
@ -1388,6 +1388,33 @@ namespace Sozsoft.Platform.Migrations
|
||||||
table.UniqueConstraint("AK_Sas_H_ListForm_ListFormCode", x => x.ListFormCode);
|
table.UniqueConstraint("AK_Sas_H_ListForm_ListFormCode", x => x.ListFormCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Sas_H_ListFormWorkflow",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
ListFormCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
|
||||||
|
OrderNo = table.Column<int>(type: "int", nullable: false),
|
||||||
|
Title = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
|
||||||
|
Status = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
|
||||||
|
Amount = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false),
|
||||||
|
CurrentNodeId = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
AssignedApprover = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
|
||||||
|
InformedPerson = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
|
||||||
|
HistoryJson = table.Column<string>(type: "text", nullable: true),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
|
||||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Sas_H_ListFormWorkflow", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "Sas_H_LogEntry",
|
name: "Sas_H_LogEntry",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
|
|
@ -2634,6 +2661,48 @@ namespace Sozsoft.Platform.Migrations
|
||||||
onDelete: ReferentialAction.Cascade);
|
onDelete: ReferentialAction.Cascade);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Sas_H_ListFormWorkflowCriteria",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
ListFormCode = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
|
||||||
|
WorkflowItemId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
NodeId = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
Kind = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
Title = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
|
||||||
|
Column = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
|
||||||
|
Operator = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: false),
|
||||||
|
CompareValue = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false),
|
||||||
|
Approver = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
|
||||||
|
InformPerson = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
|
||||||
|
NextOnStart = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
NextOnTrue = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
NextOnFalse = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
NextOnApprove = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
NextOnReject = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
PositionX = table.Column<int>(type: "int", nullable: false),
|
||||||
|
PositionY = table.Column<int>(type: "int", nullable: false),
|
||||||
|
CompareOutcomesJson = table.Column<string>(type: "text", nullable: true),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
|
||||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Sas_H_ListFormWorkflowCriteria", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Sas_H_ListFormWorkflowCriteria_Sas_H_ListFormWorkflow_WorkflowItemId",
|
||||||
|
column: x => x.WorkflowItemId,
|
||||||
|
principalTable: "Sas_H_ListFormWorkflow",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "Sas_H_NotificationRule",
|
name: "Sas_H_NotificationRule",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
|
|
@ -3100,7 +3169,7 @@ namespace Sozsoft.Platform.Migrations
|
||||||
});
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "Sas_H_ListFormImportExecute",
|
name: "Sas_H_ListFormImportLog",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
{
|
{
|
||||||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
|
@ -3122,9 +3191,9 @@ namespace Sozsoft.Platform.Migrations
|
||||||
},
|
},
|
||||||
constraints: table =>
|
constraints: table =>
|
||||||
{
|
{
|
||||||
table.PrimaryKey("PK_Sas_H_ListFormImportExecute", x => x.Id);
|
table.PrimaryKey("PK_Sas_H_ListFormImportLog", x => x.Id);
|
||||||
table.ForeignKey(
|
table.ForeignKey(
|
||||||
name: "FK_Sas_H_ListFormImportExecute_Sas_H_ListFormImport_ImportId",
|
name: "FK_Sas_H_ListFormImportLog_Sas_H_ListFormImport_ImportId",
|
||||||
column: x => x.ImportId,
|
column: x => x.ImportId,
|
||||||
principalTable: "Sas_H_ListFormImport",
|
principalTable: "Sas_H_ListFormImport",
|
||||||
principalColumn: "Id",
|
principalColumn: "Id",
|
||||||
|
|
@ -3860,10 +3929,20 @@ namespace Sozsoft.Platform.Migrations
|
||||||
column: "ListFormCode");
|
column: "ListFormCode");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_Sas_H_ListFormImportExecute_ImportId",
|
name: "IX_Sas_H_ListFormImportLog_ImportId",
|
||||||
table: "Sas_H_ListFormImportExecute",
|
table: "Sas_H_ListFormImportLog",
|
||||||
column: "ImportId");
|
column: "ImportId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Sas_H_ListFormWorkflowCriteria_ListFormCode_WorkflowItemId_NodeId",
|
||||||
|
table: "Sas_H_ListFormWorkflowCriteria",
|
||||||
|
columns: new[] { "ListFormCode", "WorkflowItemId", "NodeId" });
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Sas_H_ListFormWorkflowCriteria_WorkflowItemId",
|
||||||
|
table: "Sas_H_ListFormWorkflowCriteria",
|
||||||
|
column: "WorkflowItemId");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_Sas_H_Menu_Code",
|
name: "IX_Sas_H_Menu_Code",
|
||||||
table: "Sas_H_Menu",
|
table: "Sas_H_Menu",
|
||||||
|
|
@ -4211,7 +4290,10 @@ namespace Sozsoft.Platform.Migrations
|
||||||
name: "Sas_H_ListFormField");
|
name: "Sas_H_ListFormField");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Sas_H_ListFormImportExecute");
|
name: "Sas_H_ListFormImportLog");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Sas_H_ListFormWorkflowCriteria");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Sas_H_LogEntry");
|
name: "Sas_H_LogEntry");
|
||||||
|
|
@ -4318,6 +4400,9 @@ namespace Sozsoft.Platform.Migrations
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Sas_H_ListFormImport");
|
name: "Sas_H_ListFormImport");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Sas_H_ListFormWorkflow");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Sas_H_NotificationRule");
|
name: "Sas_H_NotificationRule");
|
||||||
|
|
||||||
|
|
@ -3336,7 +3336,7 @@ namespace Sozsoft.Platform.Migrations
|
||||||
b.ToTable("Sas_H_ListFormImport", (string)null);
|
b.ToTable("Sas_H_ListFormImport", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportExecute", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportLog", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
@ -3403,7 +3403,212 @@ namespace Sozsoft.Platform.Migrations
|
||||||
|
|
||||||
b.HasIndex("ImportId");
|
b.HasIndex("ImportId");
|
||||||
|
|
||||||
b.ToTable("Sas_H_ListFormImportExecute", (string)null);
|
b.ToTable("Sas_H_ListFormImportLog", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflow", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<decimal>("Amount")
|
||||||
|
.HasPrecision(18, 2)
|
||||||
|
.HasColumnType("decimal(18,2)");
|
||||||
|
|
||||||
|
b.Property<string>("AssignedApprover")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("CreationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("CreatorId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("CreatorId");
|
||||||
|
|
||||||
|
b.Property<string>("CurrentNodeId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<Guid?>("DeleterId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("DeleterId");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("DeletionTime");
|
||||||
|
|
||||||
|
b.Property<string>("HistoryJson")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<string>("InformedPerson")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bit")
|
||||||
|
.HasDefaultValue(false)
|
||||||
|
.HasColumnName("IsDeleted");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("LastModificationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("LastModificationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("LastModifierId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("LastModifierId");
|
||||||
|
|
||||||
|
b.Property<string>("ListFormCode")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(64)
|
||||||
|
.HasColumnType("nvarchar(64)");
|
||||||
|
|
||||||
|
b.Property<int>("OrderNo")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Status")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<string>("Title")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(150)
|
||||||
|
.HasColumnType("nvarchar(150)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Sas_H_ListFormWorkflow", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflowCriteria", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<string>("Approver")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<string>("Column")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(100)
|
||||||
|
.HasColumnType("nvarchar(100)");
|
||||||
|
|
||||||
|
b.Property<string>("CompareOutcomesJson")
|
||||||
|
.HasColumnType("text");
|
||||||
|
|
||||||
|
b.Property<decimal>("CompareValue")
|
||||||
|
.HasPrecision(18, 2)
|
||||||
|
.HasColumnType("decimal(18,2)");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("CreationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("CreatorId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("CreatorId");
|
||||||
|
|
||||||
|
b.Property<Guid?>("DeleterId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("DeleterId");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DeletionTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("DeletionTime");
|
||||||
|
|
||||||
|
b.Property<string>("InformPerson")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("bit")
|
||||||
|
.HasDefaultValue(false)
|
||||||
|
.HasColumnName("IsDeleted");
|
||||||
|
|
||||||
|
b.Property<string>("Kind")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("LastModificationTime")
|
||||||
|
.HasColumnType("datetime2")
|
||||||
|
.HasColumnName("LastModificationTime");
|
||||||
|
|
||||||
|
b.Property<Guid?>("LastModifierId")
|
||||||
|
.HasColumnType("uniqueidentifier")
|
||||||
|
.HasColumnName("LastModifierId");
|
||||||
|
|
||||||
|
b.Property<string>("ListFormCode")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(64)
|
||||||
|
.HasColumnType("nvarchar(64)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnApprove")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnFalse")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnReject")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnStart")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NextOnTrue")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("NodeId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(50)
|
||||||
|
.HasColumnType("nvarchar(50)");
|
||||||
|
|
||||||
|
b.Property<string>("Operator")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(20)
|
||||||
|
.HasColumnType("nvarchar(20)");
|
||||||
|
|
||||||
|
b.Property<int>("PositionX")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("PositionY")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<string>("Title")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(250)
|
||||||
|
.HasColumnType("nvarchar(250)");
|
||||||
|
|
||||||
|
b.Property<Guid>("WorkflowItemId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("WorkflowItemId");
|
||||||
|
|
||||||
|
b.HasIndex("ListFormCode", "WorkflowItemId", "NodeId");
|
||||||
|
|
||||||
|
b.ToTable("Sas_H_ListFormWorkflowCriteria", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.LogEntry", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.LogEntry", b =>
|
||||||
|
|
@ -8127,7 +8332,7 @@ namespace Sozsoft.Platform.Migrations
|
||||||
.IsRequired();
|
.IsRequired();
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportExecute", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormImportLog", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Sozsoft.Platform.Entities.ListFormImport", null)
|
b.HasOne("Sozsoft.Platform.Entities.ListFormImport", null)
|
||||||
.WithMany()
|
.WithMany()
|
||||||
|
|
@ -8136,6 +8341,17 @@ namespace Sozsoft.Platform.Migrations
|
||||||
.IsRequired();
|
.IsRequired();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflowCriteria", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("Sozsoft.Platform.Entities.ListFormWorkflow", "WorkflowItem")
|
||||||
|
.WithMany("Criteria")
|
||||||
|
.HasForeignKey("WorkflowItemId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("WorkflowItem");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.OrderItem", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.OrderItem", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Sozsoft.Platform.Entities.Order", "Order")
|
b.HasOne("Sozsoft.Platform.Entities.Order", "Order")
|
||||||
|
|
@ -8571,6 +8787,11 @@ namespace Sozsoft.Platform.Migrations
|
||||||
b.Navigation("Events");
|
b.Navigation("Events");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Sozsoft.Platform.Entities.ListFormWorkflow", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Criteria");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Sozsoft.Platform.Entities.Order", b =>
|
modelBuilder.Entity("Sozsoft.Platform.Entities.Order", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Items");
|
b.Navigation("Items");
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import {
|
||||||
import { FileUploadArea } from './FileUploadArea'
|
import { FileUploadArea } from './FileUploadArea'
|
||||||
import { ImportPreview } from './ImportPreview'
|
import { ImportPreview } from './ImportPreview'
|
||||||
import { ImportProgress } from './ImportProgress'
|
import { ImportProgress } from './ImportProgress'
|
||||||
import { ListFormImportDto, ListFormImportExecuteDto } from '@/proxy/imports/models'
|
import { ListFormImportDto, ListFormImportLogDto } from '@/proxy/imports/models'
|
||||||
import { ImportService } from '@/services/import.service'
|
import { ImportService } from '@/services/import.service'
|
||||||
import { GridDto } from '@/proxy/form/models'
|
import { GridDto } from '@/proxy/form/models'
|
||||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||||
|
|
@ -41,7 +41,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
|
||||||
const [generating, setGenerating] = useState(false)
|
const [generating, setGenerating] = useState(false)
|
||||||
const [expandedSessions, setExpandedSessions] = useState<Set<string>>(new Set())
|
const [expandedSessions, setExpandedSessions] = useState<Set<string>>(new Set())
|
||||||
const [sessionExecutes, setSessionExecutes] = useState<
|
const [sessionExecutes, setSessionExecutes] = useState<
|
||||||
Record<string, ListFormImportExecuteDto[]>
|
Record<string, ListFormImportLogDto[]>
|
||||||
>({})
|
>({})
|
||||||
const [loadingExecutes, setLoadingExecutes] = useState<Set<string>>(new Set())
|
const [loadingExecutes, setLoadingExecutes] = useState<Set<string>>(new Set())
|
||||||
|
|
||||||
|
|
@ -77,7 +77,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
|
||||||
// Her zaman fresh data çek - cache'e güvenme
|
// Her zaman fresh data çek - cache'e güvenme
|
||||||
setLoadingExecutes((prev) => new Set([...prev, sessionId]))
|
setLoadingExecutes((prev) => new Set([...prev, sessionId]))
|
||||||
try {
|
try {
|
||||||
const executes = await importService.getListFormImportExecutes(sessionId)
|
const executes = await importService.getListFormImportLogs(sessionId)
|
||||||
setSessionExecutes((prev) => ({
|
setSessionExecutes((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
[sessionId]: executes,
|
[sessionId]: executes,
|
||||||
|
|
@ -153,7 +153,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleImportExecute = async (
|
const handleImportLog = async (
|
||||||
sessionId: string,
|
sessionId: string,
|
||||||
listFormCode: string,
|
listFormCode: string,
|
||||||
selectedRows?: number[],
|
selectedRows?: number[],
|
||||||
|
|
@ -497,7 +497,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
|
||||||
<ImportPreview
|
<ImportPreview
|
||||||
session={currentSession}
|
session={currentSession}
|
||||||
gridDto={gridDto}
|
gridDto={gridDto}
|
||||||
onExecute={handleImportExecute}
|
onExecute={handleImportLog}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
importService={importService}
|
importService={importService}
|
||||||
onPreviewLoaded={loadImportHistory}
|
onPreviewLoaded={loadImportHistory}
|
||||||
|
|
@ -589,7 +589,7 @@ export const ImportDashboard: React.FC<ImportDashboardProps> = ({ gridDto }) =>
|
||||||
if (sessionExecutes[session.id]) {
|
if (sessionExecutes[session.id]) {
|
||||||
setLoadingExecutes((prev) => new Set([...prev, session.id]))
|
setLoadingExecutes((prev) => new Set([...prev, session.id]))
|
||||||
try {
|
try {
|
||||||
const executes = await importService.getListFormImportExecutes(
|
const executes = await importService.getListFormImportLogs(
|
||||||
session.id,
|
session.id,
|
||||||
)
|
)
|
||||||
setSessionExecutes((prev) => ({
|
setSessionExecutes((prev) => ({
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export interface ListFormImportDto {
|
||||||
creationTime: string
|
creationTime: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ListFormImportExecuteDto {
|
export interface ListFormImportLogDto {
|
||||||
id: string
|
id: string
|
||||||
importId: string
|
importId: string
|
||||||
blobName: string
|
blobName: string
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { GridDto } from '@/proxy/form/models'
|
||||||
import {
|
import {
|
||||||
ImportPreviewData,
|
ImportPreviewData,
|
||||||
ListFormImportDto,
|
ListFormImportDto,
|
||||||
ListFormImportExecuteDto,
|
ListFormImportLogDto,
|
||||||
} from '@/proxy/imports/models'
|
} from '@/proxy/imports/models'
|
||||||
import apiService from './api.service'
|
import apiService from './api.service'
|
||||||
|
|
||||||
|
|
@ -196,7 +196,7 @@ ${headers
|
||||||
sessionId: string,
|
sessionId: string,
|
||||||
listFormCode: string,
|
listFormCode: string,
|
||||||
selectedRows?: number[],
|
selectedRows?: number[],
|
||||||
): Promise<ListFormImportExecuteDto> {
|
): Promise<ListFormImportLogDto> {
|
||||||
// Get the uploaded file data
|
// Get the uploaded file data
|
||||||
const uploadedFile = this._uploadedFiles.get(sessionId)
|
const uploadedFile = this._uploadedFiles.get(sessionId)
|
||||||
if (!uploadedFile) {
|
if (!uploadedFile) {
|
||||||
|
|
@ -217,7 +217,7 @@ ${headers
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call backend API to execute import with selected rows data
|
// Call backend API to execute import with selected rows data
|
||||||
const response = await apiService.fetchData<ListFormImportExecuteDto>({
|
const response = await apiService.fetchData<ListFormImportLogDto>({
|
||||||
url: `/api/app/list-form-import/execute`,
|
url: `/api/app/list-form-import/execute`,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -249,8 +249,8 @@ ${headers
|
||||||
return response.data
|
return response.data
|
||||||
}
|
}
|
||||||
|
|
||||||
async getListFormImportExecutes(sessionId: string): Promise<ListFormImportExecuteDto[]> {
|
async getListFormImportLogs(sessionId: string): Promise<ListFormImportLogDto[]> {
|
||||||
const response = await apiService.fetchData<ListFormImportExecuteDto[]>({
|
const response = await apiService.fetchData<ListFormImportLogDto[]>({
|
||||||
url: `/api/app/list-form-import/executes/${sessionId}`,
|
url: `/api/app/list-form-import/executes/${sessionId}`,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue