From a90d4e66a7cb066dab51ea2f812e7cb8a0516684 Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Wed, 20 Mar 2024 15:27:37 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=A4=90=E8=A1=A5=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=8A=E6=97=A5=E5=BF=97=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Controllers/BalancesController.cs | 10 ++ .../Request/BalanceRecordByUserRequest.cs | 8 + .../Request/OaEMealVoucherDetailRequest.cs | 2 +- .../Order/Request/OaEMealVoucherRequest.cs | 4 - .../Response/BalanceRecordByUserResponse.cs | 149 ++++++++++++++++++ .../Order/Services/IBalanceService.cs | 1 + .../Services/Implements/BalanceService.cs | 15 +- .../MealSupplementRecordController.cs | 36 +++++ .../Request/MealSupplementRecordRequest.cs | 9 ++ .../Response/MealSupplementRecordResponse.cs | 62 ++++++++ .../Services/IMealSupplementRecordService.cs | 11 ++ .../Implements/MealSupplementRecordService.cs | 31 ++++ .../CommonJobs/DelApiLogTaskJob.cs | 4 +- Src/Dlhis.ScheduledTask/Packs/JobPack.cs | 2 +- 14 files changed, 334 insertions(+), 10 deletions(-) create mode 100644 Src/Dlhis.Canteen/Order/Request/BalanceRecordByUserRequest.cs create mode 100644 Src/Dlhis.Canteen/Order/Response/BalanceRecordByUserResponse.cs create mode 100644 Src/Dlhis.Common/MealSupplementRecord/MealSupplementRecordController.cs create mode 100644 Src/Dlhis.Common/Request/MealSupplementRecordRequest.cs create mode 100644 Src/Dlhis.Common/Response/MealSupplementRecordResponse.cs create mode 100644 Src/Dlhis.Common/Services/IMealSupplementRecordService.cs create mode 100644 Src/Dlhis.Common/Services/Implements/MealSupplementRecordService.cs diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs index 317fbe83..3a6f2f69 100644 --- a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs +++ b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs @@ -181,6 +181,16 @@ public class BalancesController : ControllerBase return await _balanceService.GetConsumeDeviceAsync(request); } + /// + /// 查询餐补 + /// + /// + /// + [HttpGet("balanceRecordByUser")] + public async Task> BalanceRecordByUserAsync([FromQuery]BalanceRecordByUserRequest request) + { + return await _balanceService.BalanceRecordByUserAsync(request); + } /// diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordByUserRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordByUserRequest.cs new file mode 100644 index 00000000..877cb0d4 --- /dev/null +++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordByUserRequest.cs @@ -0,0 +1,8 @@ +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Canteen.Order.Request +{ + public class BalanceRecordByUserRequest : PageDto + { + } +} diff --git a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs index 75ce0571..216f85b1 100644 --- a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherDetailRequest.cs @@ -7,6 +7,6 @@ namespace Dlhis.Canteen.Dishes.Request /// /// 餐券id /// - public long OaEMealVoucherId { get; set; } + public long? OaEMealVoucherId { get; set; } } } diff --git a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs index ae1ffa86..232b4eeb 100644 --- a/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/OaEMealVoucherRequest.cs @@ -6,9 +6,5 @@ namespace Dlhis.Canteen.Dishes.Request { public class OaEMealVoucherRequest : PageDto { - /// - /// 用户学工号 - /// - public string UserCode { get; set; } } } diff --git a/Src/Dlhis.Canteen/Order/Response/BalanceRecordByUserResponse.cs b/Src/Dlhis.Canteen/Order/Response/BalanceRecordByUserResponse.cs new file mode 100644 index 00000000..8c8cb4f4 --- /dev/null +++ b/Src/Dlhis.Canteen/Order/Response/BalanceRecordByUserResponse.cs @@ -0,0 +1,149 @@ +using Dlhis.Entity.Canteen.Enums; +using SqlSugar.DbConvert; +using SqlSugar; +using Kurisu.AspNetCore.Utils.Extensions; + +namespace Dlhis.Canteen.Order.Response +{ + public class BalanceRecordByUserResponse + { + /// + /// 流水号 + /// + public string No { get; set; } + + /// + /// 档案号/QRCode + /// + public string UserNo { get; set; } + + /// + /// 姓名 + /// + public string Name { get; set; } + + /// + /// 学工号 + /// + public string UserCode { get; set; } + + /// + /// 部门号 + /// + public string DepartmentNo { get; set; } + + /// + /// 来源 + /// + public BalanceRecordSourceEnumType Source { get; set; } + + /// + /// 来源CN + /// + public string SourceCN => Source.GetDescription(); + + /// + /// 收入/支出 + /// + public BalanceRecordTypeEnumType Type { get; set; } + + /// + /// 收入/支出 + /// + public string TypeCN => Type.GetDescription(); + + /// + /// 金额 + - 表示 + /// + public decimal Amount { get; set; } + + + /// + /// 营业点 + /// + public Guid? BusinessPlaceCode { get; set; } + + /// + /// 餐别 + /// + public Guid? BusinessShiftCode { get; set; } + + /// + /// 餐次 + /// + public ShiftEnumType? ShiftType { get; set; } + + /// + /// 餐次CN + /// + public string ShiftTypeCN => ShiftType.GetDescription(); + + /// + /// 所属成本日期 + /// + public DateTime CostDate { get; set; } + + /// + /// 消费机器唯一信息 + /// + public string DeviceUniqueNo { get; set; } + + /// + /// 餐补月份 + /// + public string SubsidiesFromMonth { get; set; } + + /// + /// Ip + /// + public string IP { get; set; } + + /// + /// 成本中心 + /// + public string CostId { get; set; } + + /// + /// 消费者所在基地 + /// + public string OriginTenantId { get; set; } + + /// + /// 成本计算是否允许跨基地范围 + /// + public bool IsCostCrossTenant { get; set; } + + /// + /// 数据状态 + /// + public BalanceRecordStatusEnumType Status { get; set; } + + /// + /// 数据状态CN + /// + public string StatusCN => Status.GetDescription(); + + /// + /// 消费时间 + /// + public DateTime CostDateTime { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 餐饮应用类型 + /// + public CanteenApplicaitonTypeEnumType ApplicationType { get; set; } + + /// + /// 餐饮应用类型CN + /// + public string ApplicationTypeCN => ApplicationType.GetDescription(); + + + public string TenantId { get; set; } + } +} diff --git a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs index dfe66e07..53d4c688 100644 --- a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs @@ -38,4 +38,5 @@ public interface IBalanceService : IScopeDependency Task> GetOaEMealVoucherAsync([FromQuery] OaEMealVoucherRequest request); Task> GetOaEMealVoucherDetailAsync([FromQuery] OaEMealVoucherDetailRequest request); + Task> BalanceRecordByUserAsync(BalanceRecordByUserRequest request); } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 5bbe6c48..aa177030 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -744,6 +744,16 @@ public class BalanceService : IBalanceService return page; } + public async Task> BalanceRecordByUserAsync(BalanceRecordByUserRequest request) + { + var page = await _dbContext.Queryable() + .WhereIF(request.Search.IsPresent(), b => b.UserNo == request.Search || b.UserCode == request.Search) + .Where(b => b.Source == BalanceRecordSourceEnumType.LocalTenantSubsidies || b.Source == BalanceRecordSourceEnumType.OtherTenantSubsidies) + .Select() + .ToPageListAsync(request); + return page; + } + /// /// 获取离线设备 @@ -845,7 +855,7 @@ public class BalanceService : IBalanceService public async Task> GetOaEMealVoucherAsync(OaEMealVoucherRequest request) { var page = await _dbContext.Queryable() - .Where(x => x.UserCode == request.UserCode) + .WhereIF(request.Search.IsPresent(),x => x.UserCode.Contains(request.Search) || x.Name.Contains(request.Search)) .Select() .ToPageListAsync(request); return page; @@ -854,7 +864,8 @@ public class BalanceService : IBalanceService public async Task> GetOaEMealVoucherDetailAsync(OaEMealVoucherDetailRequest request) { var page = await _dbContext.Queryable() - .Where(x => x.VoucherId == request.OaEMealVoucherId) + .WhereIF(request.Search.IsPresent(),x => x.Name.Contains(request.Search)) + .WhereIF(request.OaEMealVoucherId.HasValue, x => x.VoucherId == request.OaEMealVoucherId) .Select() .ToPageListAsync(request); diff --git a/Src/Dlhis.Common/MealSupplementRecord/MealSupplementRecordController.cs b/Src/Dlhis.Common/MealSupplementRecord/MealSupplementRecordController.cs new file mode 100644 index 00000000..225243b2 --- /dev/null +++ b/Src/Dlhis.Common/MealSupplementRecord/MealSupplementRecordController.cs @@ -0,0 +1,36 @@ +using Dlhis.Common.Request; +using Dlhis.Common.Response; +using Dlhis.Common.Services; +using Kurisu.Core.DataAccess.Dto; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Common.MealSupplementRecord +{ + /// + /// 餐补控制器 + /// + [Authorize] + [Route("api/[controller]")] + [ApiController] + public class MealSupplementRecordController + { + private readonly IMealSupplementRecordService _mealSupplementRecordService; + + public MealSupplementRecordController(IMealSupplementRecordService mealSupplementRecordService) + { + _mealSupplementRecordService = mealSupplementRecordService; + } + + /// + /// 餐补分页 + /// + /// + /// + [HttpGet("mealSupplementRecordPage")] + public async Task> MealSupplementRecordPageAsync([FromQuery]MealSupplementRecordRequest request) + { + return await _mealSupplementRecordService.MealSupplementRecordPageAsync(request); + } + } +} diff --git a/Src/Dlhis.Common/Request/MealSupplementRecordRequest.cs b/Src/Dlhis.Common/Request/MealSupplementRecordRequest.cs new file mode 100644 index 00000000..ce64bcce --- /dev/null +++ b/Src/Dlhis.Common/Request/MealSupplementRecordRequest.cs @@ -0,0 +1,9 @@ +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Common.Request +{ + public class MealSupplementRecordRequest : PageDto + { + + } +} diff --git a/Src/Dlhis.Common/Response/MealSupplementRecordResponse.cs b/Src/Dlhis.Common/Response/MealSupplementRecordResponse.cs new file mode 100644 index 00000000..c03d0277 --- /dev/null +++ b/Src/Dlhis.Common/Response/MealSupplementRecordResponse.cs @@ -0,0 +1,62 @@ +using Dlhis.Entity.Basic.Enums; +using SqlSugar.DbConvert; +using SqlSugar; +using Kurisu.AspNetCore.Utils.Extensions; + +namespace Dlhis.Common.Response +{ + public class MealSupplementRecordResponse + { + /// + /// 唯一号 + /// + public string UniqueId { get; set; } + + /// + /// 工号 + /// + public string Code { get; set; } + + /// + /// 餐补状态 + /// + public MealSupplementStatusEnumtype Status { get; set; } + + /// + /// 餐补状态CN + /// + public string StatusCN => Status.GetDescription(); + + /// + /// 考勤日期 + /// + public DateTime Date { get; set; } + + /// + /// 工作地 + /// + public string Workplace { get; set; } + + /// + /// 厂区 + /// + public string Factory { get; set; } + + public string Remark { get; set; } + + /// + /// 餐补 + /// + public decimal Amount { get; set; } + + /// + /// 处理结果 + /// + public string Result { get; set; } + + /// + /// 状态同步 + /// + public bool Sync { get; set; } + } +} diff --git a/Src/Dlhis.Common/Services/IMealSupplementRecordService.cs b/Src/Dlhis.Common/Services/IMealSupplementRecordService.cs new file mode 100644 index 00000000..c193b966 --- /dev/null +++ b/Src/Dlhis.Common/Services/IMealSupplementRecordService.cs @@ -0,0 +1,11 @@ +using Dlhis.Common.Request; +using Dlhis.Common.Response; +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Common.Services +{ + public interface IMealSupplementRecordService : IScopeDependency + { + Task> MealSupplementRecordPageAsync(MealSupplementRecordRequest request); + } +} diff --git a/Src/Dlhis.Common/Services/Implements/MealSupplementRecordService.cs b/Src/Dlhis.Common/Services/Implements/MealSupplementRecordService.cs new file mode 100644 index 00000000..60d908a3 --- /dev/null +++ b/Src/Dlhis.Common/Services/Implements/MealSupplementRecordService.cs @@ -0,0 +1,31 @@ +using Dlhis.Common.Request; +using Dlhis.Common.Response; +using Dlhis.Entity.Basic.Entity; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Extensions; +using Kurisu.SqlSugar.Services; + +namespace Dlhis.Common.Services.Implements +{ + public class MealSupplementRecordService : IMealSupplementRecordService + { + + private readonly IDbContext _dbContext; + + public MealSupplementRecordService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task> MealSupplementRecordPageAsync(MealSupplementRecordRequest request) + { + var page = await _dbContext.Queryable() + .WhereIF(request.Search.IsPresent(), x => x.Code.Contains(request.Search)) + .Select() + .ToPageListAsync(request); + + return page; + } + } +} diff --git a/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs b/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs index 714d4e58..4fcde1c1 100644 --- a/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs +++ b/Src/Dlhis.ScheduledTask/CommonJobs/DelApiLogTaskJob.cs @@ -21,11 +21,11 @@ namespace Dlhis.ScheduledTask.CommonJobs; { DateTime now = DateTime.Now; DateTime todayStart = now.Date; - DateTime threeDaysAgoStart = todayStart.AddDays(-3); + DateTime threeDaysAgoStart = todayStart.AddDays(-7); var logs = await _dbContext.ChangeDb("log") .Queryable() - .Where(x => x._ts <= threeDaysAgoStart) + .Where(x => x._ts >= threeDaysAgoStart && x._ts <= now) .Select(x => x.Id) .ToListAsync(); diff --git a/Src/Dlhis.ScheduledTask/Packs/JobPack.cs b/Src/Dlhis.ScheduledTask/Packs/JobPack.cs index 429c60cc..57729a3d 100644 --- a/Src/Dlhis.ScheduledTask/Packs/JobPack.cs +++ b/Src/Dlhis.ScheduledTask/Packs/JobPack.cs @@ -65,7 +65,7 @@ public class JobPack : BaseAppPack TimeZone = TimeZoneInfo.Local }); //删除前三天前的日志 - RecurringJob.AddOrUpdate("DelApiLogTask", s => s.RunAsync(), "0 0 2 * * *", new RecurringJobOptions + RecurringJob.AddOrUpdate("DelApiLogTask", s => s.RunAsync(), "0 0 */7 * *", new RecurringJobOptions { TimeZone = TimeZoneInfo.Local });