diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalanceSummaryController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalanceSummaryController.cs
index 54a495de..cbbc899f 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/BalanceSummaryController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/BalanceSummaryController.cs
@@ -32,4 +32,13 @@ public class BalanceSummaryController : ControllerBase
{
return await _balanceSummaryService.BalanceRecordAnalysisAsync(request);
}
-}
+
+ ///
+ /// 用餐分析(成本中心)
+ ///
+ [HttpGet("analysis/cost")]
+ public async Task> BalanceRecordAnalysisByCostIdAsync()
+ {
+ return await _balanceSummaryService.BalanceRecordAnalysisByCostIdAsync();
+ }
+}
\ No newline at end of file
diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
index ba2cd638..67503ab2 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
@@ -126,17 +126,6 @@ public class BalancesController : ControllerBase
return await _balanceService.AverageDailyAsync(request);
}
- ///
- /// 获取消费机详情
- ///
- ///
- ///
- [HttpGet("consumeDevices")]
- public async Task> GetConsumeDeviceAsync([FromQuery] GetConsumeDeviceRequest request)
- {
- return await _balanceService.GetConsumeDeviceAsync(request);
- }
-
///
/// 海宁餐补数据写入
///
diff --git a/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs b/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs
index 2c0c6012..35bdf155 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/OrdersController.cs
@@ -40,20 +40,6 @@ public class OrdersController : ControllerBase
return await _orderService.AddAsync(request);
}
- [IgnoreTenant]
- [HttpPost("ReCalcOffline")]
- public async Task ReCalcOfflineAsync(ReCalcOfflineRequest request)
- {
- await _orderService.ReCalcOfflineAsync(request);
- }
-
- [IgnoreTenant]
- [HttpPost("UpdateOffline")]
- public async Task UpdateOffline(UpdateOfflineRequest outRequest)
- {
- await _orderService.UpdateOffline(outRequest);
- }
-
///
/// 设备发起订单
///
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs
index e0cb0598..6995147b 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordAnalysisRequest.cs
@@ -15,7 +15,7 @@ public class BalanceRecordAnalysisRequest : PageDto, IValidatableObject
public IEnumerable Validate(ValidationContext validationContext)
{
- if (SearchDateTimePeriod != null && SearchDateTimePeriod.End.HasValue)
+ if (SearchDateTimePeriod is { End: not null })
{
SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1);
}
diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs
index 6a6d33ed..aa31a2f6 100644
--- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageDetailRequest.cs
@@ -23,14 +23,12 @@ public class BalanceRecordPageDetailRequest : PageDto, IValidatableObject
[EnumDataType(typeof(ShiftEnumType))]
public ShiftEnumType? ShiftType { get; set; }
+
public IEnumerable Validate(ValidationContext validationContext)
{
- if (SearchDateTimePeriod != null)
+ if (SearchDateTimePeriod?.End != null)
{
- if (SearchDateTimePeriod.End.HasValue)
- {
- SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1);
- }
+ SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1);
}
yield break;
diff --git a/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs b/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs
deleted file mode 100644
index d87a3ff3..00000000
--- a/Src/Dlhis.Canteen/Order/Request/ConsumptionTrendRequest.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Dlhis.Entity.Canteen.Enums;
-using System.ComponentModel.DataAnnotations;
-
-namespace Dlhis.Canteen.Dishes.Request
-{
- public class ConsumptionTrendRequest
- {
- [Required]
- [EnumDataType(typeof(ConsumptionTrendEnumType))]
- public ConsumptionTrendEnumType Type { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/ReCalcOfflineRequest.cs b/Src/Dlhis.Canteen/Order/Request/ReCalcOfflineRequest.cs
deleted file mode 100644
index 00d6e10b..00000000
--- a/Src/Dlhis.Canteen/Order/Request/ReCalcOfflineRequest.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace Dlhis.Canteen.Order.Request
-{
- public class ReCalcOfflineRequest
- {
- [Required]
- public string UserCode { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Request/UpdateOfflineRequest.cs b/Src/Dlhis.Canteen/Order/Request/UpdateOfflineRequest.cs
deleted file mode 100644
index c72a8a42..00000000
--- a/Src/Dlhis.Canteen/Order/Request/UpdateOfflineRequest.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Dlhis.Canteen.Order.Request
-{
- public class UpdateOfflineRequest
- {
- public string No { get; set; }
- }
-}
diff --git a/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs b/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs
index e16606a0..01df623b 100644
--- a/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/AverageDailyResponse.cs
@@ -20,5 +20,5 @@ public class AverageDailyResponse
///
/// 日消费均额
///
- public int AverageAmount { get; set; }
+ public decimal AverageAmount { get; set; }
}
diff --git a/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisByCostResponse.cs b/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisByCostResponse.cs
new file mode 100644
index 00000000..d9c97fa5
--- /dev/null
+++ b/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisByCostResponse.cs
@@ -0,0 +1,6 @@
+namespace Dlhis.Canteen.Order.Response;
+
+public class BalanceRecordAnalysisByCostResponse
+{
+
+}
\ No newline at end of file
diff --git a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
index f89f6c86..34cfce93 100644
--- a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
@@ -28,8 +28,6 @@ public interface IBalanceService : IScopeDependency
Task> AverageDailyAsync(AverageDailyRequest request);
- Task> GetConsumeDeviceAsync(GetConsumeDeviceRequest request);
-
Task HainingImportAsync(BalanceHainingImportRequest request);
diff --git a/Src/Dlhis.Canteen/Order/Services/IBalanceSummaryService.cs b/Src/Dlhis.Canteen/Order/Services/IBalanceSummaryService.cs
index 360270e7..d264c692 100644
--- a/Src/Dlhis.Canteen/Order/Services/IBalanceSummaryService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IBalanceSummaryService.cs
@@ -7,4 +7,6 @@ namespace Dlhis.Canteen.Order.Services;
public interface IBalanceSummaryService : IScopeDependency
{
Task> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request);
+
+ Task> BalanceRecordAnalysisByCostIdAsync();
}
diff --git a/Src/Dlhis.Canteen/Order/Services/IOrderService.cs b/Src/Dlhis.Canteen/Order/Services/IOrderService.cs
index 929ef4d8..a738db3f 100644
--- a/Src/Dlhis.Canteen/Order/Services/IOrderService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IOrderService.cs
@@ -8,10 +8,6 @@ namespace Dlhis.Canteen.Order.Services;
public interface IOrderService : IScopeDependency
{
Task> AddAsync(OrderAddRequest request);
-
- Task ReCalcOfflineAsync(ReCalcOfflineRequest request);
-
- Task UpdateOffline(UpdateOfflineRequest outRequest);
///
/// 设备消费
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
index 74382ee9..9732d34d 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
@@ -9,6 +9,7 @@ using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
using Dlhis.Sys.Api;
using Kurisu.AspNetCore.Authentication.Abstractions;
+using Kurisu.AspNetCore.CustomClass;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
@@ -187,10 +188,9 @@ public class BalanceService : IBalanceService
.LeftJoin((record, department) => record.DepartmentNo == department.No)
.LeftJoin((record, department, bPlace) => record.BusinessPlaceCode == bPlace.Code)
.LeftJoin((record, department, bPlace, gainfo) => record.UserNo == gainfo.No)
- .Where((record) => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
+ .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
.Where(record => myCodes.Contains(record.BusinessPlaceCode))
- .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start)
- .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, record => record.CostDate <= request.SearchDateTimePeriod.End)
+ .WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
.WhereIF(request.ShiftType.HasValue, record => record.ShiftType == request.ShiftType)
.WhereIF(request.Search.IsPresent(), record => record.UserCode == request.Search || record.Name == request.Search);
@@ -348,157 +348,59 @@ public class BalanceService : IBalanceService
.Where(x => x.Status == CanteenBusinessPlaceStatusEnumType.Opened)
.ToListAsync();
-
//所有消费数据
var bs = await _dbContext.Queryable()
.Where(x => x.Type == BalanceRecordTypeEnumType.Out)
+ .Where(x => x.Status == BalanceRecordStatusEnumType.Valid)
.ToListAsync();
+
//可消费人数
- var consumerable = bs.Select(x => x.UserCode).Distinct().Count();
-
- var dailyNumber = SameDay(bs, "");
-
+ var consumerable = bs.DistinctBy(x => x.UserCode).Count();
//消费走势
- var months = await GetConsumptionTrendsAsync(ConsumptionTrendEnumType.Month);
- var days = await GetConsumptionTrendsAsync(ConsumptionTrendEnumType.Day);
+ var months = await GetConsumptionTrendsAsync(1);
+ var days = await GetConsumptionTrendsAsync(2);
- var res = new ConsumeNumberResponse
+ return new ConsumeNumberResponse
{
Total = devices.Count,
OffNumber = offCount.Count,
PlaceNumber = places.Count,
ConsumerableNumber = consumerable,
- DailyNumber = dailyNumber,
+ DailyNumber = 0,
Days = days,
Months = months
};
- return res;
- }
-
- ///
- /// 获取单日消费数据
- ///
- ///
- ///
- ///
- private static int SameDay(List bs, string userCode)
- {
- var time = DateTime.Now.ToString("yyyy-MM-dd");
- var b = userCode.IsEmpty();
- //当日消费数据
- var monthbs = bs
- .Where(x => x.CostDateTime.ToString("yyyy-MM-dd") == time)
- .WhereIF(!userCode.IsEmpty(), x => x.UserCode == userCode);
- //当日消费额
- var monthlySpending = monthbs.Sum(x => x.Amount);
- //当日消费人数
- var monthlyCount = monthbs.Select(x => x.UserCode).Distinct().Count();
- var dailyNumber = monthlyCount != 0 ? Math.Abs((int)Math.Ceiling(monthlySpending / monthlyCount)) : 0;
- return dailyNumber;
}
public async Task> GetSpendingDetailsAsync(SpendingDetailRequest request)
{
- var brs = await _dbContext
+ return await _dbContext
.Queryable()
.Where(x => x.Type == BalanceRecordTypeEnumType.Out)
- .ToListAsync();
- var codes = brs.Select(x => x.UserCode).ToList().Distinct().ToList();
-
- var lst = new List();
- foreach (var code in codes)
- {
- var br = brs.Where(x => x.UserCode == code).FirstOrDefault();
- var res = br.Adapt();
- lst.Add(res);
- }
-
- // 分页操作
- var startIndex = (request.PageIndex - 1) * request.PageSize;
- var pagedData = lst.Skip(startIndex).Take(request.PageSize).ToList();
-
- var pagination = new Pagination
- {
- PageIndex = request.PageIndex,
- PageSize = request.PageSize,
- Total = lst.Count, // 使用原始列表的总数进行分页
- Data = pagedData
- };
-
- return pagination;
+ .Where(x => x.Status == BalanceRecordStatusEnumType.Valid)
+ .Select()
+ .Distinct()
+ .ToPageListAsync(request);
}
public async Task> AverageDailyAsync(AverageDailyRequest request)
{
- //所有消费数据
- var brs = await _dbContext.Queryable()
+ return await _dbContext.Queryable()
.Where(x => x.Type == BalanceRecordTypeEnumType.Out)
- .ToListAsync();
- var codes = brs.Select(x => x.UserCode).ToList().Distinct().ToList();
-
- var lst = new List();
- foreach (var code in codes)
- {
- var br = brs.FirstOrDefault(x => x.UserCode == code);
- var res = br.Adapt();
- var dailyNumber = SameDay(brs, code);
- res.AverageAmount = dailyNumber;
- lst.Add(res);
- }
-
- // 分页操作
- var startIndex = (request.PageIndex - 1) * request.PageSize;
- var pagedData = lst.Skip(startIndex).Take(request.PageSize).ToList();
-
- var pagination = new Pagination
- {
- PageIndex = request.PageIndex,
- PageSize = request.PageSize,
- Total = lst.Count, // 使用原始列表的总数进行分页
- Data = pagedData
- };
-
- return pagination;
- }
-
- public async Task> GetConsumeDeviceAsync(GetConsumeDeviceRequest request)
- {
- if (request.IsOff)
- {
- //消费机离线设备
- var devices = await _dbContext.Queryable()
- .Where(x => x.Type == DeviceTypeEnumType.Meal)
- .ToListAsync();
-
- var offs = await GetOfflineDevicesCount(devices);
- var offUniqueNos = offs.Select(x => x.UniqueNo).ToList();
-
- var offpage = await _dbContext.Queryable()
- .LeftJoin((d, dt) => d.TemplateCode == dt.Code)
- .Where(d => offUniqueNos.Contains(d.UniqueNo))
- .Select((d, dt) => new DevicePageResponse
- {
- FuncsStr = d.Funcs.ToString(),
- Brand = dt.Brand,
- Type = d.Type,
- }, true)
- .ToPageListAsync(request);
- return offpage;
- }
-
- //消费机总数
- var page = await _dbContext.Queryable()
- .LeftJoin((d, dt) => d.TemplateCode == dt.Code)
- .Where(d => d.Type == DeviceTypeEnumType.Meal)
- .Select((d, dt) => new DevicePageResponse
+ .Where(x => x.Status == BalanceRecordStatusEnumType.Valid)
+ .GroupBy(x => new
{
- FuncsStr = d.Funcs.ToString(),
- Brand = dt.Brand,
- Type = d.Type,
- }, true)
+ x.UserNo, x.Name, x.UserCode, x.CostDate
+ })
+ .Select(x => new AverageDailyResponse
+ {
+ UserNo = x.UserNo,
+ Name = x.Name,
+ UserCode = x.UserCode,
+ AverageAmount = SqlFunc.AggregateSum(SqlFunc.Abs(x.Amount)) / SqlFunc.AggregateDistinctCount(x.CostDate)
+ })
.ToPageListAsync(request);
- return page;
}
public async Task HainingImportAsync(BalanceHainingImportRequest request)
@@ -772,7 +674,7 @@ public class BalanceService : IBalanceService
return list;
}
- private async Task> GetConsumptionTrendsAsync(ConsumptionTrendEnumType type)
+ private async Task> GetConsumptionTrendsAsync(int type)
{
var bs = await _dbContext.Queryable()
.Where(x => x.Type == BalanceRecordTypeEnumType.Out)
@@ -781,7 +683,7 @@ public class BalanceService : IBalanceService
var totalAmount = Math.Round(Math.Abs(bs.Sum(x => x.Amount)), 2);
var list = new List();
- if (type == ConsumptionTrendEnumType.Month)
+ if (type == 1)
{
//月与总额对比
var months = GetMonthsOfYear();
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceSummaryService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceSummaryService.cs
index 714141a3..49fd2e77 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceSummaryService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceSummaryService.cs
@@ -21,11 +21,11 @@ public class BalanceSummaryService : IBalanceSummaryService
public async Task> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request)
{
var list = await _dbContext.Queryable()
- .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true && request.SearchDateTimePeriod?.End.HasValue == true,
- record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
- .WhereIF(request.BusinessPlaceCode.HasValue, record => record.BusinessPlaceCode == request.BusinessPlaceCode)
- .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
- .ToListAsync();
+ .WhereIF(request.SearchDateTimePeriod.HasValue(),
+ record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
+ .WhereIF(request.BusinessPlaceCode.HasValue, record => record.BusinessPlaceCode == request.BusinessPlaceCode)
+ .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
+ .ToListAsync();
var shifts = Enum.GetValues().ToList();
@@ -44,10 +44,39 @@ public class BalanceSummaryService : IBalanceSummaryService
}).ToList(),
Total = grp.Where(x => x.CostDate == grp.Key).Select(x => x.UserNo).Distinct().Count()
};
- })
- .OrderByDescending(x => x.Date)
- .ToPage(request);
+ }).OrderByDescending(x => x.Date).ToPage(request);
return page;
}
-}
+
+
+ public async Task> BalanceRecordAnalysisByCostIdAsync()
+ {
+ var list = await _dbContext.Queryable()
+ // .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true && request.SearchDateTimePeriod?.End.HasValue == true,
+ // record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End)
+ //.WhereIF(request.BusinessPlaceCode.HasValue, record => record.BusinessPlaceCode == request.BusinessPlaceCode)
+ .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
+ .ToListAsync();
+
+ var shifts = Enum.GetValues().ToList();
+ var page = list.GroupBy(record => record.CostDate.Date).Select(grp =>
+ {
+ return new BalanceRecordAnalysisResponse
+ {
+ Date = DateOnly.FromDateTime(grp.Key),
+ Items = shifts.Select(shift =>
+ {
+ return new KeyValueDto
+ {
+ Key = shift,
+ Value = grp.Where(x => x.ShiftType == shift).Select(x => x.UserNo).Distinct().Count()
+ };
+ }).ToList(),
+ Total = grp.Where(x => x.CostDate == grp.Key).Select(x => x.UserNo).Distinct().Count()
+ };
+ }).OrderByDescending(x => x.Date);
+
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
index 2babc612..703badda 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs
@@ -430,68 +430,6 @@ public class OrderService : BaseOrderService, IOrderService
return pageResult;
}
-
- public async Task UpdateOffline(UpdateOfflineRequest outRequest)
- {
- var orders = await DbContext.Queryable().Where(x => x.IsOffline)
- .Where(x => x.Status == BalanceRecordStatusEnumType.Valid)
- .Where(x => x.OrderStatus == CanteenOrderStatusEnumType.Success)
- .Where(x => x.ApplicationType == CanteenApplicationTypeEnumType.Device)
- .Where(x => SqlFunc.IsNullOrEmpty(x.BusinessShiftCode))
- .WhereIF(outRequest.No.IsPresent(), x => x.No == outRequest.No)
- .ToListAsync();
-
- foreach (var item in orders)
- {
- var request = item.RequestJson.ToObject();
-
- var registry = await DbContext.Queryable()
- .Where(x => x.DeviceUniqueNo == request.DeviceUniqueNo)
- .FirstAsync();
-
- var businessPlaceInfo = await DbContext.Queryable()
- .LeftJoin((x, sr) => x.Code == sr.PlaceCode)
- .Where(x => x.Code == registry.BusinessPlaceCode)
- .Select((x, sr) => new
- {
- x.Code,
- sr.ShiftCode,
- x.TenantId
- })
- .FirstAsync();
-
-
- //获取当前消费餐次
- var shifts = await DbContext.Queryable().Where(x => x.ShiftCode == businessPlaceInfo.ShiftCode).ToListAsync();
-
- var shift = shifts.FirstOrDefault(x => new TimePeriod()
- {
- Start = x.Start,
- End = x.End
- }.IsPresent1(request.CostDateTime));
-
- var costDate = await GetCostDateAsync(shift, request.CostDateTime);
-
- var shiftType = shift?.ShiftType;
-
- await DbContext.Updateable()
- .SetColumns(x => x.BusinessShiftCode == businessPlaceInfo.ShiftCode)
- .SetColumns(x => x.CostDate == costDate)
- .SetColumns(x => x.CostDateTime == request.CostDateTime)
- .SetColumns(x => x.ShiftType == shiftType)
- .Where(x => x.No == item.No)
- .ExecuteCommandAsync();
-
- await DbContext.Updateable()
- .SetColumns(x => x.BusinessShiftCode == businessPlaceInfo.ShiftCode)
- .SetColumns(x => x.CostDate == costDate)
- .SetColumns(x => x.CostDateTime == request.CostDateTime)
- .SetColumns(x => x.ShiftType == shiftType)
- .Where(x => x.No == item.No)
- .ExecuteCommandAsync();
- }
- }
-
//******************************************************* help methods ************************************************************/
///
@@ -637,56 +575,6 @@ public class OrderService : BaseOrderService, IOrderService
// }
}
- public async Task ReCalcOfflineAsync(ReCalcOfflineRequest request)
- {
- var gainfo = await DbContext.Queryable().Where(x => x.Code == request.UserCode).FirstAsync();
- var nos = await DbContext.Queryable().Where(x => x.UserCode == request.UserCode).Select(x => x.No).ToListAsync();
-
- var orders = await DbContext.Queryable()
- .Where(x => x.IsOffline)
- .Where(x => !nos.Contains(x.No))
- .Where(x => x.UserCode == request.UserCode)
- .ToListAsync();
-
-
- var gainfoMeal = await DbContext.Queryable().Where(x => x.UserNo == gainfo.No).FirstAsync();
- if (gainfoMeal == null)
- {
- gainfoMeal = new GainfoMealEntity
- {
- Balance = 0,
- BalanceOfRecharge = 0,
- BalanceOfSubsidies = 0,
- Version = 0,
- UserNo = gainfo.No,
- UserCode = gainfo.Code,
- };
-
- await DbContext.InsertAsync(gainfoMeal);
- }
-
- foreach (var order in orders)
- {
- await CommonHelper.RetryAsync(async () =>
- {
- var currentGainfoMeal = await DbContext.Queryable().Where(x => x.UserNo == order.UserNo).FirstAsync();
- //金额+-
- currentGainfoMeal.Balance += order.Amount;
-
- await DbContext.Updateable()
- .SetColumns(x => x.Balance == currentGainfoMeal.Balance)
- .SetColumns(x => x.Version == x.Version + 1)
- .SetColumns(x => x.ModifiedTime == DateTime.Now)
- .Where(x => x.UserNo == order.UserNo && x.Version == currentGainfoMeal.Version) //必须与查询时的version一致
- .ExecuteCommandThrowVersionAsync();
- //写入记录
- var balanceRecord = order.Adapt();
- balanceRecord.Id = 0;
- await DbContext.InsertAsync(balanceRecord);
- }, 5);
- }
- }
-
///
/// 根据二维码获取消费用户
///
diff --git a/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs
index aea4c07e..587169b8 100644
--- a/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs
+++ b/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs
@@ -32,6 +32,11 @@ public enum BalanceRecordSourceEnumType
[Description("现场支付")]
Cash,
+ ///
+ /// 电子餐券
+ ///
+ [Description("电子餐券")]
+ EVoucher,
//*********************************************************************************************************
///
diff --git a/Src/Dlhis.Entity/Canteen/Enums/ConsumptionTrendEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/ConsumptionTrendEnumType.cs
deleted file mode 100644
index e8573b48..00000000
--- a/Src/Dlhis.Entity/Canteen/Enums/ConsumptionTrendEnumType.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Dlhis.Entity.Canteen.Enums
-{
- public enum ConsumptionTrendEnumType
- {
- ///
- /// 日
- ///
- [Description("日")]
- Day = 1,
-
- ///
- /// 月
- ///
- [Description("月")]
- Month = 2,
- }
-}