0614-进度增加计划和实际开始/完成时间

This commit is contained in:
gaofei 2022-06-14 18:21:58 +08:00
parent 4b19955e26
commit 0d681e07ac
9 changed files with 289 additions and 41 deletions

View File

@ -0,0 +1,5 @@
alter table [dbo].[WBS_CostControl] add PlanStartDate datetime null
alter table [dbo].[WBS_CostControl] add PlanEndDate datetime null
alter table [dbo].[WBS_CostControl] add RealStartDate datetime null
alter table [dbo].[WBS_CostControl] add RealEndDate datetime null
GO

View File

@ -86,6 +86,10 @@ namespace BLL
newUP.IsSelected = costControl.IsSelected;
newUP.RealPrice = costControl.RealPrice;
newUP.PlanPrice = costControl.PlanPrice;
newUP.PlanStartDate = costControl.PlanStartDate;
newUP.PlanEndDate = costControl.PlanEndDate;
newUP.RealStartDate = costControl.RealStartDate;
newUP.RealEndDate = costControl.RealEndDate;
db.SubmitChanges();
}

View File

@ -2588,6 +2588,10 @@ namespace BLL
table.Columns.Add(new DataColumn("TotalNum", typeof(String)));
table.Columns.Add(new DataColumn("RealPrice", typeof(String)));
table.Columns.Add(new DataColumn("PlanPrice", typeof(String)));
table.Columns.Add(new DataColumn("PlanStartDate", typeof(DateTime)));
table.Columns.Add(new DataColumn("PlanEndDate", typeof(DateTime)));
table.Columns.Add(new DataColumn("RealStartDate", typeof(DateTime)));
table.Columns.Add(new DataColumn("RealEndDate", typeof(DateTime)));
for (int i = 0; i < months.Count; i++)
{
table.Columns.Add(new DataColumn("PlanNum" + (i + 1).ToString(), typeof(String)));
@ -2644,6 +2648,22 @@ namespace BLL
{
row[7] = decimal.Round(Convert.ToDecimal(costControl.PlanPrice), 2);//控制预算单价
}
if (costControl.PlanStartDate != null)
{
row[8] = costControl.PlanStartDate;//计划开始时间
}
if (costControl.PlanEndDate != null)
{
row[9] = costControl.PlanEndDate;//计划完成时间
}
if (costControl.RealStartDate != null)
{
row[10] = costControl.RealStartDate;//实际开始时间
}
if (costControl.RealEndDate != null)
{
row[11] = costControl.RealEndDate;//实际完成时间
}
for (int i = 0; i < months.Count; i++)
{
Model.View_WBS_CostControlDetail detail = details.FirstOrDefault(x => x.CostControlId == item.Id && x.Months == months[i]);
@ -2651,15 +2671,15 @@ namespace BLL
{
if (detail.PlanNum != 0)
{
row[8 + i * 2] = decimal.Round(Convert.ToDecimal(detail.PlanNum), 2);
row[12 + i * 2] = decimal.Round(Convert.ToDecimal(detail.PlanNum), 2);
}
if (detail.ThisNum != 0)
{
row[9 + i * 2] = decimal.Round(Convert.ToDecimal(detail.ThisNum), 2);
row[13 + i * 2] = decimal.Round(Convert.ToDecimal(detail.ThisNum), 2);
}
}
}
row[10 + (months.Count-1) * 2] = item.Id;
row[14 + (months.Count-1) * 2] = item.Id;
//row[10] = decimal.Round(Convert.ToDecimal(detail.ThisRealCost), 2);//本月实际成本
//row[11] = decimal.Round(Convert.ToDecimal(detail.ThisPlanValue), 2);//本月计划完成预算
//row[12] = decimal.Round(Convert.ToDecimal(detail.ThisPlanCost), 2);//本月完成预算

View File

@ -5,12 +5,12 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>全项目录入</title>
<style type="text/css">
.f-grid-row.noEdit{
pointer-events:none;
<style type="text/css">
.f-grid-row.noEdit {
pointer-events: none;
}
.f-grid-colheader-text {
.f-grid-colheader-text {
white-space: normal;
word-break: break-all;
}
@ -24,22 +24,22 @@
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="项目情况" BoxFlex="1" AllowColumnLocking="true"
runat="server" EnableCollapse="true" DataKeyNames="Id,Name,ShowId" EnableTree="true" EnableColumnLines="true" ClicksToEdit="1" AllowCellEditing="true"
TreeColumn="Name" DataIDField="Id" DataParentIDField="SupId" ExpandAllTreeNodes="true" >
TreeColumn="Name" DataIDField="Id" DataParentIDField="SupId" ExpandAllTreeNodes="true">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server">
<Items>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ToolTip="保存"
<f:Toolbar ID="Toolbar2" Position="Top" runat="server">
<Items>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ToolTip="保存"
OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<%--<f:RowNumberField HeaderText="序号"/>--%>
<f:BoundField Width="350px" ColumnID="Name" DataField="Name" HeaderTextAlign="Center" EnableLock="true" Locked="true"
HeaderText="工作内容" />
<f:BoundField Width="100px" DataField="Unit" HeaderText="单位" TextAlign="Center" EnableLock="true" Locked="true"/>
<f:BoundField Width="100px" DataField="Unit" HeaderText="单位" TextAlign="Center" EnableLock="true" Locked="true" />
<f:RenderField Width="100px" ColumnID="TotalNum" DataField="TotalNum" FieldType="Double" EnableLock="true" Locked="true"
HeaderText="合同工作量" HeaderTextAlign="Center" TextAlign="Left">
<Editor>
@ -64,6 +64,34 @@
</f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PlanStartDate" DataField="PlanStartDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="计划开始时间" HeaderTextAlign="Center">
<Editor>
<f:DatePicker ID="txtPlanStartDate" Required="true" runat="server">
</f:DatePicker>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PlanEndDate" DataField="PlanEndDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="计划完成时间" HeaderTextAlign="Center">
<Editor>
<f:DatePicker ID="txtPlanEndDate" Required="true" runat="server">
</f:DatePicker>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="RealStartDate" DataField="RealStartDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="实际开始时间" HeaderTextAlign="Center">
<Editor>
<f:DatePicker ID="txtRealStartDate" Required="true" runat="server">
</f:DatePicker>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="RealEndDate" DataField="RealEndDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="实际完成时间" HeaderTextAlign="Center">
<Editor>
<f:DatePicker ID="txtRealEndDate" Required="true" runat="server">
</f:DatePicker>
</Editor>
</f:RenderField>
</Columns>
</f:Grid>
</Items>

View File

@ -116,7 +116,7 @@ namespace FineUIPro.Web.JDGL.WBS
rdId.HeaderTextAlign = TextAlign.Center;
Grid1.Columns.Add(rdId);
rdId.Hidden = true;
ColumnNum = 5 + months.Count * 2 + 1;
ColumnNum = 9 + months.Count * 2 + 1;
}
}
#endregion
@ -139,7 +139,13 @@ namespace FineUIPro.Web.JDGL.WBS
{
if (string.IsNullOrEmpty(this.Grid1.Rows[i].DataKeys[2].ToString()))
{
this.Grid1.Rows[i].RowCssClass = "noEdit";
foreach (GridColumn column in Grid1.Columns)
{
if (column.ColumnIndex != 0)
{
this.Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable";
}
}
}
}
}
@ -180,9 +186,17 @@ namespace FineUIPro.Web.JDGL.WBS
string totalNum = values.Value<string>("TotalNum");
string planPrice = values.Value<string>("PlanPrice");
string realPrice = values.Value<string>("RealPrice");
string planStartDate = values.Value<string>("PlanStartDate");
string planEndDate = values.Value<string>("PlanEndDate");
string realStartDate = values.Value<string>("RealStartDate");
string realEndDate = values.Value<string>("RealEndDate");
costControl.TotalNum = Funs.GetNewDecimal(totalNum);
costControl.PlanPrice = Funs.GetNewDecimal(planPrice);
costControl.RealPrice = Funs.GetNewDecimal(realPrice);
costControl.PlanStartDate = Funs.GetNewDateTime(planStartDate);
costControl.PlanEndDate = Funs.GetNewDateTime(planEndDate);
costControl.RealStartDate = Funs.GetNewDateTime(realStartDate);
costControl.RealEndDate = Funs.GetNewDateTime(realEndDate);
BLL.CostControlService.UpdateCostControl(costControl);
for (int j = 0; j < months.Count; j++)
{

View File

@ -92,5 +92,41 @@ namespace FineUIPro.Web.JDGL.WBS {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox nbRealPrice;
/// <summary>
/// txtPlanStartDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtPlanStartDate;
/// <summary>
/// txtPlanEndDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtPlanEndDate;
/// <summary>
/// txtRealStartDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtRealStartDate;
/// <summary>
/// txtRealEndDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtRealEndDate;
}
}

View File

@ -52,6 +52,18 @@
<f:RenderField Width="100px" ColumnID="RealPrice" DataField="RealPrice" FieldType="Double" EnableLock="true" Locked="true"
HeaderText="实际单价" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PlanStartDate" DataField="PlanStartDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="计划开始时间" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PlanEndDate" DataField="PlanEndDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="计划完成时间" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="RealStartDate" DataField="RealStartDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="实际开始时间" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="RealEndDate" DataField="RealEndDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="实际完成时间" HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:Grid>
</Items>

View File

@ -9,7 +9,7 @@ using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
namespace FineUIPro.Web.JDGL.WBS
{
public partial class WorkloadInputIn : PageBase
@ -115,7 +115,7 @@ namespace FineUIPro.Web.JDGL.WBS
rdId.HeaderTextAlign = TextAlign.Center;
Grid1.Columns.Add(rdId);
rdId.Hidden = true;
ColumnNum = 5 + months.Count * 2 + 1;
ColumnNum = 9 + months.Count * 2 + 1;
}
}
#endregion
@ -287,31 +287,60 @@ namespace FineUIPro.Web.JDGL.WBS
string row = pds.Rows[i][j].ToString();
if (!string.IsNullOrEmpty(row))
{
try
if (j != 5 && j != 6 && j != 7 && j != 8)
{
decimal d = Convert.ToDecimal(row.Trim());
try
{
decimal d = Convert.ToDecimal(row.Trim());
}
catch (Exception)
{
if (j == 2)
{
result += "第" + (i + 2).ToString() + "行," + "合同工作量" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j == 3)
{
result += "第" + (i + 2).ToString() + "行," + "预算单价" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j == 4)
{
result += "第" + (i + 2).ToString() + "行," + "实际单价" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j % 2 == 1) //奇数列
{
result += "第" + (i + 2).ToString() + "行," + string.Format("{0:yyyy-MM}", months[j - 9]) + "计划量" + "," + "[" + row + "]格式错误!" + "|";
}
else
{
result += "第" + (i + 2).ToString() + "行," + string.Format("{0:yyyy-MM}", months[j - 9]) + "完成量" + "," + "[" + row + "]格式错误!" + "|";
}
}
}
catch (Exception)
else
{
if (j == 2)
try
{
result += "第" + (i + 2).ToString() + "行," + "合同工作量" + "," + "[" + row + "]格式错误!" + "|";
DateTime d = Convert.ToDateTime(row.Trim());
}
else if (j == 3)
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "预算单价" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j == 4)
{
result += "第" + (i + 2).ToString() + "行," + "实际单价" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j % 2 == 1) //奇数列
{
result += "第" + (i + 2).ToString() + "行," + string.Format("{0:yyyy-MM}", months[j - 5]) + "计划量" + "," + "[" + row + "]格式错误!" + "|";
}
else
{
result += "第" + (i + 2).ToString() + "行," + string.Format("{0:yyyy-MM}", months[j - 5]) + "完成量" + "," + "[" + row + "]格式错误!" + "|";
if (j == 5)
{
result += "第" + (i + 2).ToString() + "行," + "计划开始时间" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j == 6)
{
result += "第" + (i + 2).ToString() + "行," + "计划完成时间" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j == 7)
{
result += "第" + (i + 2).ToString() + "行," + "实际开始时间" + "," + "[" + row + "]格式错误!" + "|";
}
else if (j == 8)
{
result += "第" + (i + 2).ToString() + "行," + "实际完成时间" + "," + "[" + row + "]格式错误!" + "|";
}
}
}
}
@ -454,6 +483,10 @@ namespace FineUIPro.Web.JDGL.WBS
costControl.TotalNum = Funs.GetNewDecimal(pds.Rows[i][2].ToString().Trim());
costControl.PlanPrice = Funs.GetNewDecimal(pds.Rows[i][3].ToString().Trim());
costControl.RealPrice = Funs.GetNewDecimal(pds.Rows[i][4].ToString().Trim());
costControl.PlanStartDate = Funs.GetNewDateTime(pds.Rows[i][5].ToString().Trim());
costControl.PlanEndDate = Funs.GetNewDateTime(pds.Rows[i][6].ToString().Trim());
costControl.RealStartDate = Funs.GetNewDateTime(pds.Rows[i][7].ToString().Trim());
costControl.RealEndDate = Funs.GetNewDateTime(pds.Rows[i][8].ToString().Trim());
BLL.CostControlService.UpdateCostControl(costControl);
for (int j = 0; j < months.Count; j++)
{
@ -463,8 +496,8 @@ namespace FineUIPro.Web.JDGL.WBS
changeThisPlanValue = 0;
changeThisRealCost = 0;
changeThisPlanCost = 0;
string planNum = pds.Rows[i][5 + j * 2].ToString().Trim();
string thisNum = pds.Rows[i][6 + j * 2].ToString().Trim();
string planNum = pds.Rows[i][9 + j * 2].ToString().Trim();
string thisNum = pds.Rows[i][10 + j * 2].ToString().Trim();
Model.WBS_CostControlDetail costControlDetail = BLL.CostControlDetailService.GetCostControlDetailByCostControlIdAndMonths(costControl.CostControlId, months[j]);
if (costControlDetail != null)
{

View File

@ -349813,6 +349813,14 @@ namespace Model
private System.Nullable<bool> _IsSelected;
private System.Nullable<System.DateTime> _PlanStartDate;
private System.Nullable<System.DateTime> _PlanEndDate;
private System.Nullable<System.DateTime> _RealStartDate;
private System.Nullable<System.DateTime> _RealEndDate;
private EntityRef<Base_Project> _Base_Project;
private EntityRef<Wbs_WbsSet> _Wbs_WbsSet;
@ -349845,6 +349853,14 @@ namespace Model
partial void OnPlanPriceChanged();
partial void OnIsSelectedChanging(System.Nullable<bool> value);
partial void OnIsSelectedChanged();
partial void OnPlanStartDateChanging(System.Nullable<System.DateTime> value);
partial void OnPlanStartDateChanged();
partial void OnPlanEndDateChanging(System.Nullable<System.DateTime> value);
partial void OnPlanEndDateChanged();
partial void OnRealStartDateChanging(System.Nullable<System.DateTime> value);
partial void OnRealStartDateChanged();
partial void OnRealEndDateChanging(System.Nullable<System.DateTime> value);
partial void OnRealEndDateChanged();
#endregion
public WBS_CostControl()
@ -350064,6 +350080,86 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanStartDate", DbType="DateTime")]
public System.Nullable<System.DateTime> PlanStartDate
{
get
{
return this._PlanStartDate;
}
set
{
if ((this._PlanStartDate != value))
{
this.OnPlanStartDateChanging(value);
this.SendPropertyChanging();
this._PlanStartDate = value;
this.SendPropertyChanged("PlanStartDate");
this.OnPlanStartDateChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanEndDate", DbType="DateTime")]
public System.Nullable<System.DateTime> PlanEndDate
{
get
{
return this._PlanEndDate;
}
set
{
if ((this._PlanEndDate != value))
{
this.OnPlanEndDateChanging(value);
this.SendPropertyChanging();
this._PlanEndDate = value;
this.SendPropertyChanged("PlanEndDate");
this.OnPlanEndDateChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RealStartDate", DbType="DateTime")]
public System.Nullable<System.DateTime> RealStartDate
{
get
{
return this._RealStartDate;
}
set
{
if ((this._RealStartDate != value))
{
this.OnRealStartDateChanging(value);
this.SendPropertyChanging();
this._RealStartDate = value;
this.SendPropertyChanged("RealStartDate");
this.OnRealStartDateChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RealEndDate", DbType="DateTime")]
public System.Nullable<System.DateTime> RealEndDate
{
get
{
return this._RealEndDate;
}
set
{
if ((this._RealEndDate != value))
{
this.OnRealEndDateChanging(value);
this.SendPropertyChanging();
this._RealEndDate = value;
this.SendPropertyChanged("RealEndDate");
this.OnRealEndDateChanged();
}
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_CostControl_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)]
public Base_Project Base_Project
{