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
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Canteen", "Src\Dlhis.Canteen\Dlhis.Canteen.csproj", "{8317C526-3523-4195-9B19-2F17CFD71927}"
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
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -34,7 +34,7 @@ public class DevicePermissionsController : ControllerBase
/// <param name="request"></param>
/// <returns></returns>
[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);
}

View File

@@ -12,5 +12,5 @@ public interface IDevicePermissionService : IScopeDependency
/// <returns></returns>
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>()
.Where(x => x.UniqueType == uniqueType)
.WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue)
.Where(x => x.UserNo == userId)
.Where(x => x.UserNo == userNo)
.Select(x => x.UniqueValue)
.ToListAsync();

View File

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

View File

@@ -53,12 +53,4 @@ public class MealUserService : IMealUserService
};
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>
/// <param name="userId"></param>
/// <param name="userNo"></param>
/// <returns></returns>
[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>
/// <param name="userId">就餐人员档案号</param>
/// <param name="userNo">就餐人员档案号</param>
/// <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>()
.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();
//从基地 -> 个人,确保下面循环做到覆盖,并且以个人配置为主

View File

@@ -1,12 +1,17 @@
using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar;
using SqlSugar;
namespace Dlhis.Entity.Device.Entities;
[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>
@@ -27,5 +32,10 @@ public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId
/// </summary>
public string Ip { get; set; }
/// <summary>
/// 上传时间
/// </summary>
public DateTime UploadTime { get; set; }
public string TenantId { get; set; }
}

View File

@@ -32,4 +32,15 @@ public class DeviceUploadLogsController : ControllerBase
{
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
{
Task<Pagination<DeviceUploadLogResponse>> GetPageAsync(DeviceUploadLogPageRequest request);
Task UploadLogAsync(DeviceUploadLogUploadRequest request);
}

View File

@@ -2,7 +2,9 @@
using Dlhis.Entity.Device.Entities;
using Dlhis.ScheduledTask.DeviceUploadLog.Request;
using Dlhis.ScheduledTask.DeviceUploadLog.Response;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
@@ -21,14 +23,14 @@ public class DeviceUploadLogService : IDeviceUploadLogService
{
var page = await _dbContext.Queryable<DeviceUploadLogEntity>()
.LeftJoin<GainfoEntity>((deviceUp, ga) => deviceUp.UserNo == ga.No)
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.CreateTime >= request.SearchDateTimePeriod.Start)
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.CreateTime <= request.SearchDateTimePeriod.End)
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.UploadTime >= request.SearchDateTimePeriod.Start)
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.UploadTime <= request.SearchDateTimePeriod.End)
.Select((deviceUp, ga) => new DeviceUploadLogResponse
{
DeviceUniqueNo = deviceUp.DeviceUniqueNo,
Id = deviceUp.Id,
Ip = deviceUp.Ip,
UploadTime = deviceUp.CreateTime,
UploadTime = deviceUp.UploadTime,
UserNo = deviceUp.UserNo,
UserCode = deviceUp.UserCode,
UserName = ga.Name,
@@ -37,4 +39,25 @@ public class DeviceUploadLogService : IDeviceUploadLogService
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);
}
}