培训计划

master
xiaochanghai 4 months ago
parent 9252216a5e
commit c73f73f421
  1. 18
      Tiobon.Core.Api/Controllers/Ghre/Ghre_PlanController.cs
  2. 70
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 7
      Tiobon.Core.IServices/Ghre/IGhre_PlanServices.cs
  4. 41
      Tiobon.Core.Model/Base/Ghre/Ghre_Plan.Dto.Base.cs
  5. 4
      Tiobon.Core.Model/Insert/Ghre/Ghre_Plan.Dto.InsertInput.cs
  6. 41
      Tiobon.Core.Model/Models/Ghre/Ghre_Plan.cs
  7. 4
      Tiobon.Core.Services/CommonServices.cs
  8. 2
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs
  9. 33
      Tiobon.Core.Services/Ghre/Ghre_PlanServices.cs
  10. 70
      Tiobon.Core/Tiobon.Core.Model.xml

@ -12,8 +12,6 @@ public class Ghre_PlanController : BaseController<IGhre_PlanServices, Ghre_Plan,
{
}
#region 查询
/// <summary>
/// 根据条件查询数据
@ -32,4 +30,20 @@ public class Ghre_PlanController : BaseController<IGhre_PlanServices, Ghre_Plan,
return await _service.QueryFilterPage(body, $"Status ='{status}'");
}
#endregion
#region 状态修改
[HttpPost("UpdateStatus/{status}")]
public async Task<ServiceResult> UpdateStatus(string status, [FromBody] InsertGhre_PlanInput input)
{
return await _service.UpdateStatus(input, status);
}
#endregion
#region 新增
[HttpPost("Insert/{status}")]
public async Task<ServiceResult<long>> InsertByStatus([FromBody] InsertGhre_PlanInput insertModel, string status)
{
return await _service.InsertByStatus(insertModel, status);
}
#endregion
}

@ -5640,6 +5640,41 @@
计划实施月份
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.AgreeUserId">
<summary>
同意人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.AgreeTime">
<summary>
同意时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.AgreeReason">
<summary>
同意理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RefuseUserId">
<summary>
拒绝人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RefuseTime">
<summary>
拒绝时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RefuseReason">
<summary>
拒绝理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RemarkSz">
<summary>
备注
@ -20856,6 +20891,41 @@
计划实施月份
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.AgreeUserId">
<summary>
同意人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.AgreeTime">
<summary>
同意时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.AgreeReason">
<summary>
同意理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RefuseUserId">
<summary>
拒绝人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RefuseTime">
<summary>
拒绝时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RefuseReason">
<summary>
拒绝理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RemarkSz">
<summary>
备注

@ -1,8 +1,13 @@
namespace Tiobon.Core.IServices;
using Tiobon.Core.Model;
namespace Tiobon.Core.IServices;
/// <summary>
/// 培训计划(自定义服务接口)
/// </summary>
public interface IGhre_PlanServices : IBaseServices<Ghre_Plan, Ghre_PlanDto, InsertGhre_PlanInput, EditGhre_PlanInput>
{
Task<ServiceResult<long>> InsertByStatus(InsertGhre_PlanInput insertModel, string status);
Task<ServiceResult> UpdateStatus(InsertGhre_PlanInput input, string status);
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/2/27 14:48:56 SimonHsiao
*V0.01 2025/3/3 13:13:42 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -64,8 +64,47 @@ public class Ghre_PlanBase
/// <summary>
/// 计划实施月份
/// </summary>
[Display(Name = "Month"), Description("计划实施月份"), MaxLength(32, ErrorMessage = "计划实施月份 不能超过 32 个字符")]
public string Month { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary>
/// 同意人
/// </summary>
public long? AgreeUserId { get; set; }
/// <summary>
/// 同意时间
/// </summary>
public DateTime? AgreeTime { get; set; }
/// <summary>
/// 同意理由
/// </summary>
[Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
public string AgreeReason { get; set; }
/// <summary>
/// 拒绝人
/// </summary>
public long? RefuseUserId { get; set; }
/// <summary>
/// 拒绝时间
/// </summary>
public DateTime? RefuseTime { get; set; }
/// <summary>
/// 拒绝理由
/// </summary>
[Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
public string RefuseReason { get; set; }
/// <summary>
/// 备注
/// </summary>

@ -13,7 +13,7 @@
*  
* SimonHsiao
*
*/
*/
namespace Tiobon.Core.Model.Models;
@ -23,4 +23,6 @@ namespace Tiobon.Core.Model.Models;
/// </summary>
public class InsertGhre_PlanInput : Ghre_PlanBase
{
public List<long> Ids { get; set; }
public string Reason { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/2/27 14:48:56 SimonHsiao
*V0.01 2025/3/3 13:13:42 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -65,8 +65,47 @@ public class Ghre_Plan : BasePoco
/// <summary>
/// 计划实施月份
/// </summary>
[Display(Name = "Month"), Description("计划实施月份"), MaxLength(32, ErrorMessage = "计划实施月份 不能超过 32 个字符")]
public string Month { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary>
/// 同意人
/// </summary>
public long? AgreeUserId { get; set; }
/// <summary>
/// 同意时间
/// </summary>
public DateTime? AgreeTime { get; set; }
/// <summary>
/// 同意理由
/// </summary>
[Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
public string AgreeReason { get; set; }
/// <summary>
/// 拒绝人
/// </summary>
public long? RefuseUserId { get; set; }
/// <summary>
/// 拒绝时间
/// </summary>
public DateTime? RefuseTime { get; set; }
/// <summary>
/// 拒绝理由
/// </summary>
[Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
public string RefuseReason { get; set; }
/// <summary>
/// 备注
/// </summary>

@ -2097,7 +2097,7 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnKey = "TBD7YN",
fnTitle = await QueryLangValue("F_Training_Demand_ToConfirm_Reject", param.langId, "拒绝"),
fnType = "table",
icon = "ess-icon-reject",
@ -2106,7 +2106,7 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnKey = "TBD6YN",
fnTitle = await QueryLangValue("F_Training_Demand_ToConfirm_Agree", param.langId, "同意"),
fnType = "table",
icon = "ess-icon-approval",

@ -727,7 +727,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
else
x.AfterHowLongLabel = $"学完{x.AfterHowLong}天";
x.ExamModeLabel = x.ExamMode == "Online" ? "线上考试" : "线下实操";
x.ExamModeLabel = (x.ExamMode == "Online" || x.ExamMode.IsNullOrEmpty()) ? "线上考试" : "线下实操";
if (!toolbars.Any(x => x.fnKey == "UpdateYN"))
x.canEdit = 0;

@ -70,7 +70,7 @@ public class Ghre_PlanServices : BaseServices<Ghre_Plan, Ghre_PlanDto, InsertGhr
if (editModel.StaffIdList != null)
editModel.StaffIds = JsonHelper.ObjToJson(editModel.StaffIdList);
var result = await base.Update(Id, editModel);
var result = await base.Update(Id, editModel, null, ["Status"]);
return result;
}
@ -82,12 +82,14 @@ public class Ghre_PlanServices : BaseServices<Ghre_Plan, Ghre_PlanDto, InsertGhr
result.result.DT_TableDataT1[0].StaffIdList = JsonConvert.DeserializeObject<List<int>>(StaffIds);
return result;
}
}
public async Task<ServiceResult<long>> InsertByStatus(InsertGhre_RequestInput insertModel, string status)
public async Task<ServiceResult<long>> InsertByStatus(InsertGhre_PlanInput insertModel, string status)
{
if (insertModel.StaffIdList != null)
insertModel.StaffIds = JsonHelper.ObjToJson(insertModel.StaffIdList);
var data = ServiceResult<long>.OprateSuccess("新增成功", 0);
insertModel.Status = status;
var id = await Add(insertModel);
@ -96,30 +98,19 @@ public class Ghre_PlanServices : BaseServices<Ghre_Plan, Ghre_PlanDto, InsertGhr
if (data.Success)
data.Data = id;
else
return ServiceResult<long>.OprateFailed("发布成功!");
return ServiceResult<long>.OprateFailed("失败!");
return data;
}
public override async Task<ServiceFormResult<Ghre_RequestDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
string trainStaffId = result.result.DT_TableDataT1[0].TrainStaffId;
if (!string.IsNullOrWhiteSpace(trainStaffId))
result.result.DT_TableDataT1[0].TrainStaffIds = JsonHelper.JsonToObj<List<int>>(trainStaffId);
else result.result.DT_TableDataT1[0].TrainStaffIds = new List<int>();
return result;
}
public async Task<ServiceResult> UpdateStatus(InsertGhre_RequestInput input, string status)
public async Task<ServiceResult> UpdateStatus(InsertGhre_PlanInput input, string status)
{
HttpRequest request = UserContext.Context.Request;
var api = request.Path.ObjToString().TrimEnd('/').ToLower();
var ip = GetUserIp(UserContext.Context);
var entities = new List<Ghre_Request>();
var entities = new List<Ghre_Plan>();
foreach (var id in input.Ids)
{
if (!BaseDal.Any(id))
@ -150,12 +141,6 @@ public class Ghre_PlanServices : BaseServices<Ghre_Plan, Ghre_PlanDto, InsertGhr
var result = await BaseDal.Update(entities);
return ServiceResult.OprateSuccess("执行成功!");
//if (status == Consts.DIC_COURSE_STATUS.RELEASED)
// return ServiceResult.OprateSuccess("发布成功!");
//else if (status == Consts.DIC_COURSE_STATUS.DRAFT)
// return ServiceResult.OprateSuccess("已启用成功,请进入草稿箱查看!");
//else
// return ServiceResult.OprateSuccess("停用成功!");
}
}

@ -5640,6 +5640,41 @@
计划实施月份
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.AgreeUserId">
<summary>
同意人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.AgreeTime">
<summary>
同意时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.AgreeReason">
<summary>
同意理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RefuseUserId">
<summary>
拒绝人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RefuseTime">
<summary>
拒绝时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RefuseReason">
<summary>
拒绝理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_PlanBase.RemarkSz">
<summary>
备注
@ -20856,6 +20891,41 @@
计划实施月份
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.AgreeUserId">
<summary>
同意人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.AgreeTime">
<summary>
同意时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.AgreeReason">
<summary>
同意理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RefuseUserId">
<summary>
拒绝人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RefuseTime">
<summary>
拒绝时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RefuseReason">
<summary>
拒绝理由
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Plan.RemarkSz">
<summary>
备注

Loading…
Cancel
Save