fix 餐补汇总统计

This commit is contained in:
2024-08-07 09:55:36 +08:00
parent fb312a2f50
commit 3ef330a637
4 changed files with 23 additions and 9 deletions

View File

@@ -14,7 +14,7 @@ namespace Dlhis.Canteen.MealSupplementRecord.Controller;
[Authorize] [Authorize]
[Route("api/[controller]")] [Route("api/[controller]")]
[ApiController] [ApiController]
public class MealSupplementsRecordController public class MealSupplementsRecordController : ControllerBase
{ {
private readonly IMealSupplementRecordService _mealSupplementRecordService; private readonly IMealSupplementRecordService _mealSupplementRecordService;
@@ -29,7 +29,7 @@ public class MealSupplementsRecordController
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("page")] [HttpGet("page")]
public async Task<Pagination<MealSupplementRecordResponse>> MealSupplementRecordPageAsync([FromQuery] MealSupplementRecordRequest request) public async Task<MealSupplementRecordSummaryResponse> MealSupplementRecordPageAsync([FromQuery] MealSupplementRecordRequest request)
{ {
return await _mealSupplementRecordService.GetPageAsync(request); return await _mealSupplementRecordService.GetPageAsync(request);
} }

View File

@@ -1,10 +1,18 @@
using Dlhis.Entity.Basic.Enums; using Dlhis.Entity.Basic.Enums;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.Utils.Converters; using Kurisu.AspNetCore.Utils.Converters;
using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.AspNetCore.Utils.Extensions;
using Newtonsoft.Json; using Newtonsoft.Json;
namespace Dlhis.Canteen.MealSupplementRecord.Response; namespace Dlhis.Canteen.MealSupplementRecord.Response;
public class MealSupplementRecordSummaryResponse
{
public decimal Amount { get; set; }
public Pagination<MealSupplementRecordResponse> Pagination { get; set; }
}
public class MealSupplementRecordResponse public class MealSupplementRecordResponse
{ {
/// <summary> /// <summary>

View File

@@ -6,9 +6,9 @@ namespace Dlhis.Canteen.MealSupplementRecord.Services;
public interface IMealSupplementRecordService : IScopeDependency public interface IMealSupplementRecordService : IScopeDependency
{ {
Task<Pagination<MealSupplementRecordResponse>> GetPageAsync(MealSupplementRecordRequest request); Task<MealSupplementRecordSummaryResponse> GetPageAsync(MealSupplementRecordRequest request);
Task<MealSupplementRecordMyResponse> GetMyMealSupplementRecords(MealSupplementRecordMyRequest request); Task<MealSupplementRecordMyResponse> GetMyMealSupplementRecords(MealSupplementRecordMyRequest request);
Task InitImportAsync(List<MealSupplementInitImportRequest> requests); Task InitImportAsync(List<MealSupplementInitImportRequest> requests);
} }

View File

@@ -6,7 +6,6 @@ using Dlhis.Entity.Canteen.Enums;
using Dlhis.Sys.Api; using Dlhis.Sys.Api;
using Kurisu.AspNetCore.Authentication.Abstractions; using Kurisu.AspNetCore.Authentication.Abstractions;
using Kurisu.AspNetCore.CustomClass; using Kurisu.AspNetCore.CustomClass;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions; using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils; using Kurisu.AspNetCore.Utils;
@@ -28,9 +27,9 @@ public class MealSupplementRecordService : IMealSupplementRecordService
_tenantApi = tenantApi; _tenantApi = tenantApi;
} }
public async Task<Pagination<MealSupplementRecordResponse>> GetPageAsync(MealSupplementRecordRequest request) public async Task<MealSupplementRecordSummaryResponse> GetPageAsync(MealSupplementRecordRequest request)
{ {
var page = await _dbContext.Queryable<MealSupplementRecordEntity>() var queryable = _dbContext.Queryable<MealSupplementRecordEntity>()
.LeftJoin<GainfoEntity>((x, ga) => x.Code == ga.Code) .LeftJoin<GainfoEntity>((x, ga) => x.Code == ga.Code)
.LeftJoin<DepartmentEntity>((x, ga, department) => ga.DepartmentNo == department.No) .LeftJoin<DepartmentEntity>((x, ga, department) => ga.DepartmentNo == department.No)
.WhereIF(request.Status.HasValue, x => x.Status == request.Status) .WhereIF(request.Status.HasValue, x => x.Status == request.Status)
@@ -40,7 +39,9 @@ public class MealSupplementRecordService : IMealSupplementRecordService
.WhereIF(request.DepartmentNo.IsPresent(), (x, ga) => ga.DepartmentNo == request.DepartmentNo) .WhereIF(request.DepartmentNo.IsPresent(), (x, ga) => ga.DepartmentNo == request.DepartmentNo)
.WhereIF(request.Werks.IsPresent(), (x, ga) => ga.Werks == request.Werks) .WhereIF(request.Werks.IsPresent(), (x, ga) => ga.Werks == request.Werks)
.WhereIF(request.DateTimePeriod.HasValue(), x => x.Date >= request.DateTimePeriod.Start && x.Date <= request.DateTimePeriod.End) .WhereIF(request.DateTimePeriod.HasValue(), x => x.Date >= request.DateTimePeriod.Start && x.Date <= request.DateTimePeriod.End)
.WhereIF(request.Search.IsPresent(), (x, ga) => x.Code == request.Search || ga.Name == request.Search) .WhereIF(request.Search.IsPresent(), (x, ga) => x.Code == request.Search || ga.Name == request.Search);
var page = await queryable
.Select((x, ga, department) => new MealSupplementRecordResponse .Select((x, ga, department) => new MealSupplementRecordResponse
{ {
Amount = x.Amount, Amount = x.Amount,
@@ -74,10 +75,15 @@ public class MealSupplementRecordService : IMealSupplementRecordService
} }
catch (Exception) catch (Exception)
{ {
//ignore
} }
return page; return new MealSupplementRecordSummaryResponse
{
Amount = await queryable.SumAsync(x => x.Amount),
Pagination = page
};
} }
public async Task<MealSupplementRecordMyResponse> GetMyMealSupplementRecords(MealSupplementRecordMyRequest request) public async Task<MealSupplementRecordMyResponse> GetMyMealSupplementRecords(MealSupplementRecordMyRequest request)