Merge branch 'development' of https://git.dlhis.com/liguoyang/jinko.yikatong into development

This commit is contained in:
cheche
2024-01-11 18:08:24 +08:00
14 changed files with 86 additions and 27 deletions

View File

@@ -27,7 +27,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Sys", "Src\Dlhis.Sys\
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Canteen", "Src\Dlhis.Canteen\Dlhis.Canteen.csproj", "{8317C526-3523-4195-9B19-2F17CFD71927}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Canteen", "Src\Dlhis.Canteen\Dlhis.Canteen.csproj", "{8317C526-3523-4195-9B19-2F17CFD71927}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dlhis.User.Api", "Src\Dlhis.User.Api\Dlhis.User.Api.csproj", "{F294CD7D-0412-48AD-A7E9-E72B9BA0E48E}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.User.Api", "Src\Dlhis.User.Api\Dlhis.User.Api.csproj", "{F294CD7D-0412-48AD-A7E9-E72B9BA0E48E}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -34,7 +34,7 @@ public class DevicePermissionsController : ControllerBase
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("assignments")] [HttpGet("assignments")]
public async Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request) public async Task<List<Guid>> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request)
{ {
return await _devicePermissionService.GetAssignmentsAsync(request.UserNo, request.UniqueType, request.UniqueValue); return await _devicePermissionService.GetAssignmentsAsync(request.UserNo, request.UniqueType, request.UniqueValue);
} }

View File

@@ -12,5 +12,5 @@ public interface IDevicePermissionService : IScopeDependency
/// <returns></returns> /// <returns></returns>
Task AssignmentAsync(List<DevicePermissionSaveReuqest> reuqests); Task AssignmentAsync(List<DevicePermissionSaveReuqest> reuqests);
Task<List<Guid>> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue); Task<List<Guid>> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue);
} }

View File

@@ -36,12 +36,12 @@ public class DevicePermissionService : IDevicePermissionService
} }
} }
public async Task<List<Guid>> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue) public async Task<List<Guid>> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue)
{ {
var assignments = await _dbContext.Queryable<DevicePermissionEntity>() var assignments = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.UniqueType == uniqueType) .Where(x => x.UniqueType == uniqueType)
.WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue) .WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue)
.Where(x => x.UserNo == userId) .Where(x => x.UserNo == userNo)
.Select(x => x.UniqueValue) .Select(x => x.UniqueValue)
.ToListAsync(); .ToListAsync();

View File

@@ -9,6 +9,4 @@ public interface IMealUserService : IScopeDependency
Task<Pagination<MealUserResponse>> GetPageAsync(MealUserPageRequest request); Task<Pagination<MealUserResponse>> GetPageAsync(MealUserPageRequest request);
Task AddAsync(MealUserAddRequest request); Task AddAsync(MealUserAddRequest request);
Task<MealUserResponse> GetMealUserAsync(string uniqueId);
} }

View File

@@ -53,12 +53,4 @@ public class MealUserService : IMealUserService
}; };
await _dbContext.InsertAsync(entity); await _dbContext.InsertAsync(entity);
} }
public async Task<MealUserResponse> GetMealUserAsync(string userId)
{
return await _dbContext.Queryable<CanteenUserEntity>()
.Where(x => x.UserNo == userId)
.Select<MealUserResponse>()
.FirstAsync();
}
} }

View File

@@ -59,11 +59,11 @@ public class SettingController : ControllerBase
/// <summary> /// <summary>
/// 获取用户配置 /// 获取用户配置
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userNo"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("user")] [HttpGet("user")]
public async Task<Dictionary<CanteenSettingItemEnumType, string>> GetUserSettingAsync(string userId) public async Task<Dictionary<CanteenSettingItemEnumType, string>> GetUserSettingAsync(string userNo)
{ {
return await _settingService.GetUserSettingAsync(userId); return await _settingService.GetUserSettingAsync(userNo);
} }
} }

View File

@@ -16,8 +16,8 @@ public interface ICanteenSettingService : IScopeDependency
/// <summary> /// <summary>
/// 获取人员的就餐配置信息 /// 获取人员的就餐配置信息
/// </summary> /// </summary>
/// <param name="userId">就餐人员档案号</param> /// <param name="userNo">就餐人员档案号</param>
/// <returns></returns> /// <returns></returns>
Task<Dictionary<CanteenSettingItemEnumType, string>> GetUserSettingAsync(string userId); Task<Dictionary<CanteenSettingItemEnumType, string>> GetUserSettingAsync(string userNo);
} }

View File

@@ -119,10 +119,10 @@ public class CanteenSettingService : ICanteenSettingService
} }
public async Task<Dictionary<CanteenSettingItemEnumType, string>> GetUserSettingAsync(string userId) public async Task<Dictionary<CanteenSettingItemEnumType, string>> GetUserSettingAsync(string userNo)
{ {
var setting = await _context.Queryable<CanteenSettingEntity>() var setting = await _context.Queryable<CanteenSettingEntity>()
.Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Person && (x.UniqueValue == userId) || x.UniqueType == CanteenSettingUnqiueEnumType.Tenant) .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Person && (x.UniqueValue == userNo) || x.UniqueType == CanteenSettingUnqiueEnumType.Tenant)
.ToListAsync(); .ToListAsync();
//从基地 -> 个人,确保下面循环做到覆盖,并且以个人配置为主 //从基地 -> 个人,确保下面循环做到覆盖,并且以个人配置为主

View File

@@ -1,12 +1,17 @@
using Kurisu.Core.DataAccess.Entity; using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar; using SqlSugar;
namespace Dlhis.Entity.Device.Entities; namespace Dlhis.Entity.Device.Entities;
[SugarTable(TableName = "DeviceUploadLog", TableDescription = "设备上传记录")] [SugarTable(TableName = "DeviceUploadLog", TableDescription = "设备上传记录")]
public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId public class DeviceUploadLogEntity : ITenantId
{ {
/// <summary>
/// id
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public long Id { get; set; }
/// <summary> /// <summary>
/// 设备号 /// 设备号
/// </summary> /// </summary>
@@ -27,5 +32,10 @@ public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId
/// </summary> /// </summary>
public string Ip { get; set; } public string Ip { get; set; }
/// <summary>
/// 上传时间
/// </summary>
public DateTime UploadTime { get; set; }
public string TenantId { get; set; } public string TenantId { get; set; }
} }

View File

@@ -32,4 +32,15 @@ public class DeviceUploadLogsController : ControllerBase
{ {
return await _deviceUploadLogService.GetPageAsync(request); return await _deviceUploadLogService.GetPageAsync(request);
} }
/// <summary>
/// 上传记录
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("record")]
public async Task UploadLogAsync(DeviceUploadLogUploadRequest request)
{
await _deviceUploadLogService.UploadLogAsync(request);
}
} }

View File

@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
namespace Dlhis.ScheduledTask.DeviceUploadLog.Request;
public class DeviceUploadLogUploadRequest
{
/// <summary>
/// 设备唯一号
/// </summary>
[Required(ErrorMessage = "设备唯一号不能为空")]
public string DeviceUniqueNo { get; set; }
/// <summary>
/// 用户学工号
/// </summary>
[Required(ErrorMessage = "用户学工号不能为空")]
public string UserCode { get; set; }
/// <summary>
/// 上传时间
/// </summary>
public DateTime UploadTime { get; set; }
}

View File

@@ -7,4 +7,6 @@ namespace Dlhis.ScheduledTask.DeviceUploadLog.Services;
public interface IDeviceUploadLogService : IScopeDependency public interface IDeviceUploadLogService : IScopeDependency
{ {
Task<Pagination<DeviceUploadLogResponse>> GetPageAsync(DeviceUploadLogPageRequest request); Task<Pagination<DeviceUploadLogResponse>> GetPageAsync(DeviceUploadLogPageRequest request);
Task UploadLogAsync(DeviceUploadLogUploadRequest request);
} }

View File

@@ -2,7 +2,9 @@
using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Entities;
using Dlhis.ScheduledTask.DeviceUploadLog.Request; using Dlhis.ScheduledTask.DeviceUploadLog.Request;
using Dlhis.ScheduledTask.DeviceUploadLog.Response; using Dlhis.ScheduledTask.DeviceUploadLog.Response;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto; using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services; using Kurisu.SqlSugar.Services;
@@ -21,14 +23,14 @@ public class DeviceUploadLogService : IDeviceUploadLogService
{ {
var page = await _dbContext.Queryable<DeviceUploadLogEntity>() var page = await _dbContext.Queryable<DeviceUploadLogEntity>()
.LeftJoin<GainfoEntity>((deviceUp, ga) => deviceUp.UserNo == ga.No) .LeftJoin<GainfoEntity>((deviceUp, ga) => deviceUp.UserNo == ga.No)
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.CreateTime >= request.SearchDateTimePeriod.Start) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.UploadTime >= request.SearchDateTimePeriod.Start)
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.CreateTime <= request.SearchDateTimePeriod.End) .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.UploadTime <= request.SearchDateTimePeriod.End)
.Select((deviceUp, ga) => new DeviceUploadLogResponse .Select((deviceUp, ga) => new DeviceUploadLogResponse
{ {
DeviceUniqueNo = deviceUp.DeviceUniqueNo, DeviceUniqueNo = deviceUp.DeviceUniqueNo,
Id = deviceUp.Id, Id = deviceUp.Id,
Ip = deviceUp.Ip, Ip = deviceUp.Ip,
UploadTime = deviceUp.CreateTime, UploadTime = deviceUp.UploadTime,
UserNo = deviceUp.UserNo, UserNo = deviceUp.UserNo,
UserCode = deviceUp.UserCode, UserCode = deviceUp.UserCode,
UserName = ga.Name, UserName = ga.Name,
@@ -37,4 +39,25 @@ public class DeviceUploadLogService : IDeviceUploadLogService
return page; return page;
} }
[IgnoreTenant]
public async Task UploadLogAsync(DeviceUploadLogUploadRequest request)
{
var device = await _dbContext.Queryable<DeviceEntity>().Where(x => x.UniqueNo == request.DeviceUniqueNo).SingleAsync();
device.ThrowIfNull("设备信息不存在");
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == request.UserCode).FirstAsync();
device.ThrowIfNull("人员信息不存在");
var entity = new DeviceUploadLogEntity
{
DeviceUniqueNo = request.DeviceUniqueNo,
UploadTime = request.UploadTime,
UserCode = request.UserCode,
UserNo = gainfo.No,
TenantId = device.TenantId,
};
await _dbContext.InsertAsync(entity);
}
} }