培训教育 添加字段 培训性质 培训形式 培训老师 功能已完成

培训记录人员 添加 排序 是有有效 字段
培训试卷 添加人员 关联
This commit is contained in:
wyw 2025-11-28 15:45:28 +08:00
parent 82d0d6a938
commit 103118576d
10 changed files with 273234 additions and 1 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,98 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class wyw2025112801 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "ENABLE_STATUS",
table: "T_SE_TRAIN_RECORD_USER",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "EXAMETIMES",
table: "T_SE_TRAIN_RECORD_USER",
type: "int",
nullable: false,
defaultValue: 1);
migrationBuilder.AddColumn<Guid>(
name: "RECORD_UUSER_ID",
table: "T_SE_TRAIN_RECORD_PAPER",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "USER_ID_TEACHER",
table: "T_SE_TRAIN_NOTIFY",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_T_SE_TRAIN_RECORD_PAPER_RECORD_UUSER_ID",
table: "T_SE_TRAIN_RECORD_PAPER",
column: "RECORD_UUSER_ID");
migrationBuilder.CreateIndex(
name: "IX_T_SE_TRAIN_NOTIFY_USER_ID_TEACHER",
table: "T_SE_TRAIN_NOTIFY",
column: "USER_ID_TEACHER");
migrationBuilder.AddForeignKey(
name: "FK_T_SE_TRAIN_NOTIFY_T_FM_USER_USER_ID_TEACHER",
table: "T_SE_TRAIN_NOTIFY",
column: "USER_ID_TEACHER",
principalTable: "T_FM_USER",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_T_SE_TRAIN_RECORD_PAPER_T_SE_TRAIN_RECORD_USER_RECORD_UUSER_ID",
table: "T_SE_TRAIN_RECORD_PAPER",
column: "RECORD_UUSER_ID",
principalTable: "T_SE_TRAIN_RECORD_USER",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_T_SE_TRAIN_NOTIFY_T_FM_USER_USER_ID_TEACHER",
table: "T_SE_TRAIN_NOTIFY");
migrationBuilder.DropForeignKey(
name: "FK_T_SE_TRAIN_RECORD_PAPER_T_SE_TRAIN_RECORD_USER_RECORD_UUSER_ID",
table: "T_SE_TRAIN_RECORD_PAPER");
migrationBuilder.DropIndex(
name: "IX_T_SE_TRAIN_RECORD_PAPER_RECORD_UUSER_ID",
table: "T_SE_TRAIN_RECORD_PAPER");
migrationBuilder.DropIndex(
name: "IX_T_SE_TRAIN_NOTIFY_USER_ID_TEACHER",
table: "T_SE_TRAIN_NOTIFY");
migrationBuilder.DropColumn(
name: "ENABLE_STATUS",
table: "T_SE_TRAIN_RECORD_USER");
migrationBuilder.DropColumn(
name: "EXAMETIMES",
table: "T_SE_TRAIN_RECORD_USER");
migrationBuilder.DropColumn(
name: "RECORD_UUSER_ID",
table: "T_SE_TRAIN_RECORD_PAPER");
migrationBuilder.DropColumn(
name: "USER_ID_TEACHER",
table: "T_SE_TRAIN_NOTIFY");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class wyw2025112802 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "IN_OUT",
table: "T_SE_TRAIN_NOTIFY",
type: "int",
nullable: false,
defaultValue: 5);
migrationBuilder.AddColumn<int>(
name: "TRAINTYPE",
table: "T_SE_TRAIN_NOTIFY",
type: "int",
nullable: false,
defaultValue: 50);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "IN_OUT",
table: "T_SE_TRAIN_NOTIFY");
migrationBuilder.DropColumn(
name: "TRAINTYPE",
table: "T_SE_TRAIN_NOTIFY");
}
}
}

View File

@ -74055,6 +74055,9 @@ namespace APT.Data.Migrations.Migrations
b.Property<decimal>("HOURS")
.HasColumnType("decimal(18,2)");
b.Property<int>("IN_OUT")
.HasColumnType("int");
b.Property<bool>("IS_DELETED")
.HasColumnType("bit");
@ -74099,6 +74102,9 @@ namespace APT.Data.Migrations.Migrations
b.Property<int>("STATUS")
.HasColumnType("int");
b.Property<int>("TRAINTYPE")
.HasColumnType("int");
b.Property<string>("TRAIN_ADDR")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@ -74130,6 +74136,9 @@ namespace APT.Data.Migrations.Migrations
b.Property<Guid?>("TRAIN_TYPE")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("USER_ID_TEACHER")
.HasColumnType("uniqueidentifier");
b.HasKey("ID");
b.HasIndex("LAUNCH_DEPARTMENT_ID");
@ -74144,6 +74153,8 @@ namespace APT.Data.Migrations.Migrations
b.HasIndex("TRAIN_TYPE");
b.HasIndex("USER_ID_TEACHER");
b.ToTable("T_SE_TRAIN_NOTIFY");
});
@ -74801,6 +74812,9 @@ namespace APT.Data.Migrations.Migrations
b.Property<Guid>("RECORD_ID")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("RECORD_UUSER_ID")
.HasColumnType("uniqueidentifier");
b.Property<int>("SCORE")
.HasColumnType("int");
@ -74816,6 +74830,8 @@ namespace APT.Data.Migrations.Migrations
b.HasIndex("RECORD_ID");
b.HasIndex("RECORD_UUSER_ID");
b.HasIndex("TEST_ID");
b.HasIndex("USER_ID");
@ -74943,9 +74959,15 @@ namespace APT.Data.Migrations.Migrations
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ENABLE_STATUS")
.HasColumnType("int");
b.Property<int>("ENTITY_ORG_TPYE")
.HasColumnType("int");
b.Property<int>("EXAMETIMES")
.HasColumnType("int");
b.Property<int?>("EXAMINATION_RESULTS")
.HasColumnType("int");
@ -124080,6 +124102,11 @@ namespace APT.Data.Migrations.Migrations
.HasForeignKey("TRAIN_TYPE")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_USER", "Nav_UserTeacher")
.WithMany()
.HasForeignKey("USER_ID_TEACHER")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("Nav_LaunchDepartment");
b.Navigation("Nav_LaunchUser");
@ -124091,6 +124118,8 @@ namespace APT.Data.Migrations.Migrations
b.Navigation("Nav_TrainDepartment");
b.Navigation("Nav_TrainType");
b.Navigation("Nav_UserTeacher");
});
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_NOTIFY_CONTENT_REL", b =>
@ -124345,6 +124374,11 @@ namespace APT.Data.Migrations.Migrations
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_USER", "Nav_RecordUser")
.WithMany()
.HasForeignKey("RECORD_UUSER_ID")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.MS.Domain.Entities.SE.T_SE_TEST", "Nav_Test")
.WithMany()
.HasForeignKey("TEST_ID")
@ -124359,6 +124393,8 @@ namespace APT.Data.Migrations.Migrations
b.Navigation("Nav_Record");
b.Navigation("Nav_RecordUser");
b.Navigation("Nav_Test");
b.Navigation("Nav_User");

View File

@ -10519,6 +10519,7 @@ builder.Property(t => t.NAME).HasMaxLength(100);
builder.HasOne(t => t.Nav_TrainType).WithMany().HasForeignKey(t => t.TRAIN_TYPE).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.TRAIN_ADDR).HasMaxLength(100);
builder.Property(t => t.TRAIN_TEACHER).HasMaxLength(100);
builder.HasOne(t => t.Nav_UserTeacher).WithMany().HasForeignKey(t => t.USER_ID_TEACHER).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.TRAIN_MODEL).HasMaxLength(50);
builder.Property(t => t.TRAIN_PLAN).HasMaxLength(500);
builder.Ignore(t => t.PUBLISH);
@ -10593,6 +10594,7 @@ builder.HasOne(t => t.Nav_ImgFile).WithMany().HasForeignKey(t => t.IMG_FILE_ID).
public override void Configure(EntityTypeBuilder<T_SE_TRAIN_RECORD_PAPER> builder)
{
base.Configure(builder);
builder.HasOne(t => t.Nav_RecordUser).WithMany().HasForeignKey(t => t.RECORD_UUSER_ID).OnDelete(DeleteBehavior.Restrict);
builder.HasOne(t => t.Nav_Record).WithMany(t=>t.Nav_Papers).HasForeignKey(t => t.RECORD_ID).OnDelete(DeleteBehavior.Restrict);
builder.HasOne(t => t.Nav_User).WithMany().HasForeignKey(t => t.USER_ID).OnDelete(DeleteBehavior.Restrict);
builder.HasOne(t => t.Nav_Test).WithMany().HasForeignKey(t => t.TEST_ID).OnDelete(DeleteBehavior.Restrict);

View File

@ -128,6 +128,23 @@ namespace APT.MS.Domain.Entities.SE
[FormFieldEdit]
[FormFieldQuery]
public string TRAIN_TEACHER { get; set; }
/// <summary>
/// 培训老师
/// </summary>
[Description("培训老师")]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
[DataFieldForeignKey("Nav_UserTeacher")]
public Guid? USER_ID_TEACHER { get; set; }
/// <summary>
/// 培训老师
/// </summary>
[Description("培训老师")]
public T_FM_USER Nav_UserTeacher { get; set; }
/// <summary>
/// 培训形式
/// </summary>
@ -246,5 +263,20 @@ namespace APT.MS.Domain.Entities.SE
/// 培训计划明细ID
/// </summary>
public Guid? PLANDETAILID { get; set; }
/// <summary>
/// 培训性质
/// </summary>
[Description("培训性质")]
[FormFieldEdit]
public TrainInOut IN_OUT { get; set; }
/// <summary>
/// 培训形式 线上培训/线下培训 委外培训
/// </summary>
[Description("培训形式")]
[FormFieldEdit]
[EnumName("TrainType")]
public TrainType TRAINTYPE { get; set; }
}
}

View File

@ -10,6 +10,19 @@ namespace APT.MS.Domain.Entities.SE
[Description("人员试题")]
public class T_SE_TRAIN_RECORD_PAPER : MesEntityBase
{
/// <summary>
/// 人员试卷 必填
/// </summary>
[Description("人员试卷")]
[FormFieldEdit]
[DataFieldForeignKey("Nav_RecordUser")]
public Guid? RECORD_UUSER_ID { get; set; }
/// <summary>
/// 人员试卷
/// </summary>
[Description("人员试卷")]
public T_SE_TRAIN_RECORD_USER Nav_RecordUser { get; set; }
/// <summary>
/// 培训记录
/// </summary>
@ -21,6 +34,7 @@ namespace APT.MS.Domain.Entities.SE
/// </summary>
[Description("导航: 培训记录")]
public T_SE_TRAIN_RECORD Nav_Record { get; set; }
/// <summary>
/// 人员ID
/// </summary>
@ -44,6 +58,7 @@ namespace APT.MS.Domain.Entities.SE
/// </summary>
[Description("导航: 试题")]
public T_SE_TEST Nav_Test { get; set; }
/// <summary>
/// 答案 与Nav_Test.ANSWER一致为零则表示还未答题
/// </summary>

View File

@ -1,4 +1,5 @@
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Enums;
using System;
@ -71,5 +72,23 @@ namespace APT.MS.Domain.Entities.SE
[FormFieldTable]
[EnumName("SETrainRecordUserStatusEnum")]
public SETrainRecordUserStatusEnum STATUS { get; set; }
/// <summary>
///考试次数
/// </summary>
[Description("考试次数")]
[FormFieldTable]
[FormFieldEdit]
public int EXAMETIMES { get; set; } = 1;
/// <summary>
/// 启用标志
/// </summary>
[Description("启用标志")]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
[EnumName("FMEnableStatusEnum")]
public FMEnableStatusEnum ENABLE_STATUS { get; set; }
}
}

View File

@ -2253,6 +2253,8 @@ namespace APT.PP.WebApi.Controllers.Api.PP
modelNotify.CREATE_NOTIFY_RECORD = true;
modelNotify.CHECKTYPE = item.CHECKTYPE;
modelNotify.IN_OUT = item.IN_OUT;
modelNotify.TRAINTYPE = item.TRAINTYPE;
modelNotify.TRAIN_TYPE = TRAIN_TYPE;
modelNotify.LEVEL = LEVEL;
modelNotify.HOURS = item.CLASSHOUR;//培训学时