fix:修改档案表crud

This commit is contained in:
cheche
2023-12-28 15:37:49 +08:00
parent a32d66b77e
commit 25f7b3270c
8 changed files with 342 additions and 67 deletions

View File

@@ -44,7 +44,7 @@ namespace Dlhis.Basic.MealUser.Controllers;
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("page")] [HttpGet("page")]
public async Task<Pagination<GainfoEntity>> GetPageAsync([FromQuery] GainfoPageRequest request) public async Task<Pagination<GainfoPageResponse>> GetPageAsync([FromQuery] GainfoPageRequest request)
{ {
//var enums = await _enumSettingApi.GetEnums(); //var enums = await _enumSettingApi.GetEnums();
return await _gainfoService.GetPageAsync(request); return await _gainfoService.GetPageAsync(request);
@@ -60,7 +60,26 @@ namespace Dlhis.Basic.MealUser.Controllers;
{ {
await _gainfoService.UpdateAsync(request); await _gainfoService.UpdateAsync(request);
} }
/// <summary>
/// 离职
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("dimission")]
public async Task DimissionAsync(GainfoDImissionRequest request)
{
await _gainfoService.DimissionAsync(request);
}
/// <summary>
/// 入职
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("Onboarding")]
public async Task OnboardingAsync(GainfoDImissionRequest request)
{
await _gainfoService.OnboardingAsync(request);
}
} }

View File

@@ -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.Basic.Enums;
using Dlhis.Entity.Canteen.Enums; using Dlhis.Entity.Canteen.Enums;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@@ -7,10 +8,7 @@ namespace Dlhis.Basic.MealUser.Request
{ {
public class GainfoAddSaveRequest public class GainfoAddSaveRequest
{ {
[EnumDataType(typeof(GainfoStatusEnumType))]
public GainfoStatusEnumType gainfoStatus { get; set; }
public GainfoPageResponse gainfoPageResponse { get; set; }
public GainfoEntity gainfoEntity { get; set; }
} }
} }

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace Dlhis.Basic.MealUser.Request
{
public class GainfoDImissionRequest
{
/// <summary>
/// 档案号
/// </summary>
[Required(ErrorMessage = "档案号不能为空")]
public string UserId { get; set; }
}
}

View File

@@ -0,0 +1,148 @@
using SqlSugar;
namespace Dlhis.Basic.MealUser.Response
{
public class GainfoPageResponse
{
/// <summary>
/// 档案号
/// </summary>
[SugarColumn(ColumnDescription = "档案号")]
public Guid Guestno { get; set; }
/// <summary>
/// SAP内部编号
/// </summary>
[SugarColumn(ColumnDescription = "SAP内部编号")]
public string Ano { get; set; }
/// <summary>
/// 人员类型
/// </summary>
[SugarColumn(ColumnDescription = "人员类型")]
public string Class { get; set; }
/// <summary>
/// 姓名
/// </summary>
[SugarColumn(ColumnDescription = "姓名")]
public string Gname { get; set; }
/// <summary>
/// 工号
/// </summary>
[SugarColumn(ColumnDescription = "工号")]
public string Ename { get; set; }
/// <summary>
/// 国家代码
/// </summary>
[SugarColumn(ColumnDescription = "国家代码")]
public string Country { get; set; }
/// <summary>
/// 证件类型代码
/// </summary>
[SugarColumn(ColumnDescription = "证件类型代码")]
public string Idcls { get; set; }
/// <summary>
/// 身份证号
/// </summary>
[SugarColumn(ColumnDescription = "身份证号")]
public string IdNO { get; set; }
/// <summary>
/// 身份证籍贯区域代码
/// </summary>
[SugarColumn(ColumnDescription = "身份证籍贯区域代码")]
public string Native { get; set; }
/// <summary>
/// 性别
/// </summary>
[SugarColumn(ColumnDescription = "性别")]
public string Sex { get; set; }
/// <summary>
/// 生日
/// </summary>
[SugarColumn(ColumnDescription = "生日")]
public DateTime Birthday { get; set; }
/// <summary>
/// 身份证地址
/// </summary>
[SugarColumn(ColumnDescription = "身份证地址")]
public string Address { get; set; }
/// <summary>
/// 已婚/未婚
/// </summary>
[SugarColumn(ColumnDescription = "已婚/未婚")]
public string Postcode { get; set; }
/// <summary>
/// 部门编码
/// </summary>
[SugarColumn(ColumnDescription = "部门编码")]
public string Appellation { get; set; }
/// <summary>
/// 民族代码
/// </summary>
[SugarColumn(ColumnDescription = "民族代码")]
public string Nation { get; set; }
/// <summary>
/// 手机号码
/// </summary>
[SugarColumn(ColumnDescription = "手机号码")]
public string Phone { get; set; }
/// <summary>
/// 联系电话
/// </summary>
[SugarColumn(ColumnDescription = "联系电话")]
public string Mobile { get; set; }
/// <summary>
/// 学历
/// </summary>
[SugarColumn(ColumnDescription = "学历")]
public string Degree { get; set; }
/// <summary>
/// 岗位
/// </summary>
[SugarColumn(ColumnDescription = "岗位")]
public string Web { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注")]
public string Remark { get; set; }
/// <summary>
/// 操作账号
/// </summary>
[SugarColumn(ColumnDescription = "操作账号")]
public string Log_id { get; set; }
/// <summary>
/// 操作班次
/// </summary>
[SugarColumn(ColumnDescription = "操作班次")]
public string Log_shift { get; set; }
/// <summary>
/// 操作时间
/// </summary>
[SugarColumn(ColumnDescription = "操作时间")]
public DateTime Log_date { get; set; }
/// <summary>
/// 操作IP
/// </summary>
[SugarColumn(ColumnDescription = "操作IP")]
public string Log_ip { get; set; }
/// <summary>
/// 是否在职 F 在职 T离职
/// </summary>
[SugarColumn(ColumnDescription = "是否在职 F 在职 T离职")]
public string Isowner { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnDescription = "创建时间")]
public DateTime Createdate { get; set; }
/// <summary>
/// 外文名字
/// </summary>
[SugarColumn(ColumnDescription = "外文名字")]
public string Gname_en { get; set; }
/// <summary>
/// 卡号
/// </summary>
[SugarColumn(ColumnDescription = "卡号")]
public string CarNo { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using Dlhis.Basic.MealUser.Request; using Dlhis.Basic.MealUser.Request;
using Dlhis.Basic.MealUser.Response;
using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Entity;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
@@ -8,8 +9,11 @@ namespace Dlhis.Basic.MealUser.Services
public interface IGainfoService : IScopeDependency public interface IGainfoService : IScopeDependency
{ {
Task SaveAsync(GainfoAddSaveRequest request); Task SaveAsync(GainfoAddSaveRequest request);
Task<Pagination<GainfoEntity>> GetPageAsync(GainfoPageRequest request); Task<Pagination<GainfoPageResponse>> GetPageAsync(GainfoPageRequest request);
Task UpdateAsync(GainfoAddSaveRequest request); Task UpdateAsync(GainfoAddSaveRequest request);
Task DimissionAsync(GainfoDImissionRequest request);
Task OnboardingAsync(GainfoDImissionRequest request);
} }
} }

View File

@@ -1,11 +1,15 @@
using Dlhis.Basic.BusinessPlace.Response; using Dlhis.Basic.BusinessPlace.Response;
using Dlhis.Basic.MealUser.Request; using Dlhis.Basic.MealUser.Request;
using Dlhis.Basic.MealUser.Response;
using Dlhis.Basic.Organization.Services; using Dlhis.Basic.Organization.Services;
using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Basic.Enums;
using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services; using Kurisu.SqlSugar.Services;
using Mapster;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.MealUser.Services.Implements namespace Dlhis.Basic.MealUser.Services.Implements
@@ -15,9 +19,8 @@ namespace Dlhis.Basic.MealUser.Services.Implements
private readonly IGainfoStore _gainfoStore; private readonly IGainfoStore _gainfoStore;
public GainfoService(IDbContext dbContext, IGainfoStore gainfoStore) public GainfoService(IGainfoStore gainfoStore)
{ {
_gainfoStore = gainfoStore; _gainfoStore = gainfoStore;
} }
/// <summary> /// <summary>
@@ -30,18 +33,20 @@ namespace Dlhis.Basic.MealUser.Services.Implements
await CheckGainfoGuestnoAsync(request);//档案号是否重复 await CheckGainfoGuestnoAsync(request);//档案号是否重复
var gainfos = new List<GainfoEntity>(); var gainfos = new List<GainfoEntity>();
gainfos.Add(request.gainfoEntity); GainfoEntity aginfoEntity = request.gainfoPageResponse.Adapt<GainfoEntity>();
await _gainfoStore.InsertAsync(request.gainfoStatus,gainfos); aginfoEntity.Guestno = new Guid("F" + Guid.NewGuid().ToString());
gainfos.Add(aginfoEntity);
await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos);
} }
/// <summary> /// <summary>
/// 档案分页 /// 档案分页
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
public Task<Pagination<GainfoEntity>> GetPageAsync( GainfoPageRequest request) public Task<Pagination<GainfoPageResponse>> GetPageAsync( GainfoPageRequest request)
{ {
var page = _gainfoStore.Queryable(request.gainfoStatus) var page = _gainfoStore.Queryable(request.gainfoStatus)
.Select<GainfoEntity>() .Select<GainfoPageResponse>()
.ToPageListAsync(request); .ToPageListAsync(request);
return page; return page;
} }
@@ -53,11 +58,49 @@ namespace Dlhis.Basic.MealUser.Services.Implements
public async Task UpdateAsync(GainfoAddSaveRequest request) public async Task UpdateAsync(GainfoAddSaveRequest request)
{ {
var gainfos = new List<GainfoEntity>(); var gainfos = new List<GainfoEntity>();
gainfos.Add(request.gainfoEntity); GainfoEntity aginfoEntity = request.gainfoPageResponse.Adapt<GainfoEntity>();
await _gainfoStore.UpdateAsync(request.gainfoStatus,gainfos); gainfos.Add(aginfoEntity);
await _gainfoStore.UpdateAsync(GainfoStatusEnumType.Working, gainfos);
}
/// <summary>
/// 正式转离职
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[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<GainfoEntity>();
gainfos.Add(gainfo);
await _gainfoStore.InsertAsync(GainfoStatusEnumType.Leave, gainfos);
//删除原数据
await _gainfoStore.DeleteAsync(GainfoStatusEnumType.Working, gainfos);
}
/// <summary>
/// 临时转正式
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[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<GainfoEntity>();
gainfos.Add(gainfo);
await _gainfoStore.InsertAsync(GainfoStatusEnumType.Working, gainfos);
//保留原数据
} }
//-------------------------------------------help methods ------------------------------------------------ //-------------------------------------------help methods ------------------------------------------------
/// <summary> /// <summary>
@@ -68,10 +111,15 @@ namespace Dlhis.Basic.MealUser.Services.Implements
private async Task CheckGainfoGuestnoAsync(GainfoAddSaveRequest request) private async Task CheckGainfoGuestnoAsync(GainfoAddSaveRequest request)
{ {
var checkGainfoGuestno = await _gainfoStore.Queryable(request.gainfoStatus) var checkGainfoGuestno = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
.Where(x => x.Guestno == request.gainfoEntity.Guestno) .Where(x => x.Guestno == request.gainfoPageResponse.Guestno)
.AnyAsync(); .AnyAsync();
checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoEntity.Guestno}]已存在"); checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoPageResponse.Guestno}]已存在");
}
public Task OnboardingAsync(GainfoDImissionRequest request)
{
throw new NotImplementedException();
} }
} }
} }

View File

@@ -35,10 +35,10 @@ public class MealUserService : IMealUserService
//todo 获取档案信息 //todo 获取档案信息
var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
.Where(x => x.Guestno == request.UserId) .Where(x => x.Guestno.ToString() == request.UserId)
.FirstAsync(); .FirstAsync();
var b = gainfoEntity == null ? true : false;
b.ThrowIfTrue($"档案[{request.UserId}]不存在"); gainfoEntity.ThrowIfNull($"档案[{request.UserId}]不存在");
var entity = new CanteenUserEntity var entity = new CanteenUserEntity
{ {

View File

@@ -9,99 +9,144 @@ namespace Dlhis.Entity.Basic.Entity;
[SugarTable(TableName = "Gainfo", TableDescription = "档案表")] [SugarTable(TableName = "Gainfo", TableDescription = "档案表")]
public class GainfoEntity : SugarBaseEntity public class GainfoEntity : SugarBaseEntity
{ {
/// <summary>
/// 档案号
/// </summary>
[SugarColumn(ColumnDescription = "档案号")] [SugarColumn(ColumnDescription = "档案号")]
public string Guestno { get; set; } public Guid Guestno { get; set; }
/// <summary>
/// SAP内部编号
/// </summary>
[SugarColumn(ColumnDescription = "SAP内部编号")] [SugarColumn(ColumnDescription = "SAP内部编号")]
public string Ano { get; set; } public string Ano { get; set; }
/// <summary>
/// 人员类型
/// </summary>
[SugarColumn(ColumnDescription = "人员类型")] [SugarColumn(ColumnDescription = "人员类型")]
public string Class { get; set; } public string Class { get; set; }
/// <summary>
/// 姓名
/// </summary>
[SugarColumn(ColumnDescription = "姓名")] [SugarColumn(ColumnDescription = "姓名")]
public string Gname { get; set; } public string Gname { get; set; }
/// <summary>
/// 工号
/// </summary>
[SugarColumn(ColumnDescription = "工号")] [SugarColumn(ColumnDescription = "工号")]
public string Ename { get; set; } public string Ename { get; set; }
/// <summary>
/// 国家代码
/// </summary>
[SugarColumn(ColumnDescription = "国家代码")] [SugarColumn(ColumnDescription = "国家代码")]
public string Country { get; set; } public string Country { get; set; }
/// <summary>
/// 证件类型代码
/// </summary>
[SugarColumn(ColumnDescription = "证件类型代码")] [SugarColumn(ColumnDescription = "证件类型代码")]
public string Idcls { get; set; } public string Idcls { get; set; }
/// <summary>
/// 身份证号
/// </summary>
[SugarColumn(ColumnDescription = "身份证号")] [SugarColumn(ColumnDescription = "身份证号")]
public string IdNO { get; set; } public string IdNO { get; set; }
/// <summary>
/// 身份证籍贯区域代码
/// </summary>
[SugarColumn(ColumnDescription = "身份证籍贯区域代码")] [SugarColumn(ColumnDescription = "身份证籍贯区域代码")]
public string Native { get; set; } public string Native { get; set; }
/// <summary>
/// 性别
/// </summary>
[SugarColumn(ColumnDescription = "性别")] [SugarColumn(ColumnDescription = "性别")]
public string Sex { get; set; } public string Sex { get; set; }
/// <summary>
/// 生日
/// </summary>
[SugarColumn(ColumnDescription = "生日")] [SugarColumn(ColumnDescription = "生日")]
public DateTime Birthday { get; set; } public DateTime Birthday { get; set; }
/// <summary>
/// 身份证地址
/// </summary>
[SugarColumn(ColumnDescription = "身份证地址")] [SugarColumn(ColumnDescription = "身份证地址")]
public string Address { get; set; } public string Address { get; set; }
/// <summary>
/// 已婚/未婚
/// </summary>
[SugarColumn(ColumnDescription = "已婚/未婚")] [SugarColumn(ColumnDescription = "已婚/未婚")]
public string Postcode { get; set; } public string Postcode { get; set; }
/// <summary>
/// 部门编码
/// </summary>
[SugarColumn(ColumnDescription = "部门编码")] [SugarColumn(ColumnDescription = "部门编码")]
public string Appellation { get; set; } public string Appellation { get; set; }
/// <summary>
/// 民族代码
/// </summary>
[SugarColumn(ColumnDescription = "民族代码")] [SugarColumn(ColumnDescription = "民族代码")]
public string Nation { get; set; } public string Nation { get; set; }
/// <summary>
/// 手机号码
/// </summary>
[SugarColumn(ColumnDescription = "手机号码")] [SugarColumn(ColumnDescription = "手机号码")]
public string Phone { get; set; } public string Phone { get; set; }
/// <summary>
/// 联系电话
/// </summary>
[SugarColumn(ColumnDescription = "联系电话")] [SugarColumn(ColumnDescription = "联系电话")]
public string Mobile { get; set; } public string Mobile { get; set; }
/// <summary>
/// 学历
/// </summary>
[SugarColumn(ColumnDescription = "学历")] [SugarColumn(ColumnDescription = "学历")]
public string Email { get; set; } public string Degree { get; set; }
/// <summary>
/// 岗位
/// </summary>
[SugarColumn(ColumnDescription = "岗位")] [SugarColumn(ColumnDescription = "岗位")]
public string Web { get; set; } public string Web { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnDescription = "备注")] [SugarColumn(ColumnDescription = "备注")]
public string Remark { get; set; } public string Remark { get; set; }
/// <summary>
/// 操作账号
/// </summary>
[SugarColumn(ColumnDescription = "操作账号")] [SugarColumn(ColumnDescription = "操作账号")]
public string Log_id { get; set; } public string Log_id { get; set; }
/// <summary>
/// 操作班次
/// </summary>
[SugarColumn(ColumnDescription = "操作班次")] [SugarColumn(ColumnDescription = "操作班次")]
public string Log_shift { get; set; } public string Log_shift { get; set; }
/// <summary>
/// 操作时间
/// </summary>
[SugarColumn(ColumnDescription = "操作时间")] [SugarColumn(ColumnDescription = "操作时间")]
public DateTime Log_date { get; set; } public DateTime Log_date { get; set; }
/// <summary>
/// 操作IP
/// </summary>
[SugarColumn(ColumnDescription = "操作IP")] [SugarColumn(ColumnDescription = "操作IP")]
public string Log_ip { get; set; } public string Log_ip { get; set; }
/// <summary>
/// 是否在职 F 在职 T离职
/// </summary>
[SugarColumn(ColumnDescription = "是否在职 F 在职 T离职")] [SugarColumn(ColumnDescription = "是否在职 F 在职 T离职")]
public string Isowner { get; set; } public string Isowner { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnDescription = "创建时间")] [SugarColumn(ColumnDescription = "创建时间")]
public DateTime Createdate { get; set; } public DateTime Createdate { get; set; }
/// <summary>
/// 外文名字
/// </summary>
[SugarColumn(ColumnDescription = "外文名字")] [SugarColumn(ColumnDescription = "外文名字")]
public string Gname_en { get; set; } public string Gname_en { get; set; }
/// <summary>
[SugarColumn(ColumnDescription = "人脸门禁权限代码")] /// 卡号
public string Face_door { get; set; } /// </summary>
[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 = "卡号")] [SugarColumn(ColumnDescription = "卡号")]
public string CarNo { get; set; } public string CarNo { get; set; }
} }