From 8fe7a0c1bda0ad27f112153a10ae06c70dc9b91d Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 2 Jan 2024 21:58:41 +0800 Subject: [PATCH 1/4] fix auth --- .../Dlhis.ScheduledTask.csproj | 5 ++--- Src/Dlhis.ScheduledTask/HangfirePack.cs | 22 +++++++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj b/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj index 6aa4680e..b44ece5f 100644 --- a/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj +++ b/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj @@ -17,11 +17,10 @@ - + - + - diff --git a/Src/Dlhis.ScheduledTask/HangfirePack.cs b/Src/Dlhis.ScheduledTask/HangfirePack.cs index e74dda28..040d4e0d 100644 --- a/Src/Dlhis.ScheduledTask/HangfirePack.cs +++ b/Src/Dlhis.ScheduledTask/HangfirePack.cs @@ -1,4 +1,5 @@ using Hangfire; +using Hangfire.Dashboard.BasicAuthorization; using Hangfire.MySql; using Kurisu.AspNetCore.Startup; @@ -28,8 +29,25 @@ namespace Dlhis.ScheduledTask public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) { - app.UseHangfireDashboard(); //使用hangfire面板 - //app.UseHangfireServer(); //启动hangfire服务 + app.UseHangfireDashboard("/hangfire", new DashboardOptions + { + AppPath = null, + DashboardTitle = "hangfire", + Authorization = new[] + { + new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions + { + Users = new [] + { + new BasicAuthAuthorizationUser + { + Login ="admin", + PasswordClear = "zxc111" + } + } + }) + } + }); BackgroundJob.Enqueue(() => Console.WriteLine("This is a background job.")); } From ebffe593602c04ea3c174026e5ec9c3140761f53 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 2 Jan 2024 22:11:33 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=20ui=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/Dlhis.ScheduledTask/HangfirePack.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/HangfirePack.cs b/Src/Dlhis.ScheduledTask/HangfirePack.cs index 040d4e0d..4359a5c1 100644 --- a/Src/Dlhis.ScheduledTask/HangfirePack.cs +++ b/Src/Dlhis.ScheduledTask/HangfirePack.cs @@ -7,7 +7,7 @@ namespace Dlhis.ScheduledTask { public class HangfirePack : BaseAppPack { - public override bool IsBeforeUseRouting { get; } + public override bool IsBeforeUseRouting => true; public override void ConfigureServices(IServiceCollection services) { @@ -36,20 +36,24 @@ namespace Dlhis.ScheduledTask Authorization = new[] { new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions - { + { + RequireSsl = false, + SslRedirect = false, Users = new [] { new BasicAuthAuthorizationUser { Login ="admin", - PasswordClear = "zxc111" + PasswordClear = "admin" } } }) } }); - + app.UseHangfireDashboard(); BackgroundJob.Enqueue(() => Console.WriteLine("This is a background job.")); + + } } } From bcec08d10afefba320ecb626ea03eeacd7b53f0e Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 3 Jan 2024 17:34:19 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=20=E8=A1=A5=E5=85=85=E6=B3=A8=E9=87=8A,?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=85=BC=E5=AE=B9=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/BusinessPlacesController.cs | 2 +- .../BusinessPlaceWithShiftResponse.cs | 11 ++++ .../Response/BusinessPlaceShiftResponse.cs | 5 ++ .../Services/IBusinessPlaceShiftService.cs | 5 +- .../Implements/BusinessPlaceShiftService.cs | 50 ++++++++++++------- .../Device/Request/DeviceResigterRequest.cs | 5 ++ .../DeviceNotSetBusinessPlaceResponse.cs | 3 ++ .../Implements/DeviceConnectService.cs | 7 ++- .../Controllers/DepartmentsController.cs | 4 +- .../Controllers/GainfosController.cs | 5 +- .../Controllers/WerksController.cs | 10 +++- .../Response/DepartmentTreeResponse.cs | 6 +-- Src/Dlhis.Basic/SqlSugarPack.cs | 10 ++-- 13 files changed, 88 insertions(+), 35 deletions(-) create mode 100644 Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceWithShiftResponse.cs diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs index a7ef7272..b0c93d1e 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs @@ -69,7 +69,7 @@ public class BusinessPlacesController : ControllerBase /// /// [HttpGet("shifts")] - public async Task> GetShiftsByPlaceCustomCodeAsync(string placeCustomCode) + public async Task GetShiftsByPlaceCustomCodeAsync(string placeCustomCode) { return await _businessPlaceShiftService.GetShiftsByPlaceCustomCodeAsync(placeCustomCode); } diff --git a/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceWithShiftResponse.cs b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceWithShiftResponse.cs new file mode 100644 index 00000000..69baba51 --- /dev/null +++ b/Src/Dlhis.Basic/BusinessPlace/Response/BusinessPlaceWithShiftResponse.cs @@ -0,0 +1,11 @@ +using Dlhis.Basic.BusinessShift.Response; + +namespace Dlhis.Basic.BusinessPlace.Response; + +public class BusinessPlaceWithShiftResponse +{ + public string CustomCode { get; set; } + public string Name { get; set; } + + public List Shifts { get; set; } +} diff --git a/Src/Dlhis.Basic/BusinessShift/Response/BusinessPlaceShiftResponse.cs b/Src/Dlhis.Basic/BusinessShift/Response/BusinessPlaceShiftResponse.cs index 2edff402..5c6848a6 100644 --- a/Src/Dlhis.Basic/BusinessShift/Response/BusinessPlaceShiftResponse.cs +++ b/Src/Dlhis.Basic/BusinessShift/Response/BusinessPlaceShiftResponse.cs @@ -14,6 +14,11 @@ public class BusinessPlaceShiftResponse /// public string BusinessPlaceCustomCode { get; set; } + /// + /// 营业点 + /// + public string BusinessPlace { get; set; } + /// /// 代号 /// diff --git a/Src/Dlhis.Basic/BusinessShift/Services/IBusinessPlaceShiftService.cs b/Src/Dlhis.Basic/BusinessShift/Services/IBusinessPlaceShiftService.cs index c74cde40..3993951a 100644 --- a/Src/Dlhis.Basic/BusinessShift/Services/IBusinessPlaceShiftService.cs +++ b/Src/Dlhis.Basic/BusinessShift/Services/IBusinessPlaceShiftService.cs @@ -1,4 +1,5 @@ -using Dlhis.Basic.BusinessShift.Request; +using Dlhis.Basic.BusinessPlace.Response; +using Dlhis.Basic.BusinessShift.Request; using Dlhis.Basic.BusinessShift.Response; using Kurisu.Core.DataAccess.Dto; @@ -10,5 +11,5 @@ public interface IBusinessPlaceShiftService : IScopeDependency Task SaveAsync(BusinessPlaceShiftSaveRequest request); - Task> GetShiftsByPlaceCustomCodeAsync(string placeCustomCode); + Task GetShiftsByPlaceCustomCodeAsync(string placeCustomCode); } diff --git a/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs b/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs index cb0a8b5e..3f270c33 100644 --- a/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs +++ b/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs @@ -1,4 +1,5 @@ -using Dlhis.Basic.BusinessShift.Request; +using Dlhis.Basic.BusinessPlace.Response; +using Dlhis.Basic.BusinessShift.Request; using Dlhis.Basic.BusinessShift.Response; using Dlhis.Entity.Basic.Entity; using Kurisu.AspNetCore.Utils.Extensions; @@ -29,6 +30,7 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService Id = shift.Id, BusinessPlaceCode = place.Code, BusinessPlaceCustomCode = place.CustomCode, + BusinessPlace = place.Name, Code = shift.Code, CustomCode = shift.CustomCode, Name = shift.Name, @@ -66,24 +68,36 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService } - public async Task> GetShiftsByPlaceCustomCodeAsync(string placeCustomCode) + public async Task GetShiftsByPlaceCustomCodeAsync(string placeCustomCode) { - return await _dbContext.Queryable() - .LeftJoin((shift, place) => shift.BusinessPlaceCode == place.Code) - .Where((shift, place) => place.CustomCode == placeCustomCode) - .OrderBy((shift, place) => shift.Start) - .Select((shift, place) => new BusinessPlaceShiftResponse - { - Id = shift.Id, - BusinessPlaceCode = place.Code, - BusinessPlaceCustomCode = place.CustomCode, - Code = shift.Code, - CustomCode = shift.CustomCode, - Name = shift.Name, - Start = shift.Start, - End = shift.End - }) - .ToListAsync(); + var place = await _dbContext.Queryable().Where(x => x.CustomCode == placeCustomCode).FirstAsync(); + if (place == null) + { + return new BusinessPlaceWithShiftResponse() + { + Shifts = new List() + }; + } + var shifts = await _dbContext.Queryable().Where(x => x.BusinessPlaceCode == place.Code).ToListAsync(); + + return new BusinessPlaceWithShiftResponse + { + CustomCode = placeCustomCode, + Name = place.Name, + Shifts = shifts.Select(shift => new BusinessPlaceShiftResponse + { + Id = shift.Id, + BusinessPlaceCode = place.Code, + BusinessPlaceCustomCode = place.CustomCode, + BusinessPlace = place.Name, + Code = shift.Code, + CustomCode = shift.CustomCode, + Name = shift.Name, + Start = shift.Start, + End = shift.End + }) + .ToList() + }; } //*********************************************** help methods ***************************************************// diff --git a/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs index 4884920d..f9ed7579 100644 --- a/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs @@ -9,4 +9,9 @@ public class DeviceResigterRequest /// [Required(ErrorMessage = "设备唯一编码不能为空")] public string UniqueNo { get; set; } + + /// + /// 营业点手工号; 可为空,后续在后台中设置 + /// + public string BusinessCustomCode { get; set; } } diff --git a/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs b/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs index 9ba71dc9..df49bf65 100644 --- a/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs +++ b/Src/Dlhis.Basic/Device/Response/DeviceNotSetBusinessPlaceResponse.cs @@ -2,4 +2,7 @@ public class DeviceNotSetBusinessPlaceResponse { + public Guid Code { get; set; } + + public string UniqueNo { get; set; } } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs index d4f1d60f..96ffedbd 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs @@ -24,12 +24,17 @@ public class DeviceConnectService : IDeviceConnectService var device = await GetEnableDeviceAsync(request.UniqueNo); var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + var businessPlace = await _dbContext.Queryable().Where(x => x.CustomCode == request.BusinessCustomCode).FirstAsync(); + if (registry == null) { registry = new DeviceRegistryEntity() { DeviceUniqueNo = request.UniqueNo, LastHeartbeatTime = DateTime.Now, + RegisterTime = DateTime.Now, + BusinessPlaceCode = businessPlace?.Code, + BusinessPlaceCustomCode = businessPlace?.CustomCode, }; await _dbContext.InsertAsync(registry); @@ -41,7 +46,7 @@ public class DeviceConnectService : IDeviceConnectService public async Task> GetNotSetBusinessPlaceDevicesAsync() { - var devices = await _dbContext.Queryable().ToListAsync(); + var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); devices = devices.Where(x => x.Funcs.Any(item => item == DeviceFuncEnumType.Meal)).ToList(); return devices.Adapt>(); diff --git a/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs b/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs index 627b1592..55fa4c2b 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/DepartmentsController.cs @@ -1,14 +1,16 @@ using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; +using Kurisu.AspNetCore.MVC; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Organization.Controllers; /// -/// 部门 +/// sap部门 /// [Authorize] +[ApiDefinition("SAP", Description = "晶科sap组织架构信息")] [Route("api/[controller]")] [ApiController] public class DepartmentsController : ControllerBase diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs index aeaf2a26..11832763 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs @@ -1,6 +1,7 @@ using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; +using Kurisu.AspNetCore.MVC; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -8,9 +9,10 @@ using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.MealUser.Controllers; /// -/// 档案表 +/// sap档案表 /// [Authorize] +[ApiDefinition("SAP", Description = "晶科sap组织架构信息")] [Route("api/[controller]")] [ApiController] public class GainfosController : ControllerBase @@ -41,7 +43,6 @@ public class GainfosController : ControllerBase [HttpGet("page")] public async Task> GetPageAsync([FromQuery] GainfoPageRequest request) { - //var enums = await _enumSettingApi.GetEnums(); return await _gainfoService.GetPageAsync(request); } diff --git a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs index 5e10b469..8156ff56 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs @@ -1,12 +1,16 @@ using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; +using Kurisu.AspNetCore.MVC; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Organization.Controllers; /// -/// 人事范围 +/// sap人事范围 tenant /// +[Authorize] +[ApiDefinition("SAP", Description = "晶科sap组织架构信息")] [Route("api/[controller]")] [ApiController] public class WerksController : ControllerBase @@ -18,6 +22,10 @@ public class WerksController : ControllerBase _werkService = werkService; } + /// + /// 获取人事范围列表 + /// + /// [HttpGet("list")] public async Task> GetListAsync() { diff --git a/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs b/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs index 17cc0b61..6aafe244 100644 --- a/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs +++ b/Src/Dlhis.Basic/Organization/Response/DepartmentTreeResponse.cs @@ -1,6 +1,4 @@ -using SqlSugar; - -namespace Dlhis.Basic.Organization.Response; +namespace Dlhis.Basic.Organization.Response; public class DepartmentTreeResponse { @@ -17,5 +15,5 @@ public class DepartmentTreeResponse /// /// 下级部门 /// - public List Next { get; set; } + public List Next { get; set; } = new List(); } diff --git a/Src/Dlhis.Basic/SqlSugarPack.cs b/Src/Dlhis.Basic/SqlSugarPack.cs index e60a2855..3145a868 100644 --- a/Src/Dlhis.Basic/SqlSugarPack.cs +++ b/Src/Dlhis.Basic/SqlSugarPack.cs @@ -17,11 +17,11 @@ public class SqlSugarPack : BaseAppPack public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) { #if DEBUG - //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); + 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); #endif } } From d8cf554bdf9f323fae2d3acb5324ea35beb28b51 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 3 Jan 2024 17:36:48 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=20=E6=B3=A8=E5=86=8C=E8=A1=A8=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=B1=BB=E5=9E=8B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs index 6b2a21b9..3ba6c6b9 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs @@ -30,13 +30,13 @@ public class DeviceRegistryEntity : SugarBaseEntity, ITenantId /// /// 营业点code(可为空) /// - [SugarColumn(IsNullable = true, ColumnDescription = "注册时间")] - public Guid BusinessPlaceCode { get; set; } + [SugarColumn(IsNullable = true, ColumnDescription = "营业点code")] + public Guid? BusinessPlaceCode { get; set; } /// /// 营业点手工号(可为空) /// - [SugarColumn(IsNullable = true, ColumnDescription = "注册时间")] + [SugarColumn(IsNullable = true, ColumnDescription = "营业点手工号")] public string BusinessPlaceCustomCode { get; set; } public string TenantId { get; set; }