feat 增加厂区消费查询
This commit is contained in:
@@ -10,11 +10,12 @@ public interface IBalanceSummaryService : IScopeDependency
|
||||
Task<BalanceRecordAnalysisSummaryResponse> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request);
|
||||
|
||||
Task<Pagination<BalanceRecordAnalysisDResponse>> BalanceRecordAnalysisByDepartmentAsync(SummaryCommonDto request);
|
||||
|
||||
|
||||
Task<Pagination<BalanceRecordAnalysisDResponse>> BalanceRecordAnalysisByCostAsync(SummaryCommonDto request);
|
||||
|
||||
Task<BalanceRecordAnalysisShiftAmountResponse> BalanceRecordShiftAnalysisAmountAsync(BalanceRecordAnalysisByShiftRequest request);
|
||||
|
||||
Task<BalanceRecordAnalysisShiftAmountAndCountResponse> BalanceRecordShiftAnalysisAmountAndCountAsync(BalanceRecordAnalysisByShiftRequest request);
|
||||
|
||||
Task<Pagination<BalanceRecordAnalysisFactoryAmountAndCountResponse>> BalanceRecordAnalysisByFactoryAsync(SummaryCommonDto request);
|
||||
}
|
||||
@@ -6,6 +6,7 @@ using Dlhis.Canteen.Order.Response;
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Canteen.Entities;
|
||||
using Dlhis.Entity.Canteen.Enums;
|
||||
using Dlhis.Sys.Api;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
using Kurisu.AspNetCore.DataAccess.Extensions;
|
||||
@@ -18,10 +19,12 @@ namespace Dlhis.Canteen.Order.Services.Implements;
|
||||
public class BalanceSummaryService : IBalanceSummaryService
|
||||
{
|
||||
private readonly IDbContext _dbContext;
|
||||
private readonly ITenantApi _tenantApi;
|
||||
|
||||
public BalanceSummaryService(IDbContext dbContext)
|
||||
public BalanceSummaryService(IDbContext dbContext, ITenantApi tenantApi)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_tenantApi = tenantApi;
|
||||
}
|
||||
|
||||
public async Task<BalanceRecordAnalysisSummaryResponse> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request)
|
||||
@@ -146,6 +149,33 @@ public class BalanceSummaryService : IBalanceSummaryService
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<Pagination<BalanceRecordAnalysisFactoryAmountAndCountResponse>> BalanceRecordAnalysisByFactoryAsync(SummaryCommonDto request)
|
||||
{
|
||||
var queryable = GetQueryable(request);
|
||||
|
||||
var page = await queryable
|
||||
.GroupBy(x => new { x.TenantId })
|
||||
.Select(x => new BalanceRecordAnalysisFactoryAmountAndCountResponse
|
||||
{
|
||||
Factory = x.TenantId,
|
||||
Amount = SqlFunc.AggregateSum(SqlFunc.Abs(x.Amount)),
|
||||
UserCount = SqlFunc.AggregateDistinctCount(x.UserCode)
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
|
||||
try
|
||||
{
|
||||
var tenants = await _tenantApi.GetTenantsInternalAsync();
|
||||
page.Data.ForEach(item => { item.Factory = tenants.FirstOrDefault(x => x.Code == item.Factory)?.Name; });
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//ignore
|
||||
}
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
//**************************************************************help method***********************************************************************
|
||||
|
||||
/// <summary>
|
||||
@@ -156,8 +186,8 @@ public class BalanceSummaryService : IBalanceSummaryService
|
||||
private ISugarQueryable<BalanceRecordEntity> GetQueryable(SummaryCommonDto request)
|
||||
{
|
||||
return _dbContext.Queryable<BalanceRecordEntity>()
|
||||
.Where(x => x.Status == BalanceRecordStatusEnumType.Valid && x.Type == BalanceRecordTypeEnumType.Out) //有效,消费数据
|
||||
.WhereIF(request.SearchDateTimePeriod.HasValue(), x => x.CostDate >= request.SearchDateTimePeriod.Start && x.CostDate <= request.SearchDateTimePeriod.End) //成本日期
|
||||
.Where(x => x.Status == BalanceRecordStatusEnumType.Valid && x.Type == BalanceRecordTypeEnumType.Out) //有效,消费数据
|
||||
.WhereIF(request.BusinessPlaceCodes?.Any() == true, x => request.BusinessPlaceCodes.Contains(x.BusinessPlaceCode.Value)); //营业点
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user