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
});