OrderPagedUseful 完善

This commit is contained in:
wyw 2024-08-06 16:23:26 +08:00
parent 68d5ab68c6
commit f557ca72b0

View File

@ -45,6 +45,8 @@ namespace APT.BS.WebApi.Controllers.Api
List<int> listMineType = new List<int>(); List<int> listMineType = new List<int>();
Guid DEPARTMENT_ID_WORKSHOP = Guid.Empty; Guid DEPARTMENT_ID_WORKSHOP = Guid.Empty;
Guid DEPARTMENT_ID = Guid.Empty; Guid DEPARTMENT_ID = Guid.Empty;
bool isMintype = false;//是否 区分生产单元
string MineType = string.Empty;
if (pageFilter.FilterGroup.Rules.Count == 2) if (pageFilter.FilterGroup.Rules.Count == 2)
{ {
foreach (var item in pageFilter.FilterGroup.Rules) foreach (var item in pageFilter.FilterGroup.Rules)
@ -59,11 +61,27 @@ namespace APT.BS.WebApi.Controllers.Api
} }
} }
} }
bool isMintype = false;//是否 区分生产单元 else if (pageFilter.FilterGroup.Rules.Count == 1)
{
foreach (var item in pageFilter.FilterGroup.Rules)
{
if (item.Field == "MineType")
{
isMintype = true;
MineType = item.Value.ToString();
pageFilter.FilterGroup.Rules.Clear();
break;
}
}
if (!string.IsNullOrEmpty(MineType))
{
listMineType = UserService.GetMineType(MineType);
}
}
if (pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Any()) if (pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Any())
{ {
var groups = pageFilter.FilterGroup.Groups.ToList(); var groups = pageFilter.FilterGroup.Groups.ToList();
string MineType = string.Empty;
if (groups[0].Rules != null && groups[0].Rules.Any()) if (groups[0].Rules != null && groups[0].Rules.Any())
{ {
FilterRule ruleType = null; FilterRule ruleType = null;
@ -89,7 +107,39 @@ namespace APT.BS.WebApi.Controllers.Api
} }
} }
} }
if (isMintype)
var LoginDepID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
T_FM_DEPARTMENT dep = null;
if (LoginDepID.HasValue)
{
dep = GetEntity<T_FM_DEPARTMENT>(LoginDepID.Value);
}
if (DataHelper.GetRequestType(HttpContext.Request.Headers) == 2 && LoginDepID.HasValue && dep != null && (dep.DEPARTMENT_TYPE == 1 || dep.DEPARTMENT_TYPE == 2))
{
//班组或者车间 向下取值 否则取全部
//FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
if (dep.DEPARTMENT_TYPE == 2)
{
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == LoginDepID.Value && e.CODE != "admin", pageFilter);
}
else
{
var listDepID = GetEntities<T_FM_DEPARTMENT>(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == LoginDepID.Value, null).Select(e => e.ID);
if (listDepID != null && listDepID.Any())
{
var ListDepID = listDepID.ToList();
ListDepID.Add(LoginDepID.Value);
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.DEPARTMENT_ID.HasValue && ListDepID.Contains(e.DEPARTMENT_ID.Value) && e.CODE != "admin", pageFilter);
}
else
{
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == LoginDepID.Value && e.CODE != "admin", pageFilter);
}
}
}
else if (isMintype)
{ {
return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER> result) return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER> result)
{ {
@ -102,6 +152,12 @@ namespace APT.BS.WebApi.Controllers.Api
//var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter, "Nav_ProdutionUnit.Nav_Enums");//这样不行 //var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter, "Nav_ProdutionUnit.Nav_Enums");//这样不行
pageFilter.SelectField.Add("Nav_ProdutionUnit.Nav_Enums"); pageFilter.SelectField.Add("Nav_ProdutionUnit.Nav_Enums");
if (pageFilter.SelectField.Count() == 1)
{
pageFilter.SelectField.Add("ID");
pageFilter.SelectField.Add("NAME");
pageFilter.SelectField.Add("CODE");
}
var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter); var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter);
if (resultListUser != null && resultListUser.Any()) if (resultListUser != null && resultListUser.Any())
@ -109,14 +165,14 @@ namespace APT.BS.WebApi.Controllers.Api
IEnumerable<T_FM_USER> resultListUserFilter = null; IEnumerable<T_FM_USER> resultListUserFilter = null;
if (listMineType.Count > 0) if (listMineType.Count > 0)
{ {
if (listMineType.Count == 1) //if (listMineType.Count == 1)
{ //{
resultListUserFilter = resultListUser.Where(e => e.Nav_ProdutionUnit == null || (e.Nav_ProdutionUnit.Any() && e.Nav_ProdutionUnit.Where(x => x.Nav_Enums != null && listMineType[0] == x.Nav_Enums.VALUE).Any()));// != null // resultListUserFilter = resultListUser.Where(e => e.Nav_ProdutionUnit == null || (e.Nav_ProdutionUnit.Any() && e.Nav_ProdutionUnit.Where(x => x.Nav_Enums != null && listMineType[0] == x.Nav_Enums.VALUE).Any()));// != null
} //}
else //else
{ //{
resultListUserFilter = resultListUser.Where(e => e.Nav_ProdutionUnit == null || (e.Nav_ProdutionUnit.Any() && e.Nav_ProdutionUnit.Where(x => x.Nav_Enums != null && listMineType.Contains(x.Nav_Enums.VALUE)) != null)); resultListUserFilter = resultListUser.Where(e => e.Nav_ProdutionUnit == null || (e.Nav_ProdutionUnit.Any() && e.Nav_ProdutionUnit.Where(x => x.Nav_Enums != null && listMineType.Contains(x.Nav_Enums.VALUE)) != null));
} //}
} }
if (resultListUserFilter != null && resultListUserFilter.Any()) if (resultListUserFilter != null && resultListUserFilter.Any())
@ -132,9 +188,7 @@ namespace APT.BS.WebApi.Controllers.Api
result.TotalCount = 0; result.TotalCount = 0;
} }
}); });
} }
else if (DEPARTMENT_ID_WORKSHOP != Guid.Empty && DEPARTMENT_ID != Guid.Empty) else if (DEPARTMENT_ID_WORKSHOP != Guid.Empty && DEPARTMENT_ID != Guid.Empty)
{ {
pageFilter.FilterGroup.Rules.Clear(); pageFilter.FilterGroup.Rules.Clear();
@ -147,7 +201,42 @@ namespace APT.BS.WebApi.Controllers.Api
} }
else else
{ {
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.CODE != "admin", pageFilter); if (DataHelper.GetRequestType(HttpContext.Request.Headers) == 2 && LoginDepID.HasValue)
{
//班组或者车间 向下取值 否则取全部
dep = GetEntity<T_FM_DEPARTMENT>(LoginDepID.Value);
if (dep != null && (dep.DEPARTMENT_TYPE == 1 || dep.DEPARTMENT_TYPE == 2))
{
//FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
if (dep.DEPARTMENT_TYPE == 2)
{
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == LoginDepID.Value && e.CODE != "admin", pageFilter);
}
else
{
var listDepID = GetEntities<T_FM_DEPARTMENT>(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == LoginDepID.Value, null).Select(e => e.ID);
if (listDepID != null && listDepID.Any())
{
var ListDepID = listDepID.ToList();
ListDepID.Add(LoginDepID.Value);
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.DEPARTMENT_ID.HasValue && ListDepID.Contains(e.DEPARTMENT_ID.Value) && e.CODE != "admin", pageFilter);
}
else
{
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == LoginDepID.Value && e.CODE != "admin", pageFilter);
}
}
}
else
{
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.CODE != "admin", pageFilter);
}
}
else
{
return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.CODE != "admin", pageFilter);
}
} }
#region #region