培训讲师异动

master
xiaochanghai 9 months ago
parent bf1eecae0f
commit 5e922489c1
  1. 273
      Model/Tiobon.Web.pdm
  2. 10
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 5
      Tiobon.Core.Model/Base/Ghre/Ghre_TeacherChange.Dto.Base.cs
  4. 6
      Tiobon.Core.Model/Edit/Ghre/Ghre_TeacherChange.Dto.EditInput.cs
  5. 9
      Tiobon.Core.Model/Insert/Ghre/Ghre_TeacherChange.Dto.InsertInput.cs
  6. 5
      Tiobon.Core.Model/Insert/Ghre/Ghre_TeacherChangeAttachment.Dto.InsertInput.cs
  7. 5
      Tiobon.Core.Model/Models/Ghre/Ghre_TeacherChange.cs
  8. 25
      Tiobon.Core.Model/View/Ghre/Ghre_TeacherChange.Dto.View.cs
  9. 19
      Tiobon.Core.Model/View/Ghre/Ghre_TeacherChangeAttachment.Dto.View.cs
  10. 194
      Tiobon.Core.Services/CommonServices.cs
  11. 201
      Tiobon.Core.Services/Ghre/Ghre_TeacherChangeServices.cs

File diff suppressed because it is too large Load Diff

@ -5595,6 +5595,11 @@
机构ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TeacherChangeBase.SchoolId">
<summary>
机构Id
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TeacherChangeBase.OriginChangeType">
<summary>
原调动类别
@ -13296,6 +13301,11 @@
机构ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TeacherChange.SchoolId">
<summary>
机构Id
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TeacherChange.OriginChangeType">
<summary>
原调动类别

@ -32,6 +32,11 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public long? TeacherId { get; set; }
/// <summary>
/// 机构Id
/// </summary>
public long? SchoolId { get; set; }
/// <summary>
/// 原调动类别
/// </summary>

@ -15,6 +15,8 @@
*
*/
using System.ComponentModel.DataAnnotations.Schema;
namespace Tiobon.Core.Model.Models
{
@ -23,5 +25,9 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public class EditGhre_TeacherChangeInput : Ghre_TeacherChangeBase
{
[NotMapped]
public List<EditGhre_TeacherAttachmentInput> TeacherAttachments { get; set; }
}
}

@ -15,6 +15,8 @@
*
*/
using System.ComponentModel.DataAnnotations.Schema;
namespace Tiobon.Core.Model.Models
{
@ -23,5 +25,12 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public class InsertGhre_TeacherChangeInput : Ghre_TeacherChangeBase
{
[NotMapped]
public List<InsertGhre_TeacherChangeAttachmentInput> TeacherAttachments { get; set; }
public List<long> Ids { get; set; }
public string Reason { get; set; }
}
}

@ -15,6 +15,8 @@
*
*/
using System.ComponentModel.DataAnnotations.Schema;
namespace Tiobon.Core.Model.Models
{
@ -23,5 +25,8 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public class InsertGhre_TeacherChangeAttachmentInput : Ghre_TeacherChangeAttachmentBase
{
[NotMapped]
public List<InsertGhre_AttachmentInput> Attachments { get; set; }
}
}

@ -34,6 +34,11 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public long? TeacherId { get; set; }
/// <summary>
/// 机构Id
/// </summary>
public long? SchoolId { get; set; }
/// <summary>
/// 原调动类别
/// </summary>

@ -22,13 +22,22 @@ namespace Tiobon.Core.Model.Models;
/// </summary>
public class Ghre_TeacherChangeDto : Ghre_TeacherChange
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
public string TeacherTypeLabel { get; set; }
public string TeacherLevelLabel { get; set; }
public string DeptOrSchoolName { get; set; }
public string GenderLabel { get; set; }
public List<Ghre_TeacherChangeAttachmentDto> TeacherAttachments { get; set; }
}

@ -22,13 +22,16 @@ namespace Tiobon.Core.Model.Models;
/// </summary>
public class Ghre_TeacherChangeAttachmentDto : Ghre_TeacherChangeAttachment
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
public List<Ghre_AttachmentDto> Attachments { get; set; } = new List<Ghre_AttachmentDto>();
}

@ -1940,6 +1940,200 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
END";
break;
case "F_ESS_TrainRequestApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@langId INT = {param.langId},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = '',
@ID INT = '{param.id}',
@userId INT = {param.userId}
BEGIN
IF @DoType IN ('Update', 'Copy') --
BEGIN
SELECT a.Id,
a.CreateBy,
a.CreateTime,
a.CreateProg,
a.CreateIP,
a.UpdateBy,
a.UpdateTime,
a.UpdateProg,
a.UpdateIP,
a.OperateLogID,
a.CourseSource,
a.RequestNo,
a.CourseName,
a.CourseId,
a.YearMonth,
a.RequestSource,
a.DeptId,
a.ApplicantId,
a.RequestNum,
a.TrainStaffId,
a.TrainClass,
a.TrainLevel,
a.InOrOut,
a.TeacherClass,
a.Reason,
a.PerCapitaBudget,
a.TotalBudget,
a.SponsorId,
a.Status,
a.RemarkSz,
a.IsDefault,
a.IsEnable,
a.WorkID,
a.WorkNo,
a.ToDoType,
a.BatchSID,
a.WorkState,
a.ShiftID,
a.ConfirmUserID,
a.ConfirmTime,
a.ConfirmComment,
a.Reverse1,
a.Reverse2,
a.Reverse3,
a.Reverse4,
a.Reverse5,
a.Reverse6,
a.Reverse7,
a.Reverse8,
a.Reverse9,
a.Reverse10,
a.ReverseI1,
a.ReverseI2,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, ' ')
+ ' '
+ CONVERT (NVARCHAR (16), CreateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000079', @langId, ' ') CreateDataInfo,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于')
+ ' '
+ CONVERT (NVARCHAR (16), UpdateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000080', @langId, ' ') UpdateDataInfo
FROM Ghre_Request a
WHERE a.Id = @ID
END
IF @DoType = 'Insert' --
BEGIN
SELECT (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId) ApplicantId,
NULL CourseSource,
NULL RequestNo,
NULL CourseName,
NULL CourseId,
NULL YearMonth,
'Dept' RequestSource,
NULL DeptId,
NULL RequestNum,
NULL TrainStaffId,
NULL TrainClass,
NULL TrainLevel,
NULL InOrOut,
NULL TeacherClass,
NULL Reason,
NULL PerCapitaBudget,
NULL TotalBudget,
NULL SponsorId,
'Wait' Status,
0 IsDefault,
0 Id,
'' RemarkSz
END
IF @DoType = 'ReApply' -- ReApply:
BEGIN
SELECT Id,
CreateBy,
CreateTime,
CreateProg,
CreateIP,
UpdateBy,
UpdateTime,
UpdateProg,
UpdateIP,
OperateLogID,
CourseSource,
RequestNo,
CourseName,
CourseId,
YearMonth,
RequestSource,
DeptId,
ApplicantId,
RequestNum,
TrainStaffId,
TrainClass,
TrainLevel,
InOrOut,
TeacherClass,
Reason,
PerCapitaBudget,
TotalBudget,
SponsorId,
Status,
RemarkSz,
IsDefault,
IsEnable,
WorkID,
WorkNo,
ToDoType,
BatchSID,
WorkState,
ShiftID,
ConfirmUserID,
ConfirmTime,
ConfirmComment,
Reverse1,
Reverse2,
Reverse3,
Reverse4,
Reverse5,
Reverse6,
Reverse7,
Reverse8,
Reverse9,
Reverse10,
ReverseI1,
ReverseI2
FROM Ghre_Request
WHERE WorkID = @ID --
END
END";
break;
case "F_ESS_TrainRequestPersonalApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',

@ -4,20 +4,201 @@ using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Common.Caches;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json.Linq;
using static Tiobon.Core.Model.Consts;
using Tiobon.Core.Common.UserManager;
using Tiobon.Core.Common;
using Tiobon.Core.Model;
using AgileObjects.AgileMapper;
namespace Tiobon.Core.Services
namespace Tiobon.Core.Services;
/// <summary>
/// 培训讲师异动 (服务)
/// </summary>
public class Ghre_TeacherChangeServices : BaseServices<Ghre_TeacherChange, Ghre_TeacherChangeDto, InsertGhre_TeacherChangeInput, EditGhre_TeacherChangeInput>, IGhre_TeacherChangeServices
{
/// <summary>
/// 培训讲师异动 (服务)
/// </summary>
public class Ghre_TeacherChangeServices : BaseServices<Ghre_TeacherChange, Ghre_TeacherChangeDto, InsertGhre_TeacherChangeInput, EditGhre_TeacherChangeInput>, IGhre_TeacherChangeServices
private readonly IBaseRepository<Ghre_TeacherChange> _dal;
private IGhre_AttachmentServices _ghre_AttachmentServices;
private IGhre_TeacherChangeAttachmentServices _ghre_TeacherChangeAttachmentServices;
public Ghre_TeacherChangeServices(ICaching caching,
IGhre_AttachmentServices ghre_AttachmentServices,
IGhre_TeacherChangeAttachmentServices ghre_TeacherChangeAttachmentServices, IBaseRepository<Ghre_TeacherChange> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
_ghre_AttachmentServices = ghre_AttachmentServices;
_ghre_TeacherChangeAttachmentServices = ghre_TeacherChangeAttachmentServices;
}
public override async Task<ServicePageResult<Ghre_TeacherChangeDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
var result = await base.QueryFilterPage(filter, condition, IsEnable);
return result;
}
public override async Task<ServiceFormResult<Ghre_TeacherChangeDto>> QueryForm(QueryForm body)
{
var data = await base.QueryForm(body);
var entitys = data.result.DT_TableDataT1;
var ids = entitys.Select(x => x.Id).ToList();
var teacherAttachments = await _ghre_TeacherChangeAttachmentServices.QueryDto(x => ids.Contains(x.TeacherChangeId.Value));
var ids1 = teacherAttachments.Select(x => x.Id.ToString()).ToList();
var attachments = await _ghre_AttachmentServices.QueryDto(x => ids1.Contains(x.TableName));
teacherAttachments.ForEach(x =>
{
x.Attachments = attachments.Where(o => o.TableName == x.Id.ToString()).ToList();
});
entitys.ForEach(x =>
{
x.TeacherAttachments = teacherAttachments.Where(o => o.TeacherChangeId == x.Id).ToList();
});
data.result.DT_TableDataT1 = entitys;
return data;
}
public override async Task<long> Add(InsertGhre_TeacherChangeInput entity)
{
if (entity.TeacherType == "In")
{
entity.SchoolId = null;
var staff = await Db.Queryable<Ghra_Staff>().FirstAsync(x => x.StaffID == entity.StaffId);
if (staff != null)
{
entity.TeacherNo = staff.StaffNo;
entity.TeacherName = staff.StaffName;
}
}
else
{
entity.DeptID = null;
entity.StaffId = null;
}
var id = await base.Add(entity);
var sql = $"SELECT MAX(id)+1 FROM Ghre_Teacher WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghre_Teacher SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
if (entity.TeacherAttachments != null && entity.TeacherAttachments.Any())
{
for (int i = 0; i < entity.TeacherAttachments.Count; i++)
{
var insert = entity.TeacherAttachments[i];
insert.TeacherChangeId = id;
var teacherAttachmentId = await _ghre_TeacherChangeAttachmentServices.Add(insert);
if (insert.Attachments != null && insert.Attachments.Any())
for (int j = 0; j < insert.Attachments.Count; j++)
{
await Db.Updateable<Ghre_Attachment>()
.SetColumns(it => new Ghre_Attachment() { TableName = teacherAttachmentId.ToString(), UpdateTime = DateTime.Now })
.Where(it => it.RelativePath == insert.Attachments[j].RelativePath)
.ExecuteCommandAsync();
}
}
}
return id;
}
public override async Task<bool> Update(long Id, EditGhre_TeacherChangeInput editModel)
{
if (editModel.TeacherType == "In")
{
editModel.SchoolId = null;
var staff = await Db.Queryable<Ghra_Staff>().FirstAsync(x => x.StaffID == editModel.StaffId);
if (staff != null)
{
editModel.TeacherNo = staff.StaffNo;
editModel.TeacherName = staff.StaffName;
}
}
else
{
editModel.DeptID = null;
editModel.StaffId = null;
}
var result = await base.Update(Id, editModel, null, ["Status"]);
await _ghre_TeacherChangeAttachmentServices.Delete(x => x.TeacherChangeId == Id);
if (editModel.TeacherAttachments != null && editModel.TeacherAttachments.Any())
{
for (int i = 0; i < editModel.TeacherAttachments.Count; i++)
{
var insert = editModel.TeacherAttachments[i];
insert.TeacherId = Id;
var TeacherAttachmentId = await _ghre_TeacherChangeAttachmentServices.Add(Mapper.Map(insert).ToANew<InsertGhre_TeacherChangeAttachmentInput>());
if (insert.Attachments != null && insert.Attachments.Any())
for (int j = 0; j < insert.Attachments.Count; j++)
{
await Db.Updateable<Ghre_Attachment>()
.SetColumns(it => new Ghre_Attachment() { TableName = TeacherAttachmentId.ToString(), UpdateTime = DateTime.Now })
.Where(it => it.RelativePath == insert.Attachments[j].RelativePath)
.ExecuteCommandAsync();
}
}
}
return result;
}
public async Task<ServiceResult<long>> InsertByStatus(InsertGhre_TeacherChangeInput insertModel, string status)
{
var data = ServiceResult<long>.OprateSuccess("新增成功", 0);
insertModel.Status = status;
var id = await Add(insertModel);
data.Success = id > 0;
if (data.Success)
data.Data = id;
else
return ServiceResult<long>.OprateFailed("发布成功!");
return data;
}
public async Task<ServiceResult> UpdateStatus(InsertGhre_TeacherChangeInput input, string status)
{
private readonly IBaseRepository<Ghre_TeacherChange> _dal;
public Ghre_TeacherChangeServices(ICaching caching, IBaseRepository<Ghre_TeacherChange> dal)
HttpRequest request = UserContext.Context.Request;
var api = request.Path.ObjToString().TrimEnd('/').ToLower();
var ip = GetUserIp(UserContext.Context);
var entities = new List<Ghre_TeacherChange>();
foreach (var id in input.Ids)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
if (!BaseDal.Any(id))
continue;
var entity = await BaseDal.QueryById(id);
switch (status)
{
case DIC_REQUEST_STATUS.Active:
entity.AgreeReason = input.Reason;
entity.AgreeTime = DateTime.Now;
entity.AgreeUserId = App.User.ID;
break;
case DIC_REQUEST_STATUS.Temporary:
entity.RefuseReason = input.Reason;
entity.RefuseTime = DateTime.Now;
entity.RefuseUserId = App.User.ID;
break;
}
entity.UpdateIP = ip;
entity.UpdateProg = api;
entity.Status = status;
entities.Add(entity);
}
var result = await BaseDal.Update(entities);
return ServiceResult.OprateSuccess("执行成功!");
}
}
Loading…
Cancel
Save