From c3749ab5fc2ac08d343ef4cf1c627de3fe91ce7f Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 7 Apr 2024 21:19:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=B8=8B=E5=8F=91=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/GainfoPermissionService.cs | 2 +- .../Implements/GainfoUpdateService.cs | 27 ++++++++++++++----- .../Services/Implements/AssignmentService.cs | 9 ++++--- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index 14442703..49aefdbc 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -203,7 +203,7 @@ public class GainfoPermissionService : IGainfoPermissionService .Where(x => x.No == request.UserNo) .SingleAsync(); - if (request.IsLeave) + if (gainfo == null && request.IsLeave) { gainfo = await _dbContext.Queryable().AS("GainfoLeave") .Where(x => x.No == request.UserNo) diff --git a/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs b/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs index c0b7dd2e..d8cbdcc2 100644 --- a/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs +++ b/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs @@ -9,7 +9,7 @@ using Dlhis.ScheduledTask.Common.Dto; using Dlhis.ScheduledTask.Common.Comparers; using Kurisu.AspNetCore.Utils.Extensions; using Dlhis.Basic.Api.Dtos; -using Microsoft.AspNetCore.Mvc.Formatters; +using Dlhis.Basic.Api.Request; namespace Dlhis.ScheduledTask.Common.Services.Implements; @@ -199,15 +199,22 @@ public class GainfoUpdateService : IGainfoUpdateService var dtoResult = await _devicePermissionApi.GetPermissionUsersInfoAsync(new List { no }); var dto = dtoResult.Data; - await UpdatePersonAsync(item); + var gainfoNo = await UpdatePersonAsync(item); _logger.LogWarning("执行更新成功 工号:{code},姓名:{name}", item.ename, item.gname); - await _devicePermissionApi.RePermissionUsersInfoAsync(dto); + if (gainfoNo.IsPresent()) + { + await _devicePermissionApi.RePermissionUsersInfoAsync(dto); + } } else { - await UpdatePersonAsync(item); + no = await UpdatePersonAsync(item); _logger.LogWarning("执行更新成功 工号:{code},姓名:{name}", item.ename, item.gname); + await _businessPlacePermissionsApi.ResetAsync(new GainfoPermissionResetRequest + { + UserNo = no + }); } } catch (Exception ex) @@ -343,7 +350,7 @@ public class GainfoUpdateService : IGainfoUpdateService { try { - await _businessPlacePermissionsApi.ResetAsync(new Basic.Api.Request.GainfoPermissionResetRequest + await _businessPlacePermissionsApi.ResetAsync(new GainfoPermissionResetRequest { IsLeave = true, UserNo = gainfo.No @@ -364,8 +371,14 @@ public class GainfoUpdateService : IGainfoUpdateService } } - - return gainfo?.No; + if (item.isowner == "T") + { + return gainfo?.No; + } + else + { + return null; + } } private async Task> GetModifiedPersonAsync(List sapList) diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index d67a5063..510a4799 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -44,7 +44,8 @@ public class AssignmentService : IAssignmentService .LeftJoin((deviceTask, deivce) => deviceTask.DeviceUniqueNo == deivce.UniqueNo) .LeftJoin((deviceTask, deivce, deivceTamplate) => deivceTamplate.Code == deivce.TemplateCode) .LeftJoin((deviceTask, deivce, deivceTamplate, ga) => deviceTask.UserNo == ga.No) - .LeftJoin((deviceTask, deivce, deivceTamplate, ga, department) => department.No == ga.DepartmentNo) + .LeftJoin((deviceTask, deivce, deivceTamplate, ga, galeave) => deviceTask.UserNo == galeave.No) + .LeftJoin((deviceTask, deivce, deivceTamplate, ga, galeave, department) => department.No == ga.DepartmentNo) .WhereIF(request.Brand.IsPresent(), (deviceTask, deivce, deivceTamplate) => deivceTamplate.Brand == request.Brand) .WhereIF(request.DeviceUniqueNo.IsPresent(), (deviceTask, deivce) => deviceTask.DeviceUniqueNo == request.DeviceUniqueNo) .WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type)) @@ -52,7 +53,7 @@ public class AssignmentService : IAssignmentService .WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process) //.Where(deviceTask => heartbeatDeviceNos.Contains(deviceTask.DeviceUniqueNo)) .OrderBy(deviceTask => deviceTask.CreateTime) - .Select((deviceTask, deivce, deivceTamplate, ga, department) => new + .Select((deviceTask, deivce, deivceTamplate, ga, galeave, department) => new { UserId = SqlFunc.IsNull(deviceTask.UserId, ga.Id), TaskId = deviceTask.Id, @@ -62,8 +63,8 @@ public class AssignmentService : IAssignmentService deivceTamplate.Brand, FuncStr = deivce.Funcs.ToString(), deviceTask.UserNo, - UserCode = ga.Code, - UserName = ga.Name, + UserCode = SqlFunc.IsNull(ga.Code, galeave.Code), + UserName = SqlFunc.IsNull(ga.Name, galeave.Name), ga.DepartmentNo, DepartmentName = department.Name, ga.CardNo,