From cc7d09212e94acba3cc63a356582fef7e5834549 Mon Sep 17 00:00:00 2001 From: leo <10200039@qq.com> Date: Sun, 30 Apr 2023 20:02:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=8B=E9=A1=B9=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FactorySystemBll/BaseBll.cs | 56 +++++++++++++++++++++++------ FactorySystemBll/MaterialTaskBll.cs | 21 ++++++++--- 2 files changed, 62 insertions(+), 15 deletions(-) diff --git a/FactorySystemBll/BaseBll.cs b/FactorySystemBll/BaseBll.cs index b45dd23..3c88cf6 100644 --- a/FactorySystemBll/BaseBll.cs +++ b/FactorySystemBll/BaseBll.cs @@ -292,6 +292,12 @@ namespace FactorySystemBll List taskTypeList = taskTypes.Split(',').ToList(); + if (string.IsNullOrEmpty(factoryId)) + { + TFS_FTeamwork team = db.Queryable().Where(t => t.FID == teamId).First(); + if (team != null) factoryId = team.FCreateFactoryID.ToString(); + } + List basicCodeList = db.Queryable().Where(s => s.FType == (int)Constant.BasicCode.事项类型 && s.FState == 1 && taskTypeList.Contains(s.FValue)).ToList(); @@ -321,11 +327,23 @@ namespace FactorySystemBll } if (funcType > 0) { - List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, - JoinType.Left, a.FID == int.Parse(c.FUserID))) - .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) - .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) - .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); + //List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, + // JoinType.Left, a.FID == int.Parse(c.FUserID))) + // .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) + // .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) + // .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,cast(c.FFactoryID as int),a.FName,a.FUser").ToList(); + + List users = db.Queryable ((a, b, c) => new JoinQueryInfos( + JoinType.Left, a.FUserID.Equals(b.FID.ToString()), + JoinType.Left, a.FRole.Equals(c.FRoleID.ToString()) + )) + .Where((a, b, c) => factoryId.Contains(a.FFactoryID)) + .Where((a, b, c) => b.FState == 1 && b.FDeleted != 1) + .Where((a, b, c) => c.FType == funcType && funcVal.Contains(c.FFunctionID.ToString())) + .GroupBy("b.FID, a.FFactoryID, b.FName, b.FUser") + .Select("b.FID, cast(a.FFactoryID as int), b.FName, b.FUser") + .ToList(); + if (users.Count() > 0) { if (string.IsNullOrEmpty(factoryId)) @@ -485,6 +503,12 @@ namespace FactorySystemBll List messageList = new List(); try { + if (string.IsNullOrEmpty(factoryId)) + { + TFS_HalfMaterialFTeamwork team = db.Queryable().Where(t => t.FID == teamId).First(); + if (team != null) factoryId = team.FCreateFactoryID.ToString(); + } + if (db == null) db = AppSettingsHelper.GetSqlSugar(); List taskTypeList = taskTypes.Split(',').ToList(); @@ -518,11 +542,23 @@ namespace FactorySystemBll } if (funcType > 0) { - List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, - JoinType.Left, a.FID == int.Parse(c.FUserID))) - .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) - .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) - .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); + //List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, + // JoinType.Left, a.FID == int.Parse(c.FUserID))) + // .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) + // .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) + // .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); + + List users = db.Queryable((a, b, c) => new JoinQueryInfos( + JoinType.Left, a.FUserID.Equals(b.FID.ToString()), + JoinType.Left, a.FRole.Equals(c.FRoleID.ToString()) + )) + .Where((a, b, c) => factoryId.Contains(a.FFactoryID)) + .Where((a, b, c) => b.FState == 1 && b.FDeleted != 1) + .Where((a, b, c) => c.FType == funcType && funcVal.Contains(c.FFunctionID.ToString())) + .GroupBy("b.FID, a.FFactoryID, b.FName, b.FUser") + .Select("b.FID, cast(a.FFactoryID as int), b.FName, b.FUser") + .ToList(); + if (users.Count() > 0) { if (string.IsNullOrEmpty(factoryId)) diff --git a/FactorySystemBll/MaterialTaskBll.cs b/FactorySystemBll/MaterialTaskBll.cs index 5018f06..869f89e 100644 --- a/FactorySystemBll/MaterialTaskBll.cs +++ b/FactorySystemBll/MaterialTaskBll.cs @@ -58,11 +58,22 @@ namespace FactorySystemBll try { List funcVal = db.Queryable().Where(s => s.FType == (int)Constant.BasicCode.物料视图编辑 && s.F1 == tType && s.FState == 1).Select(s => s.FValue).ToList(); - List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, - JoinType.Left, a.FID == int.Parse(c.FUserID))) - .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) - .Where(factoryId<=0 ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) - .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); + //List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, + // JoinType.Left, a.FID == int.Parse(c.FUserID))) + // .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) + // .Where(factoryId<=0 ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) + // .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); + + List users = db.Queryable((a, b, c) => new JoinQueryInfos( + JoinType.Left, a.FUserID.Equals(b.FID.ToString()), + JoinType.Left, a.FRole.Equals(c.FRoleID.ToString()) + )) + .Where((a, b, c) => factoryId.ToString().Contains(a.FFactoryID)) + .Where((a, b, c) => b.FState == 1 && b.FDeleted != 1) + .Where((a, b, c) => c.FType == funcType && funcVal.Contains(c.FFunctionID.ToString())) + .GroupBy("b.FID, a.FFactoryID, b.FName, b.FUser") + .Select("b.FID, cast(a.FFactoryID as int), b.FName, b.FUser") + .ToList(); if (users.Count > 0) {