fix 移除brand查询
This commit is contained in:
@@ -11,7 +11,6 @@ public class TaskDto
|
|||||||
public DeviceTaskEnumType Type { get; set; }
|
public DeviceTaskEnumType Type { get; set; }
|
||||||
public string DeviceUniqueNo { get; set; }
|
public string DeviceUniqueNo { get; set; }
|
||||||
public string DeviceConnectionInfo { get; set; }
|
public string DeviceConnectionInfo { get; set; }
|
||||||
public string Brand { get; set; }
|
|
||||||
public string FuncStr { get; set; }
|
public string FuncStr { get; set; }
|
||||||
public string UserNo { get; set; }
|
public string UserNo { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,10 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using Dlhis.Entity.Device.Enums;
|
||||||
using Dlhis.Entity.Device.Enums;
|
|
||||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||||
using Kurisu.AspNetCore.Utils.Extensions;
|
|
||||||
|
|
||||||
namespace Dlhis.ScheduledTask.TaskAssignment.Request;
|
namespace Dlhis.ScheduledTask.TaskAssignment.Request;
|
||||||
|
|
||||||
public class DeviceTaskGetRequest : PageDto, IValidatableObject
|
public class DeviceTaskGetRequest : PageDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 品牌
|
|
||||||
/// </summary>
|
|
||||||
public string Brand { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设备号
|
/// 设备号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -26,17 +19,4 @@ public class DeviceTaskGetRequest : PageDto, IValidatableObject
|
|||||||
/// 获取处理中的任务
|
/// 获取处理中的任务
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsProcess { get; set; } = false;
|
public bool IsProcess { get; set; } = false;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 厂区
|
|
||||||
/// </summary>
|
|
||||||
public string Factory { get; set; }
|
|
||||||
|
|
||||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
||||||
{
|
|
||||||
if (Brand.IsEmpty() && DeviceUniqueNo.IsEmpty() && Factory.IsEmpty())
|
|
||||||
{
|
|
||||||
yield return new ValidationResult("设备品牌,设备号和厂区不能都为空", new[] { nameof(Brand), nameof(DeviceUniqueNo), nameof(Factory) });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -7,11 +7,6 @@ namespace Dlhis.ScheduledTask.TaskAssignment.Response;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class DeviceTaskToDeviceByDeviceResponse
|
public class DeviceTaskToDeviceByDeviceResponse
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 品牌
|
|
||||||
/// </summary>
|
|
||||||
public string Brand { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设备唯一号
|
/// 设备唯一号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -47,10 +47,9 @@ public class AssignmentService : IAssignmentService
|
|||||||
.CreateProtector("down:face")
|
.CreateProtector("down:face")
|
||||||
.ToTimeLimitedDataProtector();
|
.ToTimeLimitedDataProtector();
|
||||||
|
|
||||||
return data.GroupBy(x => new { x.Brand, x.DeviceUniqueNo, x.DeviceConnectionInfo, x.FuncStr })
|
return data.GroupBy(x => new { x.DeviceUniqueNo, x.DeviceConnectionInfo, x.FuncStr })
|
||||||
.Select(x =>
|
.Select(x =>
|
||||||
{
|
{
|
||||||
var b = x.Key.Brand;
|
|
||||||
var d = x.Key.DeviceUniqueNo;
|
var d = x.Key.DeviceUniqueNo;
|
||||||
var dc = x.Key.DeviceConnectionInfo ?? "{}";
|
var dc = x.Key.DeviceConnectionInfo ?? "{}";
|
||||||
var func = x.Key.FuncStr ?? "[]";
|
var func = x.Key.FuncStr ?? "[]";
|
||||||
@@ -63,7 +62,6 @@ public class AssignmentService : IAssignmentService
|
|||||||
|
|
||||||
return new DeviceTaskToDeviceByDeviceResponse
|
return new DeviceTaskToDeviceByDeviceResponse
|
||||||
{
|
{
|
||||||
Brand = b,
|
|
||||||
DeviceUniqueNo = d,
|
DeviceUniqueNo = d,
|
||||||
DeviceInfo = jObj,
|
DeviceInfo = jObj,
|
||||||
Tasks = x.Select(item =>
|
Tasks = x.Select(item =>
|
||||||
@@ -243,36 +241,27 @@ public class AssignmentService : IAssignmentService
|
|||||||
|
|
||||||
private async Task<List<TaskDto>> GetDataAsync(DeviceTaskGetRequest request)
|
private async Task<List<TaskDto>> GetDataAsync(DeviceTaskGetRequest request)
|
||||||
{
|
{
|
||||||
var factories = new List<string>();
|
|
||||||
if (request.Factory.IsPresent())
|
|
||||||
{
|
|
||||||
factories = request.Factory.Split(',').ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
var data = await CommonHelper.RetryAsync(async () =>
|
var data = await CommonHelper.RetryAsync(async () =>
|
||||||
{
|
{
|
||||||
var rows = await _dbContext.Queryable<DeviceTaskEntity>()
|
var rows = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||||
.LeftJoin<DeviceEntity>((deviceTask, device) => deviceTask.DeviceUniqueNo == device.UniqueNo)
|
.LeftJoin<DeviceEntity>((deviceTask, device) => deviceTask.DeviceUniqueNo == device.UniqueNo)
|
||||||
.LeftJoin<DeviceTemplateEntity>((deviceTask, device, deviceTemplate) => deviceTemplate.Code == device.TemplateCode)
|
.LeftJoin<GainfoEntity>((deviceTask, device, ga) => deviceTask.UserNo == ga.No)
|
||||||
.LeftJoin<GainfoEntity>((deviceTask, device, deviceTemplate, ga) => deviceTask.UserNo == ga.No)
|
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, ga, gaLeave) => deviceTask.UserNo == gaLeave.No)
|
||||||
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, deviceTemplate, ga, gaLeave) => deviceTask.UserNo == gaLeave.No)
|
.LeftJoin<DepartmentEntity>((deviceTask, device, ga, gaLeave, department) => department.No == ga.DepartmentNo)
|
||||||
.LeftJoin<DepartmentEntity>((deviceTask, device, deviceTemplate, ga, gaLeave, department) => department.No == ga.DepartmentNo)
|
.LeftJoin<DeviceRegistryEntity>((deviceTask, device, ga, gaLeave, department, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo)
|
||||||
.LeftJoin<DeviceRegistryEntity>((deviceTask, device, deviceTemplate, ga, gaLeave, department, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo)
|
|
||||||
.Where((deviceTask, device) => device.Enable)
|
.Where((deviceTask, device) => device.Enable)
|
||||||
.WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
|
.WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
|
||||||
.WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process
|
.WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process
|
||||||
&& SqlFunc.DateDiff(DateType.Minute, deviceTask.ModifiedTime, DateTime.Now) > 10)
|
&& SqlFunc.DateDiff(DateType.Minute, deviceTask.ModifiedTime, DateTime.Now) > 10)
|
||||||
.WhereIF(request.DeviceUniqueNo.IsPresent(), (deviceTask, device) => deviceTask.DeviceUniqueNo == request.DeviceUniqueNo)
|
.WhereIF(request.DeviceUniqueNo.IsPresent(), (deviceTask, device) => deviceTask.DeviceUniqueNo == request.DeviceUniqueNo)
|
||||||
.WhereIF(factories.Any(), (deviceTask, device) => factories.Contains(deviceTask.TenantId))
|
|
||||||
.WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type))
|
.WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type))
|
||||||
.WhereIF(request.Brand.IsPresent(), (deviceTask, device, deviceTemplate) => deviceTemplate.Brand == request.Brand)
|
|
||||||
.Where((deviceTask, device, deviceTemplate) => deviceTask.Version < 10)
|
.Where((deviceTask, device, deviceTemplate) => deviceTask.Version < 10)
|
||||||
#if !DEBUG
|
#if !DEBUG
|
||||||
.Where((deviceTask, device, deviceTemplate, ga, gaLeave, department, deviceRegistry) =>
|
.Where((deviceTask, device, deviceTemplate, ga, gaLeave, department, deviceRegistry) =>
|
||||||
device.HeartbeatInterval == 0 || SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, device.HeartbeatInterval, DateType.Second) > DateTime.Now)
|
device.HeartbeatInterval == 0 || SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, device.HeartbeatInterval, DateType.Second) > DateTime.Now)
|
||||||
#endif
|
#endif
|
||||||
.OrderBy(deviceTask => new { deviceTask.CreateTime, Priority = SqlFunc.Desc(deviceTask.Priority) })
|
.OrderBy(deviceTask => new { deviceTask.CreateTime, Priority = SqlFunc.Desc(deviceTask.Priority) })
|
||||||
.Select((deviceTask, device, deviceTemplate, ga, gaLeave, department) => new TaskDto
|
.Select((deviceTask, device, ga, gaLeave, department) => new TaskDto
|
||||||
{
|
{
|
||||||
UserId = deviceTask.UserId == 0 || deviceTask.UserId == null
|
UserId = deviceTask.UserId == 0 || deviceTask.UserId == null
|
||||||
? ga.Id == 0
|
? ga.Id == 0
|
||||||
@@ -284,7 +273,6 @@ public class AssignmentService : IAssignmentService
|
|||||||
UserType = ga.Type,
|
UserType = ga.Type,
|
||||||
DeviceUniqueNo = deviceTask.DeviceUniqueNo,
|
DeviceUniqueNo = deviceTask.DeviceUniqueNo,
|
||||||
DeviceConnectionInfo = device.ConnectionInfo,
|
DeviceConnectionInfo = device.ConnectionInfo,
|
||||||
Brand = deviceTemplate.Brand,
|
|
||||||
FuncStr = device.Funcs.ToString(),
|
FuncStr = device.Funcs.ToString(),
|
||||||
UserNo = deviceTask.UserNo,
|
UserNo = deviceTask.UserNo,
|
||||||
UserCode = SqlFunc.IsNull(SqlFunc.IsNull(ga.Code, gaLeave.Code), deviceTask.UserNo),
|
UserCode = SqlFunc.IsNull(SqlFunc.IsNull(ga.Code, gaLeave.Code), deviceTask.UserNo),
|
||||||
|
|||||||
Reference in New Issue
Block a user