| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | using System.Diagnostics.CodeAnalysis; | 
					
						
							|  |  |  |  | using System.Globalization; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | using System.Data.Linq; | 
					
						
							|  |  |  |  | using System.Web.Security; | 
					
						
							|  |  |  |  | using System.Web.UI.WebControls; | 
					
						
							|  |  |  |  | using Model; | 
					
						
							|  |  |  |  | using BLL; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public class WbsSetInitService | 
					
						
							|  |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-08-13 11:15:59 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据分部工程编号获取工作包集合信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitProjectCode">分部工程编号</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.WBS_WbsSetInit> GetWbsSetInitsByUnitProjectCode(string unitProjectCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return (from x in Funs.DB.WBS_WbsSetInit where x.UnitProjectCode == unitProjectCode && x.SuperWbsSetCode == null orderby x.WbsSetCode select x).ToList(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 增加分部/子分部/分项/子分项 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="user">分部/子分部/分项/子分项</param> | 
					
						
							|  |  |  |  |         public static void AddWbsSetInit(Model.WBS_WbsSetInit wbsSetInit) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Model.WBS_WbsSetInit newWS = new Model.WBS_WbsSetInit(); | 
					
						
							|  |  |  |  |             newWS.WbsSetCode = wbsSetInit.WbsSetCode; | 
					
						
							|  |  |  |  |             newWS.WbsSetName = wbsSetInit.WbsSetName; | 
					
						
							|  |  |  |  |             newWS.CnProfessionId = wbsSetInit.CnProfessionId; | 
					
						
							|  |  |  |  |             newWS.UnitProjectCode = wbsSetInit.UnitProjectCode; | 
					
						
							|  |  |  |  |             newWS.SuperWbsSetCode = wbsSetInit.SuperWbsSetCode; | 
					
						
							|  |  |  |  |             newWS.ControlPoint = wbsSetInit.ControlPoint; | 
					
						
							|  |  |  |  |             newWS.ControlItemDef = wbsSetInit.ControlItemDef; | 
					
						
							|  |  |  |  |             newWS.Flag = wbsSetInit.Flag; | 
					
						
							|  |  |  |  |             newWS.IsIn = wbsSetInit.IsIn; | 
					
						
							|  |  |  |  |             newWS.Way = wbsSetInit.Way; | 
					
						
							|  |  |  |  |             newWS.Remark = wbsSetInit.Remark; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             db.WBS_WbsSetInit.InsertOnSubmit(newWS); | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 修改分部/子分部/分项/子分项 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="user">分部/子分部/分项/子分项</param> | 
					
						
							|  |  |  |  |         public static void UpdateWbsSetInit(Model.WBS_WbsSetInit wbsSetInit) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Model.WBS_WbsSetInit newWS = db.WBS_WbsSetInit.First(e => e.WbsSetCode == wbsSetInit.WbsSetCode); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             newWS.WbsSetName = wbsSetInit.WbsSetName; | 
					
						
							|  |  |  |  |             newWS.ControlPoint = wbsSetInit.ControlPoint; | 
					
						
							|  |  |  |  |             newWS.ControlItemDef = wbsSetInit.ControlItemDef; | 
					
						
							|  |  |  |  |             newWS.Flag = wbsSetInit.Flag; | 
					
						
							|  |  |  |  |             newWS.IsIn = wbsSetInit.IsIn; | 
					
						
							|  |  |  |  |             newWS.Way = wbsSetInit.Way; | 
					
						
							|  |  |  |  |             newWS.Remark = wbsSetInit.Remark; | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据Id删除分部/子分部/分项/子分项信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="userId"></param> | 
					
						
							|  |  |  |  |         public static void DeleteWbsSetInit(string wbsSetCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Model.WBS_WbsSetInit WS = db.WBS_WbsSetInit.First(e => e.WbsSetCode == wbsSetCode); | 
					
						
							|  |  |  |  |             db.WBS_WbsSetInit.DeleteOnSubmit(WS); | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据单位工程Id删除所有分部/子分部/分项/子分项信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="userId"></param> | 
					
						
							|  |  |  |  |         public static void DeleteWbsSetInitByUnitProjectCode(string unitProjectCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             var q = from x in db.WBS_WbsSetInit where x.UnitProjectCode == unitProjectCode select x; | 
					
						
							|  |  |  |  |             db.WBS_WbsSetInit.DeleteAllOnSubmit(q); | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据上级Id获取集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="superWbsSetId">上级Id</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.WBS_WbsSetInit> GetWbsSetInitsBySuperWbsSetCode(string superWbsSetCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return (from x in Funs.DB.WBS_WbsSetInit where x.SuperWbsSetCode == superWbsSetCode orderby x.WbsSetCode select x).ToList(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取当前的节点子节点的数量 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="superWbsSetCode"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static int GetItemCount(string superWbsSetCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.WBS_WbsSetInit.Where(p => p.SuperWbsSetCode.Equals(superWbsSetCode)).Count(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据分部/子分部/分项/子分项工程Id获取分部/子分部/分项/子分项工程信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitProjectId">分部/子分部/分项/子分项工程Id</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.WBS_WbsSetInit GetWbsSetInitByWbsSetCode(string wbsSetCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.WBS_WbsSetInit.FirstOrDefault(e => e.WbsSetCode == wbsSetCode); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据Id判断子级中是否存在对应Id  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="superWbsSetId">上级Id</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static bool IsExitWbsSetById2(string wbsSetId, string searchId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<string> ids = GetWbsSetIds2(wbsSetId); | 
					
						
							|  |  |  |  |             if (ids.Contains(searchId) || wbsSetId == searchId) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return true; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return false; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据上级Id获取所有Id集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="wbsSetId">上级Id</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<string> GetWbsSetIds2(string wbsSetId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<string> ids = new List<string>(); | 
					
						
							|  |  |  |  |             var wbsSets = BLL.WbsSetInitService.GetWbsSetInitsBySuperWbsSetCode(wbsSetId); | 
					
						
							|  |  |  |  |             if (wbsSets.Count > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 foreach (var wbsSet in wbsSets) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ids.Add(wbsSet.WbsSetCode); | 
					
						
							|  |  |  |  |                     ids.AddRange(GetWbsSetIds2(wbsSet.WbsSetCode)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return ids; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |