From 25f7b3270c3e3256eb3e2651af4b77dd6ebb8566 Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Thu, 28 Dec 2023 15:37:49 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E8=A1=A8crud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MealUser/Controllers/GainfoController.cs | 23 ++- .../MealUser/Request/GainfoAddSaveRequest.cs | 10 +- .../Request/GainfoDImissionRequest.cs | 13 ++ .../MealUser/Response/GainfoPageResponse.cs | 148 ++++++++++++++++++ .../MealUser/Services/IGainfoService.cs | 8 +- .../Services/Implements/GainfoService.cs | 74 +++++++-- .../Services/Implements/MealUserService.cs | 6 +- Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs | 127 ++++++++++----- 8 files changed, 342 insertions(+), 67 deletions(-) create mode 100644 Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs create mode 100644 Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs diff --git a/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs b/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs index 7bbc54de..94717b06 100644 --- a/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs +++ b/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs @@ -44,7 +44,7 @@ namespace Dlhis.Basic.MealUser.Controllers; /// /// [HttpGet("page")] - public async Task> GetPageAsync([FromQuery] GainfoPageRequest request) + public async Task> GetPageAsync([FromQuery] GainfoPageRequest request) { //var enums = await _enumSettingApi.GetEnums(); return await _gainfoService.GetPageAsync(request); @@ -60,7 +60,26 @@ namespace Dlhis.Basic.MealUser.Controllers; { 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/GainfoAddSaveRequest.cs b/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs index 654f6b58..8484d7a1 100644 --- a/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs +++ b/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs @@ -1,4 +1,5 @@ -using Dlhis.Entity.Basic.Entity; +using Dlhis.Basic.MealUser.Response; +using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Enums; using Dlhis.Entity.Canteen.Enums; using System.ComponentModel.DataAnnotations; @@ -7,10 +8,7 @@ namespace Dlhis.Basic.MealUser.Request { public class GainfoAddSaveRequest { - [EnumDataType(typeof(GainfoStatusEnumType))] - public GainfoStatusEnumType gainfoStatus { get; set; } - - - public GainfoEntity gainfoEntity { get; set; } + + public GainfoPageResponse gainfoPageResponse { get; set; } } } diff --git a/Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs b/Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs new file mode 100644 index 00000000..697e795e --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Request/GainfoDImissionRequest.cs @@ -0,0 +1,13 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.Basic.MealUser.Request +{ + public class GainfoDImissionRequest + { + /// + /// 档案号 + /// + [Required(ErrorMessage = "档案号不能为空")] + public string UserId { get; set; } + } +} diff --git a/Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs b/Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs new file mode 100644 index 00000000..f7496625 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Response/GainfoPageResponse.cs @@ -0,0 +1,148 @@ +using SqlSugar; + +namespace Dlhis.Basic.MealUser.Response +{ + public class GainfoPageResponse + { + /// + /// 档案号 + /// + [SugarColumn(ColumnDescription = "档案号")] + public Guid 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 index c3af9c94..f650735e 100644 --- a/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs @@ -1,4 +1,5 @@ using Dlhis.Basic.MealUser.Request; +using Dlhis.Basic.MealUser.Response; using Dlhis.Entity.Basic.Entity; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Mvc; @@ -8,8 +9,11 @@ namespace Dlhis.Basic.MealUser.Services public interface IGainfoService : IScopeDependency { Task SaveAsync(GainfoAddSaveRequest request); - Task> GetPageAsync(GainfoPageRequest 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 index db9b223a..679d99e4 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs @@ -1,11 +1,15 @@ 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 @@ -15,9 +19,8 @@ namespace Dlhis.Basic.MealUser.Services.Implements private readonly IGainfoStore _gainfoStore; - public GainfoService(IDbContext dbContext, IGainfoStore gainfoStore) + public GainfoService(IGainfoStore gainfoStore) { - _gainfoStore = gainfoStore; } /// @@ -30,18 +33,20 @@ namespace Dlhis.Basic.MealUser.Services.Implements await CheckGainfoGuestnoAsync(request);//档案号是否重复 var gainfos = new List(); - gainfos.Add(request.gainfoEntity); - await _gainfoStore.InsertAsync(request.gainfoStatus,gainfos); + GainfoEntity aginfoEntity = request.gainfoPageResponse.Adapt(); + aginfoEntity.Guestno = new Guid("F" + Guid.NewGuid().ToString()); + gainfos.Add(aginfoEntity); + await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos); } /// /// 档案分页 /// /// /// - public Task> GetPageAsync( GainfoPageRequest request) + public Task> GetPageAsync( GainfoPageRequest request) { var page = _gainfoStore.Queryable(request.gainfoStatus) - .Select() + .Select() .ToPageListAsync(request); return page; } @@ -53,11 +58,49 @@ namespace Dlhis.Basic.MealUser.Services.Implements public async Task UpdateAsync(GainfoAddSaveRequest request) { var gainfos = new List(); - gainfos.Add(request.gainfoEntity); - await _gainfoStore.UpdateAsync(request.gainfoStatus,gainfos); + 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.ToString() == 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.ToString() == request.UserId) + .FirstAsync(); + gainfo.ThrowIfNull($"该档案不存在"); + //添加到正式表 + var gainfos = new List(); + gainfos.Add(gainfo); + await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos); + //保留原数据 } - - //-------------------------------------------help methods ------------------------------------------------ /// @@ -68,10 +111,15 @@ namespace Dlhis.Basic.MealUser.Services.Implements private async Task CheckGainfoGuestnoAsync(GainfoAddSaveRequest request) { - var checkGainfoGuestno = await _gainfoStore.Queryable(request.gainfoStatus) - .Where(x => x.Guestno == request.gainfoEntity.Guestno) + var checkGainfoGuestno = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) + .Where(x => x.Guestno == request.gainfoPageResponse.Guestno) .AnyAsync(); - checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoEntity.Guestno}]已存在"); + checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoPageResponse.Guestno}]已存在"); + } + + public Task OnboardingAsync(GainfoDImissionRequest request) + { + throw new NotImplementedException(); } } } diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs index 74b7d26f..22f0f6ce 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs @@ -35,10 +35,10 @@ public class MealUserService : IMealUserService //todo 获取档案信息 var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) - .Where(x => x.Guestno == request.UserId) + .Where(x => x.Guestno.ToString() == request.UserId) .FirstAsync(); - var b = gainfoEntity == null ? true : false; - b.ThrowIfTrue($"档案[{request.UserId}]不存在"); + + gainfoEntity.ThrowIfNull($"档案[{request.UserId}]不存在"); var entity = new CanteenUserEntity { diff --git a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs index 3b3bd3d9..15ff34a2 100644 --- a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs @@ -9,99 +9,144 @@ namespace Dlhis.Entity.Basic.Entity; [SugarTable(TableName = "Gainfo", TableDescription = "档案表")] public class GainfoEntity : SugarBaseEntity { + /// + /// 档案号 + /// [SugarColumn(ColumnDescription = "档案号")] - public string Guestno { get; set; } - + public Guid 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 Email { get; set; } - + 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 Face_door { get; set; } - - [SugarColumn(ColumnDescription = "人脸考勤权限")] - public string Face_kq { get; set; } - - [SugarColumn(ColumnDescription = "人脸就餐权限")] - public string Face_dinner { get; set; } - - [SugarColumn(ColumnDescription = "人事范围")] - public string Werks { get; set; } - + /// + /// 卡号 + /// [SugarColumn(ColumnDescription = "卡号")] public string CarNo { get; set; } }