From 1d2f68b64559eb09de8d3aaf425d85229a25a725 Mon Sep 17 00:00:00 2001 From: Jimmy <584481786@qq.com> Date: Tue, 29 Dec 2020 00:21:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E6=96=87=E7=AE=A1=E7=90=86-=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E5=BA=93=E7=AE=A1=E7=90=86=EF=BC=8C=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FigureNumber/Dto/FigureNumberDto.cs | 54 + .../FigureNumber/FigureNumberAppService.cs | 27 + .../FigureNumber/IFigureNumberAppService.cs | 18 + .../MaterialNumber/Dto/MaterialNumberDto.cs | 54 + .../ProductNumber/Dto/ProductNumberDto.cs | 55 + .../UserInfo/IUserInfoAppService.cs | 4 +- .../Graphic/FigureNumber/FigureNumber.cs | 54 + .../Graphic/MaterialNumber/MaterialNumber.cs | 54 + .../Graphic/ProductNumber/ProductNumber.cs | 57 + .../ProManagerDbContext.cs | 7 + ...20201228161935_Graphic_Encoder.Designer.cs | 2059 +++++++++++++++++ .../20201228161935_Graphic_Encoder.cs | 86 + .../ProManagerDbContextModelSnapshot.cs | 139 ++ .../appsettings.json | 2 +- ...DJ 0200003-2020 企业产品图样编号规则(6).doc | Bin 0 -> 231424 bytes 需求/~$表单样式说明.docx | Bin 0 -> 162 bytes 16 files changed, 2667 insertions(+), 3 deletions(-) create mode 100644 Code/src/MineTec.ProManager.Application/FigureNumber/Dto/FigureNumberDto.cs create mode 100644 Code/src/MineTec.ProManager.Application/FigureNumber/FigureNumberAppService.cs create mode 100644 Code/src/MineTec.ProManager.Application/FigureNumber/IFigureNumberAppService.cs create mode 100644 Code/src/MineTec.ProManager.Application/MaterialNumber/Dto/MaterialNumberDto.cs create mode 100644 Code/src/MineTec.ProManager.Application/ProductNumber/Dto/ProductNumberDto.cs create mode 100644 Code/src/MineTec.ProManager.Core/Entitys/Graphic/FigureNumber/FigureNumber.cs create mode 100644 Code/src/MineTec.ProManager.Core/Entitys/Graphic/MaterialNumber/MaterialNumber.cs create mode 100644 Code/src/MineTec.ProManager.Core/Entitys/Graphic/ProductNumber/ProductNumber.cs create mode 100644 Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.Designer.cs create mode 100644 Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.cs create mode 100644 需求/QDJ 0200003-2020 企业产品图样编号规则(6).doc create mode 100644 需求/~$表单样式说明.docx diff --git a/Code/src/MineTec.ProManager.Application/FigureNumber/Dto/FigureNumberDto.cs b/Code/src/MineTec.ProManager.Application/FigureNumber/Dto/FigureNumberDto.cs new file mode 100644 index 0000000..5da064a --- /dev/null +++ b/Code/src/MineTec.ProManager.Application/FigureNumber/Dto/FigureNumberDto.cs @@ -0,0 +1,54 @@ +using Abp.Application.Services.Dto; +using System; +using System.ComponentModel.DataAnnotations; + +namespace MineTec.ProManager.FigureNumber.Dto +{ + [System.ComponentModel.DataAnnotations.Schema.Table("FigureNumber")] + public class FigureNumberDto : EntityDto + { + /// + /// 创建日期 + /// + public DateTime? CreateTime { get; set; } + /// + /// 创建人ID + /// + [StringLength(50)] + public string? CreateUserID { get; set; } + /// + /// 创建人姓名 + /// + [StringLength(50)] + public string? CreateUserName { get; set; } + /// + /// 修改日期 + /// + public DateTime? UpdateTime { get; set; } + /// + /// 修改人ID + /// + [StringLength(50)] + public string? UpdateUserID { get; set; } + /// + /// 修改人名称 + /// + [StringLength(50)] + public string? UpdateUserName { get; set; } + /// + /// 图号编码 + /// + public int FigureNum { get; set; } + /// + /// 备注 + /// + [StringLength(300)] + public string? Remark { get; set; } + /// + ///是否删除:0 否, 1 是 + /// + public int IsDelete { get; set; } + + public DateTime CreationTime { get; set; } + } +} diff --git a/Code/src/MineTec.ProManager.Application/FigureNumber/FigureNumberAppService.cs b/Code/src/MineTec.ProManager.Application/FigureNumber/FigureNumberAppService.cs new file mode 100644 index 0000000..97aa990 --- /dev/null +++ b/Code/src/MineTec.ProManager.Application/FigureNumber/FigureNumberAppService.cs @@ -0,0 +1,27 @@ +using Abp.Application.Services; +using Abp.Application.Services.Dto; +using Abp.Domain.Repositories; +using MineTec.ProManager.FigureNumber.Dto; +using System; +using System.Threading.Tasks; + +namespace MineTec.ProManager.FigureNumber +{ + public class FigureNumberAppService : AsyncCrudAppService, IFigureNumberAppService + + { + public FigureNumberAppService(IRepository repository) + : base(repository) + { + + } + + public override Task CreateAsync(FigureNumberDto input) + { + return base.CreateAsync(input); + } + + + } +} \ No newline at end of file diff --git a/Code/src/MineTec.ProManager.Application/FigureNumber/IFigureNumberAppService.cs b/Code/src/MineTec.ProManager.Application/FigureNumber/IFigureNumberAppService.cs new file mode 100644 index 0000000..a1dc733 --- /dev/null +++ b/Code/src/MineTec.ProManager.Application/FigureNumber/IFigureNumberAppService.cs @@ -0,0 +1,18 @@ +using Abp.Application.Services; +using Abp.Application.Services.Dto; +using MineTec.ProManager.FigureNumber.Dto; +using System; + +namespace MineTec.ProManager.FigureNumber +{ + public interface IFigureNumberAppService : IAsyncCrudAppService //用于更新图号编码信息 + { + + + } +} diff --git a/Code/src/MineTec.ProManager.Application/MaterialNumber/Dto/MaterialNumberDto.cs b/Code/src/MineTec.ProManager.Application/MaterialNumber/Dto/MaterialNumberDto.cs new file mode 100644 index 0000000..d47e853 --- /dev/null +++ b/Code/src/MineTec.ProManager.Application/MaterialNumber/Dto/MaterialNumberDto.cs @@ -0,0 +1,54 @@ +using Abp.Application.Services.Dto; +using System; +using System.ComponentModel.DataAnnotations; + +namespace MineTec.ProManager.MaterialNumber.Dto +{ + [System.ComponentModel.DataAnnotations.Schema.Table("MaterialNumber")] + public class MaterialNumberDto : EntityDto + { + /// + /// 创建日期 + /// + public DateTime? CreateTime { get; set; } + /// + /// 创建人ID + /// + [StringLength(50)] + public string? CreateUserID { get; set; } + /// + /// 创建人姓名 + /// + [StringLength(50)] + public string? CreateUserName { get; set; } + /// + /// 修改日期 + /// + public DateTime? UpdateTime { get; set; } + /// + /// 修改人ID + /// + [StringLength(50)] + public string? UpdateUserID { get; set; } + /// + /// 修改人名称 + /// + [StringLength(50)] + public string? UpdateUserName { get; set; } + /// + /// 物料编码 + /// + public int MaterialNum { get; set; } + /// + /// 备注 + /// + [StringLength(300)] + public string? Remark { get; set; } + /// + ///是否删除:0 否, 1 是 + /// + public int IsDelete { get; set; } + + public DateTime CreationTime { get; set; } + } +} diff --git a/Code/src/MineTec.ProManager.Application/ProductNumber/Dto/ProductNumberDto.cs b/Code/src/MineTec.ProManager.Application/ProductNumber/Dto/ProductNumberDto.cs new file mode 100644 index 0000000..28098f8 --- /dev/null +++ b/Code/src/MineTec.ProManager.Application/ProductNumber/Dto/ProductNumberDto.cs @@ -0,0 +1,55 @@ +using Abp.Application.Services.Dto; +using System; +using System.ComponentModel.DataAnnotations; + +namespace MineTec.ProManager.ProductNumber.Dto +{ + [System.ComponentModel.DataAnnotations.Schema.Table("ProductNumber")] + public class ProductNumberDto : EntityDto + { + /// + /// 创建日期 + /// + public DateTime? CreateTime { get; set; } + /// + /// 创建人ID + /// + [StringLength(50)] + public string? CreateUserID { get; set; } + /// + /// 创建人姓名 + /// + [StringLength(50)] + public string? CreateUserName { get; set; } + /// + /// 修改日期 + /// + public DateTime? UpdateTime { get; set; } + /// + /// 修改人ID + /// + [StringLength(50)] + public string? UpdateUserID { get; set; } + /// + /// 修改人名称 + /// + [StringLength(50)] + public string? UpdateUserName { get; set; } + /// + /// 产品编码 + /// + [StringLength(50)] + public string ProductNum { get; set; } + /// + /// 备注 + /// + [StringLength(300)] + public string? Remark { get; set; } + /// + ///是否删除:0 否, 1 是 + /// + public int IsDelete { get; set; } + + public DateTime CreationTime { get; set; } + } +} diff --git a/Code/src/MineTec.ProManager.Application/UserInfo/IUserInfoAppService.cs b/Code/src/MineTec.ProManager.Application/UserInfo/IUserInfoAppService.cs index a7e3ab1..8bf340c 100644 --- a/Code/src/MineTec.ProManager.Application/UserInfo/IUserInfoAppService.cs +++ b/Code/src/MineTec.ProManager.Application/UserInfo/IUserInfoAppService.cs @@ -7,12 +7,12 @@ namespace MineTec.ProManager.UserInfo { public interface IUserInfoAppService : IAsyncCrudAppService //用于更新用户信息 { - + } } diff --git a/Code/src/MineTec.ProManager.Core/Entitys/Graphic/FigureNumber/FigureNumber.cs b/Code/src/MineTec.ProManager.Core/Entitys/Graphic/FigureNumber/FigureNumber.cs new file mode 100644 index 0000000..f539527 --- /dev/null +++ b/Code/src/MineTec.ProManager.Core/Entitys/Graphic/FigureNumber/FigureNumber.cs @@ -0,0 +1,54 @@ +using Abp.Domain.Entities; +using Abp.Domain.Entities.Auditing; +using System; +using System.ComponentModel.DataAnnotations; + +namespace MineTec.ProManager.Entitys.Graphic.FigureNumber +{ + public class FigureNumber: Entity, IHasCreationTime + { + /// + /// 创建日期 + /// + public DateTime? CreateTime { get; set; } + /// + /// 创建人ID + /// + [StringLength(50)] + public string? CreateUserID { get; set; } + /// + /// 创建人姓名 + /// + [StringLength(50)] + public string? CreateUserName { get; set; } + /// + /// 修改日期 + /// + public DateTime? UpdateTime { get; set; } + /// + /// 修改人ID + /// + [StringLength(50)] + public string? UpdateUserID { get; set; } + /// + /// 修改人名称 + /// + [StringLength(50)] + public string? UpdateUserName { get; set; } + /// + /// 图号编码 + /// + public int FigureNum { get; set; } + /// + /// 备注 + /// + [StringLength(300)] + public string? Remark { get; set; } + /// + ///是否删除:0 否, 1 是 + /// + public int IsDelete { get; set; } + + public DateTime CreationTime { get; set; } + } +} diff --git a/Code/src/MineTec.ProManager.Core/Entitys/Graphic/MaterialNumber/MaterialNumber.cs b/Code/src/MineTec.ProManager.Core/Entitys/Graphic/MaterialNumber/MaterialNumber.cs new file mode 100644 index 0000000..13efeb1 --- /dev/null +++ b/Code/src/MineTec.ProManager.Core/Entitys/Graphic/MaterialNumber/MaterialNumber.cs @@ -0,0 +1,54 @@ +using Abp.Domain.Entities; +using Abp.Domain.Entities.Auditing; +using System; +using System.ComponentModel.DataAnnotations; + +namespace MineTec.ProManager.Entitys.Graphic.MaterialNumber +{ + public class MaterialNumber : Entity, IHasCreationTime + { + /// + /// 创建日期 + /// + public DateTime? CreateTime { get; set; } + /// + /// 创建人ID + /// + [StringLength(50)] + public string? CreateUserID { get; set; } + /// + /// 创建人姓名 + /// + [StringLength(50)] + public string? CreateUserName { get; set; } + /// + /// 修改日期 + /// + public DateTime? UpdateTime { get; set; } + /// + /// 修改人ID + /// + [StringLength(50)] + public string? UpdateUserID { get; set; } + /// + /// 修改人名称 + /// + [StringLength(50)] + public string? UpdateUserName { get; set; } + /// + /// 物料编码 + /// + public int MaterialNum { get; set; } + /// + /// 备注 + /// + [StringLength(300)] + public string? Remark { get; set; } + /// + ///是否删除:0 否, 1 是 + /// + public int IsDelete { get; set; } + + public DateTime CreationTime { get; set; } + } +} diff --git a/Code/src/MineTec.ProManager.Core/Entitys/Graphic/ProductNumber/ProductNumber.cs b/Code/src/MineTec.ProManager.Core/Entitys/Graphic/ProductNumber/ProductNumber.cs new file mode 100644 index 0000000..91fdff7 --- /dev/null +++ b/Code/src/MineTec.ProManager.Core/Entitys/Graphic/ProductNumber/ProductNumber.cs @@ -0,0 +1,57 @@ +using Abp.Domain.Entities; +using Abp.Domain.Entities.Auditing; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace MineTec.ProManager.Entitys.Graphic.ProductNumber +{ + public class ProductNumber : Entity, IHasCreationTime + { + /// + /// 创建日期 + /// + public DateTime? CreateTime { get; set; } + /// + /// 创建人ID + /// + [StringLength(50)] + public string? CreateUserID { get; set; } + /// + /// 创建人姓名 + /// + [StringLength(50)] + public string? CreateUserName { get; set; } + /// + /// 修改日期 + /// + public DateTime? UpdateTime { get; set; } + /// + /// 修改人ID + /// + [StringLength(50)] + public string? UpdateUserID { get; set; } + /// + /// 修改人名称 + /// + [StringLength(50)] + public string? UpdateUserName { get; set; } + /// + /// 产品编码 + /// + [StringLength(50)] + public string ProductNum { get; set; } + /// + /// 备注 + /// + [StringLength(300)] + public string? Remark { get; set; } + /// + ///是否删除:0 否, 1 是 + /// + public int IsDelete { get; set; } + + public DateTime CreationTime { get; set; } + } +} diff --git a/Code/src/MineTec.ProManager.EntityFrameworkCore/EntityFrameworkCore/ProManagerDbContext.cs b/Code/src/MineTec.ProManager.EntityFrameworkCore/EntityFrameworkCore/ProManagerDbContext.cs index 813319c..46cc04b 100644 --- a/Code/src/MineTec.ProManager.EntityFrameworkCore/EntityFrameworkCore/ProManagerDbContext.cs +++ b/Code/src/MineTec.ProManager.EntityFrameworkCore/EntityFrameworkCore/ProManagerDbContext.cs @@ -17,5 +17,12 @@ namespace MineTec.ProManager.EntityFrameworkCore } public DbSet UserInfo { get; set; } + + public DbSet FigureNumber { get; set; } + + public DbSet ProductNumber { get; set; } + + public DbSet MaterialNumber { get; set; } + } } diff --git a/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.Designer.cs b/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.Designer.cs new file mode 100644 index 0000000..725408c --- /dev/null +++ b/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.Designer.cs @@ -0,0 +1,2059 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using MineTec.ProManager.EntityFrameworkCore; + +namespace MineTec.ProManager.Migrations +{ + [DbContext(typeof(ProManagerDbContext))] + [Migration("20201228161935_Graphic_Encoder")] + partial class Graphic_Encoder + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "3.1.5") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("Abp.Application.Editions.Edition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(32)") + .HasMaxLength(32); + + b.HasKey("Id"); + + b.ToTable("AbpEditions"); + }); + + modelBuilder.Entity("Abp.Application.Features.FeatureSetting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(2000)") + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator("Discriminator").HasValue("FeatureSetting"); + }); + + modelBuilder.Entity("Abp.Auditing.AuditLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("BrowserInfo") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("ClientIpAddress") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ClientName") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CustomData") + .HasColumnType("nvarchar(2000)") + .HasMaxLength(2000); + + b.Property("Exception") + .HasColumnType("nvarchar(2000)") + .HasMaxLength(2000); + + b.Property("ExecutionDuration") + .HasColumnType("int"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("int"); + + b.Property("ImpersonatorUserId") + .HasColumnType("bigint"); + + b.Property("MethodName") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("Parameters") + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.Property("ReturnValue") + .HasColumnType("nvarchar(max)"); + + b.Property("ServiceName") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "ExecutionDuration"); + + b.HasIndex("TenantId", "ExecutionTime"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpAuditLogs"); + }); + + modelBuilder.Entity("Abp.Authorization.PermissionSetting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsGranted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpPermissions"); + + b.HasDiscriminator("Discriminator").HasValue("PermissionSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClaimType") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("TenantId", "ClaimType"); + + b.ToTable("AbpRoleClaims"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("EmailAddress") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("UserLinkId") + .HasColumnType("bigint"); + + b.Property("UserName") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("EmailAddress"); + + b.HasIndex("UserName"); + + b.HasIndex("TenantId", "EmailAddress"); + + b.HasIndex("TenantId", "UserId"); + + b.HasIndex("TenantId", "UserName"); + + b.ToTable("AbpUserAccounts"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClaimType") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "ClaimType"); + + b.ToTable("AbpUserClaims"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserLogin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("LoginProvider") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("ProviderKey") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "UserId"); + + b.HasIndex("TenantId", "LoginProvider", "ProviderKey"); + + b.ToTable("AbpUserLogins"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserLoginAttempt", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("BrowserInfo") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("ClientIpAddress") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ClientName") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Result") + .HasColumnType("tinyint"); + + b.Property("TenancyName") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("UserNameOrEmailAddress") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("UserId", "TenantId"); + + b.HasIndex("TenancyName", "UserNameOrEmailAddress", "Result"); + + b.ToTable("AbpUserLoginAttempts"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserOrganizationUnit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("OrganizationUnitId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "OrganizationUnitId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpUserOrganizationUnits"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "RoleId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpUserRoles"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ExpireDate") + .HasColumnType("datetime2"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Name") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("Value") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpUserTokens"); + }); + + modelBuilder.Entity("Abp.BackgroundJobs.BackgroundJobInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("IsAbandoned") + .HasColumnType("bit"); + + b.Property("JobArgs") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasMaxLength(1048576); + + b.Property("JobType") + .IsRequired() + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("LastTryTime") + .HasColumnType("datetime2"); + + b.Property("NextTryTime") + .HasColumnType("datetime2"); + + b.Property("Priority") + .HasColumnType("tinyint"); + + b.Property("TryCount") + .HasColumnType("smallint"); + + b.HasKey("Id"); + + b.HasIndex("IsAbandoned", "NextTryTime"); + + b.ToTable("AbpBackgroundJobs"); + }); + + modelBuilder.Entity("Abp.Configuration.Setting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "Name", "UserId") + .IsUnique(); + + b.ToTable("AbpSettings"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("DynamicPropertyId") + .HasColumnType("int"); + + b.Property("EntityFullName") + .HasColumnType("nvarchar(450)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DynamicPropertyId"); + + b.HasIndex("EntityFullName", "DynamicPropertyId", "TenantId") + .IsUnique() + .HasFilter("[EntityFullName] IS NOT NULL AND [TenantId] IS NOT NULL"); + + b.ToTable("AbpDynamicEntityProperties"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityPropertyValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("DynamicEntityPropertyId") + .HasColumnType("int"); + + b.Property("EntityId") + .HasColumnType("nvarchar(max)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("DynamicEntityPropertyId"); + + b.ToTable("AbpDynamicEntityPropertyValues"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("InputType") + .HasColumnType("nvarchar(max)"); + + b.Property("Permission") + .HasColumnType("nvarchar(max)"); + + b.Property("PropertyName") + .HasColumnType("nvarchar(450)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PropertyName", "TenantId") + .IsUnique() + .HasFilter("[PropertyName] IS NOT NULL AND [TenantId] IS NOT NULL"); + + b.ToTable("AbpDynamicProperties"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicPropertyValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("DynamicPropertyId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("DynamicPropertyId"); + + b.ToTable("AbpDynamicPropertyValues"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ChangeTime") + .HasColumnType("datetime2"); + + b.Property("ChangeType") + .HasColumnType("tinyint"); + + b.Property("EntityChangeSetId") + .HasColumnType("bigint"); + + b.Property("EntityId") + .HasColumnType("nvarchar(48)") + .HasMaxLength(48); + + b.Property("EntityTypeFullName") + .HasColumnType("nvarchar(192)") + .HasMaxLength(192); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeSetId"); + + b.HasIndex("EntityTypeFullName", "EntityId"); + + b.ToTable("AbpEntityChanges"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChangeSet", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("BrowserInfo") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("ClientIpAddress") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ClientName") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("ExtensionData") + .HasColumnType("nvarchar(max)"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("int"); + + b.Property("ImpersonatorUserId") + .HasColumnType("bigint"); + + b.Property("Reason") + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "CreationTime"); + + b.HasIndex("TenantId", "Reason"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpEntityChangeSets"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityPropertyChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("EntityChangeId") + .HasColumnType("bigint"); + + b.Property("NewValue") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("OriginalValue") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("PropertyName") + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("PropertyTypeFullName") + .HasColumnType("nvarchar(192)") + .HasMaxLength(192); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeId"); + + b.ToTable("AbpEntityPropertyChanges"); + }); + + modelBuilder.Entity("Abp.Localization.ApplicationLanguage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("Icon") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDisabled") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpLanguages"); + }); + + modelBuilder.Entity("Abp.Localization.ApplicationLanguageText", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Key") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("LanguageName") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Source") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasMaxLength(67108864); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Source", "LanguageName", "Key"); + + b.ToTable("AbpLanguageTexts"); + }); + + modelBuilder.Entity("Abp.Notifications.NotificationInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Data") + .HasColumnType("nvarchar(max)") + .HasMaxLength(1048576); + + b.Property("DataTypeName") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("EntityId") + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("EntityTypeAssemblyQualifiedName") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("EntityTypeName") + .HasColumnType("nvarchar(250)") + .HasMaxLength(250); + + b.Property("ExcludedUserIds") + .HasColumnType("nvarchar(max)") + .HasMaxLength(131072); + + b.Property("NotificationName") + .IsRequired() + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("Severity") + .HasColumnType("tinyint"); + + b.Property("TenantIds") + .HasColumnType("nvarchar(max)") + .HasMaxLength(131072); + + b.Property("UserIds") + .HasColumnType("nvarchar(max)") + .HasMaxLength(131072); + + b.HasKey("Id"); + + b.ToTable("AbpNotifications"); + }); + + modelBuilder.Entity("Abp.Notifications.NotificationSubscriptionInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("EntityId") + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("EntityTypeAssemblyQualifiedName") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("EntityTypeName") + .HasColumnType("nvarchar(250)") + .HasMaxLength(250); + + b.Property("NotificationName") + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("NotificationName", "EntityTypeName", "EntityId", "UserId"); + + b.HasIndex("TenantId", "NotificationName", "EntityTypeName", "EntityId", "UserId"); + + b.ToTable("AbpNotificationSubscriptions"); + }); + + modelBuilder.Entity("Abp.Notifications.TenantNotificationInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Data") + .HasColumnType("nvarchar(max)") + .HasMaxLength(1048576); + + b.Property("DataTypeName") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("EntityId") + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("EntityTypeAssemblyQualifiedName") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("EntityTypeName") + .HasColumnType("nvarchar(250)") + .HasMaxLength(250); + + b.Property("NotificationName") + .IsRequired() + .HasColumnType("nvarchar(96)") + .HasMaxLength(96); + + b.Property("Severity") + .HasColumnType("tinyint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId"); + + b.ToTable("AbpTenantNotifications"); + }); + + modelBuilder.Entity("Abp.Notifications.UserNotificationInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("TenantNotificationId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId", "State", "CreationTime"); + + b.ToTable("AbpUserNotifications"); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(95)") + .HasMaxLength(95); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("ParentId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.HasIndex("TenantId", "Code"); + + b.ToTable("AbpOrganizationUnits"); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnitRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("OrganizationUnitId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "OrganizationUnitId"); + + b.HasIndex("TenantId", "RoleId"); + + b.ToTable("AbpOrganizationUnitRoles"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Data") + .HasColumnType("nvarchar(max)"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("WebhookName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("AbpWebhookEvents"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookSendAttempt", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("Response") + .HasColumnType("nvarchar(max)"); + + b.Property("ResponseStatusCode") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("WebhookEventId") + .HasColumnType("uniqueidentifier"); + + b.Property("WebhookSubscriptionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("WebhookEventId"); + + b.ToTable("AbpWebhookSendAttempts"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookSubscriptionInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Headers") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("Secret") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("WebhookUri") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Webhooks") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("AbpWebhookSubscriptions"); + }); + + modelBuilder.Entity("MineTec.ProManager.Authorization.Roles.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)") + .HasMaxLength(5000); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("IsDefault") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsStatic") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(32)") + .HasMaxLength(32); + + b.Property("NormalizedName") + .IsRequired() + .HasColumnType("nvarchar(32)") + .HasMaxLength(32); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CreatorUserId"); + + b.HasIndex("DeleterUserId"); + + b.HasIndex("LastModifierUserId"); + + b.HasIndex("TenantId", "NormalizedName"); + + b.ToTable("AbpRoles"); + }); + + modelBuilder.Entity("MineTec.ProManager.Authorization.Users.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("AuthenticationSource") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("EmailAddress") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("EmailConfirmationCode") + .HasColumnType("nvarchar(328)") + .HasMaxLength(328); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEmailConfirmed") + .HasColumnType("bit"); + + b.Property("IsLockoutEnabled") + .HasColumnType("bit"); + + b.Property("IsPhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("IsTwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("LockoutEndDateUtc") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("NormalizedEmailAddress") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("PasswordResetCode") + .HasColumnType("nvarchar(328)") + .HasMaxLength(328); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(32)") + .HasMaxLength(32); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Surname") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("nvarchar(256)") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("CreatorUserId"); + + b.HasIndex("DeleterUserId"); + + b.HasIndex("LastModifierUserId"); + + b.HasIndex("TenantId", "NormalizedEmailAddress"); + + b.HasIndex("TenantId", "NormalizedUserName"); + + b.ToTable("AbpUsers"); + }); + + modelBuilder.Entity("MineTec.ProManager.Entitys.Graphic.FigureNumber.FigureNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("FigureNum") + .HasColumnType("int"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("Remark") + .HasColumnType("nvarchar(300)") + .HasMaxLength(300); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.HasKey("Id"); + + b.ToTable("FigureNumber"); + }); + + modelBuilder.Entity("MineTec.ProManager.Entitys.Graphic.MaterialNumber.MaterialNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("MaterialNum") + .HasColumnType("int"); + + b.Property("Remark") + .HasColumnType("nvarchar(300)") + .HasMaxLength(300); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.HasKey("Id"); + + b.ToTable("MaterialNumber"); + }); + + modelBuilder.Entity("MineTec.ProManager.Entitys.Graphic.ProductNumber.ProductNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("ProductNum") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("Remark") + .HasColumnType("nvarchar(300)") + .HasMaxLength(300); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.HasKey("Id"); + + b.ToTable("ProductNumber"); + }); + + modelBuilder.Entity("MineTec.ProManager.Entitys.UserInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Account") + .HasColumnType("nvarchar(100)") + .HasMaxLength(100); + + b.Property("CellPhoneNum") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("DeptID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("DeptName") + .HasColumnType("nvarchar(100)") + .HasMaxLength(100); + + b.Property("IsAdmin") + .HasColumnType("int"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("IsLeaving") + .HasColumnType("int"); + + b.Property("PassWord") + .HasColumnType("nvarchar(100)") + .HasMaxLength(100); + + b.Property("PostID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("PostName") + .HasColumnType("nvarchar(100)") + .HasMaxLength(100); + + b.Property("PowerLevel") + .HasColumnType("nvarchar(100)") + .HasMaxLength(100); + + b.Property("Remake") + .HasColumnType("nvarchar(2000)") + .HasMaxLength(2000); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("TelPhoneNum") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UserName") + .HasColumnType("nvarchar(150)") + .HasMaxLength(150); + + b.Property("WorkNo") + .HasColumnType("nvarchar(100)") + .HasMaxLength(100); + + b.HasKey("Id"); + + b.ToTable("UserInfo"); + }); + + modelBuilder.Entity("MineTec.ProManager.MultiTenancy.Tenant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ConnectionString") + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime2"); + + b.Property("EditionId") + .HasColumnType("int"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("TenancyName") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.HasKey("Id"); + + b.HasIndex("CreatorUserId"); + + b.HasIndex("DeleterUserId"); + + b.HasIndex("EditionId"); + + b.HasIndex("LastModifierUserId"); + + b.HasIndex("TenancyName"); + + b.ToTable("AbpTenants"); + }); + + modelBuilder.Entity("Abp.Application.Features.EditionFeatureSetting", b => + { + b.HasBaseType("Abp.Application.Features.FeatureSetting"); + + b.Property("EditionId") + .HasColumnType("int"); + + b.HasIndex("EditionId", "Name"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator().HasValue("EditionFeatureSetting"); + }); + + modelBuilder.Entity("Abp.MultiTenancy.TenantFeatureSetting", b => + { + b.HasBaseType("Abp.Application.Features.FeatureSetting"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator().HasValue("TenantFeatureSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RolePermissionSetting", b => + { + b.HasBaseType("Abp.Authorization.PermissionSetting"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.HasIndex("RoleId"); + + b.ToTable("AbpPermissions"); + + b.HasDiscriminator().HasValue("RolePermissionSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserPermissionSetting", b => + { + b.HasBaseType("Abp.Authorization.PermissionSetting"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasIndex("UserId"); + + b.ToTable("AbpPermissions"); + + b.HasDiscriminator().HasValue("UserPermissionSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RoleClaim", b => + { + b.HasOne("MineTec.ProManager.Authorization.Roles.Role", null) + .WithMany("Claims") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserClaim", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", null) + .WithMany("Claims") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserLogin", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", null) + .WithMany("Logins") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserRole", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", null) + .WithMany("Roles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserToken", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", null) + .WithMany("Tokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Configuration.Setting", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", null) + .WithMany("Settings") + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityProperty", b => + { + b.HasOne("Abp.DynamicEntityProperties.DynamicProperty", "DynamicProperty") + .WithMany() + .HasForeignKey("DynamicPropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityPropertyValue", b => + { + b.HasOne("Abp.DynamicEntityProperties.DynamicEntityProperty", "DynamicEntityProperty") + .WithMany() + .HasForeignKey("DynamicEntityPropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicPropertyValue", b => + { + b.HasOne("Abp.DynamicEntityProperties.DynamicProperty", "DynamicProperty") + .WithMany("DynamicPropertyValues") + .HasForeignKey("DynamicPropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChange", b => + { + b.HasOne("Abp.EntityHistory.EntityChangeSet", null) + .WithMany("EntityChanges") + .HasForeignKey("EntityChangeSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityPropertyChange", b => + { + b.HasOne("Abp.EntityHistory.EntityChange", null) + .WithMany("PropertyChanges") + .HasForeignKey("EntityChangeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnit", b => + { + b.HasOne("Abp.Organizations.OrganizationUnit", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookSendAttempt", b => + { + b.HasOne("Abp.Webhooks.WebhookEvent", "WebhookEvent") + .WithMany() + .HasForeignKey("WebhookEventId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("MineTec.ProManager.Authorization.Roles.Role", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", "CreatorUser") + .WithMany() + .HasForeignKey("CreatorUserId"); + + b.HasOne("MineTec.ProManager.Authorization.Users.User", "DeleterUser") + .WithMany() + .HasForeignKey("DeleterUserId"); + + b.HasOne("MineTec.ProManager.Authorization.Users.User", "LastModifierUser") + .WithMany() + .HasForeignKey("LastModifierUserId"); + }); + + modelBuilder.Entity("MineTec.ProManager.Authorization.Users.User", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", "CreatorUser") + .WithMany() + .HasForeignKey("CreatorUserId"); + + b.HasOne("MineTec.ProManager.Authorization.Users.User", "DeleterUser") + .WithMany() + .HasForeignKey("DeleterUserId"); + + b.HasOne("MineTec.ProManager.Authorization.Users.User", "LastModifierUser") + .WithMany() + .HasForeignKey("LastModifierUserId"); + }); + + modelBuilder.Entity("MineTec.ProManager.MultiTenancy.Tenant", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", "CreatorUser") + .WithMany() + .HasForeignKey("CreatorUserId"); + + b.HasOne("MineTec.ProManager.Authorization.Users.User", "DeleterUser") + .WithMany() + .HasForeignKey("DeleterUserId"); + + b.HasOne("Abp.Application.Editions.Edition", "Edition") + .WithMany() + .HasForeignKey("EditionId"); + + b.HasOne("MineTec.ProManager.Authorization.Users.User", "LastModifierUser") + .WithMany() + .HasForeignKey("LastModifierUserId"); + }); + + modelBuilder.Entity("Abp.Application.Features.EditionFeatureSetting", b => + { + b.HasOne("Abp.Application.Editions.Edition", "Edition") + .WithMany() + .HasForeignKey("EditionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RolePermissionSetting", b => + { + b.HasOne("MineTec.ProManager.Authorization.Roles.Role", null) + .WithMany("Permissions") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserPermissionSetting", b => + { + b.HasOne("MineTec.ProManager.Authorization.Users.User", null) + .WithMany("Permissions") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.cs b/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.cs new file mode 100644 index 0000000..ef05db6 --- /dev/null +++ b/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/20201228161935_Graphic_Encoder.cs @@ -0,0 +1,86 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace MineTec.ProManager.Migrations +{ + public partial class Graphic_Encoder : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "FigureNumber", + columns: table => new + { + Id = table.Column(nullable: false), + CreateTime = table.Column(nullable: true), + CreateUserID = table.Column(maxLength: 50, nullable: true), + CreateUserName = table.Column(maxLength: 50, nullable: true), + UpdateTime = table.Column(nullable: true), + UpdateUserID = table.Column(maxLength: 50, nullable: true), + UpdateUserName = table.Column(maxLength: 50, nullable: true), + FigureNum = table.Column(nullable: false), + Remark = table.Column(maxLength: 300, nullable: true), + IsDelete = table.Column(nullable: false), + CreationTime = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_FigureNumber", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "MaterialNumber", + columns: table => new + { + Id = table.Column(nullable: false), + CreateTime = table.Column(nullable: true), + CreateUserID = table.Column(maxLength: 50, nullable: true), + CreateUserName = table.Column(maxLength: 50, nullable: true), + UpdateTime = table.Column(nullable: true), + UpdateUserID = table.Column(maxLength: 50, nullable: true), + UpdateUserName = table.Column(maxLength: 50, nullable: true), + MaterialNum = table.Column(nullable: false), + Remark = table.Column(maxLength: 300, nullable: true), + IsDelete = table.Column(nullable: false), + CreationTime = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_MaterialNumber", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "ProductNumber", + columns: table => new + { + Id = table.Column(nullable: false), + CreateTime = table.Column(nullable: true), + CreateUserID = table.Column(maxLength: 50, nullable: true), + CreateUserName = table.Column(maxLength: 50, nullable: true), + UpdateTime = table.Column(nullable: true), + UpdateUserID = table.Column(maxLength: 50, nullable: true), + UpdateUserName = table.Column(maxLength: 50, nullable: true), + ProductNum = table.Column(maxLength: 50, nullable: true), + Remark = table.Column(maxLength: 300, nullable: true), + IsDelete = table.Column(nullable: false), + CreationTime = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ProductNumber", x => x.Id); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "FigureNumber"); + + migrationBuilder.DropTable( + name: "MaterialNumber"); + + migrationBuilder.DropTable( + name: "ProductNumber"); + } + } +} diff --git a/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/ProManagerDbContextModelSnapshot.cs b/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/ProManagerDbContextModelSnapshot.cs index a664675..844b295 100644 --- a/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/ProManagerDbContextModelSnapshot.cs +++ b/Code/src/MineTec.ProManager.EntityFrameworkCore/Migrations/ProManagerDbContextModelSnapshot.cs @@ -1512,6 +1512,145 @@ namespace MineTec.ProManager.Migrations b.ToTable("AbpUsers"); }); + modelBuilder.Entity("MineTec.ProManager.Entitys.Graphic.FigureNumber.FigureNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("FigureNum") + .HasColumnType("int"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("Remark") + .HasColumnType("nvarchar(300)") + .HasMaxLength(300); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.HasKey("Id"); + + b.ToTable("FigureNumber"); + }); + + modelBuilder.Entity("MineTec.ProManager.Entitys.Graphic.MaterialNumber.MaterialNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("MaterialNum") + .HasColumnType("int"); + + b.Property("Remark") + .HasColumnType("nvarchar(300)") + .HasMaxLength(300); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.HasKey("Id"); + + b.ToTable("MaterialNumber"); + }); + + modelBuilder.Entity("MineTec.ProManager.Entitys.Graphic.ProductNumber.ProductNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("IsDelete") + .HasColumnType("int"); + + b.Property("ProductNum") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("Remark") + .HasColumnType("nvarchar(300)") + .HasMaxLength(300); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserID") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.Property("UpdateUserName") + .HasColumnType("nvarchar(50)") + .HasMaxLength(50); + + b.HasKey("Id"); + + b.ToTable("ProductNumber"); + }); + modelBuilder.Entity("MineTec.ProManager.Entitys.UserInfo", b => { b.Property("Id") diff --git a/Code/src/MineTec.ProManager.Web.Host/appsettings.json b/Code/src/MineTec.ProManager.Web.Host/appsettings.json index 6a6399b..65011a1 100644 --- a/Code/src/MineTec.ProManager.Web.Host/appsettings.json +++ b/Code/src/MineTec.ProManager.Web.Host/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "Server=localhost; Database=ProManagerDb; user id=sa;password=123456;Trusted_Connection=True;MultipleActiveResultSets=true" + "Default": "Server=.; Database=ProManagerDb; user id=sa;password=123456;Trusted_Connection=True;MultipleActiveResultSets=true" }, "App": { "ServerRootAddress": "http://localhost:21021/", diff --git a/需求/QDJ 0200003-2020 企业产品图样编号规则(6).doc b/需求/QDJ 0200003-2020 企业产品图样编号规则(6).doc new file mode 100644 index 0000000000000000000000000000000000000000..8c2629475e6578e16b9334f6c102e9e961fa91a2 GIT binary patch literal 231424 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 literal 0 HcmV?d00001