142 lines
5.5 KiB
C#
142 lines
5.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using APT.BaseData.Domain.Entities;
|
|
using APT.BaseData.Domain.Entities.FM;
|
|
using APT.BaseData.Domain.Enums;
|
|
using APT.BaseData.Domain.IServices.FM;
|
|
using APT.Infrastructure.Core;
|
|
using APT.MS.Domain.Entities.LR;
|
|
using APT.MS.Domain.Entities.SE;
|
|
using APT.MS.Domain.Entities.WB;
|
|
using APT.MS.Domain.Enums;
|
|
using APT.Utility;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using NPOI.SS.Formula.Functions;
|
|
|
|
namespace APT.SC.WebApi.Controllers.Api.WB
|
|
{
|
|
[Route("api/WB/WBUser")]
|
|
public class WBUserController : AuthorizeApiController<T_FM_USER>
|
|
{
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
/// <param name="pageFilter"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("WBOrderPaged")]
|
|
public PagedActionResult<T_FM_USER> WBOrderPaged([FromBody] KeywordPageFilter pageFilter)
|
|
{
|
|
//pageFilter.Include = null;
|
|
//var result = WitOrderPaged(t=>t.PROJECT_ID != null, pageFilter);
|
|
//var projectIDs = result.Data.Select(t => t.PROJECT_ID);
|
|
//var projects = GetEntities<T_WB_PROJECT_INPUT>(t => projectIDs.Contains(t.ID),new BaseFilter(pageFilter.GetOrgId()));
|
|
//foreach(var item in result.Data)
|
|
//{
|
|
// var project = projects.FirstOrDefault(t => t.ID == item.PROJECT_ID);
|
|
// if (project != null)
|
|
// {
|
|
// item.TEAMNAME = project.NAME;
|
|
// item.REMARK = project.UNIT_NAME;
|
|
// }
|
|
//}
|
|
//return result;
|
|
|
|
pageFilter.Include = null;
|
|
bool isScoreLimit = true;//默认过滤
|
|
Guid? TYPE_ID = null; //工作类别
|
|
if (!string.IsNullOrEmpty(pageFilter.Parameter6))
|
|
{
|
|
isScoreLimit = false;
|
|
pageFilter.Parameter6 = "";
|
|
}
|
|
if (pageFilter.FilterGroup != null && pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Count() > 0)
|
|
{
|
|
List<FilterGroup> fig = pageFilter.FilterGroup.Groups.ToList();//表单属性配置
|
|
if (fig[0].Rules != null && fig[0].Rules.Any())
|
|
{
|
|
FilterRule ruleRemove = null;
|
|
foreach (var item in fig[0].Rules)
|
|
{
|
|
if (item.Field == "Parameter6")
|
|
{
|
|
if (item.Value.ToString() == "0")
|
|
{
|
|
isScoreLimit = false;
|
|
}
|
|
ruleRemove = item;
|
|
break;
|
|
}
|
|
}
|
|
if (ruleRemove != null)
|
|
{
|
|
fig[0].Rules.Remove(ruleRemove);
|
|
pageFilter.FilterGroup.Groups = fig;
|
|
}
|
|
|
|
|
|
foreach (var item in fig[0].Rules)
|
|
{
|
|
if (item.Field == "TYPE_ID")
|
|
{
|
|
try
|
|
{
|
|
TYPE_ID = new Guid(item.Value.ToString());
|
|
}
|
|
catch { }
|
|
ruleRemove = item;
|
|
break;
|
|
}
|
|
}
|
|
if (ruleRemove != null)
|
|
{
|
|
fig[0].Rules.Remove(ruleRemove);
|
|
pageFilter.FilterGroup.Groups = fig;
|
|
}
|
|
}
|
|
}
|
|
IEnumerable<T_WB_REGISTER_2> listReg2 = null;
|
|
if (isScoreLimit)
|
|
{
|
|
Expression<Func<T_WB_REGISTER_2, bool>> expressionReg2 = e => e.SCORE > 0 && e.USERID.HasValue && !e.IS_DELETED;
|
|
listReg2 = GetEntities(expressionReg2, null, "Nav_JobTypes");
|
|
if (TYPE_ID != null && TYPE_ID != Guid.Empty)
|
|
{
|
|
listReg2 = listReg2.Where(e => e.Nav_JobTypes != null && e.Nav_JobTypes.FirstOrDefault(t => t.JOBTYPE_ID == TYPE_ID) != null);
|
|
}
|
|
}
|
|
Expression<Func<T_FM_USER, bool>> expression = t => t.PROJECT_ID != null;
|
|
if (isScoreLimit)
|
|
{
|
|
if (listReg2 != null && listReg2.Any())
|
|
{
|
|
var listUserID = listReg2.Select(e => e.USERID.Value);
|
|
expression = expression.And(e => listUserID.Contains(e.ID));
|
|
}
|
|
else
|
|
{
|
|
expression = expression.And(e => false);//需要限制 但是大家都没考试
|
|
}
|
|
}
|
|
var result = WitOrderPaged(expression, pageFilter);
|
|
if (result != null && result.Data != null && result.Data.Any())
|
|
{
|
|
var projectIDs = result.Data.Select(t => t.PROJECT_ID);
|
|
var projects = GetEntities<T_WB_PROJECT_INPUT>(t => projectIDs.Contains(t.ID), new BaseFilter(pageFilter.GetOrgId()));
|
|
foreach (var item in result.Data)
|
|
{
|
|
var project = projects.FirstOrDefault(t => t.ID == item.PROJECT_ID);
|
|
if (project != null)
|
|
{
|
|
item.TEAMNAME = project.NAME;
|
|
item.REMARK = project.UNIT_NAME;
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
|
|
}
|
|
}
|
|
}
|