From f557ca72b0ebdeca1f0de58bd662aa3aa3a43b87 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Tue, 6 Aug 2024 16:23:26 +0800 Subject: [PATCH] =?UTF-8?q?OrderPagedUseful=20=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FMUserController.cs | 117 +++++++++++++++--- 1 file changed, 103 insertions(+), 14 deletions(-) diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs index 9009cde..04863fa 100644 --- a/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs +++ b/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs @@ -45,6 +45,8 @@ namespace APT.BS.WebApi.Controllers.Api List listMineType = new List(); 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 +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()) { var groups = pageFilter.FilterGroup.Groups.ToList(); - string MineType = string.Empty; if (groups[0].Rules != null && groups[0].Rules.Any()) { 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(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(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 result) { @@ -102,6 +152,12 @@ namespace APT.BS.WebApi.Controllers.Api //var resultListUser = GetEntities(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(expression, pageFilter); if (resultListUser != null && resultListUser.Any()) @@ -109,14 +165,14 @@ namespace APT.BS.WebApi.Controllers.Api IEnumerable 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 +188,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 +201,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(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(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 旧