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
{