fix 成本日期查询

This commit is contained in:
2024-07-17 11:13:21 +08:00
parent 66c24e2ebe
commit aeda215b38

View File

@@ -1,6 +1,7 @@
using Dlhis.Basic.Api; using Dlhis.Basic.Api;
using Dlhis.Canteen.Order.Request; using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response; using Dlhis.Canteen.Order.Response;
using Dlhis.Canteen.Setting.Services;
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;
@@ -25,16 +26,19 @@ public class BalanceService : IBalanceService
private readonly IDbContext _dbContext; private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser; private readonly ICurrentUser _currentUser;
private readonly ITenantApi _tenantApi; private readonly ITenantApi _tenantApi;
private readonly ICanteenSettingService _canteenSettingService;
private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi; private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi;
public BalanceService(IDbContext dbContext, public BalanceService(IDbContext dbContext,
ICurrentUser currentUser, ICurrentUser currentUser,
ITenantApi tenantApi, ITenantApi tenantApi,
ICanteenSettingService canteenSettingService,
IBusinessPlacePermissionsApi businessPlacePermissionsApi) IBusinessPlacePermissionsApi businessPlacePermissionsApi)
{ {
_dbContext = dbContext; _dbContext = dbContext;
_currentUser = currentUser; _currentUser = currentUser;
_tenantApi = tenantApi; _tenantApi = tenantApi;
_canteenSettingService = canteenSettingService;
_businessPlacePermissionsApi = businessPlacePermissionsApi; _businessPlacePermissionsApi = businessPlacePermissionsApi;
} }
@@ -110,7 +114,7 @@ public class BalanceService : IBalanceService
if (device == null) if (device == null)
{ {
return new Pagination<BalanceRecordDeviceResponse>() return new Pagination<BalanceRecordDeviceResponse>
{ {
Data = new List<BalanceRecordDeviceResponse>() Data = new List<BalanceRecordDeviceResponse>()
}; };
@@ -119,28 +123,31 @@ public class BalanceService : IBalanceService
if (request.SearchDate.HasValue) if (request.SearchDate.HasValue)
{ {
request.Start = request.SearchDate; request.Start = request.SearchDate;
request.End = request.SearchDate.Value.AddDays(1); request.End = request.SearchDate;
} }
// var switchTime = await _canteenSettingService.GetBusinessSwitchTimeAsync(device.TenantId); var switchTime = await _canteenSettingService.GetBusinessSwitchTimeAsync(device.TenantId);
// if (switchTime.HasValue) if (switchTime.HasValue)
// { {
// var setTime = date.Add(switchTime.Value.ToTimeSpan()); var setTime = request.Start!.Value.Add(switchTime.Value.ToTimeSpan());
// if (DateTime.Now < setTime) if (DateTime.Now < setTime)
// date = date.AddDays(-1); {
// } request.Start = request.Start.Value.AddDays(-1);
request.End = request.End!.Value.AddDays(-1);
}
}
var page = await _dbContext.Queryable<BalanceRecordEntity>() var page = await _dbContext.Queryable<BalanceRecordEntity>()
.LeftJoin<GainfoEntity>((record, ga) => record.UserNo == ga.No) .LeftJoin<GainfoEntity>((record, ga) => record.UserNo == ga.No)
.LeftJoin<DepartmentEntity>((record, ga, department) => ga.DepartmentNo == department.No) .LeftJoin<DepartmentEntity>((record, ga, department) => ga.DepartmentNo == department.No)
.LeftJoin<BusinessPlaceEntity>((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) .LeftJoin<BusinessPlaceEntity>((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code)
.LeftJoin<ImageRecordEntity>((record, ga, department, bPlace, imageRecord) => imageRecord.No == record.No) .LeftJoin<ImageRecordEntity>((record, ga, department, bPlace, imageRecord) => imageRecord.No == record.No)
.WhereIF(request.UserCode.IsPresent(), record => record.UserCode == request.UserCode) .Where(record => record.DeviceUniqueNo == device.UniqueNo)
.Where(record => record.CostDate >= request.Start && record.CostDate <= request.End) .Where(record => record.CostDate >= request.Start && record.CostDate <= request.End)
.Where(record => record.DeviceUniqueNo == device.UniqueNo || record.DeviceUniqueNo == device.Code.ToString())
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
.OrderBy(record => record.CreateTime, OrderByType.Desc) .WhereIF(request.UserCode.IsPresent(), record => record.UserCode == request.UserCode)
.OrderBy(record => record.CostDateTime, OrderByType.Desc)
.Select((record, ga, department, bPlace, imageRecord) => new BalanceRecordDeviceResponse .Select((record, ga, department, bPlace, imageRecord) => new BalanceRecordDeviceResponse
{ {
Id = record.Id, Id = record.Id,
@@ -166,7 +173,7 @@ public class BalanceService : IBalanceService
//消费总金额 //消费总金额
var sum = await _dbContext.Queryable<BalanceRecordEntity>() var sum = await _dbContext.Queryable<BalanceRecordEntity>()
.Where(record => record.CostDate >= request.Start && record.CostDate <= request.End) .Where(record => record.CostDate >= request.Start && record.CostDate <= request.End)
.Where(record => record.DeviceUniqueNo == device.UniqueNo || record.DeviceUniqueNo == device.Code.ToString()) .Where(record => record.DeviceUniqueNo == device.UniqueNo)
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
.SumAsync(record => SqlFunc.Abs(SqlFunc.IsNull(record.Amount, 0))); .SumAsync(record => SqlFunc.Abs(SqlFunc.IsNull(record.Amount, 0)));