From d7cf07d9405d976e17e1b7f0d279db698d4fe4fd Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 28 Dec 2023 16:04:00 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=AE=BE=E5=A4=87=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E6=B3=A8=E5=86=8C,sap=E4=BA=BA=E4=BA=8B=E8=8C=83=E5=9B=B4,?= =?UTF-8?q?=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dlis.Jinko.Yikatong.sln | 20 ++-- .../Device/Controllers/DevicesController.cs | 49 ++++++++- .../Device/Request/DeviceHeartbeatRequest.cs | 7 ++ .../Device/Request/DeviceResigterRequest.cs | 12 +++ .../DeviceSetResigterBusinessPlaceRequest.cs | 15 +++ .../DeviceNotSetBusinessPlaceResponse.cs | 5 + .../Device/Response/DeviceResponse.cs | 76 +++++++++++++- .../Device/Services/IDeviceConnectService.cs | 36 +++++++ .../Implements/DeviceConnectService.cs | 99 +++++++++++++++++++ .../Services/Implements/DeviceService.cs | 6 +- Src/Dlhis.Basic/Dlhis.Basic.csproj | 1 - .../Services/Implements/GainfoService.cs | 5 - .../Controllers/DepartmentsController.cs | 20 +++- .../Controllers/PersonalScopesController.cs | 13 --- .../Controllers/WerksController.cs | 26 +++++ .../Response/DepartmentTreeResponse.cs | 21 ++++ .../Organization/Response/WerkResponse.cs | 23 +++++ .../Services/IDepartmentService.cs | 8 ++ .../Organization/Services/IWerkService.cs | 8 ++ .../Services/Implements/DepartmentService.cs | 41 ++++++++ .../Services/Implements/WerkService.cs | 22 +++++ .../Request/BalanceRecordRequest.cs | 7 ++ .../Response/BalanceRecordResponse.cs | 5 + .../Services/IBalanceRecordService.cs | 10 ++ .../Implements/BalanceRecordService.cs | 25 +++++ Src/Dlhis.Canteen/Dlhis.Canteen.csproj | 3 - .../Order/Request/OrderAddRequest.cs | 41 +++++++- .../Order/Services/Implements/OrderService.cs | 4 +- Src/Dlhis.Canteen/SqlSugarPack.cs | 9 -- .../Basic/Entity/DepartmentEntity.cs | 28 ++++++ Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs | 9 +- Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs | 7 +- Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs | 25 +++++ .../Canteen/Entities/BalanceRecordEntity.cs | 6 -- .../Enums/BalanceRecordSourceEnumType.cs | 4 +- .../Device/Entities/DeviceRegistryEntity.cs | 2 +- .../Dlhis.Sys.csproj | 0 .../Dockerfile | 0 .../Menu/Controllers/MenusController.cs | 0 .../MenuPermissionAssignmentRequest.cs | 0 .../Menu/Request/SaveMenuRequest.cs | 0 .../Menu/Response/MenuResponse.cs | 0 .../Menu/Services/IMenuService.cs | 0 .../Menu/Services/Implements/MenuService.cs | 0 .../Program.cs | 0 .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../appsettings.json | 0 48 files changed, 633 insertions(+), 65 deletions(-) create mode 100644 Src/Dlhis.Basic/Device/Request/DeviceHeartbeatRequest.cs create mode 100644 Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs create mode 100644 Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs create mode 100644 Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs create mode 100644 Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs create mode 100644 Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs delete mode 100644 Src/Dlhis.Basic/Organization/Controllers/PersonalScopesController.cs create mode 100644 Src/Dlhis.Basic/Organization/Controllers/WerksController.cs create mode 100644 Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs create mode 100644 Src/Dlhis.Basic/Organization/Response/WerkResponse.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/IDepartmentService.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/IWerkService.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs create mode 100644 Src/Dlhis.Canteen/BalanceRecord/Request/BalanceRecordRequest.cs create mode 100644 Src/Dlhis.Canteen/BalanceRecord/Response/BalanceRecordResponse.cs create mode 100644 Src/Dlhis.Canteen/BalanceRecord/Services/IBalanceRecordService.cs create mode 100644 Src/Dlhis.Canteen/BalanceRecord/Services/Implements/BalanceRecordService.cs create mode 100644 Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs create mode 100644 Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs rename Src/{Dlhis.Permission => Dlhis.Sys}/Dlhis.Sys.csproj (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Dockerfile (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Menu/Controllers/MenusController.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Menu/Request/MenuPermissionAssignmentRequest.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Menu/Request/SaveMenuRequest.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Menu/Response/MenuResponse.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Menu/Services/IMenuService.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Menu/Services/Implements/MenuService.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Program.cs (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/Properties/launchSettings.json (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/appsettings.Development.json (100%) rename Src/{Dlhis.Permission => Dlhis.Sys}/appsettings.json (100%) diff --git a/Dlis.Jinko.Yikatong.sln b/Dlis.Jinko.Yikatong.sln index 7c570ad0..5e8e65cf 100644 --- a/Dlis.Jinko.Yikatong.sln +++ b/Dlis.Jinko.Yikatong.sln @@ -11,8 +11,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Entity", "Src\Dlhis.E EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sys", "Sys", "{57074FD8-1A2F-40C7-8476-001778A3F65D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Sys", "Src\Dlhis.Permission\Dlhis.Sys.csproj", "{5D7096DE-AB81-4423-95AF-6489C0D94CB3}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.ScheduledTask", "Src\Dlhis.ScheduledTask\Dlhis.ScheduledTask.csproj", "{0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Common", "Src\Dlhis.Common\Dlhis.Common.csproj", "{4C1FADD9-8AFB-4087-9E52-EE6D6523ED38}" @@ -25,6 +23,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Basic", "Src\Dlhis.Ba EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.User", "Src\Dlhis.User\Dlhis.User.csproj", "{9F9BC299-3CDD-4CCE-80CA-5FE57332B1F0}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Sys", "Src\Dlhis.Sys\Dlhis.Sys.csproj", "{925048C9-5940-4B51-8480-4DC908C754A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Canteen", "Src\Dlhis.Canteen\Dlhis.Canteen.csproj", "{8317C526-3523-4195-9B19-2F17CFD71927}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -35,10 +37,6 @@ Global {53884925-C9B9-4965-8B0D-100076CA0F43}.Debug|Any CPU.Build.0 = Debug|Any CPU {53884925-C9B9-4965-8B0D-100076CA0F43}.Release|Any CPU.ActiveCfg = Release|Any CPU {53884925-C9B9-4965-8B0D-100076CA0F43}.Release|Any CPU.Build.0 = Release|Any CPU - {5D7096DE-AB81-4423-95AF-6489C0D94CB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D7096DE-AB81-4423-95AF-6489C0D94CB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D7096DE-AB81-4423-95AF-6489C0D94CB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D7096DE-AB81-4423-95AF-6489C0D94CB3}.Release|Any CPU.Build.0 = Release|Any CPU {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F1F7144-0BA3-4BDC-814E-E57A4E4A6392}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -59,6 +57,14 @@ Global {9F9BC299-3CDD-4CCE-80CA-5FE57332B1F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F9BC299-3CDD-4CCE-80CA-5FE57332B1F0}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F9BC299-3CDD-4CCE-80CA-5FE57332B1F0}.Release|Any CPU.Build.0 = Release|Any CPU + {925048C9-5940-4B51-8480-4DC908C754A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {925048C9-5940-4B51-8480-4DC908C754A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {925048C9-5940-4B51-8480-4DC908C754A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {925048C9-5940-4B51-8480-4DC908C754A1}.Release|Any CPU.Build.0 = Release|Any CPU + {8317C526-3523-4195-9B19-2F17CFD71927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8317C526-3523-4195-9B19-2F17CFD71927}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8317C526-3523-4195-9B19-2F17CFD71927}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8317C526-3523-4195-9B19-2F17CFD71927}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -69,6 +75,8 @@ Global {FD8D38C5-0827-49D1-A0BA-7707FBFDA2EC} = {4EBCE46B-CE3A-4A47-9432-82A1854CA58A} {D1F81CB7-F3EF-4196-A751-468248368020} = {4EBCE46B-CE3A-4A47-9432-82A1854CA58A} {9F9BC299-3CDD-4CCE-80CA-5FE57332B1F0} = {57074FD8-1A2F-40C7-8476-001778A3F65D} + {925048C9-5940-4B51-8480-4DC908C754A1} = {57074FD8-1A2F-40C7-8476-001778A3F65D} + {8317C526-3523-4195-9B19-2F17CFD71927} = {3D8A98C1-83C9-4375-AEAB-4F72AFAF365B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7439494A-E2FD-4FEA-8ABF-74AE57A4A5A0} diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs index c4134552..6de59649 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs @@ -17,11 +17,13 @@ public class DevicesController : ControllerBase { private readonly IDeviceService _deviceService; private readonly IDeviceTemplateService _deviceTemplateService; + private readonly IDeviceConnectService _deviceConnectService; - public DevicesController(IDeviceService deviceService, IDeviceTemplateService deviceTemplateService) + public DevicesController(IDeviceService deviceService, IDeviceTemplateService deviceTemplateService, IDeviceConnectService deviceConnectService) { _deviceService = deviceService; _deviceTemplateService = deviceTemplateService; + _deviceConnectService = deviceConnectService; } /// @@ -67,4 +69,49 @@ public class DevicesController : ControllerBase { await _deviceService.SaveAsync(request); } + + /// + /// 设备注册 + /// + /// + /// + [HttpPost("resigter")] + public async Task ResigterAsync(DeviceResigterRequest request) + { + return await _deviceConnectService.ResigterAsync(request); + } + + + /// + /// 获取尚未设置营业点的设备 + /// + /// + [HttpGet("businessplaces/incompletion")] + public async Task> GetNotSetBusinessPlaceDevicesAsync() + { + return await _deviceConnectService.GetNotSetBusinessPlaceDevicesAsync(); + } + + + /// + /// 设置设备营业点 + /// + /// + /// + [HttpPost("businessplaces")] + public async Task SetResigterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request) + { + await _deviceConnectService.SetResigterBusinessPlaceAsync(request); + } + + /// + /// 设备心跳 + /// + /// + /// + [HttpPost("heartbeat")] + public async Task HeartbeatAsync(DeviceHeartbeatRequest request) + { + await _deviceConnectService.HeartbeatAsync(request); + } } diff --git a/Src/Dlhis.Basic/Device/Request/DeviceHeartbeatRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceHeartbeatRequest.cs new file mode 100644 index 00000000..2ca25f0a --- /dev/null +++ b/Src/Dlhis.Basic/Device/Request/DeviceHeartbeatRequest.cs @@ -0,0 +1,7 @@ +namespace Dlhis.Basic.Device.Request +{ + public class DeviceHeartbeatRequest + { + public string UniqueNo { get; set; } + } +} diff --git a/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs new file mode 100644 index 00000000..4884920d --- /dev/null +++ b/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs @@ -0,0 +1,12 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.Basic.Device.Request; + +public class DeviceResigterRequest +{ + /// + /// 唯一编码 + /// + [Required(ErrorMessage = "设备唯一编码不能为空")] + public string UniqueNo { get; set; } +} diff --git a/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs new file mode 100644 index 00000000..ef87f679 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs @@ -0,0 +1,15 @@ +namespace Dlhis.Basic.Device.Request +{ + public class DeviceSetResigterBusinessPlaceRequest + { + /// + /// 唯一编码 + /// + public string UniqueNo { get; set; } + + /// + /// 营业点 + /// + public Guid BusinessPlaceCode { get; set; } + } +} diff --git a/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs b/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs new file mode 100644 index 00000000..9ba71dc9 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs @@ -0,0 +1,5 @@ +namespace Dlhis.Basic.Device.Response; + +public class DeviceNotSetBusinessPlaceResponse +{ +} diff --git a/Src/Dlhis.Basic/Device/Response/DeviceResponse.cs b/Src/Dlhis.Basic/Device/Response/DeviceResponse.cs index 720b42a8..f9a7f12a 100644 --- a/Src/Dlhis.Basic/Device/Response/DeviceResponse.cs +++ b/Src/Dlhis.Basic/Device/Response/DeviceResponse.cs @@ -1,5 +1,79 @@ -namespace Dlhis.Basic.Device.Response; +using Dlhis.Entity.Device.Enums; + +namespace Dlhis.Basic.Device.Response; public class DeviceResponse { + public long Id { get; set; } + + /// + /// 设备code + /// + public Guid Code { get; set; } + + /// + /// 设备唯一码,IP/MAC/SNO + /// + public string UniqueNo { get; set; } + + /// + /// 心跳间隔 + /// + public int HeartbeatInterval { get; set; } + + /// + /// 品牌 + /// + public string Brand { get; set; } + + /// + /// 供应商 + /// + public string Supplier { get; set; } + + /// + /// 设备功能 + /// + public List Funcs { get; set; } + + /// + /// 部署点 + /// + public string DeployPlace { get; set; } + + /// + /// 部署坐标 + /// + public string DeployPosition { get; set; } + + /// + /// 部署方向 + /// + public string DeployDirection { get; set; } + + /// + /// 模板code + /// + public Guid TemplateCode { get; set; } + + /// + /// 连接信息 + /// + public string ConnectionInfo { get; set; } + + /// + /// 最后使用人 + /// + public DateTime LastLogId { get; set; } + + /// + /// 最后使用日期 + /// + public DateTime LastLogDateTime { get; set; } + + + /// + /// 是否启用 + /// + public bool Enable { get; set; } } diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs new file mode 100644 index 00000000..25ff70d5 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs @@ -0,0 +1,36 @@ +using Dlhis.Basic.Device.Request; +using Dlhis.Basic.Device.Response; + +namespace Dlhis.Basic.Device.Services; + +public interface IDeviceConnectService +{ + /// + /// 设备注册 + /// + /// + /// + Task ResigterAsync(DeviceResigterRequest request); + + + /// + /// 获取尚未设置营业点的设备 + /// + /// + Task> GetNotSetBusinessPlaceDevicesAsync(); + + + /// + /// 设置设备营业点 + /// + /// + /// + Task SetResigterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request); + + /// + /// 设备心跳 + /// + /// + /// + Task HeartbeatAsync(DeviceHeartbeatRequest request); +} diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs new file mode 100644 index 00000000..d4f1d60f --- /dev/null +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs @@ -0,0 +1,99 @@ +using Dlhis.Basic.Device.Request; +using Dlhis.Basic.Device.Response; +using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Device.Entities; +using Dlhis.Entity.Device.Enums; +using Kurisu.AspNetCore.UnifyResultAndValidation; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.SqlSugar.Services; +using Mapster; + +namespace Dlhis.Basic.Device.Services.Implements; + +public class DeviceConnectService : IDeviceConnectService +{ + private readonly IDbContext _dbContext; + + public DeviceConnectService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task ResigterAsync(DeviceResigterRequest request) + { + var device = await GetEnableDeviceAsync(request.UniqueNo); + + var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + if (registry == null) + { + registry = new DeviceRegistryEntity() + { + DeviceUniqueNo = request.UniqueNo, + LastHeartbeatTime = DateTime.Now, + }; + await _dbContext.InsertAsync(registry); + + return "设备注册成功"; + } + + return "请勿重复注册设备"; + } + + public async Task> GetNotSetBusinessPlaceDevicesAsync() + { + var devices = await _dbContext.Queryable().ToListAsync(); + devices = devices.Where(x => x.Funcs.Any(item => item == DeviceFuncEnumType.Meal)).ToList(); + + return devices.Adapt>(); + } + + public async Task SetResigterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request) + { + var device = await GetEnableDeviceAsync(request.UniqueNo); + if (device.Funcs?.Any(x => x == DeviceFuncEnumType.Meal) != true) + { + throw new UserFriendlyException("当前设备无用餐功能,无法设置"); + } + + var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + registry.ThrowIfNull($"{request.UniqueNo}的设备注册信息不存在,无法设置营业点"); + + var businessPlace = await _dbContext.Queryable().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync(); + businessPlace.ThrowIfNull("营业点不存在,无法设置到设备注册信息中"); + + //更新营业点信息 + registry.BusinessPlaceCode = businessPlace.Code; + registry.BusinessPlaceCustomCode = businessPlace.CustomCode; + + await _dbContext.UpdateAsync(registry); + //todo 通知设备重新获取 + } + + public async Task HeartbeatAsync(DeviceHeartbeatRequest request) + { + var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + registry.ThrowIfNull($"{request.UniqueNo}的设备注册信息不存在,心跳无效"); + + registry.LastHeartbeatTime = DateTime.Now; + await _dbContext.UpdateAsync(registry); + } + + //******************************************************** help methods ********************************************************** + + /// + /// 获取启用的设备 + /// + /// + /// + private async Task GetEnableDeviceAsync(string uniqueNo) + { + var device = await _dbContext.Queryable() + .Where(x => x.UniqueNo == uniqueNo) + .FirstAsync(); + + device.ThrowIfNull($"未知的设备唯一编码{uniqueNo}"); + device.Enable.ThrowIfFalse("设备尚未启用"); + + return device; + } +} diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 2e9047cc..577e001a 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -1,6 +1,8 @@ using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Device.Entities; +using Dlhis.Entity.Device.Enums; using Kurisu.AspNetCore.UnifyResultAndValidation; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; @@ -30,7 +32,6 @@ public class DeviceService : IDeviceService return page; } - public async Task SaveAsync(DeviceSaveRequest request) { await CheckUniqueNoExistsAsync(request); @@ -56,7 +57,7 @@ public class DeviceService : IDeviceService } } - //******************************************************** help method ********************************************************** + //******************************************************** help methods ********************************************************** /// /// 检查设备模板是否存在 @@ -116,5 +117,6 @@ public class DeviceService : IDeviceService exists.ThrowIfTrue("唯一号已经存在"); } + } diff --git a/Src/Dlhis.Basic/Dlhis.Basic.csproj b/Src/Dlhis.Basic/Dlhis.Basic.csproj index bc79893f..a52589ec 100644 --- a/Src/Dlhis.Basic/Dlhis.Basic.csproj +++ b/Src/Dlhis.Basic/Dlhis.Basic.csproj @@ -27,7 +27,6 @@ - diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs index 679d99e4..95e79ec3 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/GainfoService.cs @@ -116,10 +116,5 @@ namespace Dlhis.Basic.MealUser.Services.Implements .AnyAsync(); checkGainfoGuestno.ThrowIfTrue($"档案号[{request.gainfoPageResponse.Guestno}]已存在"); } - - public Task OnboardingAsync(GainfoDImissionRequest request) - { - throw new NotImplementedException(); - } } } diff --git a/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs b/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs index c148afb3..627b1592 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs @@ -1,4 +1,6 @@ -using Microsoft.AspNetCore.Authorization; +using Dlhis.Basic.Organization.Response; +using Dlhis.Basic.Organization.Services; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Organization.Controllers; @@ -11,4 +13,20 @@ namespace Dlhis.Basic.Organization.Controllers; [ApiController] public class DepartmentsController : ControllerBase { + private readonly IDepartmentService _departmentService; + + public DepartmentsController(IDepartmentService departmentService) + { + _departmentService = departmentService; + } + + /// + /// 获取部门树 + /// + /// + [HttpGet("tree")] + public async Task> GetTreeAsync() + { + return await _departmentService.GetTreeAsync(); + } } diff --git a/Src/Dlhis.Basic/Organization/Controllers/PersonalScopesController.cs b/Src/Dlhis.Basic/Organization/Controllers/PersonalScopesController.cs deleted file mode 100644 index 24ff6c1e..00000000 --- a/Src/Dlhis.Basic/Organization/Controllers/PersonalScopesController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; - -namespace Dlhis.Basic.Organization.Controllers; - -/// -/// 人事范围 -/// -[Route("api/[controller]")] -[ApiController] -public class PersonalScopesController : ControllerBase -{ -} diff --git a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs new file mode 100644 index 00000000..5e10b469 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs @@ -0,0 +1,26 @@ +using Dlhis.Basic.Organization.Response; +using Dlhis.Basic.Organization.Services; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Basic.Organization.Controllers; + +/// +/// 人事范围 +/// +[Route("api/[controller]")] +[ApiController] +public class WerksController : ControllerBase +{ + private readonly IWerkService _werkService; + + public WerksController(IWerkService werkService) + { + _werkService = werkService; + } + + [HttpGet("list")] + public async Task> GetListAsync() + { + return await _werkService.GetListAsync(); + } +} diff --git a/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs b/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs new file mode 100644 index 00000000..17cc0b61 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs @@ -0,0 +1,21 @@ +using SqlSugar; + +namespace Dlhis.Basic.Organization.Response; + +public class DepartmentTreeResponse +{ + /// + /// 部门号 + /// + public string Code { get; set; } + + /// + /// 部门名称 + /// + public string Name { get; set; } + + /// + /// 下级部门 + /// + public List Next { get; set; } +} diff --git a/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs b/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs new file mode 100644 index 00000000..9ab6f83e --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs @@ -0,0 +1,23 @@ +using SqlSugar; + +namespace Dlhis.Basic.Organization.Response; + +public class WerkResponse +{ + public long Id { get; set; } + + /// + /// 代号 + /// + public string Code { get; set; } + + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 是否可见 + /// + public bool Visible { get; set; } +} diff --git a/Src/Dlhis.Basic/Organization/Services/IDepartmentService.cs b/Src/Dlhis.Basic/Organization/Services/IDepartmentService.cs new file mode 100644 index 00000000..5e3784c1 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/IDepartmentService.cs @@ -0,0 +1,8 @@ +using Dlhis.Basic.Organization.Response; + +namespace Dlhis.Basic.Organization.Services; + +public interface IDepartmentService : IScopeDependency +{ + Task> GetTreeAsync(); +} diff --git a/Src/Dlhis.Basic/Organization/Services/IWerkService.cs b/Src/Dlhis.Basic/Organization/Services/IWerkService.cs new file mode 100644 index 00000000..d4207c78 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/IWerkService.cs @@ -0,0 +1,8 @@ +using Dlhis.Basic.Organization.Response; + +namespace Dlhis.Basic.Organization.Services; + +public interface IWerkService : IScopeDependency +{ + Task> GetListAsync(); +} diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs new file mode 100644 index 00000000..0bdf65b5 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/Implements/DepartmentService.cs @@ -0,0 +1,41 @@ +using Dlhis.Basic.Organization.Response; +using Dlhis.Entity.Basic.Entity; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.SqlSugar.Services; +using Mapster; + +namespace Dlhis.Basic.Organization.Services.Implements; + +public class DepartmentService : IDepartmentService +{ + private readonly IDbContext _dbContext; + + public DepartmentService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task> GetTreeAsync() + { + var departments = await _dbContext.Queryable().ToListAsync(); + var tops = departments.Where(x => x.PCode.IsEmpty()).Adapt>(); + + tops.ForEach(x => + { + RecursionGetNext(x, departments); + }); + + return tops; + } + + + private void RecursionGetNext(DepartmentTreeResponse current, List departments) + { + var next = departments.Where(x => x.PCode == current.Code).ToList(); + current.Next = next.Adapt>(); + foreach (var item in next) + { + RecursionGetNext(item.Adapt(), departments); + } + } +} diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs new file mode 100644 index 00000000..cf7ff67a --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs @@ -0,0 +1,22 @@ +using Dlhis.Basic.Organization.Response; +using Dlhis.Entity.Basic.Entity; +using Kurisu.SqlSugar.Services; + +namespace Dlhis.Basic.Organization.Services.Implements; + +public class WerkService : IWerkService +{ + private readonly IDbContext _dbContext; + + public WerkService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task> GetListAsync() + { + return await _dbContext.Queryable() + .Select() + .ToListAsync(); + } +} diff --git a/Src/Dlhis.Canteen/BalanceRecord/Request/BalanceRecordRequest.cs b/Src/Dlhis.Canteen/BalanceRecord/Request/BalanceRecordRequest.cs new file mode 100644 index 00000000..1e5c37ba --- /dev/null +++ b/Src/Dlhis.Canteen/BalanceRecord/Request/BalanceRecordRequest.cs @@ -0,0 +1,7 @@ +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Canteen.BalanceRecord.Request; + +public class BalanceRecordRequest : PageDto +{ +} diff --git a/Src/Dlhis.Canteen/BalanceRecord/Response/BalanceRecordResponse.cs b/Src/Dlhis.Canteen/BalanceRecord/Response/BalanceRecordResponse.cs new file mode 100644 index 00000000..044dd75f --- /dev/null +++ b/Src/Dlhis.Canteen/BalanceRecord/Response/BalanceRecordResponse.cs @@ -0,0 +1,5 @@ +namespace Dlhis.Canteen.BalanceRecord.Response; + +public class BalanceRecordResponse +{ +} diff --git a/Src/Dlhis.Canteen/BalanceRecord/Services/IBalanceRecordService.cs b/Src/Dlhis.Canteen/BalanceRecord/Services/IBalanceRecordService.cs new file mode 100644 index 00000000..e7fa831e --- /dev/null +++ b/Src/Dlhis.Canteen/BalanceRecord/Services/IBalanceRecordService.cs @@ -0,0 +1,10 @@ +using Dlhis.Canteen.BalanceRecord.Request; +using Dlhis.Canteen.BalanceRecord.Response; +using Kurisu.Core.DataAccess.Dto; + +namespace Dlhis.Canteen.BalanceRecord.Services; + +public interface IBalanceRecordService : IScopeDependency +{ + Task> GetPageAsync(BalanceRecordRequest request); +} diff --git a/Src/Dlhis.Canteen/BalanceRecord/Services/Implements/BalanceRecordService.cs b/Src/Dlhis.Canteen/BalanceRecord/Services/Implements/BalanceRecordService.cs new file mode 100644 index 00000000..50f67844 --- /dev/null +++ b/Src/Dlhis.Canteen/BalanceRecord/Services/Implements/BalanceRecordService.cs @@ -0,0 +1,25 @@ +using Dlhis.Canteen.BalanceRecord.Request; +using Dlhis.Canteen.BalanceRecord.Response; +using Dlhis.Entity.Canteen.Entities; +using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Extensions; +using Kurisu.SqlSugar.Services; + +namespace Dlhis.Canteen.BalanceRecord.Services.Implements; + +public class BalanceRecordService : IBalanceRecordService +{ + private readonly IDbContext _dbContext; + + public BalanceRecordService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task> GetPageAsync(BalanceRecordRequest request) + { + return await _dbContext.Queryable() + .Select() + .ToPageListAsync(request); + } +} diff --git a/Src/Dlhis.Canteen/Dlhis.Canteen.csproj b/Src/Dlhis.Canteen/Dlhis.Canteen.csproj index b4756614..fe29c4df 100644 --- a/Src/Dlhis.Canteen/Dlhis.Canteen.csproj +++ b/Src/Dlhis.Canteen/Dlhis.Canteen.csproj @@ -29,9 +29,6 @@ - - - diff --git a/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs index 05b6529b..3d518fb7 100644 --- a/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs @@ -1,5 +1,44 @@ -namespace Dlhis.Canteen.Order.Request; +using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Canteen.Enums; + +namespace Dlhis.Canteen.Order.Request; public class OrderAddRequest { + /// + /// 消费机器唯一信息 + /// + public string UniqueNo { get; set; } + + /// + /// 档案号/QrCode + /// + public string UserId { get; set; } + + /// + /// 学工号 + /// + public string UserCode { get; set; } + + /// + /// 来源 + /// + [EnumDataType(typeof(BalanceRecordSourceEnumType))] + public BalanceRecordSourceEnumType Source { get; set; } + + /// + /// 收入/支出 + /// + [EnumDataType(typeof(BalanceRecordTypeEnumType))] + public BalanceRecordTypeEnumType Type { get; set; } + + /// + /// 金额 + - 表示 + /// + public decimal Amount { get; set; } + + /// + /// 餐补月份 + /// + public string SubsidiesFromMonth { get; set; } } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs index afdacd4c..3f619363 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs @@ -25,8 +25,8 @@ public class OrderService : IOrderService return page; } - public Task AddAsync(OrderAddRequest request) + public async Task AddAsync(OrderAddRequest request) { - throw new NotImplementedException(); + } } diff --git a/Src/Dlhis.Canteen/SqlSugarPack.cs b/Src/Dlhis.Canteen/SqlSugarPack.cs index b120d233..36ee6c60 100644 --- a/Src/Dlhis.Canteen/SqlSugarPack.cs +++ b/Src/Dlhis.Canteen/SqlSugarPack.cs @@ -13,13 +13,4 @@ public class SqlSugarPack : BaseAppPack { services.AddSqlSugar(); } - - public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - //using var scope = app.ApplicationServices.CreateScope(); - //var db = scope.ServiceProvider.GetService(); - //var tables = App.ActiveTyps.Where(x => x.IsDefined(typeof(SugarTable), false)).ToArray(); - //db.DbMaintenance.CreateDatabase(); - //db.CodeFirst.InitTables(tables); - } } diff --git a/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs b/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs new file mode 100644 index 00000000..d81f7fa8 --- /dev/null +++ b/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs @@ -0,0 +1,28 @@ +using SqlSugar; + +namespace Dlhis.Entity.Basic.Entity; + +/// +/// 部门 +/// +[SugarTable(TableName = "Department", TableDescription = "部门")] +public class DepartmentEntity : SugarBaseEntity +{ + /// + /// 部门号 + /// + [SugarColumn(ColumnDescription = "部门号")] + public string Code { get; set; } + + /// + /// 上级部门号 + /// + [SugarColumn(ColumnDescription = "上级部门号")] + public string PCode { get; set; } + + /// + /// 部门名称 + /// + [SugarColumn(ColumnDescription = "部门名称")] + public string Name { get; set; } +} diff --git a/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs b/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs index 96dbbc82..354d9368 100644 --- a/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs @@ -43,7 +43,7 @@ public class DeviceEntity : SugarBaseEntity, ITenantId /// /// 设备功能 /// - [SugarColumn(ColumnDataType = "varchar(150)", IsJson = true, ColumnDescription = "设备功能")] + [SugarColumn(ColumnDataType = "varchar(150)", IsJson = true, ColumnDescription = "设备功能", DefaultValue = "[]")] public List Funcs { get; set; } /// @@ -95,12 +95,5 @@ public class DeviceEntity : SugarBaseEntity, ITenantId [SugarColumn(ColumnDataType = "bit", ColumnDescription = "是否启用")] public bool Enable { get; set; } - /// - /// 设别状态 - /// - [SugarColumn(ColumnDescription = "设别状态")] - public string Status { get; set; } - - public string TenantId { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs index 15ff34a2..32b3ad99 100644 --- a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs @@ -144,9 +144,10 @@ public class GainfoEntity : SugarBaseEntity /// [SugarColumn(ColumnDescription = "外文名字")] public string Gname_en { get; set; } - /// - /// 卡号 - /// + + [SugarColumn(ColumnDescription = "人事范围")] + public string Werks { get; set; } + [SugarColumn(ColumnDescription = "卡号")] public string CarNo { get; set; } } diff --git a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs new file mode 100644 index 00000000..5145e169 --- /dev/null +++ b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs @@ -0,0 +1,25 @@ +using SqlSugar; + +namespace Dlhis.Entity.Basic.Entity; + +[SugarTable(TableName = "Werk", TableDescription = "人事范围")] +public class WerkEntity : SugarBaseEntity +{ + /// + /// 代号 + /// + [SugarColumn(ColumnDescription = "代号")] + public string Code { get; set; } + + /// + /// 名称 + /// + [SugarColumn(ColumnDescription = "名称")] + public string Name { get; set; } + + /// + /// 是否可见 + /// + [SugarColumn(ColumnDescription = "是否可见", ColumnDataType = "bit")] + public bool Visible { get; set; } +} diff --git a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs index 7ba0aced..6ceb55a2 100644 --- a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs +++ b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs @@ -84,12 +84,6 @@ public class BalanceRecordEntity : SugarBaseEntity, ITenantId [SugarColumn(ColumnDescription = "所属成本日期")] public DateTime CostDate { get; set; } - /// - /// 操作人 - /// - [SugarColumn(ColumnDescription = "操作人")] - public string OperateUser { get; set; } - /// /// 消费机器唯一信息 /// diff --git a/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs b/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs index 11481111..ca5c0c51 100644 --- a/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs +++ b/Src/Dlhis.Entity/Canteen/Enums/BalanceRecordSourceEnumType.cs @@ -29,13 +29,13 @@ public enum BalanceRecordSourceEnumType /// /// 来自本基地补贴 /// - [Description("来自本基地补贴")] + [Description("本基地补贴")] LocalTenantSubsidies, /// /// 来自其他基地补贴 /// - [Description("来自其他基地补贴")] + [Description("其他基地补贴")] OtherTenantSubsidies, diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs index 91d63e01..6b2a21b9 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs @@ -31,7 +31,7 @@ public class DeviceRegistryEntity : SugarBaseEntity, ITenantId /// 营业点code(可为空) /// [SugarColumn(IsNullable = true, ColumnDescription = "注册时间")] - public string BusinessPlaceCode { get; set; } + public Guid BusinessPlaceCode { get; set; } /// /// 营业点手工号(可为空) diff --git a/Src/Dlhis.Permission/Dlhis.Sys.csproj b/Src/Dlhis.Sys/Dlhis.Sys.csproj similarity index 100% rename from Src/Dlhis.Permission/Dlhis.Sys.csproj rename to Src/Dlhis.Sys/Dlhis.Sys.csproj diff --git a/Src/Dlhis.Permission/Dockerfile b/Src/Dlhis.Sys/Dockerfile similarity index 100% rename from Src/Dlhis.Permission/Dockerfile rename to Src/Dlhis.Sys/Dockerfile diff --git a/Src/Dlhis.Permission/Menu/Controllers/MenusController.cs b/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs similarity index 100% rename from Src/Dlhis.Permission/Menu/Controllers/MenusController.cs rename to Src/Dlhis.Sys/Menu/Controllers/MenusController.cs diff --git a/Src/Dlhis.Permission/Menu/Request/MenuPermissionAssignmentRequest.cs b/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs similarity index 100% rename from Src/Dlhis.Permission/Menu/Request/MenuPermissionAssignmentRequest.cs rename to Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs diff --git a/Src/Dlhis.Permission/Menu/Request/SaveMenuRequest.cs b/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs similarity index 100% rename from Src/Dlhis.Permission/Menu/Request/SaveMenuRequest.cs rename to Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs diff --git a/Src/Dlhis.Permission/Menu/Response/MenuResponse.cs b/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs similarity index 100% rename from Src/Dlhis.Permission/Menu/Response/MenuResponse.cs rename to Src/Dlhis.Sys/Menu/Response/MenuResponse.cs diff --git a/Src/Dlhis.Permission/Menu/Services/IMenuService.cs b/Src/Dlhis.Sys/Menu/Services/IMenuService.cs similarity index 100% rename from Src/Dlhis.Permission/Menu/Services/IMenuService.cs rename to Src/Dlhis.Sys/Menu/Services/IMenuService.cs diff --git a/Src/Dlhis.Permission/Menu/Services/Implements/MenuService.cs b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs similarity index 100% rename from Src/Dlhis.Permission/Menu/Services/Implements/MenuService.cs rename to Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs diff --git a/Src/Dlhis.Permission/Program.cs b/Src/Dlhis.Sys/Program.cs similarity index 100% rename from Src/Dlhis.Permission/Program.cs rename to Src/Dlhis.Sys/Program.cs diff --git a/Src/Dlhis.Permission/Properties/launchSettings.json b/Src/Dlhis.Sys/Properties/launchSettings.json similarity index 100% rename from Src/Dlhis.Permission/Properties/launchSettings.json rename to Src/Dlhis.Sys/Properties/launchSettings.json diff --git a/Src/Dlhis.Permission/appsettings.Development.json b/Src/Dlhis.Sys/appsettings.Development.json similarity index 100% rename from Src/Dlhis.Permission/appsettings.Development.json rename to Src/Dlhis.Sys/appsettings.Development.json diff --git a/Src/Dlhis.Permission/appsettings.json b/Src/Dlhis.Sys/appsettings.json similarity index 100% rename from Src/Dlhis.Permission/appsettings.json rename to Src/Dlhis.Sys/appsettings.json