修改进度与合同关联

This commit is contained in:
2023-09-05 09:52:10 +08:00
parent b917d217be
commit b238b27726
15 changed files with 497 additions and 53 deletions
@@ -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
@@ -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
@@ -100,6 +100,7 @@ namespace BLL
newControlItemAndCycle.Costs = ControlItemAndCycle.Costs;
newControlItemAndCycle.CheckAcceptType = ControlItemAndCycle.CheckAcceptType;
newControlItemAndCycle.RealEndDate = ControlItemAndCycle.RealEndDate;
newControlItemAndCycle.PlanCost = ControlItemAndCycle.PlanCost;
db.SubmitChanges();
}
+26
View File
@@ -739,5 +739,31 @@ namespace BLL
return returnValues;
}
#endregion
#region
/// <summary>
/// 更新分部分项概算费用
/// </summary>
/// <param name="years"></param>
/// <param name="months"></param>
/// <param name="planValue"></param>
/// <param name="parentId"></param>
public static void UpdateWorkPackagesPlanCost(List<Model.WBS_WorkPackage> 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
}
}
@@ -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;
@@ -70,7 +70,7 @@
<f:RenderField Width="70px" ColumnID="ControlPoint" DataField="ControlPoint" FieldType="String"
HeaderText="控制点等级" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="65px" ColumnID="Weights" DataField="Weights" FieldType="String"
<f:RenderField Width="65px" ColumnID="Weights" DataField="Weights" FieldType="Float"
HeaderText="权重%" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="280px" ColumnID="ControlItemDef" DataField="ControlItemDef" FieldType="String"
@@ -49,6 +49,7 @@ namespace FineUIPro.Web.CQMS.WBS
controlItemProject.ControlItemContent = controlItemInit.ControlItemContent;
controlItemProject.ControlPoint = controlItemInit.ControlPoint;
controlItemProject.ControlItemDef = controlItemInit.ControlItemDef;
controlItemProject.Weights = controlItemInit.Weights;
controlItemProject.HGForms = controlItemInit.HGForms;
controlItemProject.SHForms = controlItemInit.SHForms;
controlItemProject.Standard = controlItemInit.Standard;
+42
View File
@@ -0,0 +1,42 @@
错误信息开始=====>
错误类型: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
+2
View File
@@ -322,6 +322,7 @@
<Content Include="common\Menu_CQMS.xml" />
<Content Include="common\Menu_DigData.xml" />
<Content Include="common\Menu_DigitalSite.xml" />
<Content Include="common\Menu_Doc.xml" />
<Content Include="common\Menu_HJGL.xml" />
<Content Include="common\Menu_HSSE.xml" />
<Content Include="common\Menu_HTGL.xml" />
@@ -330,6 +331,7 @@
<Content Include="common\Menu_Party.xml" />
<Content Include="common\Menu_PDigData.xml" />
<Content Include="common\Menu_Person.xml" />
<Content Include="common\Menu_PGJSX.xml" />
<Content Include="common\Menu_PHTGL.xml" />
<Content Include="common\Menu_PPerson.xml" />
<Content Include="common\Menu_ProjectSet.xml" />
@@ -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
/// <param name="e"></param>
protected void Grid1_OnRowClick(object sender, GridRowClickEventArgs e)
{
BindGrid2();
BindGrid3();
BindGrid2();
BindGrid3();
}
/// <summary>
@@ -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内容每月实际费用
/// <summary>
/// 更新上级WBS内容每月实际费用
/// </summary>
/// <param name="years"></param>
/// <param name="months"></param>
/// <param name="PlanNum"></param>
/// <param name="parentId"></param>
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();
}
}
}
@@ -68,6 +68,9 @@
<f:RenderField Width="70px" ColumnID="ControlItemContent" DataField="ControlItemContent" FieldType="String"
HeaderText="工作包" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="70px" ColumnID="Weights" DataField="Weights" FieldType="Float"
HeaderText="权重" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="70px" ColumnID="ControlPoint" DataField="ControlPoint" FieldType="String"
HeaderText="控制点等级" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
@@ -16,6 +16,36 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
set { ViewState["ContractTrackId"] = value; }
}
/// <summary>
/// 被选择项列表
/// </summary>
public List<string> SelectedList
{
get
{
return (List<string>)ViewState["SelectedList"];
}
set
{
ViewState["SelectedList"] = value;
}
}
/// <summary>
/// 未被选择项列表
/// </summary>
public List<string> NoSelectedList
{
get
{
return (List<string>)ViewState["NoSelectedList"];
}
set
{
ViewState["NoSelectedList"] = value;
}
}
#region
/// <summary>
/// 页面加载
@@ -27,7 +57,8 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
if (!IsPostBack)
{
ContractTrackId = Request.Params["ContractTrackId"];
this.SelectedList = new List<string>();
this.NoSelectedList = new List<string>();
InitTreeMenu();
}
}
@@ -358,6 +389,21 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
/// <param name="e"></param>
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
/// </summary>
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<SqlParameter> listStr = new List<SqlParameter>();
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";
}
}
}
}
}
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Tree>
<TreeNode id="609F0D64-ABB8-4F5C-9646-FC1DFC8BAB85" Text="文档管理" NavigateUrl="DocManage/DocManage.aspx">
</TreeNode>
<TreeNode id="AE22BF25-CE08-477C-B135-543F1F4D4749" Text="文档查找" NavigateUrl="DocManage/DocFind.aspx"></TreeNode>
<TreeNode id="EBC4D33E-32D9-48AB-AAB5-75343A0E32B9" Text="文件柜" NavigateUrl="DocManage/FileCabinet.aspx"></TreeNode>
<TreeNode id="69D52123-BC08-46C9-AB99-F37A71A4EC8A" Text="个人文件柜" NavigateUrl="DocManage/PersonalFileCabinet.aspx"></TreeNode>
</Tree>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Tree>
<TreeNode id="0BEA2126-7A48-40EB-8E21-99148E91A22B" Text="关键事项" NavigateUrl="GJSX/GJSXList.aspx">
</TreeNode>
<TreeNode id="5F3B18D6-9FBA-4EF5-A7E4-DC9F6A4EA680" Text="关键事项查询" NavigateUrl="GJSX/GJSXFind.aspx"></TreeNode>
<TreeNode id="CAA875A7-089B-4B79-87CE-742FDFD9DE43" Text="关键事项统计" NavigateUrl="GJSX/GJSXInfoCount.aspx"></TreeNode>
</Tree>
+25 -1
View File
@@ -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<decimal> _PlanCost;
private EntityRef<WBS_WorkPackage> _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<decimal> 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<decimal> 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
{