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 { /// /// 查询 /// /// /// [HttpPost, Route("WBOrderPaged")] public PagedActionResult 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 => 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 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 listReg2 = null; if (isScoreLimit) { Expression> 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> 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 => 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; } } }