From 53d70cc136c9f91f5c1043e2e3351bce5194a574 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 10 Mar 2024 12:35:57 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=20=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/DevicePermissionService.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index b24373cd..a460129d 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -29,18 +29,18 @@ public class DevicePermissionService : IDevicePermissionService { var tenantId = reuqest.AssignType == AssignTypeEnumType.Department ? reuqest.TenantId : _currentUser.GetStringTenantId(); - //删除当前匹配的基地权限 - var p = await _dbContext.Queryable() - .Where(x => x.AssignType == reuqest.AssignType) - .Where(x => x.AssignValue == reuqest.AssignValue) - .Where(x => x.UniqueType == reuqest.UniqueType) - .Where(x => x.TenantId == tenantId) - .ToListAsync(); - - await _dbContext.DeleteReallyAsync(p); - await GenerateDeviceTasksAsync(async () => { + //删除当前匹配的基地权限 + var p = await _dbContext.Queryable() + .Where(x => x.AssignType == reuqest.AssignType) + .Where(x => x.AssignValue == reuqest.AssignValue) + .Where(x => x.UniqueType == reuqest.UniqueType) + .Where(x => x.TenantId == tenantId) + .ToListAsync(); + + await _dbContext.DeleteReallyAsync(p); + //保存配置的权限 if (reuqest.Codes.IsPresent()) { From 72b25c7095faf5fd147e5a0ee29c13aa5a00872d Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 10 Mar 2024 13:55:37 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=20=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=B0=B1=E9=A4=90=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Services/Implements/OrderService.cs | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs index c2cabe68..cb345396 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs @@ -64,15 +64,32 @@ public class OrderService : IOrderService .FirstAsync(); gainfo.ThrowIfNull($"用户{request.UserUniqueNo}不存在,无法操作"); - - var canteenUserExists = await _dbContext.Queryable() - .Where(x => x.UserNo == gainfo.No) - .AnyAsync(); - canteenUserExists.ThrowIfFalse($"就餐用户{request.UserUniqueNo}不存在,无法操作"); - //消费权限控制 await CheckPAsync(gainfo.No, request.DeviceUniqueNo); + var canteenUserExists = await _dbContext.Queryable() + .Where(x => x.UserNo == gainfo.No) + .AnyAsync(); + + if (!canteenUserExists) + { + await _dbContext.InsertAsync(new CanteenUserEntity + { + UserNo = gainfo.No, + Balance = 0, + BalanceOfRecharge = 0, + BalanceOfSubsidies = 0, + UserType = CanteenUserEnumType.LocalTenant, + TenantId = gainfo.Factory, + Version = 0, + + CreatedBy = 1, + CreateTime = DateTime.Now, + ModifiedBy = 1, + ModifiedTime = DateTime.Now, + }); + } + //消费 if (request.Type == BalanceRecordTypeEnumType.Out) { From c4bb884d481ac6af3906cda23ebbaa7388bc80ef Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 10 Mar 2024 16:19:09 +0800 Subject: [PATCH 3/4] fix job --- .../SyncSapInfo/Job/SyncOriginCardInfoJob.cs | 8 ++++++-- Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs | 3 +++ .../SyncSapInfo/Services/Implements/JinkoSapService.cs | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs index 96a7daa4..88f2c0f5 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncOriginCardInfoJob.cs @@ -30,6 +30,8 @@ public class SyncOriginCardInfoJob public async Task RunAsync() { + _logger.LogInformation("调度任务:{job}.开始执行", nameof(SyncOriginCardInfoJob)); + _dbContext.Client.QueryFilter.ClearAndBackup(); _sqlSugarOptionsService.IgnoreTenant = true; try @@ -49,14 +51,14 @@ public class SyncOriginCardInfoJob //获取人员信息 var userCodes = logs.Select(x => x.UserUniqueNo).ToList(); - var gainfos = await _dbContext.Queryable().Where(x => userCodes.Contains(x.Code)).Select(x => new { x.Code, x.CardNo }).ToListAsync(); + var gainfoCodes = await _dbContext.Queryable().Where(x => userCodes.Contains(x.Code)).Select(x => x.Code).ToListAsync(); var requests = logs.Select(x => new UploadAttendanceRequest { Id = x.Id, RaiseDateTime = x.RaiseDateTime, ZNOTE = devices.First(item => item.UniqueNo == x.DeviceUniqueNo).DeployPlace, - ZWORKCODE = gainfos.FirstOrDefault(item => item.Code == x.UserUniqueNo)?.Code?.TrimEnd('\0'), + ZWORKCODE = gainfoCodes.Contains(x.UserUniqueNo) ? x.UserUniqueNo?.TrimEnd('\0') : string.Empty, }).Where(x => x.ZWORKCODE.IsPresent()).ToList(); @@ -86,6 +88,8 @@ public class SyncOriginCardInfoJob { _sqlSugarOptionsService.IgnoreTenant = false; _dbContext.Client.QueryFilter.Restore(); + + _logger.LogInformation("调度任务:{job}.结束", nameof(SyncOriginCardInfoJob)); } } } diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs index 8a30c9f7..944774bf 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs @@ -36,6 +36,7 @@ public class SyncPersonJob public async Task RunAsync() { + _logger.LogInformation("开始获取SAP人员"); var personResp = await _jinkoSapService.GetPersonsAsync(); var persons = personResp.Person.Items; _departmentChanges = personResp.DepartmentInfo.Items; @@ -56,6 +57,8 @@ public class SyncPersonJob } }); } + + _logger.LogInformation("同步SAP人员数据结束"); } private async Task SavePerson(List persons) diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoSapService.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoSapService.cs index 05ceed7c..bfd27a08 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoSapService.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Services/Implements/JinkoSapService.cs @@ -115,7 +115,7 @@ public class JinkoSapService : IJinkoSapService } catch (Exception ex) { - _logger.LogError(ex, "获取人事范围{werk}失败:" + ex.Message, item); + _logger.LogError(ex, "获取人事范围{werk}失败:" + ex.Message, item.Werk); } } From f56d1129c1ccd78224436ecde9bd6c26e76d2b75 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 11 Mar 2024 11:33:13 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E6=B3=A8=E9=87=8A,?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96face=E9=80=9A=E7=94=A8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/DevicePermissionService.cs | 9 ++++++--- .../Services/Implements/GainfoService.cs | 19 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index a460129d..f3c56a47 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -27,10 +27,10 @@ public class DevicePermissionService : IDevicePermissionService public async Task AssignAsync(DevicePermissionSaveReuqest reuqest) { - var tenantId = reuqest.AssignType == AssignTypeEnumType.Department ? reuqest.TenantId : _currentUser.GetStringTenantId(); - await GenerateDeviceTasksAsync(async () => { + var tenantId = reuqest.AssignType == AssignTypeEnumType.Department ? reuqest.TenantId : _currentUser.GetStringTenantId(); + //删除当前匹配的基地权限 var p = await _dbContext.Queryable() .Where(x => x.AssignType == reuqest.AssignType) @@ -481,12 +481,13 @@ public class DevicePermissionService : IDevicePermissionService //获取人员的分组,跨基地 var gainfoGroups = gainfoGroupRelationships.Where(x => x.UserNo == userNo).Select(x => x.GroupCode).ToList(); - //按User获取权限 + //按用户 var du = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.User, userNo); var gu = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo); deviceCodes.AddRange(du); deviceGroupCodes.AddRange(gu); + //按用户组 foreach (var groupCode in gainfoGroups) { var dg = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Group, groupCode.ToString()); @@ -495,12 +496,14 @@ public class DevicePermissionService : IDevicePermissionService deviceGroupCodes.AddRange(gg); } + //按部门 var gainfoFactoryDevicePermissions = devicePermissions.Where(x => x.TenantId == gainfo.Factory).ToList(); var dd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Department, gainfo.DepartmentNo); var gd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Department, gainfo.DepartmentNo); deviceCodes.AddRange(dd); deviceGroupCodes.AddRange(gd); + //按厂区 var dt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Tenant, gainfo.Factory); var gt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Tenant, gainfo.Factory); deviceCodes.AddRange(du); diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs index c7ceda84..4b61a811 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs @@ -233,8 +233,11 @@ public class GainfoService : IGainfoService gainfo.ThrowIfNull("人员档案信息不存在"); - var dbContext = _dbContext.ChangeDb("face"); - var face = await dbContext.Queryable().Where(x => x.UserCode == gainfo.Code).SingleAsync(); + + var userId = _currentUser.GetIntSubjectId(); + + var faceContext = _dbContext.ChangeDb("face"); + var face = await faceContext.Queryable().Where(x => x.UserCode == gainfo.Code).SingleAsync(); var taskType = face == null ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Update; @@ -244,10 +247,14 @@ public class GainfoService : IGainfoService face = new GainfoFaceEntity { UserCode = gainfo.Code, - Face = request.Face + Face = request.Face, + CreateTime = DateTime.Now, + ModifiedTime = DateTime.Now, + CreatedBy = userId, + ModifiedBy = userId }; - await dbContext.InsertAsync(face); + await faceContext.InsertAsync(face); } else { @@ -258,7 +265,9 @@ public class GainfoService : IGainfoService } face.Face = request.Face; - await dbContext.UpdateAsync(face); + face.ModifiedBy = userId; + face.ModifiedTime = DateTime.Now; + await faceContext.UpdateAsync(face); } //生成任务