班组级 选人 只出现班组的人
This commit is contained in:
parent
03033d355b
commit
29eab54b35
@ -30,6 +30,259 @@ namespace APT.BS.WebApi.Controllers.Api
|
||||
{
|
||||
UserService = userService;
|
||||
}
|
||||
///// <summary>
|
||||
///// 正常使用的用户
|
||||
///// 重写 api/FM/User/OrderPaged
|
||||
///// 目前最多只支持4个生产单元有重叠的
|
||||
///// </summary>
|
||||
///// <param name="pageFilter"></param>
|
||||
///// <returns></returns>
|
||||
//[HttpPost, Route("OrderPagedUseful")]
|
||||
//public PagedActionResult<T_FM_USER> OrderPagedUseful([FromBody] KeywordPageFilter pageFilter)
|
||||
//{
|
||||
// if (string.IsNullOrEmpty(pageFilter.Parameter1))
|
||||
// {
|
||||
// List<int> listMineType = new List<int>();
|
||||
// Guid DEPARTMENT_ID_WORKSHOP = Guid.Empty;
|
||||
// Guid DEPARTMENT_ID = Guid.Empty;
|
||||
// if (pageFilter.FilterGroup.Rules.Count == 2)
|
||||
// {
|
||||
// foreach (var item in pageFilter.FilterGroup.Rules)
|
||||
// {
|
||||
// if (item.Field == "DEPARTMENT_ID_WORKSHOP")
|
||||
// {
|
||||
// DEPARTMENT_ID_WORKSHOP = new Guid(item.Value.ToString());
|
||||
// }
|
||||
// else if (item.Field == "DEPARTMENT_ID")
|
||||
// {
|
||||
// DEPARTMENT_ID = new Guid(item.Value.ToString());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// bool isMintype = false;//是否 区分生产单元
|
||||
// if (pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Any())
|
||||
// {
|
||||
// var groups = pageFilter.FilterGroup.Groups.ToList();
|
||||
// string MineType = string.Empty;
|
||||
// if (groups[0].Rules != null && groups[0].Rules.Any())
|
||||
// {
|
||||
// FilterRule ruleType = null;
|
||||
// foreach (var rule in groups[0].Rules)
|
||||
// {
|
||||
// if (rule.Field == "MineType")
|
||||
// {
|
||||
// ruleType = rule;
|
||||
// MineType = rule.Value.ToString();
|
||||
// isMintype = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!string.IsNullOrEmpty(MineType))
|
||||
// {
|
||||
// listMineType = UserService.GetMineType(MineType);
|
||||
// if (ruleType != null)
|
||||
// {
|
||||
// groups[0].Rules.Remove(ruleType);
|
||||
// pageFilter.FilterGroup.Groups = groups;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (isMintype)
|
||||
// {
|
||||
// return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER> result)
|
||||
// {
|
||||
// Expression<Func<T_FM_USER, bool>> expression = e => e.ENABLE_STATUS == 0 && !e.CODE.StartsWith("admin");// && e.CODE != "admin";
|
||||
// //linq 运行不通过 修改为查找后内存中过滤
|
||||
// //expression = expression.And(e => e.Nav_ProdutionUnit == null || (e.Nav_ProdutionUnit.Any() && e.Nav_ProdutionUnit.Where(x => listMineType.Contains(x.Nav_Enums.VALUE)) != null));
|
||||
// //PagedActionResult<T_FM_USER> orderPageEntities = GetOrderPageEntities<T_FM_USER>(expression, pageFilter, "Nav_ProdutionUnit.Nav_Enums");
|
||||
// //result.Data = orderPageEntities.Data;
|
||||
// //result.TotalCount = orderPageEntities.TotalCount;
|
||||
|
||||
// //var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter, "Nav_ProdutionUnit.Nav_Enums");//这样不行
|
||||
// pageFilter.SelectField.Add("Nav_ProdutionUnit.Nav_Enums");
|
||||
// var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter);
|
||||
|
||||
// if (resultListUser != null && resultListUser.Any())
|
||||
// {
|
||||
// IEnumerable<T_FM_USER> resultListUserFilter = null;
|
||||
// if (listMineType.Count > 0)
|
||||
// {
|
||||
// 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
|
||||
// }
|
||||
// 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));
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (resultListUserFilter != null && resultListUserFilter.Any())
|
||||
// {
|
||||
// result.Data = resultListUserFilter.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit);
|
||||
// result.TotalCount = resultListUserFilter.Count();
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (result.Data == null || !result.Data.Any())
|
||||
// {
|
||||
// result.Data = new List<T_FM_USER>();
|
||||
// result.TotalCount = 0;
|
||||
// }
|
||||
// });
|
||||
|
||||
// }
|
||||
|
||||
// else if (DEPARTMENT_ID_WORKSHOP != Guid.Empty && DEPARTMENT_ID != Guid.Empty)
|
||||
// {
|
||||
// pageFilter.FilterGroup.Rules.Clear();
|
||||
// return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER> result)
|
||||
// {
|
||||
// PagedActionResult<T_FM_USER> orderPageEntities = GetOrderPageEntities<T_FM_USER>(e => e.ENABLE_STATUS == 0 && e.CODE != "admin" && e.DEPARTMENT_ID == DEPARTMENT_ID_WORKSHOP || (e.Nav_Department.PARENT_ID.HasValue && e.Nav_Department.PARENT_ID == DEPARTMENT_ID_WORKSHOP), pageFilter, new string[] { "Nav_Department" });
|
||||
// result.Data = orderPageEntities.Data;
|
||||
// result.TotalCount = orderPageEntities.TotalCount;
|
||||
// });
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.CODE != "admin", pageFilter);
|
||||
// }
|
||||
|
||||
// #region 旧
|
||||
// //List<string> listMineType = new List<string>();
|
||||
// //List<string> listMineTypeTemp = new List<string>();
|
||||
// //Guid DEPARTMENT_ID_WORKSHOP = Guid.Empty;
|
||||
// //Guid DEPARTMENT_ID = Guid.Empty;
|
||||
// //if (pageFilter.FilterGroup.Rules.Count == 2)
|
||||
// //{
|
||||
// // foreach (var item in pageFilter.FilterGroup.Rules)
|
||||
// // {
|
||||
// // if (item.Field == "DEPARTMENT_ID_WORKSHOP")
|
||||
// // {
|
||||
// // DEPARTMENT_ID_WORKSHOP = new Guid(item.Value.ToString());
|
||||
// // }
|
||||
// // else if (item.Field == "DEPARTMENT_ID")
|
||||
// // {
|
||||
// // DEPARTMENT_ID = new Guid(item.Value.ToString());
|
||||
// // }
|
||||
// // }
|
||||
// //}
|
||||
// //if (pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Any())
|
||||
// //{
|
||||
// // var groups = pageFilter.FilterGroup.Groups.ToList();
|
||||
// // string MineType = string.Empty;
|
||||
// // if (groups[0].Rules != null && groups[0].Rules.Any())
|
||||
// // {
|
||||
// // FilterRule ruleType = null;
|
||||
// // foreach (var rule in groups[0].Rules)
|
||||
// // {
|
||||
// // if (rule.Field == "MineType")
|
||||
// // {
|
||||
// // ruleType = rule;
|
||||
// // MineType = rule.Value.ToString();
|
||||
// // break;
|
||||
// // }
|
||||
// // }
|
||||
|
||||
|
||||
// // if (!string.IsNullOrEmpty(MineType))
|
||||
// // {
|
||||
// // if (ruleType != null)
|
||||
// // {
|
||||
// // groups[0].Rules.Remove(ruleType);
|
||||
// // pageFilter.FilterGroup.Groups = groups;
|
||||
// // }
|
||||
// // if (MineType.IndexOf(",") > -1)
|
||||
// // {
|
||||
// // listMineTypeTemp = MineType.Split(',', StringSplitOptions.RemoveEmptyEntries).Distinct().ToList();
|
||||
// // listMineType.AddRange(listMineTypeTemp);
|
||||
// // }
|
||||
|
||||
// // string strTemp = string.Empty;
|
||||
// // if (!listMineType.Contains(MineType))
|
||||
// // {
|
||||
// // listMineType.Add(MineType);
|
||||
// // if (listMineTypeTemp.Count > 2)//多个生产单元
|
||||
// // {
|
||||
// // for (int i = 0; i < listMineTypeTemp.Count; i++)
|
||||
// // {
|
||||
// // for (int j = 0; j < listMineTypeTemp.Count; j++)
|
||||
// // {
|
||||
// // strTemp = listMineTypeTemp[i] + "," + listMineTypeTemp[j];
|
||||
// // if (!listMineType.Contains(strTemp))
|
||||
// // {
|
||||
// // listMineType.Add(strTemp);
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // if (listMineTypeTemp.Count > 3)
|
||||
// // {
|
||||
// // for (int i = 0; i < listMineTypeTemp.Count; i++)
|
||||
// // {
|
||||
// // for (int j = 0; j < listMineTypeTemp.Count; j++)
|
||||
// // {
|
||||
// // for (int k = 0; k < listMineTypeTemp.Count; k++)
|
||||
// // {
|
||||
// // strTemp = listMineTypeTemp[i] + "," + listMineTypeTemp[j] + "," + listMineTypeTemp[k];
|
||||
// // if (!listMineType.Contains(strTemp))
|
||||
// // {
|
||||
// // listMineType.Add(strTemp);
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
// //}
|
||||
|
||||
// //if (listMineType.Count > 0)
|
||||
// //{
|
||||
// // return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER> result)
|
||||
// // {
|
||||
// // Expression<Func<T_FM_USER, bool>> expression = e => e.ENABLE_STATUS == 0 && e.CODE != "admin";
|
||||
// // if (listMineType.Count == 1)
|
||||
// // {
|
||||
// // if (!string.IsNullOrEmpty(listMineType[0]))
|
||||
// // {
|
||||
// // expression = expression.And(e => e.MineType != null && e.MineType.Contains(listMineType[0]));
|
||||
// // }
|
||||
// // }
|
||||
// // else
|
||||
// // {
|
||||
// // expression = expression.And(e => e.MineType != null && listMineType.Contains(e.MineType));
|
||||
// // }
|
||||
// // PagedActionResult<T_FM_USER> orderPageEntities = GetOrderPageEntities<T_FM_USER>(expression, pageFilter, null);
|
||||
// // result.Data = orderPageEntities.Data;
|
||||
// // result.TotalCount = orderPageEntities.TotalCount;
|
||||
// // });
|
||||
// //}
|
||||
// //else if (DEPARTMENT_ID_WORKSHOP != Guid.Empty && DEPARTMENT_ID != Guid.Empty)
|
||||
// //{
|
||||
// // pageFilter.FilterGroup.Rules.Clear();
|
||||
// // return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER> result)
|
||||
// // {
|
||||
// // PagedActionResult<T_FM_USER> orderPageEntities = GetOrderPageEntities<T_FM_USER>(e => e.ENABLE_STATUS == 0 && e.CODE != "admin" && e.DEPARTMENT_ID == DEPARTMENT_ID_WORKSHOP || (e.Nav_Department.PARENT_ID.HasValue && e.Nav_Department.PARENT_ID == DEPARTMENT_ID_WORKSHOP), pageFilter, new string[] { "Nav_Department" });
|
||||
// // result.Data = orderPageEntities.Data;
|
||||
// // result.TotalCount = orderPageEntities.TotalCount;
|
||||
// // });
|
||||
// //}
|
||||
// //else
|
||||
// //{
|
||||
// // return WitOrderPaged(e => e.ENABLE_STATUS == 0 && e.CODE != "admin", pageFilter);
|
||||
// //}
|
||||
// #endregion
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return WitOrderPaged(t => t.Nav_BelongRoles.Any(i => i.Nav_BelongRole.NAME.Contains(pageFilter.Parameter1)), pageFilter);
|
||||
// }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 正常使用的用户
|
||||
/// 重写 api/FM/User/OrderPaged
|
||||
@ -45,6 +298,8 @@ namespace APT.BS.WebApi.Controllers.Api
|
||||
List<int> listMineType = new List<int>();
|
||||
Guid DEPARTMENT_ID_WORKSHOP = Guid.Empty;
|
||||
Guid DEPARTMENT_ID = Guid.Empty;
|
||||
bool isMintype = false;//是否 区分生产单元
|
||||
string MineType = string.Empty;
|
||||
if (pageFilter.FilterGroup.Rules.Count == 2)
|
||||
{
|
||||
foreach (var item in pageFilter.FilterGroup.Rules)
|
||||
@ -59,11 +314,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())
|
||||
{
|
||||
var groups = pageFilter.FilterGroup.Groups.ToList();
|
||||
string MineType = string.Empty;
|
||||
if (groups[0].Rules != null && groups[0].Rules.Any())
|
||||
{
|
||||
FilterRule ruleType = null;
|
||||
@ -89,7 +360,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)
|
||||
{
|
||||
@ -102,6 +405,12 @@ namespace APT.BS.WebApi.Controllers.Api
|
||||
|
||||
//var resultListUser = GetEntities<T_FM_USER>(expression, pageFilter, "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);
|
||||
|
||||
if (resultListUser != null && resultListUser.Any())
|
||||
@ -109,14 +418,14 @@ namespace APT.BS.WebApi.Controllers.Api
|
||||
IEnumerable<T_FM_USER> resultListUserFilter = null;
|
||||
if (listMineType.Count > 0)
|
||||
{
|
||||
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
|
||||
}
|
||||
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));
|
||||
}
|
||||
//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
|
||||
//}
|
||||
//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));
|
||||
//}
|
||||
}
|
||||
|
||||
if (resultListUserFilter != null && resultListUserFilter.Any())
|
||||
@ -132,9 +441,7 @@ namespace APT.BS.WebApi.Controllers.Api
|
||||
result.TotalCount = 0;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
else if (DEPARTMENT_ID_WORKSHOP != Guid.Empty && DEPARTMENT_ID != Guid.Empty)
|
||||
{
|
||||
pageFilter.FilterGroup.Rules.Clear();
|
||||
@ -147,7 +454,42 @@ namespace APT.BS.WebApi.Controllers.Api
|
||||
}
|
||||
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 旧
|
||||
|
||||
Loading…
Reference in New Issue
Block a user