diff --git a/DataBase/版本日志/SGGLDB_V2023-08-25.sql b/DataBase/版本日志/SGGLDB_V2023-08-25.sql new file mode 100644 index 00000000..55e3ea23 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2023-08-25.sql @@ -0,0 +1,151 @@ + +CREATE TABLE [dbo].[WBS_WorkPackageDetail]( + [WorkPackageDetailId] [nvarchar](50) NOT NULL, + [WorkPackageId] [nvarchar](50) NULL, + [Months] [datetime] NULL, + [PlanNum] [decimal](9, 2) NULL, + [ThisNum] [decimal](9, 2) NULL, + CONSTRAINT [PK_WBS_WorkPackageDetail] PRIMARY KEY CLUSTERED +( + [WorkPackageDetailId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] + +GO + +ALTER TABLE [dbo].[WBS_WorkPackageDetail] WITH CHECK ADD CONSTRAINT [FK_WBS_WorkPackageDetail_WBS_WorkPackage] FOREIGN KEY([WorkPackageId]) +REFERENCES [dbo].[WBS_WorkPackage] ([WorkPackageId]) +GO + +ALTER TABLE [dbo].[WBS_WorkPackageDetail] CHECK CONSTRAINT [FK_WBS_WorkPackageDetail_WBS_WorkPackage] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageDetail', @level2type=N'COLUMN',@level2name=N'WorkPackageDetailId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageDetail', @level2type=N'COLUMN',@level2name=N'WorkPackageId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'·' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageDetail', @level2type=N'COLUMN',@level2name=N'Months' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'㹤' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageDetail', @level2type=N'COLUMN',@level2name=N'PlanNum' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʵʹ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageDetail', @level2type=N'COLUMN',@level2name=N'ThisNum' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ֲϸ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageDetail' +GO + + + +CREATE 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(d.PlanNum,0)) from WBS_WorkPackageDetail d + where d.WorkPackageId=detail.WorkPackageId and Months=detail.Months)) as PlanNum, --¼ƻ +CONVERT(FLOAT,(select sum(ISNULL(d.ThisNum,0)) from WBS_WorkPackageDetail d + where d.WorkPackageId=detail.WorkPackageId and Months=detail.Months)) as ThisNum -- +FROM dbo.WBS_WorkPackageDetail AS detail +LEFT JOIN WBS_WorkPackage AS c ON c.WorkPackageId=detail.WorkPackageId + + + + + + + + + + + +GO + + + +CREATE TABLE [dbo].[WBS_WorkPackageParentDetail]( + [WorkPackageParentDetailId] [nvarchar](50) NOT NULL, + [ParentId] [nvarchar](50) NULL, + [ProjectId] [nvarchar](50) NULL, + [Months] [datetime] NULL, + [PlanNum] [decimal](9, 2) NULL, + [ThisNum] [decimal](9, 2) NULL, + CONSTRAINT [PK_WBS_WorkPackageParentDetail] PRIMARY KEY CLUSTERED +( + [WorkPackageParentDetailId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] + +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail', @level2type=N'COLUMN',@level2name=N'WorkPackageParentDetailId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail', @level2type=N'COLUMN',@level2name=N'ParentId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ŀid' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail', @level2type=N'COLUMN',@level2name=N'ProjectId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'·' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail', @level2type=N'COLUMN',@level2name=N'Months' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'㹤' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail', @level2type=N'COLUMN',@level2name=N'PlanNum' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʵʹ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail', @level2type=N'COLUMN',@level2name=N'ThisNum' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ֲϸ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WBS_WorkPackageParentDetail' +GO + + + +CREATE VIEW [dbo].[View_WBS_WorkPackageParentDetail] +AS +/********ϸ********/ +SELECT detail.WorkPackageParentDetailId, +detail.ParentId, +detail.ProjectId, +detail.Months, +CONVERT(FLOAT,(select sum(ISNULL(PlanNum,0)) from WBS_WorkPackageParentDetail +where ParentId=detail.ParentId and Months=detail.Months)) as PlanNum, --¼ƻԤ +CONVERT(FLOAT,(select sum(ISNULL(d.ThisNum,0)) from WBS_WorkPackageParentDetail d +where d.ParentId=detail.ParentId and Months=detail.Months)) as ThisNum, --ʵԤ +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 --ۼԤ +FROM dbo.WBS_WorkPackageParentDetail AS detail + + + + + + + +GO + + +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) +VALUES('B479EC55-E12A-4F91-AF3F-864DAAA136FB','¼','JDGL/Check/CompleteInput.aspx',20,'0','Menu_JDGL',0,1,1) +GO +INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) +VALUES('22724257-9FC3-4CE2-864C-8740F1F77F99','B479EC55-E12A-4F91-AF3F-864DAAA136FB','',4) +GO + +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) +VALUES('F0E296C3-6499-43E5-88CD-E00C5180D3BC','Ӯֵ','JDGL/Check/EarnedValueCurve.aspx',30,'0','Menu_JDGL',0,1,1) +GO \ No newline at end of file diff --git a/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql b/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql index e682de42..4c3d5381 100644 --- a/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql +++ b/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql @@ -61,3 +61,13 @@ INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) VALUES('F5055103-6182-43E0-93EC-7DD7BEF2B71C','E23F0879-3E9F-4E7B-9A2D-EFF34798D629','保存',4) GO +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) +VALUES('B479EC55-E12A-4F91-AF3F-864DAAA136FB','进度完成情况录入','JDGL/Check/CompleteInput.aspx',20,'0','Menu_JDGL',0,1,1) +GO +INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) +VALUES('22724257-9FC3-4CE2-864C-8740F1F77F99','B479EC55-E12A-4F91-AF3F-864DAAA136FB','保存',4) +GO + +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) +VALUES('F0E296C3-6499-43E5-88CD-E00C5180D3BC','赢得值曲线','JDGL/Check/EarnedValueCurve.aspx',30,'0','Menu_JDGL',0,1,1) +GO \ No newline at end of file diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index a55f7d03..49760735 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -31,6 +31,7 @@ prompt 4 false + latest pdbonly @@ -332,7 +333,9 @@ + + diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageDetailService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageDetailService.cs new file mode 100644 index 00000000..98777b83 --- /dev/null +++ b/SGGL/BLL/CQMS/WBS/WorkPackageDetailService.cs @@ -0,0 +1,194 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web.UI.WebControls; + +namespace BLL +{ + public class WorkPackageDetailService + { + /// + /// 根据Id获取一个费控项明细信息 + /// + /// 费控项明细Id + public static Model.WBS_WorkPackageDetail GetWorkPackageDetailByWorkPackageDetailId(string WorkPackageDetailId) + { + return Funs.DB.WBS_WorkPackageDetail.FirstOrDefault(e => e.WorkPackageDetailId == WorkPackageDetailId); + } + + /// + /// 根据WorkPackageId判断是否存在费控项明细信息 + /// + /// WorkPackageId + public static bool IsExitWorkPackageDetailByWorkPackageId(string WorkPackageId) + { + return (from x in Funs.DB.WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId select x).Count() > 0; + } + + /// + /// 根据WorkPackageId和年及月获取对应费控项明细信息 + /// + /// 对应wbsId + /// 对应标志 + /// 年 + /// 月 + public static Model.WBS_WorkPackageDetail GetWorkPackageDetailByWorkPackageIdAndMonths(string WorkPackageId, DateTime months) + { + return (from x in Funs.DB.WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId && x.Months == months select x).FirstOrDefault(); + } + + /// + /// 根据WorkPackageId和年及月获取对应费控项明细视图信息 + /// + /// 对应wbsId + /// 对应标志 + /// 年 + /// 月 + public static Model.View_WBS_WorkPackageDetail GetWorkPackageDetailViewByWorkPackageIdAndMonths(string WorkPackageId, DateTime months) + { + return (from x in Funs.DB.View_WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId && x.Months == months select x).FirstOrDefault(); + } + + /// + /// 根据WorkPackageId和年及月获取对应费控项明细信息 + /// + /// 对应wbsId + /// 对应标志 + /// 年 + /// 月 + public static Model.View_WBS_WorkPackageDetail GetViewWorkPackageDetailByWorkPackageIdAndMonth(string WorkPackageId, DateTime months) + { + return (from x in Funs.DB.View_WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId && x.Months == months select x).FirstOrDefault(); + } + + public static Model.WBS_WorkPackageDetail GetWBS_WorkPackageDetailByWorkPackageId(string WorkPackageId) + { + return (from x in Funs.DB.WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId select x).FirstOrDefault(); + } + + /// + /// + /// + /// + /// + /// + /// + public static bool IsExitWeekWorkPackageDetailByWorkPackageIdAndMonth(string WorkPackageId, DateTime months) + { + bool result = false; + var q = Funs.DB.WBS_WorkPackageDetail.FirstOrDefault(e => e.WorkPackageId == WorkPackageId && e.Months == months); + if (q != null) + { + result = true; + } + return result; + } + + /// + /// 根据年及月获取之前月份的对应费控项明细信息集合(含当月) + /// + /// 年 + /// 月 + public static List GetTotalWBS_WorkPackageDetailsByYearMonth2(string WorkPackageId, DateTime months) + { + return (from x in Funs.DB.WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId && x.Months <= months select x).ToList(); + } + + /// + /// 根据WorkPackageId月获取所有月份的对应费控项明细信息集合 + /// + /// WorkPackageId + public static List GetMonthWorkPackageDetailsByWorkPackageId(string WorkPackageId) + { + return (from x in Funs.DB.WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId orderby x.Months select x).ToList(); + } + + /// + /// 增加费控项明细 + /// + /// 费控项明细 + public static void AddWorkPackageDetail(Model.WBS_WorkPackageDetail WorkPackageDetail) + { + Model.SGGLDB db = Funs.DB; + Model.WBS_WorkPackageDetail newWBS_WorkPackageDetail = new Model.WBS_WorkPackageDetail(); + newWBS_WorkPackageDetail.WorkPackageDetailId = WorkPackageDetail.WorkPackageDetailId; + newWBS_WorkPackageDetail.WorkPackageId = WorkPackageDetail.WorkPackageId; + newWBS_WorkPackageDetail.Months = WorkPackageDetail.Months; + if (WorkPackageDetail.PlanNum == 0) + { + newWBS_WorkPackageDetail.PlanNum = null; + } + else + { + newWBS_WorkPackageDetail.PlanNum = WorkPackageDetail.PlanNum; + } + if (WorkPackageDetail.ThisNum == 0) + { + newWBS_WorkPackageDetail.ThisNum = null; + } + else + { + newWBS_WorkPackageDetail.ThisNum = WorkPackageDetail.ThisNum; + } + db.WBS_WorkPackageDetail.InsertOnSubmit(newWBS_WorkPackageDetail); + db.SubmitChanges(); + } + + /// + /// 修改费控项明细 + /// + /// 费控项明细 + public static void UpdateWorkPackageDetail(Model.WBS_WorkPackageDetail WorkPackageDetail) + { + Model.SGGLDB db = Funs.DB; + Model.WBS_WorkPackageDetail newWBS_WorkPackageDetail = db.WBS_WorkPackageDetail.First(e => e.WorkPackageDetailId == WorkPackageDetail.WorkPackageDetailId); + if (WorkPackageDetail.PlanNum == 0) + { + newWBS_WorkPackageDetail.PlanNum = null; + } + else + { + newWBS_WorkPackageDetail.PlanNum = WorkPackageDetail.PlanNum; + } + if (WorkPackageDetail.ThisNum == 0) + { + newWBS_WorkPackageDetail.ThisNum = null; + } + else + { + newWBS_WorkPackageDetail.ThisNum = WorkPackageDetail.ThisNum; + } + + db.SubmitChanges(); + } + + /// + /// 根据Id删除费控项明细信息 + /// + /// + public static void DeleteWorkPackageDetail(string WorkPackageDetailId) + { + Model.SGGLDB db = Funs.DB; + Model.WBS_WorkPackageDetail ins = db.WBS_WorkPackageDetail.First(e => e.WorkPackageDetailId == WorkPackageDetailId); + db.WBS_WorkPackageDetail.DeleteOnSubmit(ins); + db.SubmitChanges(); + } + + /// + /// 根据WorkPackageId删除费控项明细信息 + /// + /// + public static void DeleteWorkPackageDetailByWorkPackageId(string WorkPackageId) + { + Model.SGGLDB db = Funs.DB; + var details = from x in db.WBS_WorkPackageDetail where x.WorkPackageId == WorkPackageId select x; + if (details.Count() > 0) + { + db.WBS_WorkPackageDetail.DeleteAllOnSubmit(details); + db.SubmitChanges(); + } + } + } +} diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageParentDetailService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageParentDetailService.cs new file mode 100644 index 00000000..4f14044a --- /dev/null +++ b/SGGL/BLL/CQMS/WBS/WorkPackageParentDetailService.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BLL +{ + public class WorkPackageParentDetailService + { + /// + /// 根据Id获取一个费控项父级明细信息 + /// + /// 费控项父级明细Id + public static Model.WBS_WorkPackageParentDetail GetWorkPackageParentDetailByWorkPackageParentDetailId(string WorkPackageParentDetailId) + { + return Funs.DB.WBS_WorkPackageParentDetail.FirstOrDefault(e => e.WorkPackageParentDetailId == WorkPackageParentDetailId); + } + + /// + /// 根据ParentId判断是否存在费控项父级明细信息 + /// + /// WorkPackageParentId + public static bool IsExitWorkPackageParentDetailByParentId(string parentId) + { + return (from x in Funs.DB.WBS_WorkPackageParentDetail where x.ParentId == parentId select x).Count() > 0; + } + + /// + /// 根据WorkPackageParentId和年及月获取对应月费控项父级明细信息 + /// + /// 对应wbsId + /// 对应标志 + /// 年 + /// 月 + public static Model.WBS_WorkPackageParentDetail GetWorkPackageParentDetailByParentIdAndMonths(string parentId, DateTime months) + { + return (from x in Funs.DB.WBS_WorkPackageParentDetail where x.ParentId == parentId && x.Months == months select x).FirstOrDefault(); + } + + /// + /// 根据WorkPackageParentId和年及月获取对应月费控项父级明细信息 + /// + /// 对应wbsId + /// 对应标志 + /// 年 + /// 月 + public static Model.WBS_WorkPackageParentDetail GetWorkPackageParentDetailByParentIdAndMonths(string parentId, string projectId, DateTime months) + { + return (from x in Funs.DB.WBS_WorkPackageParentDetail where x.ParentId == parentId && x.ProjectId == projectId && x.Months == months select x).FirstOrDefault(); + } + + /// + /// 根据WorkPackageParentId和年及月获取对应费控项父级明细视图信息 + /// + /// 对应wbsId + /// 对应标志 + /// 年 + /// 月 + public static Model.View_WBS_WorkPackageParentDetail GetWorkPackageParentDetailViewByParentIdAndMonths(string parentId, DateTime months) + { + return (from x in Funs.DB.View_WBS_WorkPackageParentDetail where x.ParentId == parentId && x.Months == months select x).FirstOrDefault(); + } + + public static Model.WBS_WorkPackageParentDetail GetWorkPackageParentDetailByParentId(string parentId) + { + return (from x in Funs.DB.WBS_WorkPackageParentDetail where x.ParentId == parentId select x).FirstOrDefault(); + } + + /// + /// + /// + /// + /// + /// + /// + public static bool IsExitWBS_WorkPackageParentDetailByParentIdOrMonth(string parentId, DateTime months) + { + bool result = false; + var q = Funs.DB.WBS_WorkPackageParentDetail.FirstOrDefault(e => e.ParentId == parentId && e.Months == months); + if (q != null) + { + result = true; + } + return result; + } + + /// + /// 根据WorkPackageParentId月获取所有月份的对应费控项父级明细信息集合 + /// + /// WorkPackageParentId + public static List GetTotalWorkPackageParentDetailsByParentId(string parentId) + { + return (from x in Funs.DB.WBS_WorkPackageParentDetail where x.ParentId == parentId orderby x.Months select x).ToList(); + } + + /// + /// 增加费控项父级明细 + /// + /// 费控项父级明细 + public static void AddWorkPackageParentDetail(Model.WBS_WorkPackageParentDetail WorkPackageParentDetail) + { + Model.SGGLDB db = Funs.DB; + Model.WBS_WorkPackageParentDetail newWBS_WorkPackageParentDetail = new Model.WBS_WorkPackageParentDetail(); + newWBS_WorkPackageParentDetail.WorkPackageParentDetailId = WorkPackageParentDetail.WorkPackageParentDetailId; + newWBS_WorkPackageParentDetail.ParentId = WorkPackageParentDetail.ParentId; + newWBS_WorkPackageParentDetail.ProjectId = WorkPackageParentDetail.ProjectId; + newWBS_WorkPackageParentDetail.Months = WorkPackageParentDetail.Months; + newWBS_WorkPackageParentDetail.PlanNum = WorkPackageParentDetail.PlanNum; + newWBS_WorkPackageParentDetail.ThisNum = WorkPackageParentDetail.ThisNum; + + db.WBS_WorkPackageParentDetail.InsertOnSubmit(newWBS_WorkPackageParentDetail); + db.SubmitChanges(); + } + + /// + /// 修改费控项父级明细 + /// + /// 费控项父级明细 + public static void UpdateWorkPackageParentDetail(Model.WBS_WorkPackageParentDetail WorkPackageParentDetail) + { + Model.SGGLDB db = Funs.DB; + Model.WBS_WorkPackageParentDetail newWBS_WorkPackageParentDetail = db.WBS_WorkPackageParentDetail.First(e => e.WorkPackageParentDetailId == WorkPackageParentDetail.WorkPackageParentDetailId); + newWBS_WorkPackageParentDetail.PlanNum = WorkPackageParentDetail.PlanNum; + newWBS_WorkPackageParentDetail.ThisNum = WorkPackageParentDetail.ThisNum; + + db.SubmitChanges(); + } + + /// + /// 根据Id删除费控项父级明细信息 + /// + /// + public static void DeleteWBS_WorkPackageParentDetail(string WorkPackageParentDetailId) + { + Model.SGGLDB db = Funs.DB; + Model.WBS_WorkPackageParentDetail ins = db.WBS_WorkPackageParentDetail.First(e => e.WorkPackageParentDetailId == WorkPackageParentDetailId); + db.WBS_WorkPackageParentDetail.DeleteOnSubmit(ins); + db.SubmitChanges(); + } + + /// + /// 根据WorkPackageParentId删除费控项父级明细信息 + /// + /// + public static void DeleteWBS_WorkPackageParentDetailByWorkPackageParentId(string parentId) + { + Model.SGGLDB db = Funs.DB; + var details = from x in db.WBS_WorkPackageParentDetail where x.ParentId == parentId select x; + if (details.Count() > 0) + { + db.WBS_WorkPackageParentDetail.DeleteAllOnSubmit(details); + db.SubmitChanges(); + } + } + } +} diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs index cacebc16..3489bc14 100644 --- a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs +++ b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs @@ -251,8 +251,28 @@ namespace BLL { IQueryable workPackages = from x in db.WBS_WorkPackage where x.ProjectId == projectId select x; IQueryable unitWorks = from x in db.WBS_UnitWork where x.ProjectId == projectId select x; + IQueryable getDetails = from x in db.View_WBS_WorkPackageDetail where x.ProjectId == projectId select x; List getWBSs = (from x in db.View_WBS where x.ProjectId == projectId select x).ToList(); List WBSList = new List(); + DateTime startDate, endDate, startMonth, endMonth; + List months = new List(); + var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == projectId); + if (project.StartDate != null) + { + startDate = Convert.ToDateTime(project.StartDate); + endDate = DateTime.Now; + if (project.EndDate != null) + { + endDate = Convert.ToDateTime(project.EndDate); + } + startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01"); + endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01"); + do + { + months.Add(startMonth); + startMonth = startMonth.AddMonths(1); + } while (startMonth <= endMonth); + } DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Id", typeof(String))); table.Columns.Add(new DataColumn("SupId", typeof(String))); @@ -272,6 +292,11 @@ namespace BLL table.Columns.Add(new DataColumn("PlanCost", typeof(String))); table.Columns.Add(new DataColumn("PreWorkCode", typeof(String))); table.Columns.Add(new DataColumn("Code", typeof(String))); + for (int i = 0; i < months.Count; i++) + { + table.Columns.Add(new DataColumn("PlanNum" + (i + 1).ToString(), typeof(String))); + table.Columns.Add(new DataColumn("ThisNum" + (i + 1).ToString(), typeof(String))); + } if (getWBSs.Count() > 0) { List newList = new List(); @@ -347,6 +372,19 @@ namespace BLL row[15] = decimal.Round(Convert.ToDecimal(workPackage.PlanCost), 2); } row[16] = workPackage.PreWorkCode; + var details = getDetails.Where(x => x.WorkPackageId == item.Id).ToList(); + foreach (var item1 in details) + { + var index = months.FindIndex(x => x.Equals(item1.Months)); + if (item1.PlanNum != 0) + { + row[18 + index * 2] = decimal.Round(Convert.ToDecimal(item1.PlanNum), 2); + } + if (item1.ThisNum != 0) + { + row[19 + index * 2] = decimal.Round(Convert.ToDecimal(item1.ThisNum), 2); + } + } } } } diff --git a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs index 08b0085b..e34ec2fc 100644 --- a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs +++ b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs @@ -258,5 +258,114 @@ namespace Web.Controls Controls.Add(chart1); } + + /// + /// 创建自定义Chart图形 + /// + /// 数据源 + /// 宽度 + /// 高度 + public void CreateMaryChartJD(DataTable dt, int width, int height, string projectShortName) + { + Chart chart1 = new Chart(); + chart1.ID = "chart1"; + chart1.BackColor = Color.WhiteSmoke; + chart1.ImageLocation = "~/Images/ChartPic_#SEQ(300,3)"; + chart1.BorderlineDashStyle = ChartDashStyle.Solid; + chart1.Palette = ChartColorPalette.BrightPastel; + chart1.BackSecondaryColor = Color.White; + chart1.BackGradientStyle = GradientStyle.TopBottom; + chart1.BorderWidth = 2; + chart1.BorderColor = Color.FromArgb(26, 59, 105); + chart1.ImageType = ChartImageType.Png; + + chart1.Width = width; + chart1.Height = height; + + Title title = new Title(); + title.Text = "赢得值曲线"; + if (!string.IsNullOrEmpty(projectShortName)) + { + title.Text = projectShortName + "赢得值曲线"; + } + title.Text = BLL.Funs.GetSubStr(title.Text, 30); + title.ToolTip = title.Text; + title.ShadowColor = Color.FromArgb(32, 0, 0, 0); + title.Font = new Font("Trebuchet MS", 10F, FontStyle.Bold); + title.ShadowOffset = 3; + title.ForeColor = Color.FromArgb(26, 59, 105); + chart1.Titles.Add(title); + + Legend legend1 = new Legend(); + legend1.TextWrapThreshold = 1; + legend1.Docking = Docking.Right; + legend1.Alignment = StringAlignment.Center; + legend1.BackColor = Color.Transparent; + legend1.Font = new Font(new FontFamily("Trebuchet MS"), 8); + legend1.LegendStyle = LegendStyle.Column; + legend1.IsEquallySpacedItems = true; + legend1.IsTextAutoFit = false; + chart1.Legends.Add(legend1); + + ChartArea chartArea = new ChartArea(); + chartArea.BackColor = Color.Transparent; + chartArea.AxisX.IsLabelAutoFit = false; + chartArea.AxisY.IsLabelAutoFit = false; + chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular); + chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular); + //chartArea.AxisY.LabelStyle.Format = "#(万元)"; + chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64); + chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64); + chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64); + chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64); + chartArea.AxisX.Interval = 1; + chartArea.Area3DStyle.Enable3D = false; + chart1.ChartAreas.Add(chartArea); + + 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; + + for (int i = 0; i < chart1.Series["本月概算工程量"].Points.Count; i++) + { + chart1.Series["本月概算工程量"].Points[i].ToolTip = "本月概算工程量\n#VALX\n#VALY"; + } + + chart1.Series["本月实际工程量"].Points.DataBindXY(dv, "月份", dv, "本月实际工程量"); + chart1.Series["本月实际工程量"].ChartType = SeriesChartType.Column; + + for (int i = 0; i < chart1.Series["本月实际工程量"].Points.Count; i++) + { + 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; + + for (int i = 0; i < chart1.Series["累计概算工程量"].Points.Count; i++) + { + 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; + + for (int i = 0; i < chart1.Series["累计实际工程量"].Points.Count; i++) + { + chart1.Series["累计实际工程量"].Points[i].ToolTip = "累计实际工程量\n#VALX\n#VALY"; + } + + Controls.Add(chart1); + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 1f77271b..c9bce4a1 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1126,6 +1126,8 @@ + + @@ -7666,6 +7668,7 @@ Defect.aspx + ASPXCodeBehind Defect.aspx @@ -11509,6 +11512,20 @@ index.aspx + + CompleteInput.aspx + ASPXCodeBehind + + + CompleteInput.aspx + + + EarnedValueCurve.aspx + ASPXCodeBehind + + + EarnedValueCurve.aspx + PlanSet.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx new file mode 100644 index 00000000..1e536781 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx @@ -0,0 +1,105 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CompleteInput.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.CompleteInput" %> + + + + + + 全项目录入 + + + +
+ + + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs new file mode 100644 index 00000000..dfa3e85f --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.cs @@ -0,0 +1,331 @@ +using BLL; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class CompleteInput : PageBase + { + #region 定义变量 + /// + /// 列数量 + /// + public int ColumnNum + { + get + { + return (int)ViewState["ColumnNum"]; + } + set + { + ViewState["ColumnNum"] = value; + } + } + + /// + /// 上传预设的虚拟路径 + /// + private string initPath = Const.ExcelUrl; + + /// + /// 错误集合 + /// + public static string errorInfos = string.Empty; + + /// + /// 月份集合 + /// + public static List months = new List(); + #endregion + + /// + /// 加载表头 + /// + protected void Page_Init(object sender, EventArgs e) + { + InitGrid(); + } + + #region 表头 + /// + /// 表头 + /// + private void InitGrid() + { + ColumnNum = 0; + months.Clear(); + var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId); + if (project != null) + { + DateTime startDate, endDate, startMonth, endMonth; + if (project.StartDate != null) + { + startDate = Convert.ToDateTime(project.StartDate); + endDate = DateTime.Now; + if (project.EndDate != null) + { + endDate = Convert.ToDateTime(project.EndDate); + } + startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01"); + endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01"); + do + { + months.Add(startMonth); + startMonth = startMonth.AddMonths(1); + } while (startMonth <= endMonth); + } + for (int i = 0; i < months.Count; i++) + { + RenderField rdPlan = new RenderField(); + rdPlan.ColumnID = string.Format("{0:yyyy-MM}", months[i]) + "Plan"; + rdPlan.Width = Unit.Pixel(100); + rdPlan.DataField = "PlanNum" + (i + 1).ToString(); + rdPlan.FieldType = FieldType.Double; + rdPlan.HeaderText = string.Format("{0:yyyy年MM月}", months[i]) + "
概算工程量"; + rdPlan.HeaderTextAlign = TextAlign.Center; + NumberBox numPlan = new NumberBox(); + numPlan.NoNegative = true; + numPlan.NoDecimal = false; + rdPlan.Editor.Add(numPlan); + Grid1.Columns.Add(rdPlan); + + RenderField rdThis = new RenderField(); + rdThis.ColumnID = string.Format("{0:yyyy-MM}", months[i]) + "This"; + rdThis.Width = Unit.Pixel(100); + rdThis.DataField = "ThisNum" + (i + 1).ToString(); + rdThis.FieldType = FieldType.Double; + rdThis.HeaderText = string.Format("{0:yyyy年MM月}", months[i]) + "
实际工程量"; + rdThis.HeaderTextAlign = TextAlign.Center; + NumberBox numReal = new NumberBox(); + numReal.NoNegative = true; + numReal.NoDecimal = false; + rdThis.Editor.Add(numReal); + Grid1.Columns.Add(rdThis); + } + RenderField rdId = new RenderField(); + rdId.ColumnID = "ShowId"; + rdId.Width = Unit.Pixel(350); + rdId.DataField = "ShowId"; + rdId.FieldType = FieldType.String; + rdId.HeaderText = "ShowId"; + rdId.HeaderTextAlign = TextAlign.Center; + Grid1.Columns.Add(rdId); + rdId.Hidden = true; + ColumnNum = 9 + months.Count * 2 + 1; + } + } + #endregion + + #region 加载 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + errorInfos = string.Empty; + string Id = Request.Params["Id"]; + DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty); + Grid1.DataSource = table; + Grid1.DataBind(); + for (int i = 0; i < this.Grid1.Rows.Count; i++) + { + if (string.IsNullOrEmpty(this.Grid1.Rows[i].DataKeys[2].ToString())) + { + System.Web.UI.WebControls.CheckBox cbIsMileStone = (System.Web.UI.WebControls.CheckBox)(this.Grid1.Rows[i].FindControl("cbIsMileStone")); + cbIsMileStone.Visible = false; + foreach (GridColumn column in Grid1.Columns) + { + if (column.ColumnIndex != 0 && column.ColumnIndex != 1) + { + this.Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable"; + } + } + } + else + { + System.Web.UI.WebControls.CheckBox cbIsMileStone = (System.Web.UI.WebControls.CheckBox)(this.Grid1.Rows[i].FindControl("cbIsMileStone")); + Model.WBS_WorkPackage workPackage = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(this.Grid1.Rows[i].DataKeys[2].ToString()); + if (workPackage != null && workPackage.IsMileStone == true) + { + cbIsMileStone.Checked = true; + } + } + } + } + } + #endregion + + #region 保存 + /// + /// 保存按钮 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + Save(); + ShowNotify("保存成功!", MessageBoxIcon.Success); + //PageContext.RegisterStartupScript(ActiveWindow.GetHideReference()); + } + + private void Save() + { + decimal changePlanNum = 0, changeThisNum = 0, //当月总变化完成成本、完成预算 + oldPlanNum = 0, oldThisNum = 0, + PlanNum = 0, ThisNum = 0; + Model.SGGLDB db = Funs.DB; + var oldViewInfos = from x in db.WBS_WorkPackage + where x.ProjectId == this.CurrUser.LoginProjectId + select x; + var unitWorks = from x in db.WBS_UnitWork + where x.ProjectId == this.CurrUser.LoginProjectId + select x; + string[] ids = this.hdId.Text.Split(','); + if (ids.Length > 0) + { + foreach (JObject mergedRow in Grid1.GetMergedData()) + { + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + if (this.Grid1.Rows[i].DataKeys[2] != null && ids.Contains(this.Grid1.Rows[i].DataKeys[2].ToString())) + { + Model.WBS_WorkPackage WorkPackage = oldViewInfos.FirstOrDefault(x => x.WorkPackageId == this.Grid1.Rows[i].DataKeys[2].ToString()); + if (WorkPackage != null) + { + string WorkPackageId = WorkPackage.WorkPackageId; + BLL.WorkPackageService.UpdateWorkPackage(WorkPackage); + for (int j = 0; j < months.Count; j++) + { + oldPlanNum = 0; + oldThisNum = 0; + changePlanNum = 0; + changeThisNum = 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]); + if (WorkPackageDetail != null) + { + oldPlanNum = WorkPackageDetail.PlanNum ?? 0; + oldThisNum = WorkPackageDetail.ThisNum ?? 0; + WorkPackageDetail.PlanNum = Funs.GetNewDecimalOrZero(planNum); + WorkPackageDetail.ThisNum = Funs.GetNewDecimalOrZero(thisNum); + PlanNum = WorkPackageDetail.PlanNum ?? 0; + ThisNum = WorkPackageDetail.ThisNum ?? 0; + } + else + { + WorkPackageDetail = new Model.WBS_WorkPackageDetail(); + WorkPackageDetail.WorkPackageDetailId = SQLHelper.GetNewID(); + WorkPackageDetail.WorkPackageId = WorkPackageId; + WorkPackageDetail.Months = months[j]; + WorkPackageDetail.PlanNum = Funs.GetNewDecimalOrZero(planNum); + WorkPackageDetail.ThisNum = Funs.GetNewDecimalOrZero(thisNum); + PlanNum = WorkPackageDetail.PlanNum ?? 0; + ThisNum = WorkPackageDetail.ThisNum ?? 0; + db.WBS_WorkPackageDetail.InsertOnSubmit(WorkPackageDetail); + } + //累加变化值,计算总的变化值 + changePlanNum += PlanNum - oldPlanNum; + changeThisNum += ThisNum - oldThisNum; + ////更新分部分项 + UpdateWorkPackageParent(db, WorkPackage.SuperWorkPackageId, months[j], changePlanNum, changeThisNum); + ////更新单位工程 + Model.WBS_WorkPackageParentDetail unitWorkDetail = BLL.WorkPackageParentDetailService.GetWorkPackageParentDetailByParentIdAndMonths(WorkPackage.UnitWorkId, months[j]); + if (unitWorkDetail != null) + { + unitWorkDetail.PlanNum += changePlanNum; + unitWorkDetail.ThisNum += changeThisNum; + //BLL.WorkPackageParentDetailService.UpdateWorkPackageParentDetail(unitWorkDetail); + } + else + { + unitWorkDetail = new Model.WBS_WorkPackageParentDetail(); + unitWorkDetail.WorkPackageParentDetailId = SQLHelper.GetNewID(); + unitWorkDetail.ParentId = WorkPackage.UnitWorkId; + unitWorkDetail.Months = months[j]; + unitWorkDetail.PlanNum = changePlanNum; + unitWorkDetail.ThisNum = changeThisNum; + //BLL.WorkPackageParentDetailService.AddWorkPackageParentDetail(unitWorkDetail); + db.WBS_WorkPackageParentDetail.InsertOnSubmit(unitWorkDetail); + } + ////更新建筑、安装工程 + Model.WBS_UnitWork unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == WorkPackage.UnitWorkId); + if (unitWork != null) + { + Model.WBS_WorkPackageParentDetail projectType = BLL.WorkPackageParentDetailService.GetWorkPackageParentDetailByParentIdAndMonths(unitWork.ProjectType, this.CurrUser.LoginProjectId, months[j]); + if (projectType != null) + { + projectType.PlanNum += changePlanNum; + projectType.ThisNum += changeThisNum; + //BLL.WorkPackageParentDetailService.UpdateWorkPackageParentDetail(cnProfessionDetail); + } + else + { + projectType = new Model.WBS_WorkPackageParentDetail(); + projectType.WorkPackageParentDetailId = SQLHelper.GetNewID(); + projectType.ParentId = unitWork.ProjectType; + projectType.ProjectId = this.CurrUser.LoginProjectId; + projectType.Months = months[j]; + projectType.PlanNum = changePlanNum; + projectType.ThisNum = changeThisNum; + //BLL.WorkPackageParentDetailService.AddWorkPackageParentDetail(cnProfessionDetail); + db.WBS_WorkPackageParentDetail.InsertOnSubmit(projectType); + } + } + db.SubmitChanges(); + } + } + } + } + } + } + + #region 更新分部分项 + /// + /// 更新分部分项 + /// + /// + /// + /// + /// + private void UpdateWorkPackageParent(Model.SGGLDB db, string SuperWorkPackageId, DateTime months, decimal changePlanNum, decimal changeThisNum) + { + Model.WBS_WorkPackage workPackage = db.WBS_WorkPackage.FirstOrDefault(x => x.WorkPackageId == SuperWorkPackageId); + if (workPackage != null) + { + Model.WBS_WorkPackageParentDetail parentDetail = BLL.WorkPackageParentDetailService.GetWorkPackageParentDetailByParentIdAndMonths(SuperWorkPackageId, months); + if (parentDetail != null) + { + parentDetail.PlanNum += changePlanNum; + parentDetail.ThisNum += changeThisNum; + //BLL.WorkPackageParentDetailService.UpdateWorkPackageParentDetail(parentDetail); + } + else + { + parentDetail = new Model.WBS_WorkPackageParentDetail(); + parentDetail.WorkPackageParentDetailId = SQLHelper.GetNewID(); + parentDetail.ParentId = SuperWorkPackageId; + parentDetail.Months = months; + parentDetail.PlanNum = changePlanNum; + parentDetail.ThisNum = changeThisNum; + //BLL.WorkPackageParentDetailService.AddWorkPackageParentDetail(parentDetail); + db.WBS_WorkPackageParentDetail.InsertOnSubmit(parentDetail); + } + if (workPackage.SuperWorkPackageId != null) //还存在上级节点,需要继续循环 + { + UpdateWorkPackageParent(db, workPackage.SuperWorkPackageId, months, changePlanNum, changeThisNum); + } + } + } + #endregion + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.designer.cs new file mode 100644 index 00000000..c6abcb68 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/CompleteInput.aspx.designer.cs @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class CompleteInput { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// hdId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox hdId; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// IsMileStone 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TemplateField IsMileStone; + + /// + /// cbIsMileStone 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.CheckBox cbIsMileStone; + } +} diff --git a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx new file mode 100644 index 00000000..bc35682e --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx @@ -0,0 +1,72 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EarnedValueCurve.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.EarnedValueCurve" %> +<%@ Register Src="~/Controls/ChartControl.ascx" TagName="ChartControl" TagPrefix="uc1" %> + + + + + + 赢得值曲线 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+ + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs new file mode 100644 index 00000000..f8ea22d8 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.cs @@ -0,0 +1,388 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class EarnedValueCurve : PageBase + { + #region 加载 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindChart(); + InitTreeMenu(); + } + } + #endregion + + #region 加载 + /// + /// 树加载 + /// + private void InitTreeMenu() + { + this.trWBS.Nodes.Clear(); + this.trWBS.ShowBorder = false; + this.trWBS.ShowHeader = false; + this.trWBS.EnableIcons = true; + this.trWBS.AutoScroll = true; + this.trWBS.EnableSingleClickExpand = true; + + TreeNode rootNode1 = new TreeNode(); + rootNode1.Text = "建筑工程"; + rootNode1.NodeID = "1"; + rootNode1.CommandName = "ProjectType"; + rootNode1.EnableExpandEvent = true; + rootNode1.EnableClickEvent = true; + this.trWBS.Nodes.Add(rootNode1); + TreeNode emptyNode = new TreeNode(); + emptyNode.Text = ""; + emptyNode.NodeID = ""; + rootNode1.Nodes.Add(emptyNode); + //this.GetNodes(rootNode1.Nodes, rootNode1.NodeID); + + TreeNode rootNode2 = new TreeNode(); + rootNode2.Text = "安装工程"; + rootNode2.NodeID = "2"; + rootNode2.CommandName = "ProjectType"; + rootNode2.EnableExpandEvent = true; + rootNode2.EnableClickEvent = true; + this.trWBS.Nodes.Add(rootNode2); + rootNode2.Nodes.Add(emptyNode); + } + + #region 遍历节点方法 + /// + /// 遍历节点方法 + /// + /// 节点集合 + /// 父节点 + private void GetNodes(TreeNodeCollection nodes, string parentId) + { + List workPackages = new List(); + if (parentId.Length == 1) //工程类型节点 + { + workPackages = (from x in Funs.DB.WBS_WorkPackageProject + where x.SuperWorkPack == null && x.ProjectId == this.CurrUser.LoginProjectId && x.ProjectType == parentId + orderby x.PackageCode ascending + select x).ToList(); + } + else + { + workPackages = (from x in Funs.DB.WBS_WorkPackageProject + where x.SuperWorkPack == parentId && x.ProjectId == this.CurrUser.LoginProjectId + orderby x.PackageCode ascending + select x).ToList(); + } + foreach (var q in workPackages) + { + TreeNode newNode = new TreeNode(); + newNode.Text = q.PackageContent; + newNode.NodeID = q.WorkPackageCode; + newNode.CommandName = "WorkPackage"; + newNode.EnableClickEvent = true; + nodes.Add(newNode); + } + + for (int i = 0; i < nodes.Count; i++) + { + GetNodes(nodes[i].Nodes, nodes[i].NodeID); + } + } + #endregion + #endregion + + #region 树节点展开 + /// + /// 树节点展开 + /// + /// + /// + protected void trWBS_NodeExpand(object sender, TreeNodeEventArgs e) + { + e.Node.Nodes.Clear(); + if (e.Node.CommandName == "ProjectType") //展开工程类型 + { + var trUnitWork = from x in Funs.DB.WBS_UnitWork + where x.ProjectId == this.CurrUser.LoginProjectId && x.SuperUnitWork == null && x.ProjectType == e.Node.NodeID + select x; + trUnitWork = trUnitWork.OrderBy(x => x.UnitWorkCode); + if (trUnitWork.Count() > 0) + { + foreach (var trUnitWorkItem in trUnitWork) + { + TreeNode newNode = new TreeNode(); + newNode.Text = trUnitWorkItem.UnitWorkCode + "-" + trUnitWorkItem.UnitWorkName; + newNode.NodeID = trUnitWorkItem.UnitWorkId; + newNode.CommandName = "UnitWork"; + newNode.EnableExpandEvent = true; + newNode.EnableClickEvent = true; + e.Node.Nodes.Add(newNode); + if (BLL.WorkPackageService.GetWorkPackages1ByUnitWorkId(trUnitWorkItem.UnitWorkId.ToString()) != null) + { + TreeNode temp = new TreeNode(); + temp.Text = "temp"; + temp.NodeID = "temp"; + newNode.Nodes.Add(temp); + } + } + } + } + else if (e.Node.CommandName == "UnitWork") //展开单位工程节点 + { + var workPackages = from x in Funs.DB.WBS_WorkPackage where x.UnitWorkId == e.NodeID && x.SuperWorkPack == null && x.IsApprove == true orderby x.WorkPackageCode select x; + foreach (var workPackage in workPackages) + { + TreeNode newNode = new TreeNode(); + newNode.Text = workPackage.PackageContent; + newNode.NodeID = workPackage.WorkPackageId; + newNode.CommandName = "WorkPackage"; + newNode.EnableExpandEvent = true; + newNode.EnableClickEvent = true; + e.Node.Nodes.Add(newNode); + var childWorkPackages = from x in Funs.DB.WBS_WorkPackage where x.SuperWorkPackageId == workPackage.WorkPackageId && x.IsApprove == true select x; + if (childWorkPackages.Count() > 0) + { + TreeNode emptyNode = new TreeNode(); + emptyNode.Text = ""; + emptyNode.NodeID = ""; + newNode.Nodes.Add(emptyNode); + } + } + } + else if (e.Node.CommandName == "WorkPackage") //展开工作包节点 + { + var workPackages = from x in Funs.DB.WBS_WorkPackage where x.SuperWorkPackageId == e.Node.NodeID && x.IsApprove == true orderby x.WorkPackageCode select x; + if (workPackages.Count() > 0) //存在子单位工程 + { + foreach (var workPackage in workPackages) + { + TreeNode newNode = new TreeNode(); + newNode.Text = workPackage.PackageContent; + newNode.NodeID = workPackage.WorkPackageId; + newNode.CommandName = "WorkPackage"; + newNode.EnableExpandEvent = true; + newNode.EnableClickEvent = true; + e.Node.Nodes.Add(newNode); + var childWorkPackages = from x in Funs.DB.WBS_WorkPackage where x.SuperWorkPackageId == workPackage.WorkPackageId && x.IsApprove == true select x; + if (childWorkPackages.Count() > 0) + { + TreeNode emptyNode = new TreeNode(); + emptyNode.Text = ""; + emptyNode.NodeID = ""; + newNode.Nodes.Add(emptyNode); + } + } + } + } + BindChart(); + } + #endregion + + #region Tree点击事件 + /// + /// Tree点击事件 + /// + /// + /// + protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindChart(); + } + #endregion + + #region 数据绑定 + /// + /// 数据绑定 + /// + private void BindChart() + { + string id = this.trWBS.SelectedNodeID; + if (!string.IsNullOrEmpty(id)) + { + Model.WBS_WorkPackage WorkPackage = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(id); + 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 '累计实际工程量' " + + "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[] + { + new SqlParameter("@Id",id), + //new SqlParameter("@Months",date), + }; + DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); + this.Grid1.DataSource = dt; + this.Grid1.DataBind(); + 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()); + if (acwp == lastacwp) + { + if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) + { + dt.Rows[i]["累计概算工程量"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计概算工程量"] = acwp; + } + } + else + { + dt.Rows[i]["累计概算工程量"] = acwp; + } + if (bcwp == lastbcwp) + { + if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) + { + dt.Rows[i]["累计实际工程量"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计实际工程量"] = bcwp; + } + } + else + { + dt.Rows[i]["累计实际工程量"] = bcwp; + } + lastacwp = acwp; + lastbcwp = bcwp; + } + this.ChartEV.CreateMaryChartJD(dt, 1020, 420, null); + } + 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 '累计实际工程量' " + + "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[] + { + new SqlParameter("@Id",id), + //new SqlParameter("@Months",date), + }; + if (this.trWBS.SelectedNode.CommandName == "ProjectType") + { + strSql = strSql.Replace("order by t.Months", " and ProjectId='" + this.CurrUser.LoginProjectId + "' order by t.Months"); + } + DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); + this.Grid1.DataSource = dt; + this.Grid1.DataBind(); + 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()); + if (acwp == lastacwp) + { + if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) + { + dt.Rows[i]["累计概算工程量"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计概算工程量"] = acwp; + } + } + else + { + dt.Rows[i]["累计概算工程量"] = acwp; + } + if (bcwp == lastbcwp) + { + if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now) + { + dt.Rows[i]["累计实际工程量"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计实际工程量"] = bcwp; + } + } + else + { + dt.Rows[i]["累计实际工程量"] = bcwp; + } + lastacwp = acwp; + lastbcwp = bcwp; + } + this.ChartEV.CreateMaryChartJD(dt, 1020, 420, null); + } + } + } + #endregion + + #region 将DataTable行列转换 + /// + /// 将DataTable行列转换 + /// + /// 要转换的DataTable + /// 要作为Column的哪列 + /// + private DataTable Col2Row(DataTable src, int columnHead) + { + DataTable result = new DataTable(); + DataColumn myHead = src.Columns[columnHead]; + result.Columns.Add(myHead.ColumnName); + FineUIPro.RenderField bf; + bf = new FineUIPro.RenderField(); + bf.ColumnID = myHead.ColumnName; + bf.DataField = myHead.ColumnName; + bf.HeaderText = myHead.ColumnName; + Grid1.Columns.Add(bf); + for (int i = 0; i < src.Rows.Count; i++) + { + result.Columns.Add(src.Rows[i][myHead].ToString()); + bf = new FineUIPro.RenderField(); + bf.ColumnID = src.Rows[i][myHead].ToString(); + bf.DataField = src.Rows[i][myHead].ToString(); + bf.HeaderText = src.Rows[i][myHead].ToString(); + Grid1.Columns.Add(bf); + } + Grid1.DataKeyNames = new string[] { "月份" }; + foreach (DataColumn col in src.Columns) + { + if (col == myHead) + continue; + object[] newRow = new object[src.Rows.Count + 1]; + newRow[0] = col.ColumnName; + for (int i = 0; i < src.Rows.Count; i++) + { + newRow[i + 1] = src.Rows[i][col]; + } + result.Rows.Add(newRow); + } + return result; + } + + private DataTable Col2Row(DataTable src, string columnHead) + { + for (int i = 0; i < src.Columns.Count; i++) + { + if (src.Columns[i].ColumnName.ToUpper() == columnHead.ToUpper()) + return Col2Row(src, i); + } + return new DataTable(); + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.designer.cs new file mode 100644 index 00000000..ca5f91c3 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/EarnedValueCurve.aspx.designer.cs @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class EarnedValueCurve { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// trWBS 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree trWBS; + + /// + /// panelCenterRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelCenterRegion; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// cpEV 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel cpEV; + + /// + /// ChartEV 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::Web.Controls.ChartControl ChartEV; + } +} diff --git a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs index cbde1d5b..18ebb89c 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs @@ -94,7 +94,7 @@ namespace FineUIPro.Web.JDGL.Check { JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); - if (this.Grid1.Rows[i].DataKeys[2] != null) + if (this.Grid1.Rows[i].DataKeys[2] != null && ids.Contains(this.Grid1.Rows[i].DataKeys[2].ToString())) { Model.WBS_WorkPackage workPackage = workPackages.FirstOrDefault(x => x.WorkPackageId == this.Grid1.Rows[i].DataKeys[2].ToString()); if (workPackage != null) diff --git a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml index 63dbade9..b241c0a1 100644 --- a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml @@ -2,4 +2,6 @@ + + \ No newline at end of file diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index c7d92579..b11c3ef3 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -1652,9 +1652,15 @@ namespace Model partial void InsertWBS_WorkPackage(WBS_WorkPackage instance); partial void UpdateWBS_WorkPackage(WBS_WorkPackage instance); partial void DeleteWBS_WorkPackage(WBS_WorkPackage instance); + partial void InsertWBS_WorkPackageDetail(WBS_WorkPackageDetail instance); + partial void UpdateWBS_WorkPackageDetail(WBS_WorkPackageDetail instance); + partial void DeleteWBS_WorkPackageDetail(WBS_WorkPackageDetail instance); partial void InsertWBS_WorkPackageInit(WBS_WorkPackageInit instance); partial void UpdateWBS_WorkPackageInit(WBS_WorkPackageInit instance); partial void DeleteWBS_WorkPackageInit(WBS_WorkPackageInit instance); + partial void InsertWBS_WorkPackageParentDetail(WBS_WorkPackageParentDetail instance); + partial void UpdateWBS_WorkPackageParentDetail(WBS_WorkPackageParentDetail instance); + partial void DeleteWBS_WorkPackageParentDetail(WBS_WorkPackageParentDetail instance); partial void InsertWBS_WorkPackageProject(WBS_WorkPackageProject instance); partial void UpdateWBS_WorkPackageProject(WBS_WorkPackageProject instance); partial void DeleteWBS_WorkPackageProject(WBS_WorkPackageProject instance); @@ -6745,6 +6751,22 @@ namespace Model } } + public System.Data.Linq.Table View_WBS_WorkPackageDetail + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table View_WBS_WorkPackageParentDetail + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table View_Welder_WelderQualify { get @@ -6817,6 +6839,14 @@ namespace Model } } + public System.Data.Linq.Table WBS_WorkPackageDetail + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table WBS_WorkPackageInit { get @@ -6825,6 +6855,14 @@ namespace Model } } + public System.Data.Linq.Table WBS_WorkPackageParentDetail + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table WBS_WorkPackageProject { get @@ -11435,7 +11473,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveIdea", DbType="NVarChar(200)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveIdea", DbType="NVarChar(2000)")] public string ApproveIdea { get @@ -149652,7 +149690,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttentPerson", DbType="NVarChar(500)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttentPerson", DbType="NVarChar(3000)")] public string AttentPerson { get @@ -289251,6 +289289,402 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_WBS_WorkPackageDetail")] + public partial class View_WBS_WorkPackageDetail + { + + private string _WorkPackageDetailId; + + private string _WorkPackageId; + + private System.Nullable _Months; + + private string _WorkPackageCode; + + private string _PackageContent; + + private string _ProjectId; + + private string _Unit; + + private System.Nullable _PlanProjectQuantity; + + private System.Nullable _RealProjectQuantity; + + private System.Nullable _TotalPlanNum; + + private System.Nullable _TotalThisNum; + + private System.Nullable _PlanNum; + + private System.Nullable _ThisNum; + + public View_WBS_WorkPackageDetail() + { + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageDetailId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string WorkPackageDetailId + { + get + { + return this._WorkPackageDetailId; + } + set + { + if ((this._WorkPackageDetailId != value)) + { + this._WorkPackageDetailId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageId", DbType="NVarChar(50)")] + public string WorkPackageId + { + get + { + return this._WorkPackageId; + } + set + { + if ((this._WorkPackageId != value)) + { + this._WorkPackageId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Months", DbType="DateTime")] + public System.Nullable Months + { + get + { + return this._Months; + } + set + { + if ((this._Months != value)) + { + this._Months = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageCode", DbType="NVarChar(30)")] + public string WorkPackageCode + { + get + { + return this._WorkPackageCode; + } + set + { + if ((this._WorkPackageCode != value)) + { + this._WorkPackageCode = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PackageContent", DbType="NVarChar(50)")] + public string PackageContent + { + get + { + return this._PackageContent; + } + set + { + if ((this._PackageContent != value)) + { + this._PackageContent = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this._ProjectId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Unit", DbType="NVarChar(50)")] + public string Unit + { + get + { + return this._Unit; + } + set + { + if ((this._Unit != value)) + { + this._Unit = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanProjectQuantity", DbType="Decimal(18,2)")] + public System.Nullable PlanProjectQuantity + { + get + { + return this._PlanProjectQuantity; + } + set + { + if ((this._PlanProjectQuantity != value)) + { + this._PlanProjectQuantity = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RealProjectQuantity", DbType="Decimal(18,2)")] + public System.Nullable RealProjectQuantity + { + get + { + return this._RealProjectQuantity; + } + set + { + if ((this._RealProjectQuantity != value)) + { + this._RealProjectQuantity = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPlanNum", DbType="Float")] + public System.Nullable TotalPlanNum + { + get + { + return this._TotalPlanNum; + } + set + { + if ((this._TotalPlanNum != value)) + { + this._TotalPlanNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalThisNum", DbType="Float")] + public System.Nullable TotalThisNum + { + get + { + return this._TotalThisNum; + } + set + { + if ((this._TotalThisNum != value)) + { + this._TotalThisNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanNum", DbType="Float")] + public System.Nullable PlanNum + { + get + { + return this._PlanNum; + } + set + { + if ((this._PlanNum != value)) + { + this._PlanNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisNum", DbType="Float")] + public System.Nullable ThisNum + { + get + { + return this._ThisNum; + } + set + { + if ((this._ThisNum != value)) + { + this._ThisNum = value; + } + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_WBS_WorkPackageParentDetail")] + public partial class View_WBS_WorkPackageParentDetail + { + + private string _WorkPackageParentDetailId; + + private string _ParentId; + + private string _ProjectId; + + private System.Nullable _Months; + + private System.Nullable _PlanNum; + + private System.Nullable _ThisNum; + + private System.Nullable _TotalPlanNum; + + private System.Nullable _TotalThisNum; + + public View_WBS_WorkPackageParentDetail() + { + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageParentDetailId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string WorkPackageParentDetailId + { + get + { + return this._WorkPackageParentDetailId; + } + set + { + if ((this._WorkPackageParentDetailId != value)) + { + this._WorkPackageParentDetailId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentId", DbType="NVarChar(50)")] + public string ParentId + { + get + { + return this._ParentId; + } + set + { + if ((this._ParentId != value)) + { + this._ParentId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this._ProjectId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Months", DbType="DateTime")] + public System.Nullable Months + { + get + { + return this._Months; + } + set + { + if ((this._Months != value)) + { + this._Months = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanNum", DbType="Float")] + public System.Nullable PlanNum + { + get + { + return this._PlanNum; + } + set + { + if ((this._PlanNum != value)) + { + this._PlanNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisNum", DbType="Float")] + public System.Nullable ThisNum + { + get + { + return this._ThisNum; + } + set + { + if ((this._ThisNum != value)) + { + this._ThisNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPlanNum", DbType="Float")] + public System.Nullable TotalPlanNum + { + get + { + return this._TotalPlanNum; + } + set + { + if ((this._TotalPlanNum != value)) + { + this._TotalPlanNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalThisNum", DbType="Float")] + public System.Nullable TotalThisNum + { + get + { + return this._TotalThisNum; + } + set + { + if ((this._TotalThisNum != value)) + { + this._TotalThisNum = value; + } + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_Welder_WelderQualify")] public partial class View_Welder_WelderQualify { @@ -293757,6 +294191,8 @@ namespace Model private EntityRef _WBS_UnitWork; + private EntitySet _WBS_WorkPackageDetail; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -293827,6 +294263,7 @@ namespace Model { this._WBS_ControlItemAndCycle = new EntitySet(new Action(this.attach_WBS_ControlItemAndCycle), new Action(this.detach_WBS_ControlItemAndCycle)); this._WBS_UnitWork = default(EntityRef); + this._WBS_WorkPackageDetail = new EntitySet(new Action(this.attach_WBS_WorkPackageDetail), new Action(this.detach_WBS_WorkPackageDetail)); OnCreated(); } @@ -294481,6 +294918,19 @@ namespace Model } } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_WorkPackageDetail_WBS_WorkPackage", Storage="_WBS_WorkPackageDetail", ThisKey="WorkPackageId", OtherKey="WorkPackageId", DeleteRule="NO ACTION")] + public EntitySet WBS_WorkPackageDetail + { + get + { + return this._WBS_WorkPackageDetail; + } + set + { + this._WBS_WorkPackageDetail.Assign(value); + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -294512,6 +294962,217 @@ namespace Model this.SendPropertyChanging(); entity.WBS_WorkPackage = null; } + + private void attach_WBS_WorkPackageDetail(WBS_WorkPackageDetail entity) + { + this.SendPropertyChanging(); + entity.WBS_WorkPackage = this; + } + + private void detach_WBS_WorkPackageDetail(WBS_WorkPackageDetail entity) + { + this.SendPropertyChanging(); + entity.WBS_WorkPackage = null; + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.WBS_WorkPackageDetail")] + public partial class WBS_WorkPackageDetail : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _WorkPackageDetailId; + + private string _WorkPackageId; + + private System.Nullable _Months; + + private System.Nullable _PlanNum; + + private System.Nullable _ThisNum; + + private EntityRef _WBS_WorkPackage; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnWorkPackageDetailIdChanging(string value); + partial void OnWorkPackageDetailIdChanged(); + partial void OnWorkPackageIdChanging(string value); + partial void OnWorkPackageIdChanged(); + partial void OnMonthsChanging(System.Nullable value); + partial void OnMonthsChanged(); + partial void OnPlanNumChanging(System.Nullable value); + partial void OnPlanNumChanged(); + partial void OnThisNumChanging(System.Nullable value); + partial void OnThisNumChanged(); + #endregion + + public WBS_WorkPackageDetail() + { + this._WBS_WorkPackage = default(EntityRef); + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageDetailId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string WorkPackageDetailId + { + get + { + return this._WorkPackageDetailId; + } + set + { + if ((this._WorkPackageDetailId != value)) + { + this.OnWorkPackageDetailIdChanging(value); + this.SendPropertyChanging(); + this._WorkPackageDetailId = value; + this.SendPropertyChanged("WorkPackageDetailId"); + this.OnWorkPackageDetailIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageId", DbType="NVarChar(50)")] + public string WorkPackageId + { + get + { + return this._WorkPackageId; + } + set + { + if ((this._WorkPackageId != value)) + { + if (this._WBS_WorkPackage.HasLoadedOrAssignedValue) + { + throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); + } + this.OnWorkPackageIdChanging(value); + this.SendPropertyChanging(); + this._WorkPackageId = value; + this.SendPropertyChanged("WorkPackageId"); + this.OnWorkPackageIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Months", DbType="DateTime")] + public System.Nullable Months + { + get + { + return this._Months; + } + set + { + if ((this._Months != value)) + { + this.OnMonthsChanging(value); + this.SendPropertyChanging(); + this._Months = value; + this.SendPropertyChanged("Months"); + this.OnMonthsChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanNum", DbType="Decimal(9,2)")] + public System.Nullable PlanNum + { + get + { + return this._PlanNum; + } + set + { + if ((this._PlanNum != value)) + { + this.OnPlanNumChanging(value); + this.SendPropertyChanging(); + this._PlanNum = value; + this.SendPropertyChanged("PlanNum"); + this.OnPlanNumChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisNum", DbType="Decimal(9,2)")] + public System.Nullable ThisNum + { + get + { + return this._ThisNum; + } + set + { + if ((this._ThisNum != value)) + { + this.OnThisNumChanging(value); + this.SendPropertyChanging(); + this._ThisNum = value; + this.SendPropertyChanged("ThisNum"); + this.OnThisNumChanged(); + } + } + } + + [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 + { + get + { + return this._WBS_WorkPackage.Entity; + } + set + { + WBS_WorkPackage previousValue = this._WBS_WorkPackage.Entity; + if (((previousValue != value) + || (this._WBS_WorkPackage.HasLoadedOrAssignedValue == false))) + { + this.SendPropertyChanging(); + if ((previousValue != null)) + { + this._WBS_WorkPackage.Entity = null; + previousValue.WBS_WorkPackageDetail.Remove(this); + } + this._WBS_WorkPackage.Entity = value; + if ((value != null)) + { + value.WBS_WorkPackageDetail.Add(this); + this._WorkPackageId = value.WorkPackageId; + } + else + { + this._WorkPackageId = default(string); + } + this.SendPropertyChanged("WBS_WorkPackage"); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } } [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.WBS_WorkPackageInit")] @@ -294748,6 +295409,188 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.WBS_WorkPackageParentDetail")] + public partial class WBS_WorkPackageParentDetail : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _WorkPackageParentDetailId; + + private string _ParentId; + + private string _ProjectId; + + private System.Nullable _Months; + + private System.Nullable _PlanNum; + + private System.Nullable _ThisNum; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnWorkPackageParentDetailIdChanging(string value); + partial void OnWorkPackageParentDetailIdChanged(); + partial void OnParentIdChanging(string value); + partial void OnParentIdChanged(); + partial void OnProjectIdChanging(string value); + partial void OnProjectIdChanged(); + partial void OnMonthsChanging(System.Nullable value); + partial void OnMonthsChanged(); + partial void OnPlanNumChanging(System.Nullable value); + partial void OnPlanNumChanged(); + partial void OnThisNumChanging(System.Nullable value); + partial void OnThisNumChanged(); + #endregion + + public WBS_WorkPackageParentDetail() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPackageParentDetailId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string WorkPackageParentDetailId + { + get + { + return this._WorkPackageParentDetailId; + } + set + { + if ((this._WorkPackageParentDetailId != value)) + { + this.OnWorkPackageParentDetailIdChanging(value); + this.SendPropertyChanging(); + this._WorkPackageParentDetailId = value; + this.SendPropertyChanged("WorkPackageParentDetailId"); + this.OnWorkPackageParentDetailIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentId", DbType="NVarChar(50)")] + public string ParentId + { + get + { + return this._ParentId; + } + set + { + if ((this._ParentId != value)) + { + this.OnParentIdChanging(value); + this.SendPropertyChanging(); + this._ParentId = value; + this.SendPropertyChanged("ParentId"); + this.OnParentIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this.OnProjectIdChanging(value); + this.SendPropertyChanging(); + this._ProjectId = value; + this.SendPropertyChanged("ProjectId"); + this.OnProjectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Months", DbType="DateTime")] + public System.Nullable Months + { + get + { + return this._Months; + } + set + { + if ((this._Months != value)) + { + this.OnMonthsChanging(value); + this.SendPropertyChanging(); + this._Months = value; + this.SendPropertyChanged("Months"); + this.OnMonthsChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanNum", DbType="Decimal(9,2)")] + public System.Nullable PlanNum + { + get + { + return this._PlanNum; + } + set + { + if ((this._PlanNum != value)) + { + this.OnPlanNumChanging(value); + this.SendPropertyChanging(); + this._PlanNum = value; + this.SendPropertyChanged("PlanNum"); + this.OnPlanNumChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ThisNum", DbType="Decimal(9,2)")] + public System.Nullable ThisNum + { + get + { + return this._ThisNum; + } + set + { + if ((this._ThisNum != value)) + { + this.OnThisNumChanging(value); + this.SendPropertyChanging(); + this._ThisNum = value; + this.SendPropertyChanged("ThisNum"); + this.OnThisNumChanged(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.WBS_WorkPackageProject")] public partial class WBS_WorkPackageProject : INotifyPropertyChanging, INotifyPropertyChanged {