From 9195e7d15d21192c9bff53c16afc1f87f6d91075 Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Thu, 28 Dec 2023 13:39:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=A3=E6=A1=88=E8=A1=A8crud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dlis.Jinko.Yikatong.sln | 8 -- .../Implements/BusinessPlaceService.cs | 3 +- .../MealUser/Controllers/GainfoController.cs | 66 +++++++++++++ .../MealUser/Request/GainfoAddSaveRequest.cs | 16 +++ .../MealUser/Request/GainfoPageRequest.cs | 13 +++ .../MealUser/Response/MealUserResponse.cs | 48 ++++++++- .../MealUser/Services/IGainfoService.cs | 15 +++ .../Services/Implements/GainfoService.cs | 77 +++++++++++++++ .../Services/Implements/MealUserService.cs | 17 +++- Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs | 98 ++++++++++++++++++- 10 files changed, 347 insertions(+), 14 deletions(-) create mode 100644 Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs create mode 100644 Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs create mode 100644 Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs create mode 100644 Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs create mode 100644 Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs diff --git a/Dlis.Jinko.Yikatong.sln b/Dlis.Jinko.Yikatong.sln index 604a550b..0903ee76 100644 --- a/Dlis.Jinko.Yikatong.sln +++ b/Dlis.Jinko.Yikatong.sln @@ -15,8 +15,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Sys", "Src\Dlhis.Perm EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.ScheduledTask", "Src\Dlhis.ScheduledTask\Dlhis.ScheduledTask.csproj", "{0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Canteen", "Src\Dlhis.Canteen\Dlhis.Canteen.csproj", "{B677442F-98D1-4F3A-8859-9F07D30E22E9}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Common", "Src\Dlhis.Common\Dlhis.Common.csproj", "{4C1FADD9-8AFB-4087-9E52-EE6D6523ED38}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Common.Api", "Src\Dlhis.Common.Api\Dlhis.Common.Api.csproj", "{FD8D38C5-0827-49D1-A0BA-7707FBFDA2EC}" @@ -43,10 +41,6 @@ Global {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}.Release|Any CPU.ActiveCfg = Release|Any CPU {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}.Release|Any CPU.Build.0 = Release|Any CPU - {B677442F-98D1-4F3A-8859-9F07D30E22E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B677442F-98D1-4F3A-8859-9F07D30E22E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B677442F-98D1-4F3A-8859-9F07D30E22E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B677442F-98D1-4F3A-8859-9F07D30E22E9}.Release|Any CPU.Build.0 = Release|Any CPU {4C1FADD9-8AFB-4087-9E52-EE6D6523ED38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4C1FADD9-8AFB-4087-9E52-EE6D6523ED38}.Debug|Any CPU.Build.0 = Debug|Any CPU {4C1FADD9-8AFB-4087-9E52-EE6D6523ED38}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -64,9 +58,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {5D7096DE-AB81-4423-95AF-6489C0D94CB3} = {57074FD8-1A2F-40C7-8476-001778A3F65D} {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392} = {AA987BDF-EF63-467B-AD04-59F9B10D9000} - {B677442F-98D1-4F3A-8859-9F07D30E22E9} = {3D8A98C1-83C9-4375-AEAB-4F72AFAF365B} {4C1FADD9-8AFB-4087-9E52-EE6D6523ED38} = {4EBCE46B-CE3A-4A47-9432-82A1854CA58A} {FD8D38C5-0827-49D1-A0BA-7707FBFDA2EC} = {4EBCE46B-CE3A-4A47-9432-82A1854CA58A} {D1F81CB7-F3EF-4196-A751-468248368020} = {4EBCE46B-CE3A-4A47-9432-82A1854CA58A} diff --git a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs index 00766787..b09c658a 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Services/Implements/BusinessPlaceService.cs @@ -30,7 +30,7 @@ public class BusinessPlaceService : IBusinessPlaceService .WhereIF(request.Source.HasValue, x => x.Source == request.Source) .Select() .ToPageListAsync(request); - + return page; } @@ -43,6 +43,7 @@ public class BusinessPlaceService : IBusinessPlaceService .ToListAsync(); } + public async Task SaveAsync(BusinessPlaceSaveRequest request) { await CheckExistsCustomCodeAsync(request); diff --git a/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs b/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs new file mode 100644 index 00000000..7bbc54de --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Controllers/GainfoController.cs @@ -0,0 +1,66 @@ +using Dlhis.Basic.BusinessPlace.Request; +using Dlhis.Basic.BusinessPlace.Response; +using Dlhis.Basic.MealUser.Request; +using Dlhis.Basic.MealUser.Response; +using Dlhis.Basic.MealUser.Services; +using Dlhis.Basic.MealUser.Services.Implements; +using Dlhis.Entity.Basic.Entity; +using Kurisu.Core.DataAccess.Dto; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +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); + } + + +} + diff --git a/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs b/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs new file mode 100644 index 00000000..654f6b58 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Request/GainfoAddSaveRequest.cs @@ -0,0 +1,16 @@ +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 + { + [EnumDataType(typeof(GainfoStatusEnumType))] + public GainfoStatusEnumType gainfoStatus { get; set; } + + + public GainfoEntity gainfoEntity { get; set; } + } +} diff --git a/Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs b/Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs new file mode 100644 index 00000000..4b554cba --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Request/GainfoPageRequest.cs @@ -0,0 +1,13 @@ +using Dlhis.Entity.Basic.Enums; +using Dlhis.Entity.Canteen.Enums; +using Kurisu.Core.DataAccess.Dto; +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.Basic.MealUser.Request +{ + public class GainfoPageRequest : PageDto + { + [EnumDataType(typeof(GainfoStatusEnumType))] + public GainfoStatusEnumType gainfoStatus { get; set; } + } +} diff --git a/Src/Dlhis.Basic/MealUser/Response/MealUserResponse.cs b/Src/Dlhis.Basic/MealUser/Response/MealUserResponse.cs index 630f92b8..4e5bc79a 100644 --- a/Src/Dlhis.Basic/MealUser/Response/MealUserResponse.cs +++ b/Src/Dlhis.Basic/MealUser/Response/MealUserResponse.cs @@ -1,5 +1,51 @@ -namespace Dlhis.Basic.MealUser.Response; +using Dlhis.Entity.Canteen.Enums; +using SqlSugar.DbConvert; +using SqlSugar; + +namespace Dlhis.Basic.MealUser.Response; public class MealUserResponse { + /// + /// 档案号 + /// + public string UserId { get; set; } + + + /// + /// 学工号 + /// + public string UserCode { get; set; } + + + /// + /// 消费人员类型 + /// + public CanteenUserEnumType UserType { get; set; } + + + /// + /// 卡号 + /// + public string CarNo { get; set; } + + + /// + /// 余额 + /// + public decimal Balance { get; set; } + + + /// + /// 余额(充值) + /// + public decimal BalanceOfRecharge { get; set; } + + + /// + /// 余额(餐补) + /// + public decimal BalanceOfSubsidies { get; set; } + + } diff --git a/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs b/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs new file mode 100644 index 00000000..c3af9c94 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Services/IGainfoService.cs @@ -0,0 +1,15 @@ +using Dlhis.Basic.MealUser.Request; +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); + + } +} diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs new file mode 100644 index 00000000..44e21831 --- /dev/null +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs @@ -0,0 +1,77 @@ +using Dlhis.Basic.BusinessPlace.Response; +using Dlhis.Basic.MealUser.Request; +using Dlhis.Basic.Organization.Services; +using Dlhis.Entity.Basic.Entity; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Extensions; +using Kurisu.SqlSugar.Services; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Basic.MealUser.Services.Implements +{ + public class GainfoService : IGainfoService + { + + private readonly IGainfoStore _gainfoStore; + + public GainfoService(IDbContext dbContext, IGainfoStore gainfoStore) + { + + _gainfoStore = gainfoStore; + } + /// + ///保存档案号 + /// + /// + /// + public async Task SaveAsync(GainfoAddSaveRequest request) + { + await CheckGainfoGuestnoAsync(request);//档案号是否重复 + + var gainfos = new List(); + gainfos.Add(request.gainfoEntity); + await _gainfoStore.InsertAsync(request.gainfoStatus,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(); + gainfos.Add(request.gainfoEntity); + await _gainfoStore.UpdateAsync(request.gainfoStatus,gainfos); + } + + + + //-------------------------------------------help methods----------------------------------------------- + /// + /// 检查档案号是否重复 + /// + /// + /// + private async Task CheckGainfoGuestnoAsync(GainfoAddSaveRequest request) + { + + var checkGainfoGuestno = await _gainfoStore.Queryable(request.gainfoStatus) + .Where(x => x.Guestno == request.gainfoEntity.Guestno) + .AnyAsync(); + checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoEntity.Guestno}]已存在"); + } + } +} diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs index 6b1e3f17..74b7d26f 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs @@ -1,6 +1,9 @@ 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.Extensions; using Kurisu.SqlSugar.Services; @@ -10,10 +13,12 @@ namespace Dlhis.Basic.MealUser.Services.Implements; public class MealUserService : IMealUserService { private readonly IDbContext _dbContext; + private readonly IGainfoStore _gainfoStore; - public MealUserService(IDbContext dbContext) + public MealUserService(IDbContext dbContext, IGainfoStore gainfoStore) { _dbContext = dbContext; + _gainfoStore = gainfoStore; } public async Task> GetPageAsync(MealUserPageRequest request) @@ -28,13 +33,19 @@ public class MealUserService : IMealUserService public async Task AddAsync(MealUserAddRequest request) { //todo 获取档案信息 + + var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) + .Where(x => x.Guestno == request.UserId) + .FirstAsync(); + var b = gainfoEntity == null ? true : false; + b.ThrowIfTrue($"档案[{request.UserId}]不存在"); var entity = new CanteenUserEntity { UserId = request.UserId, UserType = request.UserType, - UserCode = "", - CarNo = "", + UserCode = gainfoEntity.Ename, + CarNo = gainfoEntity.CarNo, Balance = 0, BalanceOfRecharge = 0, BalanceOfSubsidies = 0, diff --git a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs index c9b08efb..3b3bd3d9 100644 --- a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs @@ -1,11 +1,107 @@ using SqlSugar; +using System.Net; namespace Dlhis.Entity.Basic.Entity; /// /// 用户档案 /// -[SugarTable("Gainfo")] +[SugarTable(TableName = "Gainfo", TableDescription = "档案表")] public class GainfoEntity : SugarBaseEntity { + [SugarColumn(ColumnDescription = "档案号")] + public string Guestno { get; set; } + + [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; } + + [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; } + + [SugarColumn(ColumnDescription = "操作IP")] + public string Log_ip { get; set; } + + [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; } }