feat: 功能优化和增加餐饮分析
This commit is contained in:
@@ -298,16 +298,7 @@ public class BalanceService : IBalanceService
|
||||
|
||||
//var myCodes = request.BusinessplaceCodes;
|
||||
|
||||
var queryable = _dbContext.Queryable<BalanceRecordEntity>()
|
||||
.LeftJoin<DepartmentEntity>((record, department) => record.DepartmentNo == department.No)
|
||||
.LeftJoin<BusinessPlaceEntity>((record, department, bPlace) => record.BusinessPlaceCode == bPlace.Code)
|
||||
.WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
|
||||
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
|
||||
.Where(record => myCodes.Contains(record.BusinessPlaceCode))
|
||||
.WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType))
|
||||
.WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search);
|
||||
|
||||
var page = await queryable
|
||||
var page = await GetBaseQuery()
|
||||
.OrderBy(record => new { CostDate = SqlFunc.Desc(record.CostDate), CostDateTime = SqlFunc.Desc(record.CostDateTime) })
|
||||
.Select((record, department, bPlace) => new BalanceRecordDetailPageResponse
|
||||
{
|
||||
@@ -339,16 +330,28 @@ public class BalanceService : IBalanceService
|
||||
//ignore
|
||||
}
|
||||
|
||||
|
||||
var amount = await queryable.SumAsync(record => SqlFunc.Abs(record.Amount));
|
||||
var total = await queryable.Select(record => record.UserCode).Distinct().CountAsync();
|
||||
var amount = await GetBaseQuery().SumAsync(record => SqlFunc.Abs(record.Amount));
|
||||
var userCount = await GetBaseQuery().Select(record => record.UserCode).Distinct().CountAsync();
|
||||
|
||||
return new BalanceRecordByBusinessPlaceResponse
|
||||
{
|
||||
Amount = amount,
|
||||
Total = total,
|
||||
Total = userCount,
|
||||
Pagination = page,
|
||||
};
|
||||
|
||||
|
||||
ISugarQueryable<BalanceRecordEntity, DepartmentEntity, BusinessPlaceEntity> GetBaseQuery()
|
||||
{
|
||||
return _dbContext.Queryable<BalanceRecordEntity>()
|
||||
.LeftJoin<DepartmentEntity>((record, department) => record.DepartmentNo == department.No)
|
||||
.LeftJoin<BusinessPlaceEntity>((record, department, bPlace) => record.BusinessPlaceCode == bPlace.Code)
|
||||
.WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
|
||||
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
|
||||
.Where(record => myCodes.Contains(record.BusinessPlaceCode))
|
||||
.WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType))
|
||||
.WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -362,16 +365,14 @@ public class BalanceService : IBalanceService
|
||||
|
||||
//var myCodes = request.BusinessplaceCodes;
|
||||
|
||||
var queryable = _dbContext.Queryable<BalanceRecordEntity>()
|
||||
var rows = await _dbContext.Queryable<BalanceRecordEntity>()
|
||||
.LeftJoin<DepartmentEntity>((record, department) => record.DepartmentNo == department.No)
|
||||
.LeftJoin<BusinessPlaceEntity>((record, department, bPlace) => record.BusinessPlaceCode == bPlace.Code)
|
||||
.WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
|
||||
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
|
||||
.Where(record => myCodes.Contains(record.BusinessPlaceCode))
|
||||
.WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType))
|
||||
.WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search);
|
||||
|
||||
var rows = await queryable
|
||||
.WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search)
|
||||
.OrderBy(record => new { CostDate = SqlFunc.Desc(record.CostDate), CostDateTime = SqlFunc.Desc(record.CostDateTime) })
|
||||
.Select((record, department, bPlace) => new BalanceRecordDetailPageResponse
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user