diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
index 84ab0fb5..94b134a4 100644
--- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
+++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
@@ -1,13 +1,16 @@
using System.ComponentModel.DataAnnotations;
using Dlhis.Basic.BusinessPlace.Response;
using Dlhis.Basic.Device.Response;
+using Dlhis.Basic.Device.Services;
using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Response;
using Dlhis.Basic.Organization.Services;
using Dlhis.Basic.Organization.Services.Implements;
+using Dlhis.Entity.Device.Entities;
using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
+using Org.BouncyCastle.Asn1.Ocsp;
namespace Dlhis.Basic.Organization.Controllers;
@@ -57,4 +60,14 @@ public class GainfoPermissionsController : ControllerBase
{
return await _gainfoPermissions.GetAssignDeviceCodesAsync(request);
}
+
+ ///
+ /// 当前绑定的设备组信息
+ ///
+ ///
+ [HttpGet("assignGroups")]
+ public async Task> GetAssignGroupAsync(string userNo)
+ {
+ return await _gainfoPermissions.GetAssignGroupAsync(userNo);
+ }
}
diff --git a/Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs b/Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs
new file mode 100644
index 00000000..eff54888
--- /dev/null
+++ b/Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs
@@ -0,0 +1,7 @@
+namespace Dlhis.Basic.Organization.Response
+{
+ public class GetAssignGroupResponse
+ {
+
+ }
+}
diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs
index 7b1f6183..72e38ae2 100644
--- a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs
+++ b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs
@@ -2,7 +2,6 @@
using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Response;
-using Dlhis.Basic.Organization.Services.Implements;
using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Basic.Organization.Services;
@@ -14,4 +13,6 @@ public interface IGainfoPermissions : IScopeDependency
Task> GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode);
Task> GetAssignDeviceCodesAsync(DeviceAssRequest request);
+
+ Task> GetAssignGroupAsync(string userNo);
}
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
index 2bcc5fe4..5fd1e448 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
@@ -1,4 +1,5 @@
using Dlhis.Basic.BusinessPlace.Response;
+using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Device.Services;
using Dlhis.Basic.Organization.Request;
@@ -8,6 +9,7 @@ using Dlhis.Entity.Canteen.Entities;
using Dlhis.Entity.Canteen.Enums;
using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
+using Dlhis.Entity.Sys.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
@@ -193,6 +195,16 @@ public class GainfoPermissions : IGainfoPermissions
}
+
+ public async Task> GetAssignGroupAsync(string userNo)
+ {
+ var groups = await _devicePermissionService.GetAssignmentsAsync(DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo);
+ return await _dbContext.Queryable()
+ .Where(x => groups.Contains(x.Code))
+ .Select()
+ .ToListAsync();
+ }
+
private IEnumerable RecursionGetNext(DeviceGroupEntity current, List deviceGroups)
{
var next = deviceGroups.Where(x => x.PCode == current.Code).ToList();
diff --git a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
index be35ced4..4c04d817 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
@@ -24,7 +24,7 @@ public class MenuDishesController : ControllerBase
}
///
- /// 获取菜单
+ /// 菜单分页
///
///
///
@@ -46,7 +46,7 @@ public class MenuDishesController : ControllerBase
}
///
- /// 获取菜品
+ /// 菜品分页
///
///
///
diff --git a/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs b/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs
index 93d81ee9..e26efc4b 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs
@@ -34,6 +34,18 @@ public class MiniProgramOrderDetailController : ControllerBase
return await _miniProgramOrderDetailService.GetMiniProgramOrderAsync(request);
}
+
+ ///
+ /// 明细保存
+ ///
+ ///
+ ///
+ [HttpPost("saveDetail")]
+ public async Task SaveDetailAsync(SaveDetailRequest request)
+ {
+ await _miniProgramOrderDetailService.SaveDetailAsync(request);
+ }
+
///
/// 明细分页
///
@@ -44,4 +56,14 @@ public class MiniProgramOrderDetailController : ControllerBase
{
return await _miniProgramOrderDetailService.GetDetailAsync(request);
}
+
+ ///
+ /// 下单
+ ///
+ ///
+ [HttpPost("order")]
+ public async Task OrderAsync(OrderRequest request)
+ {
+ await _miniProgramOrderDetailService.OrderAsync(request);
+ }
}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs
index 0d197a5e..8f9c6b55 100644
--- a/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs
@@ -5,5 +5,7 @@ namespace Dlhis.Canteen.Order.Request
public class GetMenuRequest : PageDto
{
public Guid? PlaceCode { get; set; }
+
+ public string Factory { get; set; }
}
}
diff --git a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
index dbbbdea8..98bdea14 100644
--- a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs
@@ -4,5 +4,9 @@ namespace Dlhis.Canteen.Order.Request
{
public class GetMiniProgramOrderRequest : PageDto
{
+ ///
+ /// 用餐日期
+ ///
+ public DateOnly? SysDate { get; set; }
}
}
diff --git a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
new file mode 100644
index 00000000..2369dd07
--- /dev/null
+++ b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
@@ -0,0 +1,45 @@
+using Dlhis.Entity.Canteen.Enums;
+using SqlSugar.DbConvert;
+using SqlSugar;
+
+namespace Dlhis.Canteen.Order.Request
+{
+ public class OrderRequest
+ {
+
+ ///
+ /// 订餐人
+ ///
+ public string UserCode { get; set; }
+
+ ///
+ /// 食堂
+ ///
+ public Guid PlaceCode { get; set; }
+
+ ///
+ /// 餐别
+ ///
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 配送地址
+ ///
+ public string Address { get; set; }
+
+ ///
+ /// 菜品
+ ///
+ public Guid DishesCode { get; set; }
+
+ ///
+ /// 数量
+ ///
+ public int DishesNum { get; set; } = 1;
+
+ ///
+ /// 支付方式
+ ///
+ public CanteenPayEnumType PayType { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs
new file mode 100644
index 00000000..a7ed3d5d
--- /dev/null
+++ b/Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs
@@ -0,0 +1,61 @@
+using Dlhis.Entity.Canteen.Enums;
+using SqlSugar.DbConvert;
+using SqlSugar;
+
+namespace Dlhis.Canteen.Order.Request
+{
+ public class SaveDetailRequest
+ {
+ public long? Id { get; set; }
+
+ ///
+ /// 订单号
+ ///
+ public string ThirdNo { get; set; }
+
+ ///
+ /// 营业日
+ ///
+ public DateOnly BusinessDate { get; set; }
+
+ ///
+ /// 餐次
+ ///
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 菜品编码
+ ///
+ public Guid DishesCode { get; set; }
+
+ ///
+ /// 菜品名称
+ ///
+ public Guid DishesName { get; set; }
+
+ ///
+ /// 单价
+ ///
+ public decimal Price { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 数量
+ ///
+ public int Num { get; set; }
+
+ ///
+ /// 金额
+ ///
+ public decimal Amount { get; set; }
+
+ ///
+ /// 订单明细状态
+ ///
+ public OrderDetailsStatusEnumType OrderStatus { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
index c20c4f00..c99deb60 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs
@@ -18,9 +18,14 @@ namespace Dlhis.Canteen.Order.Response
public DateOnly BusinessDate { get; set; }
///
- /// 餐别
+ /// 餐次
///
- public string ShiftType { get; set; }
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 餐次CN
+ ///
+ public string ShiftTypeCN => ShiftType.GetDescription();
///
/// 菜品编码
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
index 5b790fd0..aafee2b4 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
@@ -12,6 +12,11 @@ namespace Dlhis.Canteen.Order.Response
///
public Guid MenuCode { get; set; }
+ ///
+ /// 菜单名称
+ ///
+ public string MenuName { get; set; }
+
///
/// 大类
///
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
index 06d1d2bc..11a864da 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
@@ -21,6 +21,11 @@ namespace Dlhis.Canteen.Order.Response
///
public Guid PlaceCode { get; set; }
+ ///
+ /// 所属营业点名称
+ ///
+ public string PlaceName { get; set; }
+
///
/// 厂区
///
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
index d14f4fcb..5fcd6a2b 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs
@@ -32,6 +32,11 @@ namespace Dlhis.Canteen.Order.Response
///
public string DepartmentNo { get; set; }
+ ///
+ /// 部门名称
+ ///
+ public string DepartmentName { get; set; }
+
///
/// 成本中心
///
@@ -52,16 +57,31 @@ namespace Dlhis.Canteen.Order.Response
///
public Guid PlaceCode { get; set; }
+ ///
+ /// 营业名称
+ ///
+ public string PlaceName { get; set; }
+
///
/// 餐次
///
- public string ShiftType { get; set; }
+ public ShiftEnumType ShiftType { get; set; }
+
+ ///
+ /// 餐次CN
+ ///
+ public string ShiftTypeCN => ShiftType.GetDescription();
///
/// 菜品
///
public Guid DishesCode { get; set; }
+ ///
+ /// 菜品名称
+ ///
+ public string DishesName { get; set; }
+
///
/// 手机号码
///
@@ -97,6 +117,16 @@ namespace Dlhis.Canteen.Order.Response
///
public string OrderStatusCN => OrderStatus.GetDescription();
+ ///
+ /// 订单类型
+ ///
+ public CanteenDishesEnumType OrderType { get; set; }
+
+ ///
+ /// 订单类型CN
+ ///
+ public string OrderTypeCN => OrderType.GetDescription();
+
///
/// 总金额
///
diff --git a/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs
index 1fb11cd4..7bb8394d 100644
--- a/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs
@@ -9,6 +9,10 @@ namespace Dlhis.Canteen.Order.Services
{
Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request);
+ Task SaveDetailAsync(SaveDetailRequest request);
+
Task> GetDetailAsync( GetDetailRequest request);
+
+ Task OrderAsync(OrderRequest request);
}
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
index ca06fee2..2b1c3443 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
@@ -24,15 +24,15 @@ namespace Dlhis.Canteen.Order.Services.Implements
public async Task> GetMenuAsync(GetMenuRequest request)
{
- var currentTenantId = _currentUser.GetStringTenantId();
-
var page = await _dbContext.Queryable()
- .Where(x => x.Factory == currentTenantId)
+ .LeftJoin((x,place) => x.PlaceCode == place.Code)
+ .WhereIF(!request.Factory.IsEmpty(),x => x.Factory == request.Factory)
.WhereIF(request.PlaceCode.HasValue, x => request.PlaceCode == x.PlaceCode)
.WhereIF(!request.Search.IsEmpty(),x => x.Name.Contains(request.Search))
- .Select(x => new GetMenuResponse
+ .Select((x,place) => new GetMenuResponse
{
ShiftTypesSrt = x.ShiftTypes.ToString(),
+ PlaceName = place.Name,
},true)
.ToPageListAsync(request);
return page;
@@ -62,9 +62,13 @@ namespace Dlhis.Canteen.Order.Services.Implements
public async Task> GetDishesAsync(GetDishesRequest request)
{
var page = await _dbContext.Queryable()
+ .LeftJoin((x,menu)=>x.MenuCode == menu.Code)
.WhereIF(request.MenuCode.HasValue, x => request.MenuCode == x.MenuCode)
.WhereIF(!request.Search.IsEmpty(),x => x.Name.Contains(request.Search))
- .Select()
+ .Select((x,menu) => new GetDishesResponse
+ {
+ MenuName = menu.Name,
+ },true)
.ToPageListAsync(request);
return page;
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
index 1235e705..c322f622 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
@@ -1,32 +1,64 @@
using Dlhis.Canteen.Order.Request;
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.Utils;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
-using Microsoft.AspNetCore.Mvc;
+using Mapster;
namespace Dlhis.Canteen.Order.Services.Implements;
public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
{
private readonly IDbContext _dbContext;
-
- public MiniProgramOrderDetailService(IDbContext dbContext)
+ private readonly ITenantApi _tenantApi;
+ public MiniProgramOrderDetailService(IDbContext dbContext, ITenantApi tenantApi)
{
_dbContext = dbContext;
+ _tenantApi = tenantApi;
}
public async Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request)
{
var page = await _dbContext.Queryable()
- .WhereIF(!request.Search.IsEmpty(), x => x.Name == request.Search || x.Code == request.Search)
- .Select()
+ .LeftJoin((order,place) => order.PlaceCode == place.Code)
+ .LeftJoin((order, place,dishers) => order.DishesCode == dishers.Code)
+ .LeftJoin((order, place, dishers,depart) => order.DepartmentNo == depart.No)
+ .WhereIF(!request.Search.IsEmpty(), order => order.Name == request.Search || order.Code == request.Search)
+ .WhereIF(request.SysDate.HasValue,order=>order.SysDate == request.SysDate)
+ .OrderBy(order => order.CostDate,SqlSugar.OrderByType.Desc)
+ .Select((order, place, dishers, depart) => new GetMiniProgramOrderResponse
+ {
+ PlaceName = place.Name,
+ DepartmentName = depart.Name,
+ DishesName = dishers.Name,
+ },true)
.ToPageListAsync(request);
return page;
}
+ public async Task SaveDetailAsync(SaveDetailRequest request)
+ {
+ if (!request.Id.HasValue)
+ {
+ var entity = request.Adapt();
+ await _dbContext.InsertAsync(entity);
+ }
+ else
+ {
+ var entity = await _dbContext.Queryable()
+ .Where(x => x.Id == request.Id)
+ .FirstAsync();
+ request.Adapt(entity);
+ await _dbContext.UpdateAsync(entity);
+ }
+ }
+
public async Task> GetDetailAsync(GetDetailRequest request)
{
var page = await _dbContext.Queryable()
@@ -36,4 +68,98 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
return page;
}
+
+ public async Task OrderAsync(OrderRequest request)
+ {
+ //判断时间
+ DateTime currentTime = DateTime.Now;
+ TimeSpan ninePM = new TimeSpan(20, 30, 0);
+ if (currentTime.TimeOfDay > ninePM)
+ {
+ true.ThrowIfTrue("20:30之后无法订餐!");
+ }
+ //判断营业日
+ var dishes = await _dbContext.Queryable().Where(x => x.Code == request.DishesCode).FirstAsync();
+ dishes.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
+
+ var menu = await _dbContext.Queryable().Where(x => x.Code == dishes.MenuCode).FirstAsync();
+ menu.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
+
+ // 获取用餐日期
+ DateOnly tomorrow = DateOnly.FromDateTime(DateTime.Today.AddDays(1));
+ if (!(tomorrow >= menu.StartDate && tomorrow <= menu.EndDate))
+ {
+ true.ThrowIfTrue($"菜品:{dishes.Name}对应的菜单:{menu.Name}不在营业日!");
+ }
+ if(dishes.RestrictedNum < 0)
+ {
+ true.ThrowIfTrue($"菜品:{dishes.Name}已售罄!");
+ }
+
+ var gainfo = await _dbContext.Queryable()
+ .Where(x => x.Code == request.UserCode)
+ .FirstAsync();
+
+ //判断是否订过餐
+ var flag = await _dbContext.Queryable()
+ .Where(x => x.SysDate == tomorrow && x.ShiftType == request.ShiftType && x.Code == request.UserCode && x.OrderStatus == MiniProgramOrderStatusEnumType.I)
+ .AnyAsync();
+ flag.ThrowIfTrue($"工号:{request.UserCode} 姓名:{gainfo.Name} 已经定过{tomorrow}的{request.ShiftType.GetDescription()}!");
+
+ //支付方式
+ /* var result = await _tenantApi.GetTenantTreeAsync();
+ var tree = result.Data;
+ var shanxi = tree.Where(x => x.Name == "山西基地").FirstOrDefault();
+ var codes = shanxi.Next.Select(x => x.Code).ToList();
+ if (!codes.Contains(gainfo.Factory))
+ {
+ if (request.PayType == CanteenPayEnumType.Repair)
+ {
+ true.ThrowIfTrue($"非山西,支付方式不能为{request.PayType.GetDescription()}");
+ }
+ }*/
+
+ //生成订单
+ var order = new MiniProgramOrderEntity
+ {
+ No = "O" + SnowFlakeHelper.Instance.NextId(),
+ Name = gainfo.Name,
+ Code = gainfo.Code,
+ Werks = gainfo.Werks,
+ DepartmentNo = gainfo.DepartmentNo,
+ CostId = gainfo.CostId,
+ Workplace = gainfo.Workplace,
+ Factory = gainfo.Factory,
+ PlaceCode = request.PlaceCode,
+ ShiftType = request.ShiftType,
+ DishesCode = request.DishesCode,
+ Phone = gainfo.Phone,
+ SysDate = tomorrow,
+ CostDate = DateTime.Now,
+ PayType = request.PayType,
+ OrderStatus = MiniProgramOrderStatusEnumType.I,
+ OrderType = dishes.Type,
+ };
+ //订单明细
+ var detail = new OrderDetailsEntity
+ {
+ ThirdNo = order.No,
+ SysDate = tomorrow,
+ ShiftType= request.ShiftType,
+ DishesCode= request.DishesCode,
+ DishesName = dishes.Name,
+ Price = dishes.Amount,
+ Unit = dishes.Unit,
+ Num = request.DishesNum,
+ Amount = request.DishesNum * dishes.Amount,
+ OrderStatus = OrderDetailsStatusEnumType.I,
+ };
+ order.TotalAmount = detail.Amount;
+
+ await _dbContext.InsertAsync(order);
+ await _dbContext.InsertAsync(detail);
+ dishes.RestrictedNum-=request.DishesNum;
+ await _dbContext.UpdateAsync(dishes);
+ }
+
}
diff --git a/Src/Dlhis.Canteen/appsettings.json b/Src/Dlhis.Canteen/appsettings.json
index e8f2179e..75f2d95b 100644
--- a/Src/Dlhis.Canteen/appsettings.json
+++ b/Src/Dlhis.Canteen/appsettings.json
@@ -8,7 +8,8 @@
"AllowedHosts": "*",
"InternalRequest": {
"CommonRequestUrl": "http://common",
- "BasicRequestUrl": "http://basic"
+ "BasicRequestUrl": "http://basic",
+ "SysRequestUrl": "http://sys"
},
"FilterOptions": {
"EnableApiRequestLog": true
diff --git a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
index 8a007704..13ba9fed 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs
@@ -68,8 +68,8 @@ namespace Dlhis.Entity.Canteen.Entities
///
/// 餐次
///
- [SugarColumn(ColumnDescription = "餐次", IsNullable = true)]
- public string ShiftType { get; set; }
+ [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")]
+ public ShiftEnumType ShiftType { get; set; }
///
/// 菜品
@@ -107,6 +107,12 @@ namespace Dlhis.Entity.Canteen.Entities
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单状态")]
public MiniProgramOrderStatusEnumType OrderStatus { get; set; }
+ ///
+ /// 订单类型
+ ///
+ [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单类型")]
+ public CanteenDishesEnumType OrderType { get; set; }
+
///
/// 总金额
///
diff --git a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
index ecd2ab2a..7ba082e5 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs
@@ -2,11 +2,6 @@
using Kurisu.SqlSugar;
using SqlSugar;
using SqlSugar.DbConvert;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace Dlhis.Entity.Canteen.Entities
{
@@ -23,16 +18,16 @@ namespace Dlhis.Entity.Canteen.Entities
public string ThirdNo { get; set; }
///
- /// 营业日
+ /// 营业日(用餐日期)
///
[SugarColumn(ColumnDescription = "营业日")]
- public DateOnly BusinessDate { get; set; }
+ public DateOnly SysDate { get; set; }
///
- /// 餐别
+ /// 餐次
///
- [SugarColumn(ColumnDescription = "餐别")]
- public string ShiftType { get; set; }
+ [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")]
+ public ShiftEnumType ShiftType { get; set; }
///
/// 菜品编码
@@ -44,7 +39,7 @@ namespace Dlhis.Entity.Canteen.Entities
/// 菜品名称
///
[SugarColumn(ColumnDescription = "菜品名称")]
- public Guid DishesName { get; set; }
+ public string DishesName { get; set; }
///
/// 单价
diff --git a/Src/Dlhis.Entity/Common/ApkFileEntity.cs b/Src/Dlhis.Entity/Common/ApkFileEntity.cs
index 2c15bf57..e32c5bf9 100644
--- a/Src/Dlhis.Entity/Common/ApkFileEntity.cs
+++ b/Src/Dlhis.Entity/Common/ApkFileEntity.cs
@@ -42,7 +42,7 @@ public class ApkFileEntity : SugarBaseEntity
/// 产品代码
///
[SugarColumn(ColumnDescription = "产品代码")]
- public string? ProductCode { get; set; }
+ public string ProductCode { get; set; }
}