From 89223a8113573024af6aa4c111f0ce154d506eda Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 26 Jan 2026 11:30:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/GainfoPermissionsController.cs | 2 +- .../Organization/Request/GainfoPermissionResetRequest.cs | 4 ++++ .../Organization/Services/IGainfoPermissionService.cs | 6 +++--- .../Services/Implements/GainfoCardService.cs | 4 ++-- .../Services/Implements/GainfoPermissionService.cs | 9 +++++---- .../Organization/Services/Implements/GainfoService.cs | 2 +- .../Services/Implements/GainfoUpdateService.cs | 6 +++--- .../Services/Implements/SapBusinessTripService.cs | 8 ++++---- 8 files changed, 23 insertions(+), 18 deletions(-) diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs index 90cc1b53..7ef7a203 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs @@ -54,6 +54,6 @@ public class GainfoPermissionsController : ControllerBase [HttpPost("reset")] public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request) { - return await _gainfoPermissions.ResetPermissionsAsync(request.UserNo, request.Status ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Delete, null, "admin手动操作重置"); + return await _gainfoPermissions.ResetPermissionsAsync(request.UserNo, request.Status ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Delete, request.Type, null, "admin手动操作重置"); } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs index 71d6e26b..34e24b90 100644 --- a/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs +++ b/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Device.Enums; namespace Dlhis.Basic.Organization.Request; @@ -11,4 +12,7 @@ public class GainfoPermissionResetRequest /// true下发所有,false删除所有 /// public bool Status { get; set; } + + [EnumDataType(typeof(DeviceTypeEnumType))] + public DeviceTypeEnumType Type { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs index f7a8e2a0..212c7c01 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs @@ -9,8 +9,8 @@ namespace Dlhis.Basic.Organization.Services; public interface IGainfoPermissionService : IScopeDependency { Task> GetAssignDeviceCodesAsync(DeviceAssRequest request); - + Task> GetAssignDeviceCodesAsync(DeviceAssUserCodeRequest request); - - Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List deviceCodes, string source); + + Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, DeviceTypeEnumType? deviceType, List deviceCodes, string source); } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs index b16421d4..06cacc02 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs @@ -75,10 +75,10 @@ public class GainfoCardService : IGainfoCardService .ToListAsync(); gainfo.CardType = typeId; - + if (deviceCodes.IsPresent()) { - await _gainfoPermissionService.ResetPermissionsAsync(userNo, DeviceTaskEnumType.Update, deviceCodes, "卡类型编辑下发"); + await _gainfoPermissionService.ResetPermissionsAsync(userNo, DeviceTaskEnumType.Update, null, deviceCodes, "卡类型编辑下发"); } } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index 7403643a..f621f57c 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -3,7 +3,6 @@ using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; -using Dlhis.Basic.Utils; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; @@ -13,7 +12,6 @@ using Kurisu.AspNetCore.DataAccess.Extensions; using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Utils.Extensions; -using Microsoft.AspNetCore.Mvc.RazorPages; using SqlSugar; namespace Dlhis.Basic.Organization.Services.Implements; @@ -341,7 +339,7 @@ public class GainfoPermissionService : IGainfoPermissionService // } - public async Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List deviceCodes, string source) + public async Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, DeviceTypeEnumType? deviceType, List deviceCodes, string source) { var gainfo = await _dbContext.Queryable() .Where(x => x.No == userNo) @@ -367,7 +365,10 @@ public class GainfoPermissionService : IGainfoPermissionService deviceCodes = await _devicePermissionAnalyzeService.GetUserPermissionDeviceCodesAsync(gainfo!.No); } - var devices = await _dbContext.Queryable().Where(x => deviceCodes.Contains(x.Code)).ToListAsync(); + var devices = await _dbContext.Queryable() + .WhereIF(deviceType.HasValue, x => x.Type == deviceType) + .Where(x => deviceCodes.Contains(x.Code)) + .ToListAsync(); var tasks = devices.Select(x => new DeviceTaskEntity { diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs index d3fe58b2..3c3a59e4 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs @@ -278,7 +278,7 @@ public class GainfoService : IGainfoService } else { - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, request.Reason); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, null, request.Reason); await _dbContext.Deleteable().Where(x => x.UserNo == gainfo.No).ExecuteCommandAsync(); await _dbContext.Deleteable().Where(x => x.AssignType == AssignTypeEnumType.User && x.AssignValue == gainfo.No).ExecuteCommandAsync(); diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs index 6405d538..d769b24b 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs @@ -290,7 +290,7 @@ public class GainfoUpdateService : IGainfoUpdateService if (change.IsPresent()) { - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, $"异动生成({change})"); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, null, $"异动生成({change})"); } @@ -317,7 +317,7 @@ public class GainfoUpdateService : IGainfoUpdateService //有变更就重新下发 if (change.IsPresent()) { - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, null, $"异动生成({change})"); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, null, null, $"异动生成({change})"); //只有厂区变更才需要处理工作网格 if (hasFactoryChange) @@ -367,7 +367,7 @@ public class GainfoUpdateService : IGainfoUpdateService } else { - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, "人员离职生成"); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, null, "人员离职生成"); //先写入离职表 gainfo.IdentityUserId = (int)gainfo.Id; //记录原始id diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs index 1703effa..da7525c0 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs @@ -88,7 +88,7 @@ public class SapBusinessTripService : ISapBusinessTripService await _dbContext.UpdateAsync(todayTripInfo); //下发 - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes, "出差昨天今天都有"); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, null, deviceCodes, "出差昨天今天都有"); continue; } @@ -107,7 +107,7 @@ public class SapBusinessTripService : ISapBusinessTripService .ExecuteCommandAsync(); await _dbContext.UpdateAsync(yesterdayTripInfo); - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, deviceCodes, "出差昨天有今天无"); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, deviceCodes, "出差昨天有今天无"); } if (yesterdayTripInfo == null) @@ -136,7 +136,7 @@ public class SapBusinessTripService : ISapBusinessTripService todayTripInfo.Status = BusinessTripStatusEnumType.Generated; await _dbContext.UpdateAsync(todayTripInfo); - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes, "出差昨天无今天有"); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, null, deviceCodes, "出差昨天无今天有"); } } catch (Exception e) @@ -180,7 +180,7 @@ public class SapBusinessTripService : ISapBusinessTripService return await _dbContext.Queryable() .Where(x => SqlFunc.DateIsSame(x.BeginDate, yesterday) || SqlFunc.DateIsSame(x.BeginDate, today)) .Where(x => !SqlFunc.IsNullOrEmpty(x.Destination)) //必须有目的地 - //.Where(x => !SqlFunc.IsNullOrEmpty(x.BeginDateTime) && !SqlFunc.IsNullOrEmpty(x.EndDateTime)) + //.Where(x => !SqlFunc.IsNullOrEmpty(x.BeginDateTime) && !SqlFunc.IsNullOrEmpty(x.EndDateTime)) .Where(x => x.Destination == factory) .ToListAsync(); }