diff --git a/Src/Dlhis.Basic/Device/Controllers/DeviceTimePeriodsController.cs b/Src/Dlhis.Basic/Device/Controllers/DeviceTimePeriodsController.cs index 17b198f3..49a1cd7b 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DeviceTimePeriodsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DeviceTimePeriodsController.cs @@ -30,7 +30,7 @@ public class DeviceTimePeriodsController : ControllerBase /// /// [HttpGet("page")] - public async Task> GetPageAsync([FromQuery] DeviceTimePeriodPageRequest request) + public async Task> GetPageAsync([FromQuery] DeviceTimePeriodPageRequest request) { return await _deviceTimePeriodService.GetPageAsync(request); } diff --git a/Src/Dlhis.Basic/Device/Response/DeviceTimePeriodPageResponse.cs b/Src/Dlhis.Basic/Device/Response/DeviceTimePeriodPageResponse.cs new file mode 100644 index 00000000..896cc0ba --- /dev/null +++ b/Src/Dlhis.Basic/Device/Response/DeviceTimePeriodPageResponse.cs @@ -0,0 +1,21 @@ +using Dlhis.Entity.Device.Enums; + +namespace Dlhis.Basic.Device.Response; + +public class DeviceTimePeriodPageResponse +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 分配类型 + /// + public DeviceTimePeriodAssignEnumType AssignType { get; set; } + + /// + /// 分配值 + /// + public Guid Value { get; set; } +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs index db59b281..2b3658ea 100644 --- a/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs @@ -7,7 +7,7 @@ namespace Dlhis.Basic.Device.Services; public interface IDeviceTimePeriodService : IScopeDependency { - Task> GetPageAsync(DeviceTimePeriodPageRequest request); + Task> GetPageAsync(DeviceTimePeriodPageRequest request); Task SaveAsync(DeviceTimePeriodSaveRequest request); diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs index aa8be63b..ebd9f924 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs @@ -22,25 +22,26 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService } /// - public async Task> GetPageAsync(DeviceTimePeriodPageRequest request) + public async Task> GetPageAsync(DeviceTimePeriodPageRequest request) { - var pageOri = await _dbContext.Queryable() + var page = await _dbContext.Queryable() .Where(x => x.AssignType == request.AssignType) + .GroupBy(x => new { x.AssignType, x.Value }) + .Select(x => new DeviceTimePeriodPageResponse + { + AssignType = x.AssignType, + Value = x.Value + }) .ToPageListAsync(request); - - var page = pageOri.Adapt>(); - + var values = page.Data.Select(x => x.Value); var data = request.AssignType == DeviceTimePeriodAssignEnumType.Device ? await _dbContext.Queryable().Where(x => values.Contains(x.Code)).Select(x => new { x.Code, Name = x.DeployPlace }).ToListAsync() : await _dbContext.Queryable().Where(x => values.Contains(x.Code)).Select(x => new { x.Code, x.Name }).ToListAsync(); - var basicTypes = await _dbContext.Queryable().Where(x => x.Type == "timeperiod").ToListAsync(); - page.Data.ForEach(item => { item.Name = data.FirstOrDefault(x => x.Code == item.Value)?.Name; - item.CardTypeDesc = basicTypes.FirstOrDefault(x => x.Code == item.CardType.ToString())?.Display; }); return page;