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()
+ };
}
}
}