From f5c8f659e4e6caf29be504841bb8a8424e0eebb5 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 28 Dec 2023 17:57:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=A1=A3=E6=A1=88=E8=A1=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=B0=83=E6=95=B4,=E4=BB=A3=E7=A0=81=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MealUser/Request/GainfoAddSaveRequest.cs | 14 -- .../MealUser/Response/GainfoPageResponse.cs | 175 ------------------ .../MealUser/Services/IGainfoService.cs | 19 -- .../Services/Implements/GainfoService.cs | 120 ------------ .../Controllers/GainfoController.cs | 80 -------- .../Controllers/GainfosController.cs | 72 ++++++- .../Request/GainfoDImissionRequest.cs | 2 +- .../Request/GainfoPageRequest.cs | 2 +- .../Organization/Request/GainfoSaveRequest.cs | 158 ++++++++++++++++ .../Response/GainfoPageResponse.cs | 144 ++++++++++++++ .../Organization/Services/IGainfoService.cs | 15 +- .../Services/Implements/GainfoService.cs | 125 +++++++++++++ 12 files changed, 512 insertions(+), 414 deletions(-) delete mode 100644 Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs delete mode 100644 Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs delete mode 100644 Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs delete mode 100644 Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs delete mode 100644 Src/Dlhis.Basic/Organization/Controllers/GainfoController.cs rename Src/Dlhis.Basic/{MealUser => Organization}/Request/GainfoDImissionRequest.cs (86%) rename Src/Dlhis.Basic/{MealUser => Organization}/Request/GainfoPageRequest.cs (88%) create mode 100644 Src/Dlhis.Basic/Organization/Request/GainfoSaveRequest.cs create mode 100644 Src/Dlhis.Basic/Organization/Response/GainfoPageResponse.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs diff --git a/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs b/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs deleted file mode 100644 index c008dfb7..00000000 --- a/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Dlhis.Basic.MealUser.Response; -using Dlhis.Entity.Basic.Entity; -using Dlhis.Entity.Basic.Enums; -using Dlhis.Entity.Canteen.Enums; -using System.ComponentModel.DataAnnotations; - -namespace Dlhis.Basic.MealUser.Request -{ - public class GainfoAddSaveRequest - { - - public GainfoPageResponse gainfoPageResponse { get; set; } - } -} diff --git a/Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs b/Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs deleted file mode 100644 index 02c14a8e..00000000 --- a/Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs +++ /dev/null @@ -1,175 +0,0 @@ -using SqlSugar; - -namespace Dlhis.Basic.MealUser.Response -{ - public class GainfoPageResponse - { - /// - /// 档案号 - /// - [SugarColumn(ColumnDescription = "档案号")] - public string Guestno { get; set; } - - /// - /// SAP内部编号 - /// - [SugarColumn(ColumnDescription = "SAP内部编号")] - public string Ano { get; set; } - - /// - /// 人员类型 - /// - [SugarColumn(ColumnDescription = "人员类型")] - public string Class { get; set; } - - /// - /// 姓名 - /// - [SugarColumn(ColumnDescription = "姓名")] - public string Gname { get; set; } - - /// - /// 工号 - /// - [SugarColumn(ColumnDescription = "工号")] - public string Ename { get; set; } - - /// - /// 国家代码 - /// - [SugarColumn(ColumnDescription = "国家代码")] - public string Country { get; set; } - - /// - /// 证件类型代码 - /// - [SugarColumn(ColumnDescription = "证件类型代码")] - public string Idcls { get; set; } - - /// - /// 身份证号 - /// - [SugarColumn(ColumnDescription = "身份证号")] - public string IdNO { get; set; } - - /// - /// 身份证籍贯区域代码 - /// - [SugarColumn(ColumnDescription = "身份证籍贯区域代码")] - public string Native { get; set; } - - /// - /// 性别 - /// - [SugarColumn(ColumnDescription = "性别")] - public string Sex { get; set; } - - /// - /// 生日 - /// - [SugarColumn(ColumnDescription = "生日")] - public DateTime Birthday { get; set; } - - /// - /// 身份证地址 - /// - [SugarColumn(ColumnDescription = "身份证地址")] - public string Address { get; set; } - - /// - /// 已婚/未婚 - /// - [SugarColumn(ColumnDescription = "已婚/未婚")] - public string Postcode { get; set; } - - /// - /// 部门编码 - /// - [SugarColumn(ColumnDescription = "部门编码")] - public string Appellation { get; set; } - - /// - /// 民族代码 - /// - [SugarColumn(ColumnDescription = "民族代码")] - public string Nation { get; set; } - - /// - /// 手机号码 - /// - [SugarColumn(ColumnDescription = "手机号码")] - public string Phone { get; set; } - - /// - /// 联系电话 - /// - [SugarColumn(ColumnDescription = "联系电话")] - public string Mobile { get; set; } - - /// - /// 学历 - /// - [SugarColumn(ColumnDescription = "学历")] - public string Degree { get; set; } - - /// - /// 岗位 - /// - [SugarColumn(ColumnDescription = "岗位")] - public string Web { get; set; } - - /// - /// 备注 - /// - [SugarColumn(ColumnDescription = "备注")] - public string Remark { get; set; } - - /// - /// 操作账号 - /// - [SugarColumn(ColumnDescription = "操作账号")] - public string Log_id { get; set; } - - /// - /// 操作班次 - /// - [SugarColumn(ColumnDescription = "操作班次")] - public string Log_shift { get; set; } - - /// - /// 操作时间 - /// - [SugarColumn(ColumnDescription = "操作时间")] - public DateTime Log_date { get; set; } - - /// - /// 操作IP - /// - [SugarColumn(ColumnDescription = "操作IP")] - public string Log_ip { get; set; } - - /// - /// 是否在职 F 在职 T离职 - /// - [SugarColumn(ColumnDescription = "是否在职 F 在职 T离职")] - public string Isowner { get; set; } - - /// - /// 创建时间 - /// - [SugarColumn(ColumnDescription = "创建时间")] - public DateTime Createdate { get; set; } - - /// - /// 外文名字 - /// - [SugarColumn(ColumnDescription = "外文名字")] - public string Gname_en { get; set; } - - /// - /// 卡号 - /// - [SugarColumn(ColumnDescription = "卡号")] - public string CarNo { get; set; } - } -} diff --git a/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs b/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs deleted file mode 100644 index f650735e..00000000 --- a/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Dlhis.Basic.MealUser.Request; -using Dlhis.Basic.MealUser.Response; -using Dlhis.Entity.Basic.Entity; -using Kurisu.Core.DataAccess.Dto; -using Microsoft.AspNetCore.Mvc; - -namespace Dlhis.Basic.MealUser.Services -{ - public interface IGainfoService : IScopeDependency - { - Task SaveAsync(GainfoAddSaveRequest request); - Task> GetPageAsync(GainfoPageRequest request); - Task UpdateAsync(GainfoAddSaveRequest request); - Task DimissionAsync(GainfoDImissionRequest request); - Task OnboardingAsync(GainfoDImissionRequest request); - - - } -} diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs deleted file mode 100644 index b1d11535..00000000 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs +++ /dev/null @@ -1,120 +0,0 @@ -using Dlhis.Basic.BusinessPlace.Response; -using Dlhis.Basic.MealUser.Request; -using Dlhis.Basic.MealUser.Response; -using Dlhis.Basic.Organization.Services; -using Dlhis.Entity.Basic.Entity; -using Dlhis.Entity.Basic.Enums; -using Kurisu.AspNetCore.Utils.Extensions; -using Kurisu.Core.DataAccess.Dto; -using Kurisu.SqlSugar.Attributes; -using Kurisu.SqlSugar.Extensions; -using Kurisu.SqlSugar.Services; -using Mapster; -using Microsoft.AspNetCore.Mvc; - -namespace Dlhis.Basic.MealUser.Services.Implements -{ - public class GainfoService : IGainfoService - { - - private readonly IGainfoStore _gainfoStore; - - public GainfoService(IGainfoStore gainfoStore) - { - _gainfoStore = gainfoStore; - } - /// - ///保存档案号 - /// - /// - /// - public async Task SaveAsync(GainfoAddSaveRequest request) - { - await CheckGainfoGuestnoAsync(request);//档案号是否重复 - - var gainfos = new List(); - GainfoEntity aginfoEntity = request.gainfoPageResponse.Adapt(); - aginfoEntity.Guestno = "F" + Guid.NewGuid().ToString(); - gainfos.Add(aginfoEntity); - await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos); - } - /// - /// 档案分页 - /// - /// - /// - public Task> GetPageAsync( GainfoPageRequest request) - { - var page = _gainfoStore.Queryable(request.gainfoStatus) - .Select() - .ToPageListAsync(request); - return page; - } - /// - ///修改档案号 - /// - /// - /// - public async Task UpdateAsync(GainfoAddSaveRequest request) - { - var gainfos = new List(); - GainfoEntity aginfoEntity = request.gainfoPageResponse.Adapt(); - gainfos.Add(aginfoEntity); - await _gainfoStore.UpdateAsync(GainfoStatusEnumType.Working, gainfos); - } - /// - /// 正式转离职 - /// - /// - /// - /// - [Transactional] - public async Task DimissionAsync(GainfoDImissionRequest request) - { - var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) - .Where(x => x.Guestno == request.UserId) - .FirstAsync(); - gainfo.ThrowIfNull($"该档案不存在"); - //添加到离职表 - var gainfos = new List(); - gainfos.Add(gainfo); - await _gainfoStore.InsertAsync(GainfoStatusEnumType.Leave, gainfos); - //删除原数据 - await _gainfoStore.DeleteAsync(GainfoStatusEnumType.Working, gainfos); - } - /// - /// 临时转正式 - /// - /// - /// - /// - [Transactional] - public async Task OnboardingAsync(GainfoDImissionRequest request) - { - var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.External) - .Where(x => x.Guestno == request.UserId) - .FirstAsync(); - gainfo.ThrowIfNull($"该档案不存在"); - //添加到正式表 - var gainfos = new List(); - gainfos.Add(gainfo); - await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos); - //保留原数据 - } - - //-------------------------------------------help methods ------------------------------------------------ - /// - /// 检查档案号是否重复 - /// - /// - /// - private async Task CheckGainfoGuestnoAsync(GainfoAddSaveRequest request) - { - - var checkGainfoGuestno = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) - .Where(x => x.Guestno == request.gainfoPageResponse.Guestno) - .AnyAsync(); - checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoPageResponse.Guestno}]已存在"); - } - } -} diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoController.cs deleted file mode 100644 index be14322b..00000000 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoController.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Dlhis.Basic.MealUser.Request; -using Dlhis.Basic.MealUser.Response; -using Dlhis.Basic.MealUser.Services; -using Kurisu.Core.DataAccess.Dto; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; - -namespace Dlhis.Basic.MealUser.Controllers; - -/// -/// 档案表 -/// -[Authorize] -[Route("api/[controller]")] -[ApiController] -public class GainfoController : ControllerBase -{ - private readonly IGainfoService _gainfoService; - - public GainfoController(IGainfoService gainfoService) - { - _gainfoService = gainfoService; - } - - /// - /// 档案表保存 - /// - /// - /// - [HttpPost("save")] - public async Task SaveAsync(GainfoAddSaveRequest request) - { - await _gainfoService.SaveAsync(request); - } - - /// - /// 档案分页 - /// - /// - /// - [HttpGet("page")] - public async Task> GetPageAsync([FromQuery] GainfoPageRequest request) - { - //var enums = await _enumSettingApi.GetEnums(); - return await _gainfoService.GetPageAsync(request); - } - - /// - /// 档案表修改 - /// - /// - /// - [HttpPut("update")] - public async Task UpdateAsync(GainfoAddSaveRequest request) - { - await _gainfoService.UpdateAsync(request); - } - /// - /// 离职 - /// - /// - /// - [HttpPost("dimission")] - public async Task DimissionAsync(GainfoDImissionRequest request) - { - await _gainfoService.DimissionAsync(request); - } - - /// - /// 入职 - /// - /// - /// - [HttpPost("Onboarding")] - public async Task OnboardingAsync(GainfoDImissionRequest request) - { - await _gainfoService.OnboardingAsync(request); - } -} - diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs index 82631ef8..aeaf2a26 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs @@ -1,15 +1,81 @@ -using Microsoft.AspNetCore.Authorization; +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Response; +using Dlhis.Basic.Organization.Services; +using Kurisu.Core.DataAccess.Dto; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -namespace Dlhis.Basic.Organization.Controllers; +namespace Dlhis.Basic.MealUser.Controllers; /// -/// 档案 +/// 档案表 /// [Authorize] [Route("api/[controller]")] [ApiController] public class GainfosController : ControllerBase { + private readonly IGainfoService _gainfoService; + public GainfosController(IGainfoService gainfoService) + { + _gainfoService = gainfoService; + } + + /// + /// 档案表保存 + /// + /// + /// + [HttpPost("save")] + public async Task SaveAsync(GainfoSaveRequest request) + { + await _gainfoService.SaveAsync(request); + } + + /// + /// 档案分页 + /// + /// + /// + [HttpGet("page")] + public async Task> GetPageAsync([FromQuery] GainfoPageRequest request) + { + //var enums = await _enumSettingApi.GetEnums(); + return await _gainfoService.GetPageAsync(request); + } + + /// + /// 档案表修改 + /// + /// + /// + [HttpPut("update")] + public async Task UpdateAsync(GainfoSaveRequest request) + { + await _gainfoService.UpdateAsync(request); + } + + /// + /// 离职 + /// + /// + /// + [HttpPost("dimission")] + public async Task DimissionAsync(GainfoDImissionRequest request) + { + await _gainfoService.DimissionAsync(request); + } + + /// + /// 入职 + /// + /// + /// + [HttpPost("onboarding")] + public async Task OnboardingAsync(GainfoDImissionRequest request) + { + await _gainfoService.OnboardingAsync(request); + } } + diff --git a/Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoDImissionRequest.cs similarity index 86% rename from Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs rename to Src/Dlhis.Basic/Organization/Request/GainfoDImissionRequest.cs index 697e795e..c60941be 100644 --- a/Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs +++ b/Src/Dlhis.Basic/Organization/Request/GainfoDImissionRequest.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace Dlhis.Basic.MealUser.Request +namespace Dlhis.Basic.Organization.Request { public class GainfoDImissionRequest { diff --git a/Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoPageRequest.cs similarity index 88% rename from Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs rename to Src/Dlhis.Basic/Organization/Request/GainfoPageRequest.cs index 4b554cba..a738acc4 100644 --- a/Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs +++ b/Src/Dlhis.Basic/Organization/Request/GainfoPageRequest.cs @@ -3,7 +3,7 @@ using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Dto; using System.ComponentModel.DataAnnotations; -namespace Dlhis.Basic.MealUser.Request +namespace Dlhis.Basic.Organization.Request { public class GainfoPageRequest : PageDto { diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoSaveRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoSaveRequest.cs new file mode 100644 index 00000000..0afe1b5d --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Request/GainfoSaveRequest.cs @@ -0,0 +1,158 @@ +using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Basic.Enums; + +namespace Dlhis.Basic.Organization.Request; + +public class GainfoSaveRequest : IValidatableObject +{ + public long? Id { get; set; } + + /// + /// 查询类型 + /// + [EnumDataType(typeof(GainfoStatusEnumType))] + public GainfoStatusEnumType? GainfoStatus { get; set; } + + /// + /// SAP内部编号 + /// + public string Ano { get; set; } + + /// + /// 人员类型 + /// + public string Class { get; set; } + + /// + /// 姓名 + /// + public string Gname { get; set; } + + /// + /// 工号 + /// + public string Ename { get; set; } + + /// + /// 国家代码 + /// + public string Country { get; set; } + + /// + /// 证件类型代码 + /// + public string Idcls { get; set; } + + /// + /// 身份证号 + /// + public string IdNO { get; set; } + + /// + /// 身份证籍贯区域代码 + /// + public string Native { get; set; } + + /// + /// 性别 + /// + public string Sex { get; set; } + + /// + /// 生日 + /// + public DateTime Birthday { get; set; } + + /// + /// 身份证地址 + /// + public string Address { get; set; } + + /// + /// 已婚/未婚 + /// + public string Postcode { get; set; } + + /// + /// 部门编码 + /// + public string Appellation { get; set; } + + /// + /// 民族代码 + /// + public string Nation { get; set; } + + /// + /// 手机号码 + /// + public string Phone { get; set; } + + /// + /// 联系电话 + /// + public string Mobile { get; set; } + + /// + /// 学历 + /// + public string Degree { get; set; } + + /// + /// 岗位 + /// + public string Web { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 操作账号 + /// + public string Log_id { get; set; } + + /// + /// 操作班次 + /// + public string Log_shift { get; set; } + + /// + /// 操作时间 + /// + public DateTime Log_date { get; set; } + + /// + /// 操作IP + /// + public string Log_ip { get; set; } + + /// + /// 是否在职 F 在职 T离职 + /// + public string Isowner { get; set; } + + /// + /// 创建时间 + /// + public DateTime Createdate { get; set; } + + /// + /// 外文名字 + /// + public string Gname_en { get; set; } + + /// + /// 卡号 + /// + public string CarNo { get; set; } + + public IEnumerable Validate(ValidationContext validationContext) + { + if (GainfoStatus.HasValue && GainfoStatus == GainfoStatusEnumType.Leave) + { + yield return new ValidationResult("不支持离职人员新增/修改", new[] { nameof(GainfoStatus) }); + } + } +} diff --git a/Src/Dlhis.Basic/Organization/Response/GainfoPageResponse.cs b/Src/Dlhis.Basic/Organization/Response/GainfoPageResponse.cs new file mode 100644 index 00000000..6873bb3c --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Response/GainfoPageResponse.cs @@ -0,0 +1,144 @@ +namespace Dlhis.Basic.Organization.Response; + +public class GainfoPageResponse +{ + /// + /// 档案号 + /// + public string Guestno { get; set; } + + /// + /// SAP内部编号 + /// + public string Ano { get; set; } + + /// + /// 人员类型 + /// + public string Class { get; set; } + + /// + /// 姓名 + /// + public string Gname { get; set; } + + /// + /// 工号 + /// + public string Ename { get; set; } + + /// + /// 国家代码 + /// + public string Country { get; set; } + + /// + /// 证件类型代码 + /// + public string Idcls { get; set; } + + /// + /// 身份证号 + /// + public string IdNO { get; set; } + + /// + /// 身份证籍贯区域代码 + /// + public string Native { get; set; } + + /// + /// 性别 + /// + public string Sex { get; set; } + + /// + /// 生日 + /// + public DateTime Birthday { get; set; } + + /// + /// 身份证地址 + /// + public string Address { get; set; } + + /// + /// 已婚/未婚 + /// + public string Postcode { get; set; } + + /// + /// 部门编码 + /// + public string Appellation { get; set; } + + /// + /// 民族代码 + /// + public string Nation { get; set; } + + /// + /// 手机号码 + /// + public string Phone { get; set; } + + /// + /// 联系电话 + /// + public string Mobile { get; set; } + + /// + /// 学历 + /// + public string Degree { get; set; } + + /// + /// 岗位 + /// + public string Web { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 操作账号 + /// + public string Log_id { get; set; } + + /// + /// 操作班次 + /// + public string Log_shift { get; set; } + + /// + /// 操作时间 + /// + public DateTime Log_date { get; set; } + + /// + /// 操作IP + /// + public string Log_ip { get; set; } + + /// + /// 是否在职 F 在职 T离职 + /// + public string Isowner { get; set; } + + /// + /// 创建时间 + /// + public DateTime Createdate { get; set; } + + /// + /// 外文名字 + /// + public string Gname_en { get; set; } + + /// + /// 卡号 + /// + public string CarNo { get; set; } +} diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoService.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoService.cs index 42eabd43..fcbbfaa4 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoService.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoService.cs @@ -1,5 +1,18 @@ -namespace Dlhis.Basic.Organization.Services; +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Response; +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Basic.Organization.Services; public interface IGainfoService : IScopeDependency { + Task SaveAsync(GainfoSaveRequest request); + + Task> GetPageAsync(GainfoPageRequest request); + + Task UpdateAsync(GainfoSaveRequest request); + + Task DimissionAsync(GainfoDImissionRequest request); + + Task OnboardingAsync(GainfoDImissionRequest request); } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs new file mode 100644 index 00000000..8120647e --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs @@ -0,0 +1,125 @@ +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Response; +using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Basic.Enums; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Attributes; +using Kurisu.SqlSugar.Extensions; +using Mapster; + +namespace Dlhis.Basic.Organization.Services.Implements; + +public class GainfoService : IGainfoService +{ + + private readonly IGainfoStore _gainfoStore; + + public GainfoService(IGainfoStore gainfoStore) + { + _gainfoStore = gainfoStore; + } + + /// + /// 档案分页 + /// + /// + /// + public Task> GetPageAsync(GainfoPageRequest request) + { + var page = _gainfoStore.Queryable(request.gainfoStatus) + .Select() + .ToPageListAsync(request); + + return page; + } + + /// + ///保存档案号 + /// + /// + /// + public async Task SaveAsync(GainfoSaveRequest request) + { + var gainfos = new List(); + GainfoEntity aginfoEntity = request.Adapt(); + + aginfoEntity.Guestno = "F" + Guid.NewGuid().ToString(); + gainfos.Add(aginfoEntity); + + await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos); + } + + + /// + ///修改档案号 + /// + /// + /// + public async Task UpdateAsync(GainfoSaveRequest request) + { + var gainfo = await _gainfoStore.Queryable(request.GainfoStatus).Where(x => x.Id == request.Id).FirstAsync(); + gainfo.ThrowIfNull("档案数据不存在,无法更新"); + + request.Adapt(gainfo); + + var gainfos = new List() + { + gainfo + }; + + await _gainfoStore.UpdateAsync(request.GainfoStatus, gainfos); + } + + /// + /// 正式转离职 + /// + /// + /// + /// + [Transactional] + public async Task DimissionAsync(GainfoDImissionRequest request) + { + var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) + .Where(x => x.Guestno == request.UserId) + .FirstAsync(); + gainfo.ThrowIfNull($"该档案不存在"); + + //添加到离职表 + var gainfos = new List + { + gainfo + }; + + await _gainfoStore.InsertAsync(GainfoStatusEnumType.Leave, gainfos); + + //删除原数据 + await _gainfoStore.DeleteAsync(GainfoStatusEnumType.Working, gainfos); + } + + /// + /// 临时转正式 + /// + /// + /// + /// + public async Task OnboardingAsync(GainfoDImissionRequest request) + { + var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.External) + .Where(x => x.Guestno == request.UserId) + .FirstAsync(); + gainfo.ThrowIfNull($"该档案不存在"); + + //添加到正式表 + var gainfos = new List + { + gainfo + }; + + await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos); + } + + //-------------------------------------------help methods ------------------------------------------------ + + +}