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 ------------------------------------------------
+
+
+}