mh_sms/APT.MicroApi/APT.SC.WebApi/Controllers/Api/TLController/TLWatchSumController.cs
2024-01-22 09:17:01 +08:00

140 lines
6.8 KiB
C#

using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.TL;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
namespace APT.SC.WebApi.Controllers.Api.SC
{
[Route("api/TL/TLWatchSum")]
public class TLWatchSumController : AuthorizeApiController<T_TL_WATCH_SUM>
{
//IFMFlowPermitService MFlowPermitService { get; set; }
//IFMNotificationTaskService NotificationTaskService { get; set; }
//public TLWatchSumController(IFMFlowPermitService mFlowPermitService, IFMNotificationTaskService notificationTaskService)
//{
// MFlowPermitService = mFlowPermitService;
// NotificationTaskService = notificationTaskService;
//}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetALL")]
public JsonActionResult<T_TL_WATCH_SUM> GetALL([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
var result = GetEntity<T_TL_WATCH_SUM>(null, filter, null);
var listDayly = GetEntities<T_TL_WATCH_DAYLY_DETAIL>(e => !e.IS_DELETED && e.DATE.HasValue && e.DATE.Value.Date == result.DATE, null, "Nav_ListUser.Nav_User").OrderBy(e => e.DATE).OrderBy(e => e.DAYLY_ID);
var listMove = GetEntities<T_TL_WATCH_MOVE_DETAIL>(e => !e.IS_DELETED && e.DATE.HasValue && e.DATE.Value.Date == result.DATE, null, "Nav_WatchMovePoint", "Nav_ListUser.Nav_User").OrderBy(e => e.DATE).OrderBy(e=>e.MOVE_ID);
var listLine = GetEntities<T_TL_WATCH_LINE_DETAIL>(e => !e.IS_DELETED && e.DATE.HasValue && e.DATE.Value.Date == result.DATE, null, "Nav_WatchLinePoint", "Nav_ListUser.Nav_User").OrderBy(e => e.DATE).OrderBy(e => e.LINE_ID);
var listPercent = GetEntities<T_TL_WATCH_PERCENT_DETAIL>(e => !e.IS_DELETED && e.DATE.HasValue && e.DATE.Value.Date == result.DATE, null, "Nav_ListUser.Nav_User").OrderBy(e => e.DATE).OrderBy(e => e.PERCENT_ID);
List<Guid> listUserID = new List<Guid>();
List<Guid> listUserIDMovd = null;
List<Guid> listUserIDLine = null;
List<Guid> listUserIDDayly = null;
List<Guid> listUserIDPercent = null;
if (listPercent != null && listPercent.Any())
{
listUserIDPercent = new List<Guid>();
foreach (var item in listPercent)
{
listUserIDPercent.AddRange(item.Nav_ListUser.Select(e => e.USER_ID));
item.Nav_ListUser = item.Nav_ListUser.OrderBy(e => e.MODIFY_TIME).ToList();
}
listUserID.AddRange(listUserIDPercent);
result.Nav_ListDetailPercent = listPercent.ToList();
}
if (listMove != null && listMove.Any())
{
listUserIDMovd = new List<Guid>();
foreach (var item in listMove)
{
listUserIDMovd.AddRange(item.Nav_ListUser.Select(e => e.USER_ID));
item.Nav_ListUser = item.Nav_ListUser.OrderBy(e => e.MODIFY_TIME).ToList();
}
listUserID.AddRange(listUserIDMovd);
result.Nav_ListDetailMovd = listMove.ToList();
}
if (listLine != null && listLine.Any())
{
listUserIDLine = new List<Guid>();
foreach (var item in listLine)
{
item.Nav_ListUser = item.Nav_ListUser.OrderBy(e => e.MODIFY_TIME).ToList();
listUserIDLine.AddRange(item.Nav_ListUser.Select(e => e.USER_ID));
}
listUserID.AddRange(listUserIDLine);
result.Nav_ListDetailLine = listLine.ToList();
}
if (listDayly != null && listDayly.Any())
{
listUserIDDayly = new List<Guid>();
foreach (var item in listDayly)
{
listUserIDDayly.AddRange(item.Nav_ListUser.Select(e => e.USER_ID));
item.Nav_ListUser = item.Nav_ListUser.OrderBy(e => e.MODIFY_TIME).ToList();
}
listUserID.AddRange(listUserIDDayly);
result.Nav_ListDetailDayly = listDayly.ToList();
}
#region
listUserID = listUserID.Distinct().ToList();
var listUserSign = GetEntities<T_FM_USER>(e => listUserID.Contains(e.ID), null, null);
var listUserSignFile = GetEntities<T_FM_USER_SIGN_FILE>(e => listUserID.Contains(e.USER_ID), null, "Nav_ImgFile.Nav_File");
if (listUserIDMovd != null)
{
result.Nav_ListSignMovd = listUserSign.Where(e => listUserIDMovd.Contains(e.ID)).ToList();
foreach (var item in result.Nav_ListSignMovd)
{
item.Nav_UserSignFiles = listUserSignFile.Where(e => e.USER_ID == item.ID).ToList();
}
}
if (listUserIDLine != null)
{
result.Nav_ListSignLine = listUserSign.Where(e => listUserIDLine.Contains(e.ID)).ToList();
foreach (var item in result.Nav_ListSignLine)
{
item.Nav_UserSignFiles = listUserSignFile.Where(e => e.USER_ID == item.ID).ToList();
}
}
if (listUserIDDayly != null)
{
result.Nav_ListSignDayly = listUserSign.Where(e => listUserIDDayly.Contains(e.ID)).ToList();
foreach (var item in result.Nav_ListSignDayly)
{
item.Nav_UserSignFiles = listUserSignFile.Where(e => e.USER_ID == item.ID).ToList();
}
}
if (listUserIDPercent != null)
{
result.Nav_ListSignPercent = listUserSign.Where(e => listUserIDPercent.Contains(e.ID)).ToList();
foreach (var item in result.Nav_ListSignPercent)
{
item.Nav_UserSignFiles = listUserSignFile.Where(e => e.USER_ID == item.ID).ToList();
}
}
#endregion
return result;
});
}
}
}