培训记录 人员 添加附件 (试卷)
线下考核 判断 添加 考核结果 必填
This commit is contained in:
parent
c1dfe00a50
commit
424e057af4
137830
APT.Data.Migrations/Migrations/20260205091350_wyw2026020501.Designer.cs
generated
Normal file
137830
APT.Data.Migrations/Migrations/20260205091350_wyw2026020501.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,74 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace APT.Data.Migrations.Migrations
|
||||||
|
{
|
||||||
|
public partial class wyw2026020501 : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "T_SE_TRAIN_RECORD_USER_FILE",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
ID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
RECORD_USER_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
IMG_FILE_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
IS_DELETED = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
ORG_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
ENTITY_ORG_TPYE = table.Column<int>(type: "int", nullable: false),
|
||||||
|
FORM_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
FLOW_STATUS = table.Column<int>(type: "int", nullable: false),
|
||||||
|
FLOW_SEND_STATUS = table.Column<int>(type: "int", nullable: false),
|
||||||
|
FLOW_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
CREATE_TIME = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
MODIFY_TIME = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
CREATER_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
MODIFIER_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_T_SE_TRAIN_RECORD_USER_FILE", x => x.ID);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_T_SE_TRAIN_RECORD_USER_FILE_T_FM_ORGANIZATION_ORG_ID",
|
||||||
|
column: x => x.ORG_ID,
|
||||||
|
principalTable: "T_FM_ORGANIZATION",
|
||||||
|
principalColumn: "ID",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_T_SE_TRAIN_RECORD_USER_FILE_T_PF_IMG_FILE_IMG_FILE_ID",
|
||||||
|
column: x => x.IMG_FILE_ID,
|
||||||
|
principalTable: "T_PF_IMG_FILE",
|
||||||
|
principalColumn: "ID",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_T_SE_TRAIN_RECORD_USER_FILE_T_SE_TRAIN_RECORD_USER_RECORD_USER_ID",
|
||||||
|
column: x => x.RECORD_USER_ID,
|
||||||
|
principalTable: "T_SE_TRAIN_RECORD_USER",
|
||||||
|
principalColumn: "ID",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_T_SE_TRAIN_RECORD_USER_FILE_IMG_FILE_ID",
|
||||||
|
table: "T_SE_TRAIN_RECORD_USER_FILE",
|
||||||
|
column: "IMG_FILE_ID");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_T_SE_TRAIN_RECORD_USER_FILE_ORG_ID",
|
||||||
|
table: "T_SE_TRAIN_RECORD_USER_FILE",
|
||||||
|
column: "ORG_ID");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_T_SE_TRAIN_RECORD_USER_FILE_RECORD_USER_ID",
|
||||||
|
table: "T_SE_TRAIN_RECORD_USER_FILE",
|
||||||
|
column: "RECORD_USER_ID");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "T_SE_TRAIN_RECORD_USER_FILE");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -75703,6 +75703,63 @@ namespace APT.Data.Migrations.Migrations
|
|||||||
b.ToTable("T_SE_TRAIN_RECORD_USER");
|
b.ToTable("T_SE_TRAIN_RECORD_USER");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_USER_FILE", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("ID")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid?>("CREATER_ID")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("CREATE_TIME")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int>("ENTITY_ORG_TPYE")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<Guid?>("FLOW_ID")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<int>("FLOW_SEND_STATUS")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<int>("FLOW_STATUS")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<Guid?>("FORM_ID")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid>("IMG_FILE_ID")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<bool>("IS_DELETED")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<Guid?>("MODIFIER_ID")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("MODIFY_TIME")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<Guid?>("ORG_ID")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid>("RECORD_USER_ID")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.HasKey("ID");
|
||||||
|
|
||||||
|
b.HasIndex("IMG_FILE_ID");
|
||||||
|
|
||||||
|
b.HasIndex("ORG_ID");
|
||||||
|
|
||||||
|
b.HasIndex("RECORD_USER_ID");
|
||||||
|
|
||||||
|
b.ToTable("T_SE_TRAIN_RECORD_USER_FILE");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_SURVEY", b =>
|
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_SURVEY", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("ID")
|
b.Property<Guid>("ID")
|
||||||
@ -125590,6 +125647,33 @@ namespace APT.Data.Migrations.Migrations
|
|||||||
b.Navigation("Nav_User");
|
b.Navigation("Nav_User");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_USER_FILE", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("APT.BaseData.Domain.Entities.T_PF_IMG_FILE", "Nav_ImgFile")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("IMG_FILE_ID")
|
||||||
|
.OnDelete(DeleteBehavior.Restrict)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("APT.Infrastructure.Core.T_FM_ORGANIZATION", "Nav_Org")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("ORG_ID")
|
||||||
|
.OnDelete(DeleteBehavior.Restrict)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_USER", "Nav_RecordUser")
|
||||||
|
.WithMany("Nav_Files")
|
||||||
|
.HasForeignKey("RECORD_USER_ID")
|
||||||
|
.OnDelete(DeleteBehavior.Restrict)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.Navigation("Nav_ImgFile");
|
||||||
|
|
||||||
|
b.Navigation("Nav_Org");
|
||||||
|
|
||||||
|
b.Navigation("Nav_RecordUser");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_SURVEY", b =>
|
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_SURVEY", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_DEPARTMENT", "Nav_LaunchDepartment")
|
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_DEPARTMENT", "Nav_LaunchDepartment")
|
||||||
@ -136942,6 +137026,11 @@ namespace APT.Data.Migrations.Migrations
|
|||||||
b.Navigation("Nav_ListPaper");
|
b.Navigation("Nav_ListPaper");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_RECORD_USER", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Nav_Files");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_SURVEY", b =>
|
modelBuilder.Entity("APT.MS.Domain.Entities.SE.T_SE_TRAIN_SURVEY", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Nav_Demands");
|
b.Navigation("Nav_Demands");
|
||||||
|
|||||||
@ -10652,6 +10652,17 @@ builder.HasOne(t => t.Nav_User).WithMany().HasForeignKey(t => t.USER_ID).OnDelet
|
|||||||
builder.Property(t => t.DEPARTMENT_NAME).HasMaxLength(50);
|
builder.Property(t => t.DEPARTMENT_NAME).HasMaxLength(50);
|
||||||
builder.Property(t => t.POST_NAME).HasMaxLength(50);
|
builder.Property(t => t.POST_NAME).HasMaxLength(50);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
#region TrainRecordUserFile
|
||||||
|
public partial class SETrainRecordUserFileMap :APTEntityBaseMap<T_SE_TRAIN_RECORD_USER_FILE>
|
||||||
|
{
|
||||||
|
public override void Configure(EntityTypeBuilder<T_SE_TRAIN_RECORD_USER_FILE> builder)
|
||||||
|
{
|
||||||
|
base.Configure(builder);
|
||||||
|
builder.HasOne(t => t.Nav_RecordUser).WithMany(t=>t.Nav_Files).HasForeignKey(t => t.RECORD_USER_ID).OnDelete(DeleteBehavior.Restrict);
|
||||||
|
builder.HasOne(t => t.Nav_ImgFile).WithMany().HasForeignKey(t => t.IMG_FILE_ID).OnDelete(DeleteBehavior.Restrict);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region TrainingEffectEvaluation
|
#region TrainingEffectEvaluation
|
||||||
|
|||||||
@ -3,6 +3,7 @@ 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;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
namespace APT.MS.Domain.Entities.SE
|
namespace APT.MS.Domain.Entities.SE
|
||||||
{
|
{
|
||||||
@ -90,5 +91,11 @@ namespace APT.MS.Domain.Entities.SE
|
|||||||
[FormFieldQuery]
|
[FormFieldQuery]
|
||||||
[EnumName("FMEnableStatusEnum")]
|
[EnumName("FMEnableStatusEnum")]
|
||||||
public FMEnableStatusEnum ENABLE_STATUS { get; set; }
|
public FMEnableStatusEnum ENABLE_STATUS { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 附件
|
||||||
|
/// </summary>
|
||||||
|
[Description("附件")]
|
||||||
|
public ICollection<T_SE_TRAIN_RECORD_USER_FILE> Nav_Files { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,41 @@
|
|||||||
|
using APT.BaseData.Domain.Entities;
|
||||||
|
using APT.BaseData.Domain.Entities.FM;
|
||||||
|
using APT.BaseData.Domain.Enums;
|
||||||
|
using APT.Infrastructure.Core;
|
||||||
|
using APT.MS.Domain.Enums;
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
namespace APT.MS.Domain.Entities.SE
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 培训记录参与人员考卷附件
|
||||||
|
/// </summary>
|
||||||
|
[Description("培训记录参与人员附件")]
|
||||||
|
public class T_SE_TRAIN_RECORD_USER_FILE : MesEntityBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 培训记录
|
||||||
|
/// </summary>
|
||||||
|
[Description("培训记录")]
|
||||||
|
[DataFieldForeignKey("Nav_RecordUser", "Nav_Files")]
|
||||||
|
public Guid RECORD_USER_ID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 导航: 培训记录
|
||||||
|
/// </summary>
|
||||||
|
[Description("导航: 培训记录")]
|
||||||
|
public T_SE_TRAIN_RECORD_USER Nav_RecordUser { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文件ID
|
||||||
|
/// </summary>
|
||||||
|
[Description("文件ID")]
|
||||||
|
[DataFieldForeignKey("Nav_ImgFile")]
|
||||||
|
public Guid IMG_FILE_ID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 导航属性:文件
|
||||||
|
/// </summary>
|
||||||
|
[Description("导航属性:文件")]
|
||||||
|
public T_PF_IMG_FILE Nav_ImgFile { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -43,6 +43,13 @@ namespace APT.SC.WebApi.Controllers.Api.SE
|
|||||||
{
|
{
|
||||||
|
|
||||||
var joinUsers = entity.Nav_Users.Where(t => t.USER_ID != Guid.Empty);
|
var joinUsers = entity.Nav_Users.Where(t => t.USER_ID != Guid.Empty);
|
||||||
|
List<T_SE_TRAIN_RECORD_USER_FILE> listFiles = new List<T_SE_TRAIN_RECORD_USER_FILE>();
|
||||||
|
foreach (var item in joinUsers)
|
||||||
|
{
|
||||||
|
if (item.IS_DELETED)
|
||||||
|
item.Nav_Files.ForEach(e => e.IS_DELETED = true);
|
||||||
|
listFiles.AddRange(item.Nav_Files);
|
||||||
|
}
|
||||||
var files = entity.Nav_Files;
|
var files = entity.Nav_Files;
|
||||||
List<T_FM_NOTIFICATION_TASK> sendNotice = null;
|
List<T_FM_NOTIFICATION_TASK> sendNotice = null;
|
||||||
T_FM_NOTIFICATION_TASK finishNotice = null;
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
||||||
@ -202,7 +209,22 @@ namespace APT.SC.WebApi.Controllers.Api.SE
|
|||||||
// currJoinUser.OK = true;
|
// currJoinUser.OK = true;
|
||||||
//}
|
//}
|
||||||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModels(allSendTitles, allSendDataIds, entity.ORG_ID, allSendUserIds, allSendUserNames, DateTime.Now, DateTime.Now.AddHours(12), 1, "SE017_SHOWPRINT");
|
sendNotice = NotificationTaskService.InsertUserNoticeTaskModels(allSendTitles, allSendDataIds, entity.ORG_ID, allSendUserIds, allSendUserNames, DateTime.Now, DateTime.Now.AddHours(12), 1, "SE017_SHOWPRINT");
|
||||||
|
|
||||||
|
if (data.Nav_Notify.CHECKTYPE == PlanCheckType.InOffLine)
|
||||||
|
{
|
||||||
|
//必须要有考核结果
|
||||||
|
int index = 1;
|
||||||
|
foreach (var item in joinUsers)
|
||||||
|
{
|
||||||
|
if (item.IS_DELETED)
|
||||||
|
continue;
|
||||||
|
if (!item.EXAMINATION_RESULTS.HasValue)
|
||||||
|
throw new Exception("行" + index + " 请完善考核结果!");
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
entity.Nav_Notify = null;
|
entity.Nav_Notify = null;
|
||||||
joinUsers.ForEach(m => m.Nav_User = null);
|
joinUsers.ForEach(m => m.Nav_User = null);
|
||||||
entity.Nav_Users = null;
|
entity.Nav_Users = null;
|
||||||
@ -217,7 +239,9 @@ namespace APT.SC.WebApi.Controllers.Api.SE
|
|||||||
if (finishNotice != null)
|
if (finishNotice != null)
|
||||||
UpdateEntityNoCommit(finishNotice);
|
UpdateEntityNoCommit(finishNotice);
|
||||||
if (sendNotice != null && sendNotice.Any())
|
if (sendNotice != null && sendNotice.Any())
|
||||||
BantchAddEntityNoCommit(sendNotice);
|
BantchSaveEntityNoCommit(sendNotice);
|
||||||
|
if (listFiles != null && listFiles.Any())
|
||||||
|
BantchSaveEntityNoCommit(listFiles);
|
||||||
|
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -53511,6 +53511,111 @@ using APT.MS.Domain.Entities.HM;
|
|||||||
return WitEntity(null, filter);
|
return WitEntity(null, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
#region TrainRecordUserFile-培训记录参与人员附件
|
||||||
|
/// <summary>
|
||||||
|
/// 培训记录参与人员附件
|
||||||
|
/// </summary>
|
||||||
|
[Route("api/SE/TrainRecordUserFile")]
|
||||||
|
public partial class TrainRecordUserFileController : AuthorizeApiController<T_SE_TRAIN_RECORD_USER_FILE>
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 查询所有数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filter">过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("Entities")]
|
||||||
|
public JsonActionResult<IEnumerable<T_SE_TRAIN_RECORD_USER_FILE>> Entities([FromBody]KeywordFilter filter)
|
||||||
|
{
|
||||||
|
return WitEntities(null, filter);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 排序查询所有数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filter">过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
|
||||||
|
[HttpPost, Route("OrderEntities")]
|
||||||
|
public JsonActionResult<IEnumerable<T_SE_TRAIN_RECORD_USER_FILE>> OrderEntities([FromBody]KeywordFilter filter)
|
||||||
|
{
|
||||||
|
return WitOrderEntities(null, filter);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 分页查询数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageFilter">分页过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("Paged")]
|
||||||
|
public PagedActionResult<T_SE_TRAIN_RECORD_USER_FILE> Paged([FromBody]KeywordPageFilter pageFilter)
|
||||||
|
{
|
||||||
|
return WitPaged(null, pageFilter);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 排序分页查询数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageFilter">分页过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("OrderPaged")]
|
||||||
|
public PagedActionResult<T_SE_TRAIN_RECORD_USER_FILE> OrderPaged([FromBody]KeywordPageFilter pageFilter)
|
||||||
|
{
|
||||||
|
return WitOrderPaged(null, pageFilter);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据主键删除数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">主键ID</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet, Route("Delete")]
|
||||||
|
public JsonActionResult<bool> Delete(string id)
|
||||||
|
{
|
||||||
|
return WitRealDelete(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新或新增数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity">对象实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("Update")]
|
||||||
|
public JsonActionResult<bool> Update([FromBody]T_SE_TRAIN_RECORD_USER_FILE entity)
|
||||||
|
{
|
||||||
|
return WitUpdate(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量更新
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity">对象实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("BatchUpdate")]
|
||||||
|
public JsonActionResult<bool> BatchUpdate([FromBody] BatchUpdateModel<T_SE_TRAIN_RECORD_USER_FILE> entity)
|
||||||
|
{
|
||||||
|
return WitBantchUpdate(entity?.Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量删除数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ids">id字符串(id用逗号分隔)</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet, Route("BatchDelete")]
|
||||||
|
public JsonActionResult<bool> BatchDelete(string ids)
|
||||||
|
{
|
||||||
|
return WitRealBatchDelete(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获得单条实体数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filter">过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("Get")]
|
||||||
|
public JsonActionResult<T_SE_TRAIN_RECORD_USER_FILE> Get([FromBody] KeywordFilter filter)
|
||||||
|
{
|
||||||
|
return WitEntity(null, filter);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region TrainingEffectEvaluation-培训效果评估表
|
#region TrainingEffectEvaluation-培训效果评估表
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user