fix 通行记录数据处理isError
This commit is contained in:
@@ -9,4 +9,6 @@ public class WorkGridScheduleAttendancePageRequest : PageDto
|
||||
public string UserCode { get; set; }
|
||||
|
||||
public DateTimePeriod DateTimePeriod { get; set; }
|
||||
|
||||
public bool IsError { get; set; }
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
using Dlhis.Entity.Basic.Enums;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Dlhis.Basic.WorkGrids.Response;
|
||||
@@ -42,7 +44,6 @@ public class WorkGridScheduleAttendancePageResponse
|
||||
/// </summary>
|
||||
public string SerialNo { get; set; }
|
||||
|
||||
|
||||
[JsonIgnore]
|
||||
public string OriginUserUniqueNo { get; set; }
|
||||
|
||||
@@ -59,5 +60,33 @@ public class WorkGridScheduleAttendancePageResponse
|
||||
/// <summary>
|
||||
/// 是否有效
|
||||
/// </summary>
|
||||
public bool Status { get; set; }
|
||||
public bool Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是异常记录
|
||||
/// </summary>
|
||||
public bool IsError
|
||||
{
|
||||
get
|
||||
{
|
||||
if (WorkGridInfo.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var obj = WorkGridInfo.ToObject<WorkGridInfo>();
|
||||
return obj.IsError;
|
||||
}
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public string WorkGridInfo { get; set; }
|
||||
}
|
||||
|
||||
public class WorkGridInfo
|
||||
{
|
||||
public bool IsError { get; set; }
|
||||
public object WorkGrid { get; set; }
|
||||
public WorkGridTimePeriodEnumType? PeriodType { get; set; }
|
||||
public object TimeSetting { get; set; }
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
using Dlhis.Entity.Basic.Enums;
|
||||
using Kurisu.AspNetCore.Utils.Converters;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Dlhis.Basic.WorkGrids.Response;
|
||||
|
||||
@@ -32,14 +30,12 @@ public class WorkGridTimePeriodPageResponse
|
||||
/// <summary>
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(ToDateJsonConverter))]
|
||||
public DateTime Start { get; set; }
|
||||
public TimeOnly Start { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(ToDateJsonConverter))]
|
||||
public DateTime End { get; set; }
|
||||
public TimeOnly End { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 配置描述
|
||||
|
||||
@@ -142,14 +142,19 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
||||
};
|
||||
}
|
||||
|
||||
var t = request.IsError.ToString();
|
||||
var filterString = $"IsError\":{t}";
|
||||
|
||||
return await _dbContext.Queryable<DeviceUploadLogEntity>()
|
||||
.LeftJoin<DeviceEntity>((log, d) => log.DeviceUniqueNo == d.UniqueNo)
|
||||
.LeftJoin<GainfoEntity>((log, d, ga) => log.UserUniqueNo == ga.Code)
|
||||
.WhereIF(request.DateTimePeriod.HasValue(), log => log.RaiseDateTime >= request.DateTimePeriod.Start
|
||||
&& log.RaiseDateTime <= request.DateTimePeriod.End)
|
||||
.WhereIF(request.UserCode.IsPresent(), log => log.UserUniqueNo == request.UserCode)
|
||||
.WhereIF(request.UserCode.IsEmpty(), log => SqlFunc.Subqueryable<WorkGridUserEntity>().Where(p => p.WorkGridCode == workGrid.Code && p.UserCode == log.UserUniqueNo).Any())
|
||||
.Where(log => log.WorkGridInfo.StartsWith(filterString))
|
||||
.OrderBy(log => log.RaiseDateTime)
|
||||
.Select((log, d) => new WorkGridScheduleAttendancePageResponse
|
||||
.Select((log, d, ga) => new WorkGridScheduleAttendancePageResponse
|
||||
{
|
||||
Id = log.Id,
|
||||
OriginUserUniqueNo = log.UserUniqueNo,
|
||||
@@ -158,8 +163,12 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
||||
CreateTime = log.CreateTime,
|
||||
SerialNo = log.SerialNo,
|
||||
DeployPlace = d.DeployPlace,
|
||||
UserCode = log.UserUniqueNo,
|
||||
UserName = ga.Name,
|
||||
Sync = log.Sync,
|
||||
Status = log.Status
|
||||
NeedUpload = log.NeedUpload,
|
||||
Status = log.Status,
|
||||
WorkGridInfo = log.WorkGridInfo,
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
@@ -167,10 +176,12 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
||||
/// <inheritdoc />
|
||||
public async Task ManuallyUploadAsync(List<long> logIds)
|
||||
{
|
||||
const string filterString = $"IsError\":true";
|
||||
|
||||
var requests = await _dbContext.Queryable<DeviceUploadLogEntity>()
|
||||
.LeftJoin<DeviceEntity>((x, device) => x.DeviceUniqueNo == device.UniqueNo)
|
||||
.Where(x => logIds.Contains(x.Id))
|
||||
.Where(x => x.NeedUpload && x.Sync == false)
|
||||
.Where(x => logIds.Contains(x.Id) && x.Sync == false)
|
||||
.Where(x => x.WorkGridInfo.StartsWith(filterString))
|
||||
.Select((x, device) => new UploadAttendanceRequestItem
|
||||
{
|
||||
Id = x.Id,
|
||||
|
||||
@@ -33,13 +33,13 @@ public class WorkGridTimePeriodEntity : SugarBaseEntity, ITenantId
|
||||
/// <summary>
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = false, ColumnDataType = "date")]
|
||||
[SugarColumn(IsNullable = false, ColumnDataType = "time")]
|
||||
public TimeOnly Start { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = false, ColumnDataType = "date")]
|
||||
[SugarColumn(IsNullable = false, ColumnDataType = "time")]
|
||||
public TimeOnly End { get; set; }
|
||||
|
||||
public string TenantId { get; set; }
|
||||
|
||||
@@ -48,7 +48,12 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
var max = DateOnly.FromDateTime(requests.Max(x => x.RaiseDateTime));
|
||||
|
||||
var workGridUsers = await _dbContext.Queryable<WorkGridUserEntity>()
|
||||
.LeftJoin<WorkGridEntity>((x, wg) => x.WorkGridCode == wg.Code)
|
||||
.Where(x => userCodes2.Contains(x.UserCode))
|
||||
.Select((x, wg) => new
|
||||
{
|
||||
x.WorkGridCode, x.UserCode, wg.LeaderUserCode, wg.Name
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
var workGridSchedules = await _dbContext.Queryable<WorkGridScheduleEntity>()
|
||||
@@ -101,10 +106,16 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
var workGridUser = workGridUsers.FirstOrDefault(x => x.UserCode == request.UserUniqueNo);
|
||||
if (needUpload && currentWorkGridTimePeriods.Any() && workGridUser != null)
|
||||
{
|
||||
workGridInfo.TimeSetting = currentWorkGridTimePeriods;
|
||||
workGridInfo.TimeSetting = currentWorkGridTimePeriods.Select(x => new
|
||||
{
|
||||
Type = x.Type.GetDescription(), x.Before, x.Start, x.End, x.After, x.TenantId
|
||||
}).ToList();
|
||||
|
||||
workGridInfo.WorkGrid = new
|
||||
{
|
||||
workGridUser.WorkGridCode
|
||||
workGridUser.WorkGridCode,
|
||||
workGridUser.Name,
|
||||
workGridUser.LeaderUserCode
|
||||
};
|
||||
var currentDate = request.RaiseDateTime.Date;
|
||||
var currentDateOnly = DateOnly.FromDateTime(currentDate);
|
||||
@@ -405,6 +416,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
|
||||
public class WorkGridInfo
|
||||
{
|
||||
public bool IsError => !PeriodType.HasValue;
|
||||
public object WorkGrid { get; set; }
|
||||
public WorkGridTimePeriodEnumType? PeriodType { get; set; }
|
||||
public object TimeSetting { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user