private void SetUnitProject(object o) { SetInfo info = (SetInfo)o; _Engineering Engineering = info.Engineering; _UnitProject UnitProject = info.UnitProject; 单位工程 dx = info.dw; SetOtherProject(UnitProject.Property.OtherProject, dx.其他项目表, dx); _Common.Activitie = UnitProject;//给当前的单位工程赋值 #region 分部分项对象以及赋值 //UnitProject.Property.SubSegments = new _SubSegments(UnitProject);//分部分项对象 SetSubSegments(UnitProject.Property.SubSegments, dx.分部分项表, UnitProject, dx); #endregion #region 措施项目对象以及赋值 //UnitProject.Property.MeasuresProject = new _MeasuresProject(UnitProject);//措施项目对象 //UnitProject.Property.MeasuresProject.IsInit = false; SetMeasuresProject(UnitProject.Property.MeasuresProject, dx.措施项目表, UnitProject, dx); #endregion //UnitProject.Property.Metaanalysis = new _Metaanalysis(UnitProject);//单位工程汇总对象 //UnitProject.Property.Metaanalysis.IsInit = false; SetMetaanalysis(UnitProject.Property.Metaanalysis, dx); // UnitProject.Property.QuantityUnitSummaryList = new _QuantityUnitSummaryList(UnitProject); }
private void SetLibName(_UnitProject UnitProject, 单位工程 dx) { UnitProject.Property.DLibraries.ListGallery.Rule = UnitProject.Property.Basis.QDGZ; UnitProject.Property.DLibraries.FixedLibrary.Rule = UnitProject.Property.Basis.DEGZ; if (dx.清单专业.Contains("安装")) { UnitProject.Property.DLibraries.ListGallery.LibName = "安装清单库"; UnitProject.Property.DLibraries.FixedLibrary.LibName = "安装定额价目表"; } if (dx.清单专业.Contains("建筑")) { UnitProject.Property.DLibraries.ListGallery.LibName = "建筑清单库"; UnitProject.Property.DLibraries.FixedLibrary.LibName = "建筑装饰定额价目表"; } if (dx.清单专业.Contains("绿化")) { UnitProject.Property.DLibraries.ListGallery.LibName = "园林绿化清单库"; UnitProject.Property.DLibraries.FixedLibrary.LibName = "绿化定额价目表"; } if (dx.清单专业.Contains("市政")) { UnitProject.Property.DLibraries.ListGallery.LibName = "市政清单库"; UnitProject.Property.DLibraries.FixedLibrary.LibName = "市政定额价目表"; } }
/// <summary> /// 汇总分析赋值 /// </summary> /// <param name="m"></param> private void SetMetaanalysis(_Metaanalysis m, 单位工程 m_DWGC) { if (m_DWGC.单位工程造价汇总表.单位工程费用项 == null) { return; } m.IsInit = true; m.Load(GetMetaanalysisTemplet(m_DWGC));//根据条件载入汇总分析模板 foreach (单位工程费用项 item in m_DWGC.单位工程造价汇总表.单位工程费用项) { IEnumerable <DataRow> rows = from row in m.Source.AsEnumerable() where item.费用名称.Contains(row["Name"].ToString()) select row; if (rows.Count() > 0) { DataRow row = rows.First(); row["Coefficient"] = item.费率; // row["Price"] = item.金额; } } foreach (规费税金项 item in m_DWGC.规费税金清单表.规费税金项) { IEnumerable <DataRow> rows = from row in m.Source.AsEnumerable() where item.费用名称.Contains(row["Name"].ToString()) select row; if (rows.Count() > 0) { DataRow row = rows.First(); row["Coefficient"] = item.费率; // row["Price"] = item.金额; } } foreach (措施项目标题 item1 in m_DWGC.措施项目表.措施项目标题) { foreach (措施项目清单 item in item1.措施项目清单) { IEnumerable <DataRow> rows = from row in m.Source.AsEnumerable() where item.称.Contains(row["Name"].ToString()) select row; if (rows.Count() > 0) { DataRow row = rows.First(); row["Coefficient"] = item.费率; // row["Price"] = item.综合合价; } } } }
private void StartThread(SetInfo info) { _UnitProject UnitProject = info.UnitProject; 单位工程 item = info.dw; _Engineering Engineering = info.Engineering; UnitProject.Property.Basis.Name = item.单位工程名称; UnitProject.Directory.NodeName = item.单位工程名称; UnitProject.Property.Basis.DEGZ = this.m_建设项目.招标信息表.计价依据.ToString(); UnitProject.Property.Basis.QDGZ = this.m_建设项目.招标信息表.计价依据.ToString(); SetLibName(UnitProject, item); (this.m_Business as _Pr_Business).AddChild(Engineering, UnitProject); //UnitProject.Init(APP.Application); APP.Methods.Init(UnitProject); ThreadPool.SetMaxThreads(10, 10); ThreadPool.QueueUserWorkItem(new WaitCallback(SetUnitProject), info); }
/// <summary> /// 其他项目赋值 /// </summary> /// <param name="other"></param> /// <param name="qt"></param> private void SetOtherProject(_OtherProject other, 其他项目表 qt, 单位工程 m_DWGC) { if (qt.其他项目清单 == null) { return; } string str = string.Empty; //other.Source = APP.Application.Global.DataTamp.LoadOtherProject(other.Parent.Property.Basis.PGCDD, out str).Clone(); other.Source.PrimaryKey = new DataColumn[] { other.Source.Columns["id"] }; DataColumn col = other.Source.Columns["id"]; col.AutoIncrement = true; col.AutoIncrementSeed = 1; col.AutoIncrementStep = 1; DataRow row = other.Add(); row["Name"] = "其他项目"; row["IsSys"] = true; bool IsLX = false;//标识是否有零星项目 if (m_DWGC.零星项目表 != null) { IsLX = true; } foreach (其他项目清单 item in qt.其他项目清单) { DataRow crow = other.Add_Child(row); # region 含有计日工 if (!IsLX) { crow["Name"] = item.项目名称; crow["Unit"] = item.计量单位; crow["Quantities"] = item.工程数量; crow["IsSys"] = true; if (item.费用类型.Contains("暂列金额")) { if (qt.暂列金额明细表.暂列金额明细 != null) { foreach (暂列金额明细 itemz in qt.暂列金额明细表.暂列金额明细) { DataRow zrow = other.Add_Child(crow); zrow["Name"] = itemz.项目名称; zrow["Unit"] = itemz.计量单位; zrow["Quantities"] = "0"; zrow["IsSys"] = false; } } } if (item.费用类型.Contains("专业工程暂估")) { if (qt.专业工程暂估价明细表.专业工程暂估明细 != null) { foreach (专业工程暂估明细 itemz in qt.专业工程暂估价明细表.专业工程暂估明细) { DataRow zrow = other.Add_Child(crow); zrow["Name"] = itemz.项目名称; zrow["Unit"] = itemz.计量单位; zrow["Quantities"] = "0"; zrow["IsSys"] = false; } } } if (item.费用类型.Contains("总承包服务费")) { if (qt.总承包服务费项目表.总承包服务费项 != null) { foreach (总承包服务费项 itemz in qt.总承包服务费项目表.总承包服务费项) { DataRow zrow = other.Add_Child(crow); zrow["Name"] = itemz.项目名称; zrow["Unit"] = itemz.计量单位; zrow["Quantities"] = "0"; zrow["IsSys"] = false; } } } if (item.费用类型.Contains("计日工")) { string[] names = { "人工", "材料", "机械" }; foreach (string name in names) { DataRow zrow = other.Add_Child(crow); zrow["Name"] = name; zrow["Quantities"] = "0"; zrow["IsSys"] = false; if (qt.计日工表.计日工项 != null) { if (qt.计日工表.计日工项.Count > 0) { IEnumerable <计日工项> jr = from info in qt.计日工表.计日工项 where info.类别 == name select info; if (jr.Count() > 0) { 计日工项 jrgx = jr.First(); DataRow zrow1 = other.Add_Child(zrow); zrow1["Name"] = jrgx.称; zrow["Unit"] = jrgx.单位; zrow1["Quantities"] = jrgx.暂定数量; } } } } } } # endregion else {
/// <summary> /// 根据条件获取汇总分析模板 /// </summary> /// <returns></returns> private string GetMetaanalysisTemplet(单位工程 m_DWGC) { string filename = "2012汇总分析表【不扣劳保】.hzfx"; IEnumerable <单位工程费用项> qzaq = from info in m_DWGC.单位工程造价汇总表.单位工程费用项 where info.费用名称.Contains("其中:安全文明施工措施费") select info; IEnumerable <单位工程费用项> aqxm = from info in m_DWGC.单位工程造价汇总表.单位工程费用项 where info.费用名称.Contains("安全文明施工措施项目费") select info; IEnumerable <单位工程费用项> fbfx = from info in m_DWGC.单位工程造价汇总表.单位工程费用项 where info.序号.Contains("F1.") select info; 单位工程费用项 last = m_DWGC.单位工程造价汇总表.单位工程费用项[m_DWGC.单位工程造价汇总表.单位工程费用项.Length - 1]; int Qzaq = qzaq.Count(); int Aqxm = aqxm.Count(); int Fbfx = fbfx.Count(); string Last = last.取费基数; if (Qzaq < 0 && Aqxm < 0 && Last.Split('-').Length == 3) { filename = "2004汇总分析表【扣劳保和定额测定费】.hzfx"; } if (Qzaq < 1 && Aqxm < 1 && Last.Split('-').Length == 2) { filename = "2004汇总分析表【只扣劳保】.hzfx"; } if (Qzaq < 1 && Aqxm < 1 && Last.Split('+').Length == 2) { filename = "2004汇总分析表【不扣劳保和定额测定费】.hzfx"; } if (Qzaq < 1 && Aqxm > 0 && Last.Split('+').Length == 2) { filename = "2006汇总分析表(232号文件)【不扣劳保和定额测定费】.hzfx"; } if (Qzaq < 1 && Aqxm > 0 && Last.Split('-').Length == 2) { filename = "2006汇总分析表(232号文件)【只扣劳保】.hzfx"; } if (Qzaq < 1 && Aqxm > 0 && Last.Split('-').Length == 3) { filename = "2006汇总分析表(232号文件)【扣劳保和定额测定费】.hzfx"; } if (Fbfx < 1 && Qzaq > 0 && Aqxm < 1 && Last.Split('-').Length == 2) { filename = "2009汇总分析表【扣劳保】.hzfx"; } if (Fbfx < 1 && Qzaq > 0 && Aqxm < 1 && Last.Split('+').Length == 2) { filename = "2009汇总分析表【不扣劳保】.hzfx"; } if (Qzaq > 0 && Aqxm < 1 && Last.Split('-').Length == 2) { filename = "2012汇总分析表【扣劳保】.hzfx"; } if (Qzaq > 0 && Aqxm < 1 && Last.Split('+').Length == 2) { filename = "2012汇总分析表【不扣劳保】.hzfx"; } filename = APP.Application.Global.AppFolder + "模板文件\\汇总分析模板\\" + filename; return(filename); }
/// <summary> /// 单位工程赋值 /// </summary> /// <param name="Engineering"></param> /// <param name="UnitProject"></param> /// <param name="dx"></param> private void SetUnitProject(_Engineering Engineering, _UnitProject UnitProject, 单位工程 dx) { //this.m_DWGC = dx; //m_UnitProject = UnitProject; UnitProject.Property.Basis.Name = dx.单位工程名称; //通知正在处理的单位工程 OnRevertXmlObject(this, UnitProject); UnitProject.Directory.NodeName = dx.单位工程名称; UnitProject.Property.Basis.DEGZ = this.m_建设项目.招标信息表.计价依据.ToString(); UnitProject.Property.Basis.QDGZ = this.m_建设项目.招标信息表.计价依据.ToString(); SetLibName(UnitProject, dx); //APP.WorkFlows.Container.AddChild(Engineering, UnitProject); (this.m_Business as _Pr_Business).AddChild(Engineering, UnitProject); //UnitProject.Property.OtherProject = new _OtherProject(UnitProject);//其他项目对象 //UnitProject.Property.OtherProject.IsInit = false; //UnitProject.Init(APP.Application); APP.Methods.Init(UnitProject); SetOtherProject(UnitProject.Property.OtherProject, dx.其他项目表, dx); _Common.Activitie = UnitProject;//给当前的单位工程赋值 #region 分部分项对象以及赋值 //UnitProject.Property.SubSegments = new _SubSegments(UnitProject);//分部分项对象 SetSubSegments(UnitProject.Property.SubSegments, dx.分部分项表, UnitProject, dx); #endregion #region 措施项目对象以及赋值 //UnitProject.Property.MeasuresProject = new _MeasuresProject(UnitProject);//措施项目对象 //UnitProject.Property.MeasuresProject.IsInit = false; SetMeasuresProject(UnitProject.Property.MeasuresProject, dx.措施项目表, UnitProject, dx); #endregion //UnitProject.Property.Metaanalysis = new _Metaanalysis(UnitProject);//单位工程汇总对象 //UnitProject.Property.Metaanalysis.IsInit = false; SetMetaanalysis(UnitProject.Property.Metaanalysis, dx); // UnitProject.Property.QuantityUnitSummaryList = new _QuantityUnitSummaryList(UnitProject); }