diff --git a/DataBase/版本日志/SGGLDB_V2023-08-30.sql b/DataBase/版本日志/SGGLDB_V2023-08-30.sql new file mode 100644 index 00000000..f1429d8a --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2023-08-30.sql @@ -0,0 +1,124 @@ + +ALTER VIEW [dbo].[View_WBS] +AS +select '1' as Id,'0' as SupId ,'JZ' as Code, '' as Name,'ProjectType' as WBSType,null as PlanStartDate,null as PlanEndDate, +ProjectId from dbo.WBS_UnitWork +Union +select '2' as Id,'0' as SupId ,'AZ' as Code, 'װ' as Name,'ProjectType' as WBSType,null as PlanStartDate,null as PlanEndDate, +ProjectId from dbo.WBS_UnitWork +Union +select UnitWorkId as Id,ProjectType as SupId ,UnitWorkCode as Code, UnitWorkCode+'-'+UnitWorkName as Name,'UnitWork' as WBSType,PlanStartDate, PlanEndDate, +ProjectId from dbo.WBS_UnitWork +Union all +select WorkPackageId as id,UnitWorkId as SupId,WorkPackageCode as Code,WorkPackageCode+'-'+PackageContent as Name,'WorkPackage' as WBSType,PlanStartDate, PlanEndDate, +ProjectId from dbo.WBS_WorkPackage w where IsApprove=1 and SuperWorkPackageId is null +Union all +select WorkPackageId as id,SuperWorkPackageId as SupId,WorkPackageCode as Code, WorkPackageCode+'-'+PackageContent as Name,'WorkPackage' as WBSType,PlanStartDate, PlanEndDate, +ProjectId from dbo.WBS_WorkPackage w where IsApprove=1 and SuperWorkPackageId is not null + + + + + + +GO + + +alter table WBS_UnitWork add WBSCode nvarchar(50) null +GO +alter table WBS_WorkPackage add WBSCode nvarchar(50) null +GO +alter table WBS_ControlItemAndCycle add WBSCode nvarchar(50) null +GO + + +ALTER VIEW [dbo].[View_WBS] +AS +select '1' as Id,'0' as SupId ,'JZ' as Code, '' as Name,'ProjectType' as WBSType,null as PlanStartDate,null as PlanEndDate,null as WBSCode, +ProjectId from dbo.WBS_UnitWork +Union +select '2' as Id,'0' as SupId ,'AZ' as Code, 'װ' as Name,'ProjectType' as WBSType,null as PlanStartDate,null as PlanEndDate,null as WBSCode, +ProjectId from dbo.WBS_UnitWork +Union +select UnitWorkId as Id,ProjectType as SupId ,UnitWorkCode as Code, WBSCode+'-'+UnitWorkName as Name,'UnitWork' as WBSType,PlanStartDate, PlanEndDate,WBSCode, +ProjectId from dbo.WBS_UnitWork +Union all +select WorkPackageId as id,UnitWorkId as SupId,WorkPackageCode as Code,WBSCode+'-'+PackageContent as Name,'WorkPackage' as WBSType,PlanStartDate, PlanEndDate,WBSCode, +ProjectId from dbo.WBS_WorkPackage w where IsApprove=1 and SuperWorkPackageId is null +Union all +select WorkPackageId as id,SuperWorkPackageId as SupId,WorkPackageCode as Code, WBSCode+'-'+PackageContent as Name,'WorkPackage' as WBSType,PlanStartDate, PlanEndDate,WBSCode, +ProjectId from dbo.WBS_WorkPackage w where IsApprove=1 and SuperWorkPackageId is not null + + + + + + + +GO + + +update WBS_WorkPackage set PackageCode=(select PackageCode from WBS_WorkPackageInit w where w.WorkPackageCode=InitWorkPackageCode) +GO + +alter table [dbo].[WBS_WorkPackageDetail] add PlanValue decimal(18,2) null +alter table [dbo].[WBS_WorkPackageDetail] add ThisValue decimal(18,2) null +alter table [dbo].[WBS_WorkPackageParentDetail] add PlanValue decimal(18,2) null +alter table [dbo].[WBS_WorkPackageParentDetail] add ThisValue decimal(18,2) null +GO + + + +ALTER VIEW [dbo].[View_WBS_WorkPackageDetail] +AS +/********ϸ********/ +SELECT detail.WorkPackageDetailId, +detail.WorkPackageId, +detail.Months, +c.WorkPackageCode, +c.PackageContent, +c.ProjectId, +c.Unit, --λ +c.PlanProjectQuantity, --㹤 +c.RealProjectQuantity, --ʵʹ +CONVERT(FLOAT,(select sum(ISNULL(PlanNum,0)) from WBS_WorkPackageDetail where WorkPackageId=detail.WorkPackageId and Months<=detail.Months)) as TotalPlanNum, --ۼƼƻ +CONVERT(FLOAT,(select sum(ISNULL(ThisNum,0)) from WBS_WorkPackageDetail where WorkPackageId=detail.WorkPackageId and Months<=detail.Months)) as TotalThisNum, --ۼ +CONVERT(FLOAT,(select sum(ISNULL(PlanValue,0)) from WBS_WorkPackageDetail where WorkPackageId=detail.WorkPackageId and Months<=detail.Months)) as TotalPlanValue, --ۼƸ +CONVERT(FLOAT,(select sum(ISNULL(ThisValue,0)) from WBS_WorkPackageDetail where WorkPackageId=detail.WorkPackageId and Months<=detail.Months)) as TotalThisValue, --ۼʵʷ +CONVERT(FLOAT,ISNULL(detail.PlanNum,0)) as PlanNum, --¼ƻ +CONVERT(FLOAT,ISNULL(detail.ThisNum,0)) as ThisNum, -- +CONVERT(FLOAT,ISNULL(detail.PlanValue,0)) as PlanValue, --¸ +CONVERT(FLOAT,ISNULL(detail.ThisValue,0)) as ThisValue --ʵʷ +FROM dbo.WBS_WorkPackageDetail AS detail +LEFT JOIN WBS_WorkPackage AS c ON c.WorkPackageId=detail.WorkPackageId + + +GO + + + +ALTER VIEW [dbo].[View_WBS_WorkPackageParentDetail] +AS +/********ϸ********/ +SELECT detail.WorkPackageParentDetailId, +detail.ParentId, +detail.ProjectId, +detail.Months, +CONVERT(FLOAT,ISNULL(detail.PlanNum,0)) as PlanNum, --¼ƻ +CONVERT(FLOAT,ISNULL(detail.ThisNum,0)) as ThisNum, --ʵ +CONVERT(FLOAT,ISNULL(detail.PlanValue,0)) as PlanValue, --¸ +CONVERT(FLOAT,ISNULL(detail.ThisValue,0)) as ThisValue, --ʵʷ +CONVERT(FLOAT,(select sum(ISNULL(PlanNum,0)) from WBS_WorkPackageParentDetail +where ParentId=detail.ParentId and Months<=detail.Months)) as TotalPlanNum, --ۼƼƻ +CONVERT(FLOAT,(select sum(ISNULL(ThisNum,0)) from WBS_WorkPackageParentDetail +where ParentId=detail.ParentId and Months<=detail.Months)) as TotalThisNum, --ۼ +CONVERT(FLOAT,(select sum(ISNULL(PlanValue,0)) from WBS_WorkPackageParentDetail +where ParentId=detail.ParentId and Months<=detail.Months)) as TotalPlanValue, --ۼƸ +CONVERT(FLOAT,(select sum(ISNULL(ThisValue,0)) from WBS_WorkPackageParentDetail +where ParentId=detail.ParentId and Months<=detail.Months)) as TotalThisValue --ۼʵʷ +FROM dbo.WBS_WorkPackageParentDetail AS detail + + +GO + + diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index 1625bc72..b528abf7 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -41,6 +41,7 @@ prompt 4 false + latest diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs index 3489bc14..99ffa9fa 100644 --- a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs +++ b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs @@ -245,7 +245,7 @@ namespace BLL /// 获取模拟树表格 /// /// - public static DataTable GetAllTreeDataTable(string projectId, string IsOut) + public static DataTable GetAllTreeDataTable(string projectId, string IsOut, string startTime, string endTime) { using (var db = new Model.SGGLDB(Funs.ConnString)) { @@ -308,11 +308,11 @@ namespace BLL newList.Add(item); if (string.IsNullOrEmpty(IsOut)) { - AddDetail(newList, getWBSs.ToList(), item.Id, a.ToString()); + AddDetail(newList, getWBSs.ToList(), item.Id, a.ToString(), startTime, endTime); } else { - AddDetail(newList, getWBSs.ToList(), item.Id, a.ToString(), string.Empty); + AddDetail(newList, getWBSs.ToList(), item.Id, a.ToString(), string.Empty, startTime, endTime); } a++; } @@ -427,29 +427,29 @@ namespace BLL } } - private static void AddDetail(List newList, List oldList, string id, string preCode) + private static void AddDetail(List newList, List oldList, string id, string preCode, string startTime, string endTime) { - var items = oldList.Where(x => x.SupId == id).OrderBy(x => x.Code); + var items = oldList.Where(x => x.SupId == id && (x.PlanStartDate <= Funs.GetNewDateTime(startTime) || string.IsNullOrEmpty(startTime)) && (x.PlanEndDate >= Funs.GetNewDateTime(endTime) || string.IsNullOrEmpty(endTime))).OrderBy(x => x.WBSCode); int b = 1; foreach (var item in items) { item.Code = preCode + "." + b.ToString(); newList.Add(item); - AddDetail(newList, oldList, item.Id, item.Code); + AddDetail(newList, oldList, item.Id, item.Code, startTime, endTime); b++; } } - private static void AddDetail(List newList, List oldList, string id, string preCode, string prefix) + private static void AddDetail(List newList, List oldList, string id, string preCode, string prefix, string startTime, string endTime) { - var items = oldList.Where(x => x.SupId == id).OrderBy(x => x.Code); + var items = oldList.Where(x => x.SupId == id && (x.PlanStartDate <= Funs.GetNewDateTime(startTime) || string.IsNullOrEmpty(startTime)) && (x.PlanEndDate >= Funs.GetNewDateTime(endTime) || string.IsNullOrEmpty(endTime))).OrderBy(x => x.WBSCode); int b = 1; foreach (var item in items) { item.Code = preCode + "." + b.ToString(); item.Name = prefix + "...." + item.Name; newList.Add(item); - AddDetail(newList, oldList, item.Id, item.Code, prefix + "...."); + AddDetail(newList, oldList, item.Id, item.Code, prefix + "....", startTime, endTime); b++; } } diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 38850782..7de98660 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3290,6 +3290,10 @@ namespace BLL /// public const string WBSWorkPackageTemplateUrl = "File\\Excel\\DataIn\\WBS定制导入模板.xls"; /// + /// WBS编码规则 + /// + public const string WBSCodeTemplateUrl = "File\\Excel\\DataIn\\WBS编码规则.xlsx"; + /// /// 管道等级导入模板 /// public const string PipingClassTemplateUrl = "File\\Excel\\DataIn\\管道等级导入模板.xls"; diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx index 1967decd..380318f7 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx @@ -21,7 +21,7 @@
- + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.cs index 22fb1466..dd7ff903 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Web.UI.WebControls; @@ -557,5 +558,103 @@ namespace FineUIPro.Web.CQMS.WBS } return s; } + + /// + /// 生成项目WBS编码 + /// + /// + /// + protected void btnCreateCode_Click(object sender, EventArgs e) + { + Model.SGGLDB db = Funs.DB; + string projectCode = BLL.ProjectService.GetProjectCodeByProjectId(this.CurrUser.LoginProjectId); + var unitWorks = from x in db.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId orderby x.UnitWorkCode select x; + var workPackages = (from x in db.WBS_WorkPackage where x.ProjectId == this.CurrUser.LoginProjectId && x.IsApprove == true select x).ToList(); + var controlItemAndCycles = (from x in db.WBS_ControlItemAndCycle where x.ProjectId == this.CurrUser.LoginProjectId && x.IsApprove == true select x).ToList(); + foreach (var unitWork in unitWorks) + { + unitWork.WBSCode = projectCode + unitWork.UnitWorkCode; + var workPackage1s = workPackages.Where(x => x.UnitWorkId == unitWork.UnitWorkId && x.SuperWorkPack == null).OrderBy(x => x.WorkPackageCode); + foreach (var workPackage1 in workPackage1s) + { + if (!workPackage1.PackageContent.Contains("-")) + { + workPackage1.WBSCode = projectCode + unitWork.UnitWorkCode + unitWork.ProjectType + workPackage1.PackageCode; + } + else + { + workPackage1.WBSCode = projectCode + unitWork.UnitWorkCode + unitWork.ProjectType + workPackage1.PackageCode + workPackage1.WorkPackageCode.Substring(workPackage1.WorkPackageCode.Length - 2, 2); + } + UpdateWBSCode(db, workPackages, workPackage1.WorkPackageId, workPackage1.WBSCode, controlItemAndCycles); + } + } + db.SubmitChanges(); + ShowNotify("生成成功!", MessageBoxIcon.Success); + } + + private void UpdateWBSCode(Model.SGGLDB db, List workPackages, string workPackageId, string wbsCode, List controlItemAndCycles) + { + var childWorkPackages = workPackages.Where(x => x.SuperWorkPackageId == workPackageId); + if (childWorkPackages.Count() > 0) + { + foreach (var childWorkPackage in childWorkPackages) + { + if (!childWorkPackage.PackageContent.Contains("-")) + { + childWorkPackage.WBSCode = wbsCode + childWorkPackage.PackageCode; + } + else + { + childWorkPackage.WBSCode = wbsCode + childWorkPackage.PackageCode + childWorkPackage.WorkPackageCode.Substring(childWorkPackage.WorkPackageCode.Length - 2, 2); + } + UpdateWBSCode(db, workPackages, childWorkPackage.WorkPackageId, childWorkPackage.WBSCode, controlItemAndCycles); + } + } + else + { + var controlItemAndCycleItems = controlItemAndCycles.Where(x => x.WorkPackageId == workPackageId); + foreach (var controlItemAndCycleItem in controlItemAndCycleItems) + { + controlItemAndCycleItem.WBSCode = wbsCode + controlItemAndCycleItem.InitControlItemCode.Substring(controlItemAndCycleItem.InitControlItemCode.Length - 2, 2); + } + } + } + + #region 下载WBS编码规则文件 + /// + /// 下载WBS编码规则文件按钮 + /// + /// + /// + protected void btnFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载WBS编码规则文件吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel"))); + } + + /// + /// 下载导入模板 + /// + /// + /// + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + string rootPath = Server.MapPath("~/"); + string filePath = Const.WBSCodeTemplateUrl; + string uploadfilepath = rootPath + filePath; + string fileName = Path.GetFileName(filePath); + FileInfo info = new FileInfo(uploadfilepath); + long fileSize = info.Length; + Response.ClearContent(); + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.ContentType = "excel/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.AddHeader("Content-Length", fileSize.ToString().Trim()); + Response.TransmitFile(uploadfilepath, 0, fileSize); + Response.End(); + } + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.designer.cs index 7fb27f27..4c7b00ed 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleShow.aspx.designer.cs @@ -84,6 +84,33 @@ namespace FineUIPro.Web.CQMS.WBS { /// protected global::FineUIPro.Grid Grid1; + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// btnFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnFile; + + /// + /// btnCreateCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnCreateCode; + /// /// Label3 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet1.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet1.aspx.cs index 5dc96655..4cc958cf 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet1.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet1.aspx.cs @@ -558,7 +558,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.PackageContent = workPackageProject.PackageContent + name; newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.IsChild = workPackageProject.IsChild; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; newWorkPackage.SubItemType = GetSubItemTypeId(values.Value("SubItemType")); @@ -661,7 +661,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.PackageContent = workPackageProject.PackageContent + name; newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.IsChild = workPackageProject.IsChild; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.IsApprove = true; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; @@ -732,7 +732,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.PackageContent = workPackageProject.PackageContent + name; newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.IsChild = workPackageProject.IsChild; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; newWorkPackage.SubItemType = GetSubItemTypeId(values.Value("SubItemType")); diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2.aspx.cs index 1a87f7f1..f47e26b6 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2.aspx.cs @@ -590,7 +590,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.SuperWorkPackageId = WorkPackageId; newWorkPackage.IsChild = workPackageProject.IsChild; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; newWorkPackage.SubItemType = GetSubItemTypeId(values.Value("SubItemType")); @@ -690,7 +690,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.SuperWorkPackageId = WorkPackageId; newWorkPackage.IsChild = workPackageProject.IsChild; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.IsApprove = true; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; @@ -762,7 +762,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.SuperWorkPackageId = WorkPackageId; newWorkPackage.IsChild = workPackageProject.IsChild; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; newWorkPackage.SubItemType = GetSubItemTypeId(values.Value("SubItemType")); diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2In.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2In.aspx.cs index d5d3e983..83d01fde 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2In.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/WorkPackageSet2In.aspx.cs @@ -519,7 +519,7 @@ namespace FineUIPro.Web.CQMS.WBS newWorkPackage.PackageContent = workPackageProject.PackageContent + "-" + txtName; newWorkPackage.SuperWorkPack = workPackageProject.SuperWorkPack; newWorkPackage.SuperWorkPackageId = WorkPackageId; - newWorkPackage.PackageCode = code; + newWorkPackage.PackageCode = workPackageProject.PackageCode; newWorkPackage.ProjectType = workPackageProject.ProjectType; newWorkPackage.InitWorkPackageCode = workPackageProject.WorkPackageCode; newWorkPackage.IsApprove = true; diff --git a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs index e34ec2fc..13fefb1b 100644 --- a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs +++ b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs @@ -322,47 +322,47 @@ namespace Web.Controls chartArea.Area3DStyle.Enable3D = false; chart1.ChartAreas.Add(chartArea); - chart1.Series.Add("本月概算工程量"); - chart1.Series.Add("本月实际工程量"); - chart1.Series.Add("累计概算工程量"); - chart1.Series.Add("累计实际工程量"); + chart1.Series.Add("本月概算费用"); + chart1.Series.Add("本月实际费用"); + chart1.Series.Add("累计概算费用"); + chart1.Series.Add("累计实际费用"); DataView dv = dt.DefaultView; - chart1.Series["本月概算工程量"].Points.DataBindXY(dv, "月份", dv, "本月概算工程量"); - chart1.Series["本月概算工程量"].ChartType = SeriesChartType.Column; + chart1.Series["本月概算费用"].Points.DataBindXY(dv, "月份", dv, "本月概算费用"); + chart1.Series["本月概算费用"].ChartType = SeriesChartType.Column; - for (int i = 0; i < chart1.Series["本月概算工程量"].Points.Count; i++) + for (int i = 0; i < chart1.Series["本月概算费用"].Points.Count; i++) { - chart1.Series["本月概算工程量"].Points[i].ToolTip = "本月概算工程量\n#VALX\n#VALY"; + chart1.Series["本月概算费用"].Points[i].ToolTip = "本月概算费用\n#VALX\n#VALY"; } - chart1.Series["本月实际工程量"].Points.DataBindXY(dv, "月份", dv, "本月实际工程量"); - chart1.Series["本月实际工程量"].ChartType = SeriesChartType.Column; + chart1.Series["本月实际费用"].Points.DataBindXY(dv, "月份", dv, "本月实际费用"); + chart1.Series["本月实际费用"].ChartType = SeriesChartType.Column; - for (int i = 0; i < chart1.Series["本月实际工程量"].Points.Count; i++) + for (int i = 0; i < chart1.Series["本月实际费用"].Points.Count; i++) { - chart1.Series["本月实际工程量"].Points[i].ToolTip = "本月实际工程量\n#VALX\n#VALY"; + chart1.Series["本月实际费用"].Points[i].ToolTip = "本月实际费用\n#VALX\n#VALY"; } - chart1.Series["累计概算工程量"].Points.DataBindXY(dv, "月份", dv, "累计概算工程量"); - chart1.Series["累计概算工程量"].ChartType = SeriesChartType.Spline; - chart1.Series["累计概算工程量"].Color = Color.MediumSeaGreen; - chart1.Series["累计概算工程量"].BorderWidth = 2; + chart1.Series["累计概算费用"].Points.DataBindXY(dv, "月份", dv, "累计概算费用"); + chart1.Series["累计概算费用"].ChartType = SeriesChartType.Spline; + chart1.Series["累计概算费用"].Color = Color.MediumSeaGreen; + chart1.Series["累计概算费用"].BorderWidth = 2; - for (int i = 0; i < chart1.Series["累计概算工程量"].Points.Count; i++) + for (int i = 0; i < chart1.Series["累计概算费用"].Points.Count; i++) { - chart1.Series["累计概算工程量"].Points[i].ToolTip = "累计概算工程量\n#VALX\n#VALY"; + chart1.Series["累计概算费用"].Points[i].ToolTip = "累计概算费用\n#VALX\n#VALY"; } - chart1.Series["累计实际工程量"].Points.DataBindXY(dv, "月份", dv, "累计实际工程量"); - chart1.Series["累计实际工程量"].ChartType = SeriesChartType.Spline; - chart1.Series["累计实际工程量"].Color = Color.Red; - chart1.Series["累计实际工程量"].BorderWidth = 2; + chart1.Series["累计实际费用"].Points.DataBindXY(dv, "月份", dv, "累计实际费用"); + chart1.Series["累计实际费用"].ChartType = SeriesChartType.Spline; + chart1.Series["累计实际费用"].Color = Color.Red; + chart1.Series["累计实际费用"].BorderWidth = 2; - for (int i = 0; i < chart1.Series["累计实际工程量"].Points.Count; i++) + for (int i = 0; i < chart1.Series["累计实际费用"].Points.Count; i++) { - chart1.Series["累计实际工程量"].Points[i].ToolTip = "累计实际工程量\n#VALX\n#VALY"; + chart1.Series["累计实际费用"].Points[i].ToolTip = "累计实际费用\n#VALX\n#VALY"; } Controls.Add(chart1); diff --git a/SGGL/FineUIPro.Web/ErrLog.txt b/SGGL/FineUIPro.Web/ErrLog.txt index e69de29b..b1ff6990 100644 --- a/SGGL/FineUIPro.Web/ErrLog.txt +++ b/SGGL/FineUIPro.Web/ErrLog.txt @@ -0,0 +1,51 @@ + +错误信息开始=====> +错误类型:ThreadAbortException +错误信息:正在中止线程。 +错误堆栈: + 在 SNIReadSyncOverAsync(SNI_ConnWrapper* , SNI_Packet** , Int32 ) + 在 SNINativeMethodWrapper.SNIReadSyncOverAsync(SafeHandle pConn, IntPtr& packet, Int32 timeout) + 在 System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() + 在 System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() + 在 System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() + 在 System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value) + 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) + 在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() + 在 System.Data.SqlClient.SqlDataReader.get_MetaData() + 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) + 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) + 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) + 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) + 在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) + 在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) + 在 System.Data.Common.DbCommand.ExecuteReader() + 在 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) + 在 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) + 在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) + 在 System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute[S](Expression expression) + 在 System.Linq.Queryable.Count[TSource](IQueryable`1 source) + 在 BLL.GetDataService.CorrectingPersonInOutNumber(String projectId) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\BLL\OpenService\GetDataService.cs:行号 148 + 在 BLL.MonitorService.DoSynchData() 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\BLL\OpenService\MonitorService.cs:行号 2129 + 在 BLL.MonitorService.ColligateFormConfirmProcessEve(Object sender, ElapsedEventArgs e) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\BLL\OpenService\MonitorService.cs:行号 110 +出错时间:08/30/2023 11:27:45 +出错时间:08/30/2023 11:27:45 + + +错误信息开始=====> +错误类型:NullReferenceException +错误信息:未将对象引用设置到对象的实例。 +错误堆栈: + 在 FineUIPro.Web.indexProject.MenuSwitchMethod(String type) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\FineUIPro.Web\indexProject.aspx.cs:行号 581 + 在 FineUIPro.Web.indexProject.btnJDGL_Click(Object sender, EventArgs e) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\FineUIPro.Web\indexProject.aspx.cs:行号 711 + 在 FineUIPro.Button.OnClick(EventArgs e) + 在 (Button , EventArgs ) + 在 FineUIPro.Button.RaisePostBackEvent(String eventArgument) + 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) + 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +出错时间:08/30/2023 14:19:32 +出错文件:http://localhost:8797/indexProject.aspx?projectId=d93b0835-ffbd-4039-bed3-2df806adae56 +IP地址:::1 + +出错时间:08/30/2023 14:19:32 + diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/WBS编码规则.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataIn/WBS编码规则.xlsx new file mode 100644 index 00000000..25446e95 Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/DataIn/WBS编码规则.xlsx differ diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/MaterialManageIn.aspx.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/MaterialManageIn.aspx.cs index 093e6eef..0f9f6abb 100644 --- a/SGGL/FineUIPro.Web/HJGL/PreDesign/MaterialManageIn.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/MaterialManageIn.aspx.cs @@ -192,11 +192,11 @@ namespace FineUIPro.Web.HJGL.PreDesign } string row2 = pds.Rows[i][2].ToString(); - if (string.IsNullOrEmpty(row2)) - { - result += (i + 2).ToString() + "," + "主项名称" + "," + "此项为必填项!" + "|"; - } - else + if (!string.IsNullOrEmpty(row2)) + //{ + // result += (i + 2).ToString() + "," + "主项名称" + "," + "此项为必填项!" + "|"; + //} + //else { var mainItem = mainItems.FirstOrDefault(x => x.MainItemName == row2); if (mainItem == null) diff --git a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx index 1e536781..8812e0f3 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx +++ b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx @@ -39,18 +39,18 @@ <%----%> - + HeaderText="序号" HeaderTextAlign="Center" TextAlign="Left"> + - - - - + + + + @@ -91,11 +91,11 @@ function onGridAfterEdit(event, value, params) { var me = this, columnId = params.columnId, rowId = params.rowId; - var str = F(hdIdClientID).ooIl1; - if (str == undefined) { + var str = F(hdIdClientID).getValue(); + if (str == undefined || str == '') { str = rowId; } - else { + else if(str.indexOf(rowId) == -1){ str = str + "," + rowId; } F(hdIdClientID).setValue(str); diff --git a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs index dfa3e85f..1fd43eaa 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs @@ -132,7 +132,7 @@ namespace FineUIPro.Web.JDGL.Check { errorInfos = string.Empty; string Id = Request.Params["Id"]; - DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty); + DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty, null, null); Grid1.DataSource = table; Grid1.DataBind(); for (int i = 0; i < this.Grid1.Rows.Count; i++) @@ -178,9 +178,9 @@ namespace FineUIPro.Web.JDGL.Check private void Save() { - decimal changePlanNum = 0, changeThisNum = 0, //当月总变化完成成本、完成预算 - oldPlanNum = 0, oldThisNum = 0, - PlanNum = 0, ThisNum = 0; + decimal changePlanNum = 0, changePlanValue = 0, changeThisNum = 0, //当月总变化完成成本、完成预算 + oldPlanNum = 0, oldThisNum = 0, oldPlanValue = 0, + PlanNum = 0, ThisNum = 0, PlanValue = 0, PlanCost = 0, PlanProjectQuantity = 0; Model.SGGLDB db = Funs.DB; var oldViewInfos = from x in db.WBS_WorkPackage where x.ProjectId == this.CurrUser.LoginProjectId @@ -201,13 +201,17 @@ namespace FineUIPro.Web.JDGL.Check if (WorkPackage != null) { string WorkPackageId = WorkPackage.WorkPackageId; + PlanCost = WorkPackage.PlanCost ?? 0; + PlanProjectQuantity = WorkPackage.PlanProjectQuantity ?? 0; BLL.WorkPackageService.UpdateWorkPackage(WorkPackage); for (int j = 0; j < months.Count; j++) { oldPlanNum = 0; oldThisNum = 0; + oldPlanValue = 0; changePlanNum = 0; changeThisNum = 0; + changePlanValue = 0; string planNum = values.Value(string.Format("{0:yyyy-MM}", months[j]) + "Plan"); string thisNum = values.Value(string.Format("{0:yyyy-MM}", months[j]) + "This"); Model.WBS_WorkPackageDetail WorkPackageDetail = BLL.WorkPackageDetailService.GetWorkPackageDetailByWorkPackageIdAndMonths(WorkPackageId, months[j]); @@ -215,10 +219,20 @@ namespace FineUIPro.Web.JDGL.Check { oldPlanNum = WorkPackageDetail.PlanNum ?? 0; oldThisNum = WorkPackageDetail.ThisNum ?? 0; + oldPlanValue = WorkPackageDetail.PlanValue ?? 0; WorkPackageDetail.PlanNum = Funs.GetNewDecimalOrZero(planNum); WorkPackageDetail.ThisNum = Funs.GetNewDecimalOrZero(thisNum); + if (PlanProjectQuantity > 0 && WorkPackageDetail.PlanNum > 0) + { + WorkPackageDetail.PlanValue = decimal.Round(PlanCost * Funs.GetNewDecimalOrZero(planNum) / PlanProjectQuantity, 2); + } + else + { + WorkPackageDetail.PlanValue = 0; + } PlanNum = WorkPackageDetail.PlanNum ?? 0; ThisNum = WorkPackageDetail.ThisNum ?? 0; + PlanValue = WorkPackageDetail.PlanValue ?? 0; } else { @@ -228,21 +242,32 @@ namespace FineUIPro.Web.JDGL.Check WorkPackageDetail.Months = months[j]; WorkPackageDetail.PlanNum = Funs.GetNewDecimalOrZero(planNum); WorkPackageDetail.ThisNum = Funs.GetNewDecimalOrZero(thisNum); + if (PlanProjectQuantity > 0 && WorkPackageDetail.PlanNum > 0) + { + WorkPackageDetail.PlanValue = decimal.Round(PlanCost * Funs.GetNewDecimalOrZero(planNum) / PlanProjectQuantity, 2); + } + else + { + WorkPackageDetail.PlanValue = 0; + } PlanNum = WorkPackageDetail.PlanNum ?? 0; ThisNum = WorkPackageDetail.ThisNum ?? 0; + PlanValue = WorkPackageDetail.PlanValue ?? 0; db.WBS_WorkPackageDetail.InsertOnSubmit(WorkPackageDetail); } //累加变化值,计算总的变化值 changePlanNum += PlanNum - oldPlanNum; changeThisNum += ThisNum - oldThisNum; + changePlanValue += PlanValue - oldPlanValue; ////更新分部分项 - UpdateWorkPackageParent(db, WorkPackage.SuperWorkPackageId, months[j], changePlanNum, changeThisNum); + UpdateWorkPackageParent(db, WorkPackage.SuperWorkPackageId, months[j], changePlanNum, changeThisNum, changePlanValue); ////更新单位工程 Model.WBS_WorkPackageParentDetail unitWorkDetail = BLL.WorkPackageParentDetailService.GetWorkPackageParentDetailByParentIdAndMonths(WorkPackage.UnitWorkId, months[j]); if (unitWorkDetail != null) { unitWorkDetail.PlanNum += changePlanNum; unitWorkDetail.ThisNum += changeThisNum; + unitWorkDetail.PlanValue += changePlanValue; //BLL.WorkPackageParentDetailService.UpdateWorkPackageParentDetail(unitWorkDetail); } else @@ -253,6 +278,7 @@ namespace FineUIPro.Web.JDGL.Check unitWorkDetail.Months = months[j]; unitWorkDetail.PlanNum = changePlanNum; unitWorkDetail.ThisNum = changeThisNum; + unitWorkDetail.PlanValue = changePlanValue; //BLL.WorkPackageParentDetailService.AddWorkPackageParentDetail(unitWorkDetail); db.WBS_WorkPackageParentDetail.InsertOnSubmit(unitWorkDetail); } @@ -265,6 +291,7 @@ namespace FineUIPro.Web.JDGL.Check { projectType.PlanNum += changePlanNum; projectType.ThisNum += changeThisNum; + projectType.PlanValue += changePlanValue; //BLL.WorkPackageParentDetailService.UpdateWorkPackageParentDetail(cnProfessionDetail); } else @@ -276,6 +303,7 @@ namespace FineUIPro.Web.JDGL.Check projectType.Months = months[j]; projectType.PlanNum = changePlanNum; projectType.ThisNum = changeThisNum; + projectType.PlanValue = changePlanValue; //BLL.WorkPackageParentDetailService.AddWorkPackageParentDetail(cnProfessionDetail); db.WBS_WorkPackageParentDetail.InsertOnSubmit(projectType); } @@ -296,7 +324,7 @@ namespace FineUIPro.Web.JDGL.Check /// /// /// - private void UpdateWorkPackageParent(Model.SGGLDB db, string SuperWorkPackageId, DateTime months, decimal changePlanNum, decimal changeThisNum) + private void UpdateWorkPackageParent(Model.SGGLDB db, string SuperWorkPackageId, DateTime months, decimal changePlanNum, decimal changeThisNum, decimal changePlanValue) { Model.WBS_WorkPackage workPackage = db.WBS_WorkPackage.FirstOrDefault(x => x.WorkPackageId == SuperWorkPackageId); if (workPackage != null) @@ -306,6 +334,7 @@ namespace FineUIPro.Web.JDGL.Check { parentDetail.PlanNum += changePlanNum; parentDetail.ThisNum += changeThisNum; + parentDetail.PlanValue += changePlanValue; //BLL.WorkPackageParentDetailService.UpdateWorkPackageParentDetail(parentDetail); } else @@ -316,12 +345,13 @@ namespace FineUIPro.Web.JDGL.Check parentDetail.Months = months; parentDetail.PlanNum = changePlanNum; parentDetail.ThisNum = changeThisNum; + parentDetail.PlanValue = changePlanValue; //BLL.WorkPackageParentDetailService.AddWorkPackageParentDetail(parentDetail); db.WBS_WorkPackageParentDetail.InsertOnSubmit(parentDetail); } if (workPackage.SuperWorkPackageId != null) //还存在上级节点,需要继续循环 { - UpdateWorkPackageParent(db, workPackage.SuperWorkPackageId, months, changePlanNum, changeThisNum); + UpdateWorkPackageParent(db, workPackage.SuperWorkPackageId, months, changePlanNum, changeThisNum, changePlanValue); } } } diff --git a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx index bc35682e..b513a780 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx +++ b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx @@ -42,17 +42,17 @@ - + - + - + - + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs index f8ea22d8..6070e46f 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs @@ -214,7 +214,7 @@ namespace FineUIPro.Web.JDGL.Check if (WorkPackage != null && BLL.WorkPackageService.GetAllWorkPackagesBySuperWorkPackageId(WorkPackage.WorkPackageId).Count == 0) { string strSql = "select distinct (cast(YEAR(Months) as varchar(4))+'.'+cast(MONTH(Months) as varchar(2))) as 月份,t.Months," + - "PlanNum as '本月概算工程量',ThisNum as '本月实际工程量',TotalPlanNum as '累计概算工程量',TotalThisNum as '累计实际工程量' " + + "PlanValue as '本月概算费用',ThisValue as '本月实际费用',TotalPlanValue as '累计概算费用',TotalThisValue as '累计实际费用' " + "from dbo.View_WBS_WorkPackageDetail as t where WorkPackageId=@Id order by t.Months"; //string date = DateTime.Now.Year + "-" + DateTime.Now.Month + "-01"; SqlParameter[] parameter = new SqlParameter[] @@ -228,39 +228,39 @@ namespace FineUIPro.Web.JDGL.Check decimal lastacwp = 0, acwp = 0, lastbcwp = 0, bcwp = 0; for (int i = 0; i < dt.Rows.Count; i++) { - dt.Rows[i]["本月概算工程量"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月概算工程量"].ToString()); - dt.Rows[i]["本月实际工程量"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月实际工程量"].ToString()); - acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计概算工程量"].ToString()); - bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计实际工程量"].ToString()); + dt.Rows[i]["本月概算费用"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月概算费用"].ToString()); + dt.Rows[i]["本月实际费用"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月实际费用"].ToString()); + acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计概算费用"].ToString()); + bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计实际费用"].ToString()); if (acwp == lastacwp) { if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) { - dt.Rows[i]["累计概算工程量"] = DBNull.Value; + dt.Rows[i]["累计概算费用"] = DBNull.Value; } else { - dt.Rows[i]["累计概算工程量"] = acwp; + dt.Rows[i]["累计概算费用"] = acwp; } } else { - dt.Rows[i]["累计概算工程量"] = acwp; + dt.Rows[i]["累计概算费用"] = acwp; } if (bcwp == lastbcwp) { if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) { - dt.Rows[i]["累计实际工程量"] = DBNull.Value; + dt.Rows[i]["累计实际费用"] = DBNull.Value; } else { - dt.Rows[i]["累计实际工程量"] = bcwp; + dt.Rows[i]["累计实际费用"] = bcwp; } } else { - dt.Rows[i]["累计实际工程量"] = bcwp; + dt.Rows[i]["累计实际费用"] = bcwp; } lastacwp = acwp; lastbcwp = bcwp; @@ -270,7 +270,7 @@ namespace FineUIPro.Web.JDGL.Check else { string strSql = "select distinct (cast(YEAR(Months) as varchar(4))+'.'+cast(MONTH(Months) as varchar(2))) as 月份,t.Months," + - "PlanNum as '本月概算工程量',ThisNum as '本月实际工程量',TotalPlanNum as '累计概算工程量',TotalThisNum as '累计实际工程量' " + + "PlanValue as '本月概算费用',ThisValue as '本月实际费用',TotalPlanValue as '累计概算费用',TotalThisValue as '累计实际费用' " + "from dbo.View_WBS_WorkPackageParentDetail as t where ParentId=@Id order by t.Months"; //string date = DateTime.Now.Year + "-" + DateTime.Now.Month + "-01"; SqlParameter[] parameter = new SqlParameter[] @@ -288,39 +288,39 @@ namespace FineUIPro.Web.JDGL.Check decimal lastacwp = 0, acwp = 0, lastbcwp = 0, bcwp = 0; for (int i = 0; i < dt.Rows.Count; i++) { - dt.Rows[i]["本月概算工程量"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月概算工程量"].ToString()); - dt.Rows[i]["本月实际工程量"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月实际工程量"].ToString()); - acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计概算工程量"].ToString()); - bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计实际工程量"].ToString()); + dt.Rows[i]["本月概算费用"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月概算费用"].ToString()); + dt.Rows[i]["本月实际费用"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月实际费用"].ToString()); + acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计概算费用"].ToString()); + bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计实际费用"].ToString()); if (acwp == lastacwp) { if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) { - dt.Rows[i]["累计概算工程量"] = DBNull.Value; + dt.Rows[i]["累计概算费用"] = DBNull.Value; } else { - dt.Rows[i]["累计概算工程量"] = acwp; + dt.Rows[i]["累计概算费用"] = acwp; } } else { - dt.Rows[i]["累计概算工程量"] = acwp; + dt.Rows[i]["累计概算费用"] = acwp; } if (bcwp == lastbcwp) { if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) { - dt.Rows[i]["累计实际工程量"] = DBNull.Value; + dt.Rows[i]["累计实际费用"] = DBNull.Value; } else { - dt.Rows[i]["累计实际工程量"] = bcwp; + dt.Rows[i]["累计实际费用"] = bcwp; } } else { - dt.Rows[i]["累计实际工程量"] = bcwp; + dt.Rows[i]["累计实际费用"] = bcwp; } lastacwp = acwp; lastbcwp = bcwp; diff --git a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx index c71bec83..935b788c 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx +++ b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx @@ -14,6 +14,10 @@ white-space: normal; word-break: break-all; } + + .f-grid-row.red { + background-color: red; + } @@ -29,6 +33,14 @@ + + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs index 18ebb89c..a4f42f4c 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs @@ -28,7 +28,7 @@ namespace FineUIPro.Web.JDGL.Check private void BindGrid() { - DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty); + DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty,this.txtStartTime.Text.Trim(),this.txtEndTime.Text.Trim()); Grid1.DataSource = table; Grid1.DataBind(); for (int i = 0; i < this.Grid1.Rows.Count; i++) @@ -54,6 +54,15 @@ namespace FineUIPro.Web.JDGL.Check cbIsMileStone.Checked = true; } } + if (!string.IsNullOrEmpty(this.Grid1.Rows[i].Values[10].ToString())) + { + DateTime planEndDate = Convert.ToDateTime(this.Grid1.Rows[i].Values[10].ToString()); + DateTime realEndDate = Funs.GetNewDateTimeOrNow(this.Grid1.Rows[i].Values[12].ToString()); + if (planEndDate < realEndDate) + { + Grid1.Rows[i].RowCssClass = "red"; + } + } } } @@ -180,7 +189,7 @@ namespace FineUIPro.Web.JDGL.Check { try { - DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, "Out"); + DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, "Out",this.txtStartTime.Text.Trim(),this.txtEndTime.Text.Trim()); string projectNmae = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId); if (!string.IsNullOrEmpty(projectNmae)) { @@ -357,5 +366,10 @@ namespace FineUIPro.Web.JDGL.Check } } #endregion + + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs index 0da2811c..77af5e57 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs @@ -66,6 +66,33 @@ namespace FineUIPro.Web.JDGL.Check { /// protected global::FineUIPro.TextBox hdId; + /// + /// txtStartTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtStartTime; + + /// + /// txtEndTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtEndTime; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + /// /// btnSave 控件。 /// diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index f4242a3b..b9c7c7cd 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -289636,6 +289636,12 @@ namespace Model private string _WBSType; + private System.Nullable _PlanStartDate; + + private System.Nullable _PlanEndDate; + + private string _WBSCode; + private string _ProjectId; public View_WBS() @@ -289690,7 +289696,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(81)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(101)")] public string Name { get @@ -289722,6 +289728,54 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanStartDate", DbType="DateTime")] + public System.Nullable PlanStartDate + { + get + { + return this._PlanStartDate; + } + set + { + if ((this._PlanStartDate != value)) + { + this._PlanStartDate = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanEndDate", DbType="DateTime")] + public System.Nullable PlanEndDate + { + get + { + return this._PlanEndDate; + } + set + { + if ((this._PlanEndDate != value)) + { + this._PlanEndDate = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WBSCode", DbType="NVarChar(50)")] + public string WBSCode + { + get + { + return this._WBSCode; + } + set + { + if ((this._WBSCode != value)) + { + this._WBSCode = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] public string ProjectId { @@ -290134,10 +290188,18 @@ namespace Model private System.Nullable _TotalThisNum; + private System.Nullable _TotalPlanValue; + + private System.Nullable _TotalThisValue; + private System.Nullable _PlanNum; private System.Nullable _ThisNum; + private System.Nullable _PlanValue; + + private System.Nullable _ThisValue; + public View_WBS_WorkPackageDetail() { } @@ -290318,6 +290380,38 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPlanValue", DbType="Float")] + public System.Nullable TotalPlanValue + { + get + { + return this._TotalPlanValue; + } + set + { + if ((this._TotalPlanValue != value)) + { + this._TotalPlanValue = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalThisValue", DbType="Float")] + public System.Nullable TotalThisValue + { + get + { + return this._TotalThisValue; + } + set + { + if ((this._TotalThisValue != value)) + { + this._TotalThisValue = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanNum", DbType="Float")] public System.Nullable PlanNum { @@ -290349,6 +290443,38 @@ namespace Model } } } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanValue", DbType="Float")] + public System.Nullable PlanValue + { + get + { + return this._PlanValue; + } + set + { + if ((this._PlanValue != value)) + { + this._PlanValue = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisValue", DbType="Float")] + public System.Nullable ThisValue + { + get + { + return this._ThisValue; + } + set + { + if ((this._ThisValue != value)) + { + this._ThisValue = value; + } + } + } } [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_WBS_WorkPackageParentDetail")] @@ -290367,10 +290493,18 @@ namespace Model private System.Nullable _ThisNum; + private System.Nullable _PlanValue; + + private System.Nullable _ThisValue; + private System.Nullable _TotalPlanNum; private System.Nullable _TotalThisNum; + private System.Nullable _TotalPlanValue; + + private System.Nullable _TotalThisValue; + public View_WBS_WorkPackageParentDetail() { } @@ -290471,6 +290605,38 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanValue", DbType="Float")] + public System.Nullable PlanValue + { + get + { + return this._PlanValue; + } + set + { + if ((this._PlanValue != value)) + { + this._PlanValue = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisValue", DbType="Float")] + public System.Nullable ThisValue + { + get + { + return this._ThisValue; + } + set + { + if ((this._ThisValue != value)) + { + this._ThisValue = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPlanNum", DbType="Float")] public System.Nullable TotalPlanNum { @@ -290502,6 +290668,38 @@ namespace Model } } } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPlanValue", DbType="Float")] + public System.Nullable TotalPlanValue + { + get + { + return this._TotalPlanValue; + } + set + { + if ((this._TotalPlanValue != value)) + { + this._TotalPlanValue = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalThisValue", DbType="Float")] + public System.Nullable TotalThisValue + { + get + { + return this._TotalThisValue; + } + set + { + if ((this._TotalThisValue != value)) + { + this._TotalThisValue = value; + } + } + } } [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_Welder_WelderQualify")] @@ -292136,6 +292334,8 @@ namespace Model private System.Nullable _RealEndDate; + private string _WBSCode; + private EntityRef _WBS_WorkPackage; #region 可扩展性方法定义 @@ -292184,6 +292384,8 @@ namespace Model partial void OnCheckAcceptTypeChanged(); partial void OnRealEndDateChanging(System.Nullable value); partial void OnRealEndDateChanged(); + partial void OnWBSCodeChanging(string value); + partial void OnWBSCodeChanged(); #endregion public WBS_ControlItemAndCycle() @@ -292616,6 +292818,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WBSCode", DbType="NVarChar(50)")] + public string WBSCode + { + get + { + return this._WBSCode; + } + set + { + if ((this._WBSCode != value)) + { + this.OnWBSCodeChanging(value); + this.SendPropertyChanging(); + this._WBSCode = value; + this.SendPropertyChanged("WBSCode"); + this.OnWBSCodeChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_ControlItemAndCycle_WBS_ControlItemAndCycle", Storage="_WBS_WorkPackage", ThisKey="WorkPackageId", OtherKey="WorkPackageId", IsForeignKey=true)] public WBS_WorkPackage WBS_WorkPackage { @@ -293779,6 +294001,8 @@ namespace Model private System.Nullable _JDWeights; + private string _WBSCode; + private EntitySet _Accident_AccidentPersonRecord; private EntitySet _Accident_AccidentReport; @@ -293869,6 +294093,8 @@ namespace Model partial void OnPlanCostChanged(); partial void OnJDWeightsChanging(System.Nullable value); partial void OnJDWeightsChanged(); + partial void OnWBSCodeChanging(string value); + partial void OnWBSCodeChanged(); #endregion public WBS_UnitWork() @@ -294292,6 +294518,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WBSCode", DbType="NVarChar(50)")] + public string WBSCode + { + get + { + return this._WBSCode; + } + set + { + if ((this._WBSCode != value)) + { + this.OnWBSCodeChanging(value); + this.SendPropertyChanging(); + this._WBSCode = value; + this.SendPropertyChanged("WBSCode"); + this.OnWBSCodeChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Accident_AccidentPersonRecord_ProjectData_WorkArea", Storage="_Accident_AccidentPersonRecord", ThisKey="UnitWorkId", OtherKey="WorkAreaId", DeleteRule="NO ACTION")] public EntitySet Accident_AccidentPersonRecord { @@ -295006,6 +295252,8 @@ namespace Model private string _PreWorkCode; + private string _WBSCode; + private EntitySet _WBS_ControlItemAndCycle; private EntityRef _WBS_UnitWork; @@ -295076,6 +295324,8 @@ namespace Model partial void OnJDWeightsChanged(); partial void OnPreWorkCodeChanging(string value); partial void OnPreWorkCodeChanged(); + partial void OnWBSCodeChanging(string value); + partial void OnWBSCodeChanged(); #endregion public WBS_WorkPackage() @@ -295690,6 +295940,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WBSCode", DbType="NVarChar(50)")] + public string WBSCode + { + get + { + return this._WBSCode; + } + set + { + if ((this._WBSCode != value)) + { + this.OnWBSCodeChanging(value); + this.SendPropertyChanging(); + this._WBSCode = value; + this.SendPropertyChanged("WBSCode"); + this.OnWBSCodeChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_ControlItemAndCycle_WBS_ControlItemAndCycle", Storage="_WBS_ControlItemAndCycle", ThisKey="WorkPackageId", OtherKey="WorkPackageId", DeleteRule="NO ACTION")] public EntitySet WBS_ControlItemAndCycle { @@ -295811,6 +296081,10 @@ namespace Model private System.Nullable _ThisNum; + private System.Nullable _PlanValue; + + private System.Nullable _ThisValue; + private EntityRef _WBS_WorkPackage; #region 可扩展性方法定义 @@ -295827,6 +296101,10 @@ namespace Model partial void OnPlanNumChanged(); partial void OnThisNumChanging(System.Nullable value); partial void OnThisNumChanged(); + partial void OnPlanValueChanging(System.Nullable value); + partial void OnPlanValueChanged(); + partial void OnThisValueChanging(System.Nullable value); + partial void OnThisValueChanged(); #endregion public WBS_WorkPackageDetail() @@ -295939,6 +296217,46 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanValue", DbType="Decimal(18,2)")] + public System.Nullable PlanValue + { + get + { + return this._PlanValue; + } + set + { + if ((this._PlanValue != value)) + { + this.OnPlanValueChanging(value); + this.SendPropertyChanging(); + this._PlanValue = value; + this.SendPropertyChanged("PlanValue"); + this.OnPlanValueChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisValue", DbType="Decimal(18,2)")] + public System.Nullable ThisValue + { + get + { + return this._ThisValue; + } + set + { + if ((this._ThisValue != value)) + { + this.OnThisValueChanging(value); + this.SendPropertyChanging(); + this._ThisValue = value; + this.SendPropertyChanged("ThisValue"); + this.OnThisValueChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_WorkPackageDetail_WBS_WorkPackage", Storage="_WBS_WorkPackage", ThisKey="WorkPackageId", OtherKey="WorkPackageId", IsForeignKey=true)] public WBS_WorkPackage WBS_WorkPackage { @@ -296246,6 +296564,10 @@ namespace Model private System.Nullable _ThisNum; + private System.Nullable _PlanValue; + + private System.Nullable _ThisValue; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -296262,6 +296584,10 @@ namespace Model partial void OnPlanNumChanged(); partial void OnThisNumChanging(System.Nullable value); partial void OnThisNumChanged(); + partial void OnPlanValueChanging(System.Nullable value); + partial void OnPlanValueChanged(); + partial void OnThisValueChanging(System.Nullable value); + partial void OnThisValueChanged(); #endregion public WBS_WorkPackageParentDetail() @@ -296389,6 +296715,46 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanValue", DbType="Decimal(18,2)")] + public System.Nullable PlanValue + { + get + { + return this._PlanValue; + } + set + { + if ((this._PlanValue != value)) + { + this.OnPlanValueChanging(value); + this.SendPropertyChanging(); + this._PlanValue = value; + this.SendPropertyChanged("PlanValue"); + this.OnPlanValueChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisValue", DbType="Decimal(18,2)")] + public System.Nullable ThisValue + { + get + { + return this._ThisValue; + } + set + { + if ((this._ThisValue != value)) + { + this.OnThisValueChanging(value); + this.SendPropertyChanging(); + this._ThisValue = value; + this.SendPropertyChanged("ThisValue"); + this.OnThisValueChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged;