using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.Web.UI.WebControls; using System.Data; namespace BLL { public class BaseService { public static Model.SGGLDB db = Funs.DB; /// /// 根据主键获取工程量基础表信息 /// /// /// public static Model.QuantityManagement_Base GetBaseById(string BaseId) { return Funs.DB.QuantityManagement_Base.FirstOrDefault(e => e.BaseId == BaseId); } /// /// 添加工程量基础表 /// /// public static void AddBase(Model.QuantityManagement_Base Base) { Model.SGGLDB db = Funs.DB; Model.QuantityManagement_Base newBase = new Model.QuantityManagement_Base(); newBase.BaseId = Base.BaseId; newBase.ProjectId = Base.ProjectId; newBase.DrawingId = Base.DrawingId; newBase.Part = Base.Part; newBase.ProjectContent = Base.ProjectContent; newBase.Unit = Base.Unit; newBase.Amount = Base.Amount; newBase.WorkTeam = Base.WorkTeam; newBase.CompileMan = Base.CompileMan; newBase.CompileDate = Base.CompileDate; newBase.State = Base.State; db.QuantityManagement_Base.InsertOnSubmit(newBase); db.SubmitChanges(); } /// /// 修改工程量基础表 /// /// public static void UpdateBase(Model.QuantityManagement_Base Base) { Model.SGGLDB db = Funs.DB; Model.QuantityManagement_Base newBase = db.QuantityManagement_Base.FirstOrDefault(e => e.BaseId == Base.BaseId); if (newBase != null) { newBase.ProjectId = Base.ProjectId; newBase.DrawingId = Base.DrawingId; newBase.Part = Base.Part; newBase.ProjectContent = Base.ProjectContent; newBase.Unit = Base.Unit; newBase.Amount = Base.Amount; newBase.WorkTeam = Base.WorkTeam; newBase.CompileMan = Base.CompileMan; newBase.State = Base.State; db.SubmitChanges(); } } /// /// 根据主键删除工程量基础表 /// /// public static void DeleteBase(string BaseId) { Model.SGGLDB db = Funs.DB; Model.QuantityManagement_Base Base = db.QuantityManagement_Base.FirstOrDefault(e => e.BaseId == BaseId); if (Base != null) { db.QuantityManagement_Base.DeleteOnSubmit(Base); db.SubmitChanges(); } } /// /// 部位下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitPartDropDownList(FineUIPro.DropDownList dropName, string drawingId, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetPartListByDrawingId(drawingId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 部位下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitAllPartDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetAllPartListByProjectId(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据图纸Id获取部位下拉选择项 /// /// /// public static ListItem[] GetAllPartListByProjectId(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.QuantityManagement_Base where x.ProjectId == projectId && x.State == BLL.Const.Base_Complete orderby x.Part select x.Part).Distinct().ToList(); ListItem[] list = new ListItem[q.Count()]; for (int i = 0; i < list.Count(); i++) { list[i] = new ListItem(q[i] ?? "", q[i]); } return list; } } /// /// 根据图纸Id获取部位下拉选择项 /// /// /// public static ListItem[] GetPartListByDrawingId(string drawingId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.QuantityManagement_Base where x.DrawingId == drawingId && x.State == BLL.Const.Base_Complete orderby x.Part select x.Part).Distinct().ToList(); ListItem[] list = new ListItem[q.Count()]; for (int i = 0; i < list.Count(); i++) { list[i] = new ListItem(q[i] ?? "", q[i]); } return list; } } /// /// 项目内容下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitProjectContentDropDownList(FineUIPro.DropDownList dropName, string drawingId, string part, bool isShowPlease) { dropName.DataValueField = "BaseId"; dropName.DataTextField = "ProjectContent"; dropName.DataSource = GetProjectContentListByDrawingId(drawingId, part); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 项目内容下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitAllProjectContentDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetAllProjectContentListByProjectId(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据项目Id获取项目内容下拉选择项 /// /// /// public static ListItem[] GetAllProjectContentListByProjectId(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.QuantityManagement_Base where x.ProjectId == projectId && x.State == BLL.Const.Base_Complete orderby x.ProjectContent select x.ProjectContent).Distinct().ToList(); ListItem[] list = new ListItem[q.Count()]; for (int i = 0; i < list.Count(); i++) { list[i] = new ListItem(q[i] ?? "", q[i]); } return list; } } /// /// 根据图纸Id和部位获取项目内容下拉选择项 /// /// /// public static List GetProjectContentListByDrawingId(string drawingId, string part) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { return (from x in db.QuantityManagement_Base where x.DrawingId == drawingId && x.Part == part && x.State == BLL.Const.Base_Complete orderby x.ProjectContent select x).ToList(); } } public static void Init(FineUIPro.DropDownList dropName, string state, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetDHandleTypeByState(state); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据状态选择下一步办理类型 /// /// /// public static ListItem[] GetDHandleTypeByState(string state) { if (state == Const.Base_Compile || state == Const.Base_ReCompile) //无是否同意 { ListItem[] lis = new ListItem[1]; lis[0] = new ListItem("审核", Const.Base_Audit1); return lis; } else if (state == Const.Base_Audit1)//有是否同意 { ListItem[] lis = new ListItem[2]; lis[0] = new ListItem("审批完成", Const.Base_Complete);//是 加载 lis[1] = new ListItem("重新编制", Const.Base_ReCompile);//否加载 return lis; } else return null; } /// /// 获取模拟树表格 /// /// public static DataTable GetAllTreeDataTable(string projectId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable cNProfessionals = from x in db.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x; IQueryable bases = from x in db.View_QuantityManagement_Base where x.ProjectId == projectId select x; DataTable table = new DataTable(); table.Columns.Add(new DataColumn("BaseId", typeof(String))); table.Columns.Add(new DataColumn("SupId", typeof(String))); table.Columns.Add(new DataColumn("Name", typeof(String))); table.Columns.Add(new DataColumn("ProjectId", typeof(String))); table.Columns.Add(new DataColumn("DrawingNo", typeof(String))); table.Columns.Add(new DataColumn("DrawingName", typeof(String))); table.Columns.Add(new DataColumn("Part", typeof(String))); table.Columns.Add(new DataColumn("ProjectContent", typeof(String))); table.Columns.Add(new DataColumn("Unit", typeof(String))); table.Columns.Add(new DataColumn("Amount", typeof(decimal))); table.Columns.Add(new DataColumn("WorkTeam", typeof(String))); table.Columns.Add(new DataColumn("State", typeof(String))); DataRow row; row = table.NewRow(); row[0] = "0"; row[1] = null; row[2] = "工程量基础表"; row[3] = projectId; row[4] = ""; row[5] = ""; row[6] = ""; row[7] = ""; row[8] = ""; row[9] = DBNull.Value; row[10] = ""; row[11] = ""; table.Rows.Add(row); foreach (var item in cNProfessionals) { row = table.NewRow(); row[0] = item.CNProfessionalId; row[1] = "0"; row[2] = item.ProfessionalName; row[3] = projectId; row[4] = ""; row[5] = ""; row[6] = ""; row[7] = ""; row[8] = ""; row[9] = DBNull.Value; row[10] = ""; row[11] = ""; table.Rows.Add(row); var workSections = bases.Where(x => x.Major == item.ProfessionalName).Select(x => x.WorkSection).Distinct().ToList(); foreach (var workSection in workSections) { row = table.NewRow(); row[0] = item.CNProfessionalId + workSection; row[1] = item.CNProfessionalId; row[2] = workSection; row[3] = projectId; row[4] = ""; row[5] = ""; row[6] = ""; row[7] = ""; row[8] = ""; row[9] = DBNull.Value; row[10] = ""; row[11] = ""; table.Rows.Add(row); var bs = from x in bases where x.WorkSection == workSection && x.Major == item.ProfessionalName orderby x.DrawingNo, x.Part, x.WorkSection select x; foreach (var b in bs) { row = table.NewRow(); row[0] = b.BaseId; row[1] = item.CNProfessionalId + workSection; row[2] = b.Part; row[3] = projectId; row[4] = b.DrawingNo; row[5] = b.DrawingName; row[6] = b.Part; row[7] = b.ProjectContent; row[8] = b.Unit; row[9] = b.Amount; row[10] = b.WorkTeam; row[11] = b.State; table.Rows.Add(row); } } } //foreach (var item in bases) //{ // row = table.NewRow(); // row[0] = item.BaseId; // row[1] = "0"; // row[2] = item.ProfessionalName; // row[3] = projectId; // row[4] = ""; // row[5] = ""; // row[6] = ""; // row[7] = ""; // row[8] = ""; // row[9] = DBNull.Value; // row[10] = ""; // row[11] = ""; // table.Rows.Add(row); //} return table; } } } }