From 50f403961f038cb3309cb06bf9f1655258931f85 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 9 Mar 2026 17:31:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=92=8C=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GainfoFingerprintsController.cs | 7 +-- .../Response/GainfoFingerprintResponse.cs | 6 +++ .../Services/IGainfoFingerprintService.cs | 2 +- .../Implements/GainfoFingerprintService.cs | 48 +++++++++++++------ 4 files changed, 45 insertions(+), 18 deletions(-) diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoFingerprintsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoFingerprintsController.cs index 7717ef0a..0b6bcce3 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoFingerprintsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoFingerprintsController.cs @@ -1,4 +1,5 @@ -using Dlhis.Basic.Organization.Request; +using System.ComponentModel.DataAnnotations; +using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; using Microsoft.AspNetCore.Authorization; @@ -36,10 +37,10 @@ public class GainfoFingerprintsController : ControllerBase /// 获取人员指纹数据 /// /// - /// + /// 1-10,不传入则获取所有 /// [HttpGet("fingerprints")] - public async Task> GetFingerprintAsync(string userCode, int fingerNum) + public async Task> GetFingerprintAsync([Required] string userCode, int? fingerNum) { return await _gainfoFingerprintService.GetFingerprintAsync(userCode, fingerNum); } diff --git a/Src/Dlhis.Basic/Organization/Response/GainfoFingerprintResponse.cs b/Src/Dlhis.Basic/Organization/Response/GainfoFingerprintResponse.cs index e88d3dad..25d985e1 100644 --- a/Src/Dlhis.Basic/Organization/Response/GainfoFingerprintResponse.cs +++ b/Src/Dlhis.Basic/Organization/Response/GainfoFingerprintResponse.cs @@ -22,6 +22,12 @@ public class GainfoFingerprintResponse /// public string DepartmentName { get; set; } + + public List Fingerprints { get; set; } +} + +public class FingerprintResponse +{ /// /// 指纹号 /// diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoFingerprintService.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoFingerprintService.cs index 6481a874..7e6ff0ef 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoFingerprintService.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoFingerprintService.cs @@ -6,5 +6,5 @@ public interface IGainfoFingerprintService : IScopeDependency { Task CollectFingerprintAsync(string userCode, int fingerNum, string fingerprint); - Task> GetFingerprintAsync(string userCode, int fingerNum); + Task GetFingerprintAsync(string userCode, int? fingerNum); } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFingerprintService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFingerprintService.cs index 36314a03..da30343c 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFingerprintService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFingerprintService.cs @@ -1,6 +1,7 @@ using Dlhis.Basic.Organization.Response; using Dlhis.Entity.Basic.Entity; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; +using Kurisu.AspNetCore.Utils.Extensions; namespace Dlhis.Basic.Organization.Services.Implements { @@ -14,6 +15,11 @@ namespace Dlhis.Basic.Organization.Services.Implements } public async Task CollectFingerprintAsync(string userCode, int fingerNum, string fingerprint) { + if (!await _dbContext.Queryable().Where(x => x.Code == userCode).AnyAsync()) + { + true.ThrowIfTrue("人员不存在"); + } + var gainfoFingerprint = await _dbContext.Queryable().Where(x => x.UserCode == userCode && x.FingerNum == fingerNum).FirstAsync(); if (gainfoFingerprint == null) { @@ -32,21 +38,35 @@ namespace Dlhis.Basic.Organization.Services.Implements } } - public async Task> GetFingerprintAsync(string userCode, int fingerNum) + public async Task GetFingerprintAsync(string userCode, int? fingerNum) { - return await _dbContext.Queryable() - .LeftJoin((x, ga) => x.UserCode == ga.Code) - .LeftJoin((x, ga, dept) => ga.DepartmentNo == dept.No) - .Select((x, ga, dept) => new GainfoFingerprintResponse - { - UserCode = x.UserCode, - UserName = ga.Name, - DepartmentNo = dept.No, - DepartmentName = dept.Name, - FingerNum = x.FingerNum, - Fingerprint = x.Fingerprint - }) - .ToListAsync(); + var gainfo = await _dbContext.Queryable() + .LeftJoin((x, dept) => x.DepartmentNo == dept.No) + .Where(x => x.Code == userCode) + .Select((x, dept) => new + { + x.Code, + x.Name, + x.DepartmentNo, + DepartmentName = dept.Name + }) + .FirstAsync(); + gainfo.ThrowIfNull("人员不存在"); + + var fingerprins = await _dbContext.Queryable().Where(x => x.UserCode == userCode).OrderBy(x => x.FingerNum).ToListAsync(); + + return new GainfoFingerprintResponse + { + UserCode = gainfo.Code, + UserName = gainfo.Name, + DepartmentNo = gainfo.DepartmentNo, + DepartmentName = gainfo.DepartmentName, + Fingerprints = fingerprins.Select(x => new FingerprintResponse + { + FingerNum = x.FingerNum, + Fingerprint = x.Fingerprint + }).ToList() + }; } } }