feat 增加厂区消费查询
This commit is contained in:
@@ -35,7 +35,7 @@ public class BalanceSummaryController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 餐次用餐分析,统计部门金额和消费人数
|
/// 部门用餐分析,统计部门金额和消费人数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("department/analysis/amountAndCount")]
|
[HttpGet("department/analysis/amountAndCount")]
|
||||||
public async Task<Pagination<BalanceRecordAnalysisDResponse>> BalanceRecordAnalysisByDepartmentAsync([FromQuery] SummaryCommonDto request)
|
public async Task<Pagination<BalanceRecordAnalysisDResponse>> BalanceRecordAnalysisByDepartmentAsync([FromQuery] SummaryCommonDto request)
|
||||||
@@ -44,7 +44,7 @@ public class BalanceSummaryController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 餐次用餐分析,统计成本中心金额和消费人数
|
/// 成本中心用餐分析,统计成本中心金额和消费人数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("costId/analysis/amountAndCount")]
|
[HttpGet("costId/analysis/amountAndCount")]
|
||||||
public async Task<Pagination<BalanceRecordAnalysisDResponse>> BalanceRecordAnalysisByCostAsync([FromQuery] SummaryCommonDto request)
|
public async Task<Pagination<BalanceRecordAnalysisDResponse>> BalanceRecordAnalysisByCostAsync([FromQuery] SummaryCommonDto request)
|
||||||
@@ -71,4 +71,15 @@ public class BalanceSummaryController : ControllerBase
|
|||||||
{
|
{
|
||||||
return await _balanceSummaryService.BalanceRecordShiftAnalysisAmountAndCountAsync(request);
|
return await _balanceSummaryService.BalanceRecordShiftAnalysisAmountAndCountAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 厂区就餐分析,统计金额和人数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("factory/analysis/amountAndUserCount")]
|
||||||
|
public async Task<Pagination<BalanceRecordAnalysisFactoryAmountAndCountResponse>> BalanceRecordAnalysisByFactoryAsync([FromQuery] SummaryCommonDto request)
|
||||||
|
{
|
||||||
|
return await _balanceSummaryService.BalanceRecordAnalysisByFactoryAsync(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Dlhis.Canteen.Order.Response;
|
||||||
|
|
||||||
|
public class BalanceRecordAnalysisFactoryAmountAndCountResponse
|
||||||
|
{
|
||||||
|
public string Factory { get; set; }
|
||||||
|
public string FactoryName { get; set; }
|
||||||
|
public decimal Amount { get; set; }
|
||||||
|
public int UserCount { get; set; }
|
||||||
|
}
|
||||||
@@ -17,4 +17,5 @@ public interface IBalanceSummaryService : IScopeDependency
|
|||||||
|
|
||||||
Task<BalanceRecordAnalysisShiftAmountAndCountResponse> BalanceRecordShiftAnalysisAmountAndCountAsync(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.Basic.Entity;
|
||||||
using Dlhis.Entity.Canteen.Entities;
|
using Dlhis.Entity.Canteen.Entities;
|
||||||
using Dlhis.Entity.Canteen.Enums;
|
using Dlhis.Entity.Canteen.Enums;
|
||||||
|
using Dlhis.Sys.Api;
|
||||||
using Kurisu.AspNetCore.CustomClass;
|
using Kurisu.AspNetCore.CustomClass;
|
||||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||||
using Kurisu.AspNetCore.DataAccess.Extensions;
|
using Kurisu.AspNetCore.DataAccess.Extensions;
|
||||||
@@ -18,10 +19,12 @@ namespace Dlhis.Canteen.Order.Services.Implements;
|
|||||||
public class BalanceSummaryService : IBalanceSummaryService
|
public class BalanceSummaryService : IBalanceSummaryService
|
||||||
{
|
{
|
||||||
private readonly IDbContext _dbContext;
|
private readonly IDbContext _dbContext;
|
||||||
|
private readonly ITenantApi _tenantApi;
|
||||||
|
|
||||||
public BalanceSummaryService(IDbContext dbContext)
|
public BalanceSummaryService(IDbContext dbContext, ITenantApi tenantApi)
|
||||||
{
|
{
|
||||||
_dbContext = dbContext;
|
_dbContext = dbContext;
|
||||||
|
_tenantApi = tenantApi;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<BalanceRecordAnalysisSummaryResponse> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request)
|
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***********************************************************************
|
//**************************************************************help method***********************************************************************
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -156,8 +186,8 @@ public class BalanceSummaryService : IBalanceSummaryService
|
|||||||
private ISugarQueryable<BalanceRecordEntity> GetQueryable(SummaryCommonDto request)
|
private ISugarQueryable<BalanceRecordEntity> GetQueryable(SummaryCommonDto request)
|
||||||
{
|
{
|
||||||
return _dbContext.Queryable<BalanceRecordEntity>()
|
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) //成本日期
|
.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)); //营业点
|
.WhereIF(request.BusinessPlaceCodes?.Any() == true, x => request.BusinessPlaceCodes.Contains(x.BusinessPlaceCode.Value)); //营业点
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
},
|
},
|
||||||
"dotnetRunMessages": true,
|
"dotnetRunMessages": true,
|
||||||
"applicationUrl": "http://localhost:5008"
|
"applicationUrl": "http://*:5008"
|
||||||
},
|
},
|
||||||
"Container (Dockerfile)": {
|
"Container (Dockerfile)": {
|
||||||
"commandName": "Docker",
|
"commandName": "Docker",
|
||||||
|
|||||||
Reference in New Issue
Block a user