1、培训记录审阅 记录人员与时间 2、试题软删引发的安全意识调查 问题处理

This commit is contained in:
wyw 2026-05-25 10:08:17 +08:00
parent ef9915f0ad
commit 8c713b8369
7 changed files with 139791 additions and 1 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,55 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class wyw2026052201 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "DT_APPROVE",
table: "T_SE_TRAIN_RECORD",
type: "datetime2",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "USER_ID_APPROVE",
table: "T_SE_TRAIN_RECORD",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_T_SE_TRAIN_RECORD_USER_ID_APPROVE",
table: "T_SE_TRAIN_RECORD",
column: "USER_ID_APPROVE");
migrationBuilder.AddForeignKey(
name: "FK_T_SE_TRAIN_RECORD_T_FM_USER_USER_ID_APPROVE",
table: "T_SE_TRAIN_RECORD",
column: "USER_ID_APPROVE",
principalTable: "T_FM_USER",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_T_SE_TRAIN_RECORD_T_FM_USER_USER_ID_APPROVE",
table: "T_SE_TRAIN_RECORD");
migrationBuilder.DropIndex(
name: "IX_T_SE_TRAIN_RECORD_USER_ID_APPROVE",
table: "T_SE_TRAIN_RECORD");
migrationBuilder.DropColumn(
name: "DT_APPROVE",
table: "T_SE_TRAIN_RECORD");
migrationBuilder.DropColumn(
name: "USER_ID_APPROVE",
table: "T_SE_TRAIN_RECORD");
}
}
}

View File

@ -76231,6 +76231,9 @@ namespace APT.Data.Migrations.Migrations
b.Property<DateTime?>("CREATE_TIME") b.Property<DateTime?>("CREATE_TIME")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<DateTime?>("DT_APPROVE")
.HasColumnType("datetime2");
b.Property<DateTime?>("DT_SSEND_SIGN") b.Property<DateTime?>("DT_SSEND_SIGN")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
@ -76278,12 +76281,17 @@ namespace APT.Data.Migrations.Migrations
b.Property<int>("TRAIN_COUNT") b.Property<int>("TRAIN_COUNT")
.HasColumnType("int"); .HasColumnType("int");
b.Property<Guid?>("USER_ID_APPROVE")
.HasColumnType("uniqueidentifier");
b.HasKey("ID"); b.HasKey("ID");
b.HasIndex("NOTIFY_ID"); b.HasIndex("NOTIFY_ID");
b.HasIndex("ORG_ID"); b.HasIndex("ORG_ID");
b.HasIndex("USER_ID_APPROVE");
b.ToTable("T_SE_TRAIN_RECORD"); b.ToTable("T_SE_TRAIN_RECORD");
}); });
@ -127197,9 +127205,16 @@ namespace APT.Data.Migrations.Migrations
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_USER", "Nav_UserApro")
.WithMany()
.HasForeignKey("USER_ID_APPROVE")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("Nav_Notify"); b.Navigation("Nav_Notify");
b.Navigation("Nav_Org"); b.Navigation("Nav_Org");
b.Navigation("Nav_UserApro");
}); });
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_FILE", b => modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_FILE", b =>

View File

@ -10693,6 +10693,7 @@ builder.Property(t => t.POST_NAME).HasMaxLength(50);
builder.Ignore(t => t.PUBLISH); builder.Ignore(t => t.PUBLISH);
builder.Ignore(t => t.IS_OVERTIME); builder.Ignore(t => t.IS_OVERTIME);
builder.Property(t => t.REASONCANCLE).HasMaxLength(200); builder.Property(t => t.REASONCANCLE).HasMaxLength(200);
builder.HasOne(t => t.Nav_UserApro).WithMany().HasForeignKey(t => t.USER_ID_APPROVE).OnDelete(DeleteBehavior.Restrict);
} }
} }
#endregion #endregion

View File

@ -1,4 +1,5 @@
using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core; using APT.Infrastructure.Core;
using APT.MS.Domain.Enums; using APT.MS.Domain.Enums;
using System; using System;
@ -85,5 +86,24 @@ namespace APT.MS.Domain.Entities.SE
[DataFieldLength(200)] [DataFieldLength(200)]
public string REASONCANCLE { get; set; } public string REASONCANCLE { get; set; }
/// <summary>
/// 审阅人
/// </summary>
[Description("审阅人")]
[DataFieldForeignKey("Nav_UserApro")]
public Guid? USER_ID_APPROVE { get; set; }
/// <summary>
/// 审阅导航
/// </summary>
[Description("审阅导航")]
public T_FM_USER Nav_UserApro { get; set; }
/// <summary>
/// 审阅时间
/// </summary>
[Description("审阅时间")]
public DateTime? DT_APPROVE { get; set; }
} }
} }

View File

@ -545,6 +545,10 @@ namespace APT.SC.WebApi.Controllers.Api.SE
} }
for (int i = 0; i < points.Count; i++) for (int i = 0; i < points.Count; i++)
{ {
if (paper.Nav_Test == null)
{
continue;
}
if (paper.Nav_Test.Nav_Points.Find(p => p.POINT_ID.Value == points[i].ID) != null) if (paper.Nav_Test.Nav_Points.Find(p => p.POINT_ID.Value == points[i].ID) != null)
{ {
Rows[idx].COL[i, 0]++; Rows[idx].COL[i, 0]++;

View File

@ -1212,6 +1212,7 @@ namespace APT.SC.WebApi.Controllers.Api.SE
if (chargeUser != null) if (chargeUser != null)
{ {
sendNotice.Add(NotificationTaskService.InsertUserNoticeTaskModel("培训记录完成待审阅-" + data.Nav_Notify.NAME, data.ID, entity.ORG_ID, chargeUser.ID, chargeUser.NAME, DateTime.Now, DateTime.Now.AddDays(2), 1, "SE017_SHOWPRINT")); sendNotice.Add(NotificationTaskService.InsertUserNoticeTaskModel("培训记录完成待审阅-" + data.Nav_Notify.NAME, data.ID, entity.ORG_ID, chargeUser.ID, chargeUser.NAME, DateTime.Now, DateTime.Now.AddDays(2), 1, "SE017_SHOWPRINT"));
entity.USER_ID_APPROVE = chargeUser.ID;
} }
} }
@ -1524,6 +1525,7 @@ namespace APT.SC.WebApi.Controllers.Api.SE
if (chargeUser != null) if (chargeUser != null)
{ {
sendNotices = NotificationTaskService.InsertUserNoticeTaskModel("培训记录完成待审阅-" + record.Nav_Notify.NAME, record.ID, record.ORG_ID, chargeUser.ID, chargeUser.NAME, DateTime.Now, DateTime.Now.AddDays(2), 1, "SE017_SHOWPRINT"); sendNotices = NotificationTaskService.InsertUserNoticeTaskModel("培训记录完成待审阅-" + record.Nav_Notify.NAME, record.ID, record.ORG_ID, chargeUser.ID, chargeUser.NAME, DateTime.Now, DateTime.Now.AddDays(2), 1, "SE017_SHOWPRINT");
record.USER_ID_APPROVE = chargeUser.ID;
} }
//record.Nav_Notify = null;//不能加加了会报错的样子 //record.Nav_Notify = null;//不能加加了会报错的样子
} }
@ -1953,6 +1955,7 @@ namespace APT.SC.WebApi.Controllers.Api.SE
if (data.STATUS == SETrainRecordStatus.) if (data.STATUS == SETrainRecordStatus.)
{ {
data.STATUS = SETrainRecordStatus.; data.STATUS = SETrainRecordStatus.;
data.DT_APPROVE = DateTime.Now;
finishNotice = NotificationTaskService.GetTaskFinishModel(Guid.Parse(filter.Parameter1)); finishNotice = NotificationTaskService.GetTaskFinishModel(Guid.Parse(filter.Parameter1));
//20230308触发转训 //20230308触发转训
var Nav_TrainUserList = data.Nav_Notify.Nav_TrainUserList; var Nav_TrainUserList = data.Nav_Notify.Nav_TrainUserList;