【牛尾】培训计划

master
xiaochanghai 4 months ago
parent 3667756918
commit 647e772011
  1. 36
      Tiobon.Core.Api/Controllers/Ghre/Ghre_UshioPlanController.cs
  2. 8
      Tiobon.Core.Api/Tiobon.Core.xml
  3. 7
      Tiobon.Core.IServices/Ghre/IGhre_UshioPlanServices.cs
  4. 2
      Tiobon.Core.Model/Base/Ghre/Ghre_UshioPlan.Dto.Base.cs
  5. 2
      Tiobon.Core.Model/Insert/Ghre/Ghre_UshioPlan.Dto.InsertInput.cs
  6. 6
      Tiobon.Core.Model/View/Ghre/Ghre_UshioPlan.Dto.View.cs
  7. 115
      Tiobon.Core.Services/Ghre/Ghre_UshioPlanServices.cs

@ -11,4 +11,40 @@ public class Ghre_UshioPlanController : BaseController<IGhre_UshioPlanServices,
public Ghre_UshioPlanController(IGhre_UshioPlanServices service) : base(service) public Ghre_UshioPlanController(IGhre_UshioPlanServices service) : base(service)
{ {
} }
#region 查询
/// <summary>
/// 根据条件查询数据
/// </summary>
/// <param name="body">条件</param>
/// <param name="status">status</param>
/// <returns></returns>
[HttpPost, Route("QueryList/{status}")]
public async Task<ServicePageResult<Ghre_UshioPlanDto>> QueryByStatus([FromBody] QueryBody body, string status)
{
if (status == "Active")
return await _service.QueryFilterPage(body, $"(Status ='Active' OR Status ='Wait')");
else if (status == "Disable")
return await _service.QueryFilterPage(body, null, false);
else
return await _service.QueryFilterPage(body, $"Status ='{status}'");
}
#endregion
#region 状态修改
[HttpPost("UpdateStatus/{status}")]
public async Task<ServiceResult> UpdateStatus(string status, [FromBody] InsertGhre_UshioPlanInput input)
{
return await _service.UpdateStatus(input, status);
}
#endregion
#region 新增
[HttpPost("Insert/{status}")]
public async Task<ServiceResult<long>> InsertByStatus([FromBody] InsertGhre_UshioPlanInput insertModel, string status)
{
return await _service.InsertByStatus(insertModel, status);
}
#endregion
} }

@ -1401,6 +1401,14 @@
【牛尾】培训计划(Controller) 【牛尾】培训计划(Controller)
</summary> </summary>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_UshioPlanController.QueryByStatus(Tiobon.Core.Common.QueryBody,System.String)">
<summary>
根据条件查询数据
</summary>
<param name="body">条件</param>
<param name="status">status</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrh_AssessConfigController"> <member name="T:Tiobon.Core.Api.Controllers.Ghrh_AssessConfigController">
<summary> <summary>
面试评估设定(Controller) 面试评估设定(Controller)

@ -1,8 +1,13 @@
namespace Tiobon.Core.IServices; using Tiobon.Core.Model;
namespace Tiobon.Core.IServices;
/// <summary> /// <summary>
/// 【牛尾】培训计划(自定义服务接口) /// 【牛尾】培训计划(自定义服务接口)
/// </summary> /// </summary>
public interface IGhre_UshioPlanServices : IBaseServices<Ghre_UshioPlan, Ghre_UshioPlanDto, InsertGhre_UshioPlanInput, EditGhre_UshioPlanInput> public interface IGhre_UshioPlanServices : IBaseServices<Ghre_UshioPlan, Ghre_UshioPlanDto, InsertGhre_UshioPlanInput, EditGhre_UshioPlanInput>
{ {
Task<ServiceResult<long>> InsertByStatus(InsertGhre_UshioPlanInput insertModel, string status);
Task<ServiceResult> UpdateStatus(InsertGhre_UshioPlanInput input, string status);
} }

@ -189,4 +189,6 @@ public class Ghre_UshioPlanBase
/// 预留字段12 /// 预留字段12
/// </summary> /// </summary>
public int? ReverseI2 { get; set; } public int? ReverseI2 { get; set; }
public List<int> StaffId { get; set; }
} }

@ -23,4 +23,6 @@ namespace Tiobon.Core.Model.Models;
/// </summary> /// </summary>
public class InsertGhre_UshioPlanInput : Ghre_UshioPlanBase public class InsertGhre_UshioPlanInput : Ghre_UshioPlanBase
{ {
public List<long> Ids { get; set; }
public string Reason { get; set; }
} }

@ -31,4 +31,10 @@ public class Ghre_UshioPlanDto : Ghre_UshioPlan
/// 修改信息 /// 修改信息
/// </summary> /// </summary>
public string UpdateDataInfo { get; set; } public string UpdateDataInfo { get; set; }
public string StaffNames { get; set; }
public string DeptName { get; set; }
public string SchoolName { get; set; }
public List<int> StaffId { get; set; }
} }

@ -1,4 +1,7 @@
namespace Tiobon.Core.Services; using static Tiobon.Core.Model.Consts;
using Tiobon.Core.Common.DB.Dapper.Extensions;
namespace Tiobon.Core.Services;
/// <summary> /// <summary>
/// 【牛尾】培训计划 (服务) /// 【牛尾】培训计划 (服务)
@ -12,4 +15,114 @@ public class Ghre_UshioPlanServices : BaseServices<Ghre_UshioPlan, Ghre_UshioPla
base.BaseDal = dal; base.BaseDal = dal;
base._caching = caching; base._caching = caching;
} }
public override async Task<ServicePageResult<Ghre_UshioPlanDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
var result = await base.QueryFilterPage(filter, condition, IsEnable);
var DT_TableDataT1 = result.result.DT_TableDataT1;
var deptIds = DT_TableDataT1.Select(x => x.DeptId).Distinct().ToList();
var courseIds = DT_TableDataT1.Select(x => x.CourseId).Distinct().ToList();
var staffIds = new List<int>();
for (int i = 0; i < DT_TableDataT1.Count; i++)
{
if (DT_TableDataT1[i].StaffIds.IsNotEmptyOrNull())
staffIds.AddRange(JsonHelper.JsonToObj<List<int>>(DT_TableDataT1[i].StaffIds));
DT_TableDataT1[i].TrainCategory = await GetParaLabel("TrainingCategory", DT_TableDataT1[i].TrainCategory);
DT_TableDataT1[i].Month = await GetParaLabel("MonthSelect", DT_TableDataT1[i].Month);
}
staffIds = staffIds.Distinct().ToList();
var staffs = await Db.Queryable<Ghra_Staff>().Where(x => staffIds.Contains(x.StaffID)).ToListAsync();
var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIds.Contains(x.DeptID)).ToListAsync();
var courses = await Db.Queryable<Ghre_Course>().Where(x => courseIds.Contains(x.Id)).ToListAsync();
for (int i = 0; i < DT_TableDataT1.Count; i++)
{
if (DT_TableDataT1[i].StaffIds.IsNotEmptyOrNull())
{
var staffIds1 = JsonHelper.JsonToObj<List<int>>(DT_TableDataT1[i].StaffIds);
if (staffIds1.Any())
DT_TableDataT1[i].StaffNames = string.Join("、", staffs.Where(x => staffIds1.Contains(x.StaffID)).Select(x => x.StaffName));
}
DT_TableDataT1[i].CourseName = courses.Where(x => x.Id == DT_TableDataT1[i].CourseId).Select(x => x.CourseName).FirstOrDefault();
DT_TableDataT1[i].DeptName = depts.Where(x => x.DeptID == DT_TableDataT1[i].DeptId).Select(x => x.DeptName).FirstOrDefault();
}
return result;
}
public override async Task<long> Add(InsertGhre_UshioPlanInput entity)
{
if (entity.StaffId != null)
entity.StaffIds = JsonHelper.ObjToJson(entity.StaffId);
var result = await base.Add(entity);
return result;
}
public override async Task<bool> Update(long Id, EditGhre_UshioPlanInput editModel)
{
if (editModel.StaffId != null)
editModel.StaffIds = JsonHelper.ObjToJson(editModel.StaffId);
var result = await base.Update(Id, editModel, null, ["Status"]);
return result;
}
public override async Task<ServiceFormResult<Ghre_UshioPlanDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
string StaffIds = result.result.DT_TableDataT1[0].StaffIds;
if (!string.IsNullOrWhiteSpace(StaffIds))
result.result.DT_TableDataT1[0].StaffId = JsonConvert.DeserializeObject<List<int>>(StaffIds);
return result;
}
public async Task<ServiceResult<long>> InsertByStatus(InsertGhre_UshioPlanInput insertModel, string status)
{
if (insertModel.StaffId != null)
insertModel.StaffIds = JsonHelper.ObjToJson(insertModel.StaffId);
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_UshioPlanInput 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_UshioPlan>();
foreach (var id in input.Ids)
{
if (!BaseDal.Any(id))
continue;
var entity = await BaseDal.QueryById(id);
entity.UpdateIP = ip;
entity.UpdateProg = api;
entity.Status = status;
entities.Add(entity);
}
var result = await BaseDal.Update(entities);
return ServiceResult.OprateSuccess("执行成功!");
}
} }
Loading…
Cancel
Save