diff --git a/DataBase/版本日志/SGGLDB_V2023-09-05.sql b/DataBase/版本日志/SGGLDB_V2023-09-05.sql
new file mode 100644
index 00000000..875cccf9
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2023-09-05.sql
@@ -0,0 +1,51 @@
+update WBS_ControlItemProject set Weights=b.Weights from WBS_ControlItemProject a, WBS_ControlItemInit b
+ where a.ControlItemCode=b.ControlItemCode
+ GO
+
+ update WBS_ControlItemAndCycle set Weights=b.Weights from WBS_ControlItemAndCycle a, WBS_ControlItemInit b
+ where a.InitControlItemCode=b.ControlItemCode
+ GO
+
+
+ALTER VIEW [dbo].[View_WBS]
+AS
+select '1' as Id,'0' as SupId ,'JZ' as Code, '' as Name,'ProjectType' as WBSType,null as PlanStartDate,null as PlanEndDate,null as RealEndDate,null as WBSCode,
+ProjectId from dbo.WBS_UnitWork
+Union
+select '2' as Id,'0' as SupId ,'AZ' as Code, 'װ' as Name,'ProjectType' as WBSType,null as PlanStartDate,null as PlanEndDate,null as RealEndDate,null as WBSCode,
+ProjectId from dbo.WBS_UnitWork
+Union
+select UnitWorkId as Id,ProjectType as SupId ,UnitWorkCode as Code, isnull(WBSCode,'')+'-'+UnitWorkName as Name,'UnitWork' as WBSType,PlanStartDate, PlanEndDate,RealEndDate,WBSCode,
+ProjectId from dbo.WBS_UnitWork
+Union all
+select WorkPackageId as id,UnitWorkId as SupId,WorkPackageCode as Code,isnull(WBSCode,'')+'-'+PackageContent as Name,'WorkPackage' as WBSType,PlanStartDate, PlanEndDate,RealEndDate,WBSCode,
+ProjectId from dbo.WBS_WorkPackage w where IsApprove=1 and SuperWorkPackageId is null
+Union all
+select WorkPackageId as id,SuperWorkPackageId as SupId,WorkPackageCode as Code, isnull(WBSCode,'')+'-'+PackageContent as Name,'WorkPackage' as WBSType,PlanStartDate, PlanEndDate,RealEndDate,WBSCode,
+ProjectId from dbo.WBS_WorkPackage w where IsApprove=1 and SuperWorkPackageId is not null
+
+
+
+
+
+
+
+
+GO
+
+
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
+VALUES('8317C0F7-3A69-48AB-87E5-03E96C543B1C','','CQMS/Check/SpotDataCheck.aspx',20,'B8500D87-407E-458C-9915-FD54F0E81F36','Menu_CQMS',0,1,1)
+GO
+INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+VALUES('9EAC9A0F-0E2E-4650-8318-3C9BC5EFC35D','8317C0F7-3A69-48AB-87E5-03E96C543B1C','',1)
+INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+VALUES('BDAFA160-FC9D-4B2C-A887-178453E945FE','8317C0F7-3A69-48AB-87E5-03E96C543B1C','ύ',2)
+GO
+
+delete from Sys_ButtonToMenu where MenuId='0B17549C-2749-4255-BFF4-574902E878FA'
+delete from Sys_Menu where MenuId='0B17549C-2749-4255-BFF4-574902E878FA'
+GO
+
+alter table WBS_ControlItemAndCycle add PlanCost decimal(9,2) null
+GO
\ No newline at end of file
diff --git a/DataBase/菜单初始化脚本/1-2质量管理(Menu_CQMS).sql b/DataBase/菜单初始化脚本/1-2质量管理(Menu_CQMS).sql
index 7d1369b0..b65a32a6 100644
--- a/DataBase/菜单初始化脚本/1-2质量管理(Menu_CQMS).sql
+++ b/DataBase/菜单初始化脚本/1-2质量管理(Menu_CQMS).sql
@@ -327,28 +327,28 @@ INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('5B1DCDDD-344E-4BD3-8660-E816D5EF9E1E','CC43E208-335D-4AE3-A1CE-B2D8510AE854','提交',5)
GO
---INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
---VALUES('8317C0F7-3A69-48AB-87E5-03E96C543B1C','资料验收','CQMS/Check/SpotDataCheck.aspx',20,'B8500D87-407E-458C-9915-FD54F0E81F36','Menu_CQMS',0,1,1)
---GO
---INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
---VALUES('9EAC9A0F-0E2E-4650-8318-3C9BC5EFC35D','8317C0F7-3A69-48AB-87E5-03E96C543B1C','保存',1)
---INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
---VALUES('BDAFA160-FC9D-4B2C-A887-178453E945FE','8317C0F7-3A69-48AB-87E5-03E96C543B1C','提交',2)
---GO
-
-
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
-VALUES('0B17549C-2749-4255-BFF4-574902E878FA','资料验收','CQMS/Check/MaterialAcceptance.aspx',20,'B8500D87-407E-458C-9915-FD54F0E81F36','Menu_CQMS',0,1,1)
+VALUES('8317C0F7-3A69-48AB-87E5-03E96C543B1C','资料验收','CQMS/Check/SpotDataCheck.aspx',20,'B8500D87-407E-458C-9915-FD54F0E81F36','Menu_CQMS',0,1,1)
GO
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
-VALUES('00B413F9-1BB9-4F56-8952-D661716E9EF2','0B17549C-2749-4255-BFF4-574902E878FA','增加',1)
+VALUES('9EAC9A0F-0E2E-4650-8318-3C9BC5EFC35D','8317C0F7-3A69-48AB-87E5-03E96C543B1C','保存',1)
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
-VALUES('419D13BE-438D-450B-92AE-2737B571A4F1','0B17549C-2749-4255-BFF4-574902E878FA','修改',2)
-GO
-INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
-VALUES('88813BE-438D-450B-92AE-2737B571A4F1','0B17549C-2749-4255-BFF4-574902E878FA','删除',3)
+VALUES('BDAFA160-FC9D-4B2C-A887-178453E945FE','8317C0F7-3A69-48AB-87E5-03E96C543B1C','提交',2)
GO
+
+--INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
+--VALUES('0B17549C-2749-4255-BFF4-574902E878FA','资料验收','CQMS/Check/MaterialAcceptance.aspx',20,'B8500D87-407E-458C-9915-FD54F0E81F36','Menu_CQMS',0,1,1)
+--GO
+--INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+--VALUES('00B413F9-1BB9-4F56-8952-D661716E9EF2','0B17549C-2749-4255-BFF4-574902E878FA','增加',1)
+--INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+--VALUES('419D13BE-438D-450B-92AE-2737B571A4F1','0B17549C-2749-4255-BFF4-574902E878FA','修改',2)
+--GO
+--INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+--VALUES('88813BE-438D-450B-92AE-2737B571A4F1','0B17549C-2749-4255-BFF4-574902E878FA','删除',3)
+--GO
+
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
VALUES('1433BE70-13C0-4AC7-BC3D-34C9471CE2A8','质量验收统计','CQMS/Check/SpotCheckStatistics.aspx',30,'B8500D87-407E-458C-9915-FD54F0E81F36','Menu_CQMS',0,1,1)
GO
diff --git a/SGGL/BLL/CQMS/WBS/ControlItemAndCycleService.cs b/SGGL/BLL/CQMS/WBS/ControlItemAndCycleService.cs
index 3bd3e464..af7418a5 100644
--- a/SGGL/BLL/CQMS/WBS/ControlItemAndCycleService.cs
+++ b/SGGL/BLL/CQMS/WBS/ControlItemAndCycleService.cs
@@ -100,6 +100,7 @@ namespace BLL
newControlItemAndCycle.Costs = ControlItemAndCycle.Costs;
newControlItemAndCycle.CheckAcceptType = ControlItemAndCycle.CheckAcceptType;
newControlItemAndCycle.RealEndDate = ControlItemAndCycle.RealEndDate;
+ newControlItemAndCycle.PlanCost = ControlItemAndCycle.PlanCost;
db.SubmitChanges();
}
diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs
index 98f1f8fc..02518032 100644
--- a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs
+++ b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs
@@ -739,5 +739,31 @@ namespace BLL
return returnValues;
}
#endregion
+
+ #region 更新分部分项概算费用
+ ///
+ /// 更新分部分项概算费用
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void UpdateWorkPackagesPlanCost(List workPackages, string workPackageId, decimal changePlanCost)
+ {
+ var workPackage = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackageId);
+ if (workPackage != null)
+ {
+ if (workPackage.PlanCost == null)
+ {
+ workPackage.PlanCost = changePlanCost;
+ }
+ else
+ {
+ workPackage.PlanCost += changePlanCost;
+ }
+ UpdateWorkPackagesPlanCost(workPackages, workPackage.SuperWorkPackageId, changePlanCost);
+ }
+ }
+ #endregion
}
}
diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleSet.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleSet.aspx.cs
index 452c8b46..e8f1898f 100644
--- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleSet.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemAndCycleSet.aspx.cs
@@ -502,6 +502,7 @@ namespace FineUIPro.Web.CQMS.WBS
newControlItemAndCycle.ControlItemDef = controlItemProject.ControlItemDef;
newControlItemAndCycle.HGForms = controlItemProject.HGForms;
newControlItemAndCycle.SHForms = controlItemProject.SHForms;
+ newControlItemAndCycle.Weights = controlItemProject.Weights;
newControlItemAndCycle.Standard = controlItemProject.Standard;
newControlItemAndCycle.ClauseNo = controlItemProject.ClauseNo;
newControlItemAndCycle.CheckNum = controlItemProject.CheckNum;
@@ -597,6 +598,7 @@ namespace FineUIPro.Web.CQMS.WBS
newControlItemAndCycle.ControlItemDef = controlItemProject.ControlItemDef;
newControlItemAndCycle.HGForms = controlItemProject.HGForms;
newControlItemAndCycle.SHForms = controlItemProject.SHForms;
+ newControlItemAndCycle.Weights = controlItemProject.Weights;
newControlItemAndCycle.Standard = controlItemProject.Standard;
newControlItemAndCycle.ClauseNo = controlItemProject.ClauseNo;
newControlItemAndCycle.IsApprove = true;
@@ -668,6 +670,7 @@ namespace FineUIPro.Web.CQMS.WBS
newControlItemAndCycle.ControlItemDef = controlItemProject.ControlItemDef;
newControlItemAndCycle.HGForms = controlItemProject.HGForms;
newControlItemAndCycle.SHForms = controlItemProject.SHForms;
+ newControlItemAndCycle.Weights = controlItemProject.Weights;
newControlItemAndCycle.Standard = controlItemProject.Standard;
newControlItemAndCycle.ClauseNo = controlItemProject.ClauseNo;
newControlItemAndCycle.CheckNum = controlItemProject.CheckNum;
diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx
index 6eed8437..05076cf0 100644
--- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx
+++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx
@@ -70,7 +70,7 @@
-
+错误类型:NullReferenceException
+错误信息:未将对象引用设置到对象的实例。
+错误堆栈:
+ 在 FineUIPro.Web.index.MenuSwitchMethod(String type) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\FineUIPro.Web\index.aspx.cs:行号 417
+ 在 FineUIPro.Web.index.btnPerson_Click(Object sender, EventArgs e) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\FineUIPro.Web\index.aspx.cs:行号 467
+ 在 FineUIPro.Button.OnClick(EventArgs e)
+ 在 (Button , EventArgs )
+ 在 FineUIPro.Button.RaisePostBackEvent(String eventArgument)
+ 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
+ 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
+ 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+出错时间:09/03/2023 11:44:42
+出错文件:http://localhost:8797/index.aspx
+IP地址:::1
+
+出错时间:09/03/2023 11:44:42
+
+
+错误信息开始=====>
+错误类型:ChangeConflictException
+错误信息:2 的 1 更新失败。
+错误堆栈:
+ 在 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
+ 在 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
+ 在 System.Data.Linq.DataContext.SubmitChanges()
+ 在 BLL.PhtglContractTrackService.UpdatePHTGL_ContractTrack(PHTGL_ContractTrack newtable) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\BLL\PHTGL\ContractCompile\PhtglContracttrackService .cs:行号 200
+ 在 FineUIPro.Web.PHTGL.ContractCompile.ContractTrackList.btnSave_OnClick(Object sender, EventArgs e) 位置 E:\工作\赛鼎施工平台\SGGL_SeDin(New)\SGGL_SeDin_New\SGGL\FineUIPro.Web\PHTGL\ContractCompile\ContractTrackList.aspx.cs:行号 371
+ 在 FineUIPro.Button.OnClick(EventArgs e)
+ 在 (Button , EventArgs )
+ 在 FineUIPro.Button.RaisePostBackEvent(String eventArgument)
+ 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
+ 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
+ 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+出错时间:09/04/2023 10:22:11
+出错文件:http://localhost:8797/PHTGL/ContractCompile/ContractTrackList.aspx
+IP地址:::1
+操作人员:JT
+
+出错时间:09/04/2023 10:22:11
+
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index e1616b8e..40fcdd75 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -322,6 +322,7 @@
+
@@ -330,6 +331,7 @@
+
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx.cs b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx.cs
index 71f4e802..3e10c138 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx.cs
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackList.aspx.cs
@@ -16,8 +16,8 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
public string ContractId
{
get => (string)ViewState["ContractId"];
- set => ViewState["ContractId"] =value;
- }
+ set => ViewState["ContractId"] = value;
+ }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
@@ -29,11 +29,11 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
this.DropContractCode.DataSource = BLL.PHTGL_ContractReviewService.GetContractReview_CompleteData(this.CurrUser.LoginProjectId);
this.DropContractCode.DataBind();
Funs.FineUIPleaseSelect(this.DropContractCode);
- DropMainContractCode_SelectedIndexChanged(null,null);
+ DropMainContractCode_SelectedIndexChanged(null, null);
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
// 绑定表格
this.BindGrid();
-
+
}
}
@@ -61,33 +61,33 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
Grid3.DataSource = null;
Grid3.DataBind();
}
-
+
}
private void BindGrid2()
{
var db = Funs.DB;
var q = from x in db.PHTGL_ContractTrackMatchWBS
- join y in db.WBS_ControlItemAndCycle on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
- where x.ContractTrackId==Grid1.SelectedRowID
- select new
- {
- x.Id,
- x.ContractTrackId,
- x.ControlItemAndCycleId,
- y.ControlItemAndCycleCode,
- y.ControlItemContent,
- y.Weights,
- x.WorkPackageEstimate
- };
+ join y in db.WBS_ControlItemAndCycle on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
+ where x.ContractTrackId == Grid1.SelectedRowID
+ select new
+ {
+ x.Id,
+ x.ContractTrackId,
+ x.ControlItemAndCycleId,
+ y.ControlItemAndCycleCode,
+ y.ControlItemContent,
+ y.Weights,
+ x.WorkPackageEstimate
+ };
;
- Grid2.RecordCount =q.Count();
+ Grid2.RecordCount = q.Count();
Grid2.DataSource = q;
Grid2.DataBind();
string deleteScript = GetDeleteScript();
// 在第一行新增一条数据
btnMatchWBS_New.OnClientClick = Window1.GetShowReference(String.Format("ContractTrackMatchWBS.aspx?ContractTrackId={0}", Grid1.SelectedRowID, "增加 - "));
-
+
}
private string GetDeleteScript()
{
@@ -165,7 +165,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
}
else
{
- ShowNotify("请选择施工分包合同!",MessageBoxIcon.Information);
+ ShowNotify("请选择施工分包合同!", MessageBoxIcon.Information);
}
}
@@ -196,8 +196,8 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
///
protected void Grid1_OnRowClick(object sender, GridRowClickEventArgs e)
{
- BindGrid2();
- BindGrid3();
+ BindGrid2();
+ BindGrid3();
}
///
@@ -243,13 +243,42 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
{
if (Grid2.SelectedRowIndexArray.Length > 0)
{
-
+ Model.SGGLDB db = Funs.DB;
+ var controlItemAndCycles = from x in db.WBS_ControlItemAndCycle
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x;
+ var unitWorks = from x in db.WBS_UnitWork
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x;
+ var workPackages = (from x in db.WBS_WorkPackage
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x).ToList();
foreach (int rowIndex in Grid2.SelectedRowIndexArray)
{
string rowID = Grid2.DataKeys[rowIndex][0].ToString();
var p = BLL.PhtglContracttrackmatchwbsService.GetPHTGL_ContractTrackMatchWBSById(rowID);
if (p != null)
{
+ decimal changePlanCost = 0 - (p.WorkPackageEstimate ?? 0);
+ var c = controlItemAndCycles.First(x => x.ControlItemAndCycleId == p.ControlItemAndCycleId);
+ c.PlanCost = 0;
+ BLL.ControlItemAndCycleService.UpdateControlItemAndCycle(c);
+ //更新上级WBS内容概算费用
+ BLL.WorkPackageService.UpdateWorkPackagesPlanCost(workPackages, c.WorkPackageId, changePlanCost);
+ var workPackage = workPackages.FirstOrDefault(x => x.WorkPackageId == c.WorkPackageId);
+ if (workPackage != null)
+ {
+ var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage.UnitWorkId);
+ if (unitWork.PlanCost == null)
+ {
+ unitWork.PlanCost = changePlanCost;
+ }
+ else
+ {
+ unitWork.PlanCost += changePlanCost;
+ }
+ }
+ db.SubmitChanges();
PhtglContracttrackmatchwbsService.DeleteModelById(rowID);
}
}
@@ -284,8 +313,31 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
private void SaveGrid3()
{
-
+ Model.SGGLDB db = Funs.DB;
+ var list = (from x in db.PHTGL_ContractTrackProgress
+ where x.ContractTrackId == Grid1.SelectedRowID
+ select x).ToList();
PhtglContracttrackprogressService.DeleteModleByContractTrackId(Grid1.SelectedRowID);
+ decimal totalWeights = 0;
+ var SelectedList = (from x in db.PHTGL_ContractTrackMatchWBS
+ where x.ContractTrackId == Grid1.SelectedRowID
+ select x.ControlItemAndCycleId).ToList();
+ var totalControlItemAndCycles = from x in db.WBS_ControlItemAndCycle
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x;
+ var unitWorks = from x in db.WBS_UnitWork
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x;
+ var workPackages = (from x in db.WBS_WorkPackage
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x).ToList();
+ var controlItemAndCycles = from x in totalControlItemAndCycles
+ where SelectedList.Contains(x.ControlItemAndCycleId)
+ select x;
+ foreach (var controlItemAndCycle in controlItemAndCycles)
+ {
+ totalWeights += controlItemAndCycle.Weights ?? 0;
+ }
JArray EditorArr = Grid3.GetMergedData();
if (EditorArr.Count > 0)
{
@@ -304,12 +356,120 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
model.ACWP_Percentage = Funs.GetNewDecimal(objects["values"]["ACWP_Percentage"].ToString());
model.Date = objects["values"]["Date"].ToString();
BLL.PhtglContracttrackprogressService.AddPHTGL_ContractTrackProgress(model);
+ var old = list.FirstOrDefault(x => x.Date == model.Date);
+ decimal oldValue = 0;
+ if (old != null)
+ {
+ oldValue = old.ACWP_OutputValue ?? 0;
+ }
+ decimal changeValue = (model.ACWP_OutputValue ?? 0) - oldValue;
+ if (changeValue != 0)
+ {
+ foreach (var item in controlItemAndCycles)
+ {
+ var c = controlItemAndCycles.First(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId);
+ decimal thisValue = 0;
+ if (totalWeights > 0 && c.Weights.HasValue)
+ {
+ thisValue = decimal.Round(c.Weights.Value / totalWeights * changeValue, 2);
+ }
+ DateTime? months = Funs.GetNewDateTime(model.Date + "-01");
+ var WorkPackage = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId);
+ Model.WBS_WorkPackageDetail WorkPackageDetail = BLL.WorkPackageDetailService.GetWorkPackageDetailByWorkPackageIdAndMonths(item.WorkPackageId, months.Value);
+ if (WorkPackageDetail != null)
+ {
+ WorkPackageDetail.ThisValue += thisValue;
+ }
+ else
+ {
+ WorkPackageDetail = new Model.WBS_WorkPackageDetail();
+ WorkPackageDetail.WorkPackageDetailId = SQLHelper.GetNewID();
+ WorkPackageDetail.WorkPackageId = item.WorkPackageId;
+ WorkPackageDetail.Months = months;
+ WorkPackageDetail.ThisValue = thisValue;
+ db.WBS_WorkPackageDetail.InsertOnSubmit(WorkPackageDetail);
+ }
+ //更新上级WBS内容每月实际费用
+ UpdateWorkPackageParentThisValue(db, WorkPackage.SuperWorkPackageId, months.Value, thisValue);
+ ////更新单位工程
+ Model.WBS_WorkPackageParentDetail unitWorkDetail = BLL.WorkPackageParentDetailService.GetWorkPackageParentDetailByParentIdAndMonths(WorkPackage.UnitWorkId, months.Value);
+ if (unitWorkDetail != null)
+ {
+ unitWorkDetail.ThisValue += thisValue;
+ }
+ else
+ {
+ unitWorkDetail = new Model.WBS_WorkPackageParentDetail();
+ unitWorkDetail.WorkPackageParentDetailId = SQLHelper.GetNewID();
+ unitWorkDetail.ParentId = WorkPackage.UnitWorkId;
+ unitWorkDetail.Months = months;
+ unitWorkDetail.ThisValue = thisValue;
+ 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.Value);
+ if (projectType != null)
+ {
+ projectType.ThisValue += thisValue;
+ }
+ else
+ {
+ projectType = new Model.WBS_WorkPackageParentDetail();
+ projectType.WorkPackageParentDetailId = SQLHelper.GetNewID();
+ projectType.ParentId = unitWork.ProjectType;
+ projectType.ProjectId = this.CurrUser.LoginProjectId;
+ projectType.Months = months;
+ projectType.ThisValue = thisValue;
+ db.WBS_WorkPackageParentDetail.InsertOnSubmit(projectType);
+ }
+ }
+ db.SubmitChanges();
+ }
+ }
}
}
ShowNotify("保存成功", MessageBoxIcon.Success);
}
+ #region 更新上级WBS内容每月实际费用
+ ///
+ /// 更新上级WBS内容每月实际费用
+ ///
+ ///
+ ///
+ ///
+ ///
+ private void UpdateWorkPackageParentThisValue(Model.SGGLDB db, string SuperWorkPackageId, DateTime months, decimal thisValue)
+ {
+ 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.ThisValue += thisValue;
+ }
+ else
+ {
+ parentDetail = new Model.WBS_WorkPackageParentDetail();
+ parentDetail.WorkPackageParentDetailId = SQLHelper.GetNewID();
+ parentDetail.ParentId = SuperWorkPackageId;
+ parentDetail.Months = months;
+ parentDetail.ThisValue = thisValue;
+ db.WBS_WorkPackageParentDetail.InsertOnSubmit(parentDetail);
+ }
+ if (workPackage.SuperWorkPackageId != null) //还存在上级节点,需要继续循环
+ {
+ UpdateWorkPackageParentThisValue(db, workPackage.SuperWorkPackageId, months, thisValue);
+ }
+ }
+ }
+ #endregion
+
protected void btnSave_OnClick(object sender, EventArgs e)
{
JArray EditorArr = Grid1.GetMergedData();
@@ -499,7 +659,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
var model = ContractService.GetContractByContractNum(DropContractCode.SelectedValue);
if (model != null)
{
- ContractId=model.ContractId;
+ ContractId = model.ContractId;
this.txtContractName.Text = model.ContractName;
}
else
@@ -509,7 +669,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
}
}
- BindGrid();
+ BindGrid();
}
protected void btnImport_Click(object sender, EventArgs e)
@@ -525,7 +685,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
}
else
{
- ShowNotify("请选择施工分包合同",MessageBoxIcon.Question);
+ ShowNotify("请选择施工分包合同", MessageBoxIcon.Question);
}
}
@@ -535,6 +695,6 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
BindGrid2();
}
-
+
}
}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx
index 579c0fc2..1557e77d 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx
@@ -68,6 +68,9 @@
+
+
diff --git a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx.cs b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx.cs
index 916b6ef4..0b76d3dc 100644
--- a/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx.cs
+++ b/SGGL/FineUIPro.Web/PHTGL/ContractCompile/ContractTrackMatchWBS.aspx.cs
@@ -16,6 +16,36 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
set { ViewState["ContractTrackId"] = value; }
}
+ ///
+ /// 被选择项列表
+ ///
+ public List SelectedList
+ {
+ get
+ {
+ return (List)ViewState["SelectedList"];
+ }
+ set
+ {
+ ViewState["SelectedList"] = value;
+ }
+ }
+
+ ///
+ /// 未被选择项列表
+ ///
+ public List NoSelectedList
+ {
+ get
+ {
+ return (List)ViewState["NoSelectedList"];
+ }
+ set
+ {
+ ViewState["NoSelectedList"] = value;
+ }
+ }
+
#region 页面加载
///
/// 页面加载
@@ -27,7 +57,8 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
if (!IsPostBack)
{
ContractTrackId = Request.Params["ContractTrackId"];
-
+ this.SelectedList = new List();
+ this.NoSelectedList = new List();
InitTreeMenu();
}
}
@@ -358,6 +389,21 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
///
protected void trWBS_NodeCommand(object sender, TreeCommandEventArgs e)
{
+ if (Grid1.SelectedRowIDArray.Length > 0)
+ {
+ var Ids = Grid1.SelectedRowIDArray;
+ for (int i = 0; i < this.Grid1.Rows.Count; i++)
+ {
+ if (Ids.Contains(this.Grid1.Rows[i].RowID))
+ {
+ SelectedList.Add(this.Grid1.Rows[i].RowID);
+ }
+ else
+ {
+ NoSelectedList.Add(this.Grid1.Rows[i].RowID);
+ }
+ }
+ }
BindGrid();
}
#endregion
@@ -407,7 +453,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
///
private void BindGrid()
{
- string strSql = @"SELECT ControlItemAndCycleId,ControlItemAndCycleCode,InitControlItemCode,ControlItemContent,ControlPoint,ControlItemDef,HGForms,SHForms,Standard,ClauseNo,CheckNum"
+ string strSql = @"SELECT ControlItemAndCycleId,ControlItemAndCycleCode,InitControlItemCode,ControlItemContent,ControlPoint,ControlItemDef,HGForms,SHForms,Standard,ClauseNo,CheckNum,Weights"
+ @" FROM WBS_ControlItemAndCycle ";
List listStr = new List();
strSql += " where WorkPackageId = @WorkPackageId and IsApprove=1 ";
@@ -463,10 +509,53 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
protected void btnAccept_Click(object sender, EventArgs e)
{
- if (Grid1.SelectedRowIDArray.Length>0)
+ if (Grid1.SelectedRowIDArray.Length > 0)
{
- var Ids=Grid1.SelectedRowIDArray;
- foreach (var item in Ids)
+ var Ids = Grid1.SelectedRowIDArray;
+ for (int i = 0; i < this.Grid1.Rows.Count; i++)
+ {
+ if (Ids.Contains(this.Grid1.Rows[i].RowID))
+ {
+ SelectedList.Add(this.Grid1.Rows[i].RowID);
+ }
+ else
+ {
+ if (SelectedList.Contains(this.Grid1.Rows[i].RowID))
+ {
+ SelectedList.Remove(this.Grid1.Rows[i].RowID);
+ }
+ NoSelectedList.Add(this.Grid1.Rows[i].RowID);
+ }
+ }
+ }
+ if (SelectedList.Count > 0)
+ {
+ SelectedList = SelectedList.Distinct().ToList();
+ decimal estimatedAmount = 0;
+ var contractTrack = PhtglContractTrackService.GetPHTGL_ContractTrackById(ContractTrackId);
+ if (contractTrack != null && contractTrack.EstimatedAmount.HasValue)
+ {
+ estimatedAmount = contractTrack.EstimatedAmount.Value;
+ }
+ decimal totalWeights = 0;
+ Model.SGGLDB db = Funs.DB;
+ var totalControlItemAndCycles = from x in db.WBS_ControlItemAndCycle
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x;
+ var unitWorks = from x in db.WBS_UnitWork
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x;
+ var workPackages = (from x in db.WBS_WorkPackage
+ where x.ProjectId == this.CurrUser.LoginProjectId
+ select x).ToList();
+ var controlItemAndCycles = from x in totalControlItemAndCycles
+ where SelectedList.Contains(x.ControlItemAndCycleId)
+ select x;
+ foreach (var controlItemAndCycle in controlItemAndCycles)
+ {
+ totalWeights += controlItemAndCycle.Weights ?? 0;
+ }
+ foreach (var item in SelectedList)
{
var querymodel = new Model.PHTGL_ContractTrackMatchWBS
{
@@ -484,7 +573,34 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
ControlItemAndCycleId = item,
};
+ var c = controlItemAndCycles.First(x => x.ControlItemAndCycleId == item);
+ decimal oldPlanCost = c.PlanCost ?? 0;
+ decimal changePlanCost = 0;
+ if (estimatedAmount > 0 && totalWeights > 0 && c.Weights.HasValue)
+ {
+ //工作包概算费用
+ newtable.WorkPackageEstimate = decimal.Round(c.Weights.Value / totalWeights * estimatedAmount, 2);
+ }
BLL.PhtglContracttrackmatchwbsService.AddPHTGL_ContractTrackMatchWBS(newtable);
+ c.PlanCost = newtable.WorkPackageEstimate ?? 0;
+ changePlanCost += (newtable.WorkPackageEstimate ?? 0) - oldPlanCost;
+ BLL.ControlItemAndCycleService.UpdateControlItemAndCycle(c);
+ //更新上级WBS内容概算费用
+ BLL.WorkPackageService.UpdateWorkPackagesPlanCost(workPackages, c.WorkPackageId, changePlanCost);
+ var workPackage = workPackages.FirstOrDefault(x=>x.WorkPackageId== c.WorkPackageId);
+ if (workPackage != null)
+ {
+ var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage.UnitWorkId);
+ if (unitWork.PlanCost == null)
+ {
+ unitWork.PlanCost = changePlanCost;
+ }
+ else
+ {
+ unitWork.PlanCost += changePlanCost;
+ }
+ }
+ db.SubmitChanges();
}
}
ShowNotify("添加成功", MessageBoxIcon.Success);
@@ -492,7 +608,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
}
else
{
- ShowNotify("请选择需要添加的数据",MessageBoxIcon.Information);
+ ShowNotify("请选择需要添加的数据", MessageBoxIcon.Information);
}
}
@@ -508,7 +624,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
if (queryResult.Any())
{
e.RowCssClass = "color3";
- }
+ }
}
}
}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/common/Menu_Doc.xml b/SGGL/FineUIPro.Web/common/Menu_Doc.xml
new file mode 100644
index 00000000..8ae51162
--- /dev/null
+++ b/SGGL/FineUIPro.Web/common/Menu_Doc.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/common/Menu_PGJSX.xml b/SGGL/FineUIPro.Web/common/Menu_PGJSX.xml
new file mode 100644
index 00000000..c92461f4
--- /dev/null
+++ b/SGGL/FineUIPro.Web/common/Menu_PGJSX.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs
index 4254ee34..fa3e9548 100644
--- a/SGGL/Model/Model.cs
+++ b/SGGL/Model/Model.cs
@@ -290949,7 +290949,7 @@ namespace Model
}
}
- [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(81)")]
+ [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(101)")]
public string Name
{
get
@@ -293605,6 +293605,8 @@ namespace Model
private string _WBSCode;
+ private System.Nullable _PlanCost;
+
private EntityRef _WBS_WorkPackage;
#region 可扩展性方法定义
@@ -293655,6 +293657,8 @@ namespace Model
partial void OnRealEndDateChanged();
partial void OnWBSCodeChanging(string value);
partial void OnWBSCodeChanged();
+ partial void OnPlanCostChanging(System.Nullable value);
+ partial void OnPlanCostChanged();
#endregion
public WBS_ControlItemAndCycle()
@@ -294107,6 +294111,26 @@ namespace Model
}
}
+ [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanCost", DbType="Decimal(9,2)")]
+ public System.Nullable PlanCost
+ {
+ get
+ {
+ return this._PlanCost;
+ }
+ set
+ {
+ if ((this._PlanCost != value))
+ {
+ this.OnPlanCostChanging(value);
+ this.SendPropertyChanging();
+ this._PlanCost = value;
+ this.SendPropertyChanged("PlanCost");
+ this.OnPlanCostChanged();
+ }
+ }
+ }
+
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_ControlItemAndCycle_WBS_ControlItemAndCycle", Storage="_WBS_WorkPackage", ThisKey="WorkPackageId", OtherKey="WorkPackageId", IsForeignKey=true)]
public WBS_WorkPackage WBS_WorkPackage
{