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 { /// <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; } } }