This commit is contained in:
杨红卫 2022-11-17 22:16:09 +08:00
commit 940df6ea3d
9 changed files with 280 additions and 19 deletions

View File

@ -1,4 +1,6 @@
using MiniExcelLibs;
using Microsoft.Office.Interop.Word;
using Microsoft.SqlServer.Dts.Runtime;
using MiniExcelLibs;
using Model;
using System;
using System.Collections.Generic;
@ -6,7 +8,9 @@ using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;
using static BLL.PipelineService;
namespace BLL
{
@ -20,6 +24,29 @@ namespace BLL
/// 现场安装
/// </summary>
public const string PipeArea_FIELD = "2";
/// <summary>
/// 实际日期类型
/// </summary>
public enum ActDateType
{
/// <summary>
/// 实际开始日期(预制)
/// </summary>
ActDateStart_Shop,
/// <summary>
/// 实际完成日期(预制)
/// </summary>
ActDateEnd_Shop ,
/// <summary>
/// 实际开始日期(安装)
/// </summary>
ActDateStart_FIELD ,
/// <summary>
/// 实际完成日期(安装)
/// </summary>
ActDateEnd_FIELD ,
}
public static ListItem[] GetPipeArea()
{
ListItem[] list = new ListItem[2];
@ -37,6 +64,99 @@ namespace BLL
{
return Funs.DB.HJGL_Pipeline.FirstOrDefault(e => e.PipelineId == pipelineId);
}
public static void GetStateByPipelineId(string pipelineId)
{//< f:ListItem Value = "0" Text = "未开始" />
// < f:ListItem Value = "1" Text = "未开始且延误" />
// < f:ListItem Value = "2" Text = "开始" />
// < f:ListItem Value = "3" Text = "已开始且延误" />
// < f:ListItem Value = "4" Text = "完成" />
var mdoel = GetPipelineByPipelineId(pipelineId);
var PlanStartDate = mdoel.PlanStartDate;
var PlanEndDate = mdoel.PlanEndDate;
var ActStartDate = new DateTime?();
var ActEndDate = new DateTime?();
if (!string .IsNullOrEmpty(GetDateByPipelineId(pipelineId, ActDateType.ActDateStart_FIELD)))
{
ActStartDate = Convert.ToDateTime(GetDateByPipelineId(pipelineId, ActDateType.ActDateStart_FIELD));
}
if (!string.IsNullOrEmpty(GetDateByPipelineId(pipelineId, ActDateType.ActDateEnd_FIELD)))
{
ActEndDate = Convert.ToDateTime(GetDateByPipelineId(pipelineId, ActDateType.ActDateEnd_FIELD));
}
if (ActStartDate==null&&DateTime.Compare(DateTime.Now,PlanStartDate.Value)<0)
{
mdoel.State = 0;
}
else if(ActStartDate == null && DateTime.Compare(DateTime.Now, PlanStartDate.Value) > 0)
{
mdoel.State = 1;
}
else if (ActStartDate!=null && DateTime.Compare(ActStartDate.Value, PlanStartDate.Value)<0 && ActEndDate==null)
{
mdoel.State = 2;
}
else if (ActStartDate != null && DateTime.Compare(ActStartDate.Value, PlanStartDate.Value) > 0 && ActEndDate == null)
{
mdoel.State = 3;
}
else if (ActEndDate != null)
{
mdoel.State = 4;
}
UpdatePipeline(mdoel);
}
public static string GetDateByPipelineId(object pipelineId, ActDateType actDateType)
{
string result ="";
string _pipelineId = pipelineId.ToString();
string ActDateStart_Shop = "";
string ActDateEnd_Shop = "";
string ActDateStart_FIELD = "";
string ActDateEnd_FIELD = "";
var pipemodel = GetPipelineByPipelineId(_pipelineId);
var joints = BLL.WeldJointService.GetWeldJointsByPipelineId(_pipelineId);
int joint_Shop_count = joints.Where(x => x.JointAttribute == "预制口").Count();
int joint_Field_count = joints.Where(x => x.JointAttribute == "安装口").Count();
var TaskJoints = (from x in Funs.DB.View_HJGL_WeldingTask where x.ProjectId == pipemodel.ProjectId && x.PipelineCode == pipemodel.PipelineCode
select x).ToList();
var TaskJoints_Shop = TaskJoints.Where(x => x.JointAttribute == "预制口").ToList();
var TaskJoints_Field= TaskJoints.Where(x => x.JointAttribute == "安装口").ToList();
if (TaskJoints_Shop.Count>0)
{
ActDateStart_Shop = TaskJoints_Shop.OrderBy(x => x.TaskDate).First().TaskDate.Value.ToShortDateString();
}
if (joint_Shop_count== TaskJoints_Shop.Count&& joint_Shop_count>0)
{
ActDateEnd_Shop = TaskJoints_Shop.OrderByDescending(x => x.TaskDate).First().TaskDate.Value.Date.ToShortDateString();
}
if (TaskJoints_Field.Count > 0)
{
ActDateStart_FIELD = TaskJoints_Field.OrderBy(x => x.TaskDate).First().TaskDate.Value.Date.ToShortDateString();
}
if (joint_Field_count == TaskJoints_Field.Count && joint_Field_count > 0)
{
ActDateEnd_FIELD = TaskJoints_Field.OrderByDescending(x => x.TaskDate).First().TaskDate.Value.Date.ToShortDateString();
}
switch (actDateType)
{
case ActDateType.ActDateStart_Shop:
result = ActDateStart_Shop;
break;
case ActDateType.ActDateEnd_Shop:
result = ActDateEnd_Shop;
break;
case ActDateType.ActDateStart_FIELD:
result = ActDateStart_FIELD;
break;
case ActDateType.ActDateEnd_FIELD:
result = ActDateEnd_FIELD;
break;
}
return result;
}
public static Model.HJGL_Pipeline GetPipelineByPipelineCode(string pipelineCode)
{
return Funs.DB.HJGL_Pipeline.FirstOrDefault(e => e.PipelineCode == pipelineCode);
@ -158,7 +278,7 @@ namespace BLL
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
System.Data.DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
tb.TableName = "Data";
var value = new Dictionary<string, object>()
{
@ -225,7 +345,7 @@ namespace BLL
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
System.Data.DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
tb.TableName = "Data";
var value = new Dictionary<string, object>()
{

View File

@ -54,7 +54,11 @@ namespace BLL
var q = (from x in Funs.DB.HJGL_WeldJoint where x.WeldingDailyId == weldingDailyId orderby x.PipelineId, x.WeldJointCode select x).ToList();
return q;
}
public static List<Model.HJGL_WeldJoint> GetWeldJointsByPipelineId(string PipelineId)
{
var q = (from x in Funs.DB.HJGL_WeldJoint where x.PipelineId == PipelineId select x).ToList();
return q;
}
/// <summary>
/// 添加
/// </summary>

View File

@ -0,0 +1,40 @@
错误信息开始=====>
错误类型:NullReferenceException
错误信息:未将对象引用设置到对象的实例。
错误堆栈:
在 FineUIPro.Web.HJGL.WeldingManage.WeldingPlan.Page_Load(Object sender, EventArgs e) 位置 D:\诺必达\赛鼎\SGGL_SeDin\SGGL\FineUIPro.Web\HJGL\WeldingManage\WeldingPlan.aspx.cs:行号 18
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.EventHandler.Invoke(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
出错时间:11/16/2022 19:30:50
出错文件:http://localhost:14901/HJGL/WeldingManage/WeldingPlan.aspx
IP地址:::1
出错时间:11/16/2022 19:30:50
错误信息开始=====>
错误类型:FormatException
错误信息:该字符串未被识别为有效的 DateTime。
错误堆栈:
在 System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
在 System.Convert.ToDateTime(String value)
在 BLL.PipelineService.GetStateByPipelineId(String pipelineId) 位置 D:\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\HJGL\WeldingManage\PipelineService.cs:行号 75
在 FineUIPro.Web.HJGL.WeldingManage.WeldingPlan.btnUpDateState_Click(Object sender, EventArgs e)
在 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)
出错时间:11/16/2022 19:35:57
出错文件:http://localhost:14901/HJGL/WeldingManage/WeldingPlan.aspx
IP地址:::1
操作人员:JT
出错时间:11/16/2022 19:35:57

View File

@ -419,8 +419,8 @@ namespace FineUIPro.Web.HJGL.BaseInfo
int a = PipingClassList.Count();
for (int i = 0; i < a; i++)
{
var isExistPipingClassCode = Funs.DB.Base_PipingClass.FirstOrDefault(x => (x.PipingClassId != PipingClassList[i].PipingClassId || (PipingClassList[i].PipingClassId == null && x.PipingClassId != null)) && x.PipingClassCode == PipingClassList[i].PipingClassCode);
var isExistPipingClassName = Funs.DB.Base_PipingClass.FirstOrDefault(x => (x.PipingClassId != PipingClassList[i].PipingClassId || (PipingClassList[i].PipingClassId == null && x.PipingClassId != null)) && x.PipingClassName == PipingClassList[i].PipingClassName);
var isExistPipingClassCode = Funs.DB.Base_PipingClass.FirstOrDefault(x => (x.PipingClassId == PipingClassList[i].PipingClassId || (PipingClassList[i].PipingClassId == null && x.PipingClassId != null)) && x.PipingClassCode == PipingClassList[i].PipingClassCode);
var isExistPipingClassName = Funs.DB.Base_PipingClass.FirstOrDefault(x => (x.PipingClassId == PipingClassList[i].PipingClassId || (PipingClassList[i].PipingClassId == null && x.PipingClassId != null)) && x.PipingClassName == PipingClassList[i].PipingClassName);
if (isExistPipingClassCode != null)
{
ShowNotify("存在相同批次的管道等级代号,请修正后重新提交!", MessageBoxIcon.Warning);

View File

@ -430,10 +430,10 @@ namespace FineUIPro.Web.HJGL.WeldingManage
NewTask.TableDate = DateTime.Now;
BLL.WeldTaskService.AddWeldTask(NewTask);
}
string pipelineId = this.tvControlItem.SelectedNodeID;
var model = BLL.PipelineService.GetPipelineByPipelineId(pipelineId);
model.State = 1;
PipelineService.UpdatePipeline(model);
//string pipelineId = this.tvControlItem.SelectedNodeID;
//var model = BLL.PipelineService.GetPipelineByPipelineId(pipelineId);
//model.State = 1;
//PipelineService.UpdatePipeline(model);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(txtTaskDate.Text) + ActiveWindow.GetHidePostBackReference());
//PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());

View File

@ -221,7 +221,7 @@
SortField="Size" FieldType="Double" HeaderTextAlign="Center" TextAlign="Left"
Width="90px">
</f:RenderField>
<f:RenderField HeaderText="外径" ColumnID="Dia"
<f:RenderField HeaderText="外径(公称直径)" ColumnID="Dia"
DataField="Dia" SortField="Dia" FieldType="Double" HeaderTextAlign="Center" TextAlign="Left"
Width="90px">
</f:RenderField>

View File

@ -58,6 +58,8 @@
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Text="导出" Icon="FolderUp" Hidden="true"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
<f:Button ID="btnUpDateState" Text="更新状态" ToolTip="更新状态" Icon="ArrowRefresh" runat="server" OnClick="btnUpDateState_Click">
</f:Button>
<f:Button ID="btnImportFIELD" Text="同步管线" ToolTip="同步管线" Icon="PackageIn" runat="server" OnClick="btnImportFIELD_Click">
</f:Button>
<f:Button ID="btnImportSHOP" Text="同步管线(预制)" ToolTip="同步管线(预制)" Icon="PackageIn" runat="server" OnClick="btnImportSHOP_Click">
@ -127,14 +129,26 @@
DataField="PlanEndDate_SHOP" SortField="PlanEndDate_SHOP" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="实际开始日期(预制)" ColumnID="ActStartDate_SHOP"
<f:TemplateField Width="150px" HeaderText="实际开始日期(预制)" HeaderTextAlign="Center"
TextAlign="Center" SortField="PipelineId">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# BLL.PipelineService.GetDateByPipelineId(Eval("PipelineId"),BLL.PipelineService.ActDateType.ActDateStart_Shop) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:TemplateField Width="150px" HeaderText="实际完成日期(预制)" HeaderTextAlign="Center"
TextAlign="Center" SortField="PipelineId">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# BLL.PipelineService.GetDateByPipelineId(Eval("PipelineId"),BLL.PipelineService.ActDateType.ActDateEnd_Shop) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<%--<f:RenderField HeaderText="实际开始日期(预制)" ColumnID="ActStartDate_SHOP"
DataField="ActStartDate_SHOP" SortField="ActStartDate_SHOP" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="实际完成日期(预制)" ColumnID="ActEndDate_SHOP"
DataField="ActEndDate_SHOP" SortField="ActEndDate_SHOP" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
</f:RenderField>
</f:RenderField>--%>
<f:RenderField HeaderText="计划开始日期(安装)" ColumnID="PlanStartDate"
DataField="PlanStartDate" SortField="PlanStartDate" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
@ -143,18 +157,31 @@
DataField="PlanEndDate" SortField="PlanEndDate" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="实际开始日期(安装)" ColumnID="ActStartDate"
<f:TemplateField Width="150px" HeaderText="实际开始日期(安装)" HeaderTextAlign="Center"
TextAlign="Center" SortField="PipelineId">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# BLL.PipelineService.GetDateByPipelineId(Eval("PipelineId"),BLL.PipelineService.ActDateType.ActDateStart_FIELD) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:TemplateField Width="150px" HeaderText="实际完成日期(安装)" HeaderTextAlign="Center"
TextAlign="Center" SortField="PipelineId">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# BLL.PipelineService.GetDateByPipelineId(Eval("PipelineId"),BLL.PipelineService.ActDateType.ActDateEnd_FIELD) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<%-- <f:RenderField HeaderText="实际开始日期(安装)" ColumnID="ActStartDate"
DataField="ActStartDate" SortField="ActStartDate" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="实际完成日期(安装)" ColumnID="ActEndDate"
DataField="ActEndDate" SortField="ActEndDate" FieldType="Date" Renderer="Date"
HeaderTextAlign="Center" TextAlign="Left" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="状态" ColumnID="IsFinished"
DataField="IsFinished" SortField="IsFinished" FieldType="String"
</f:RenderField>--%>
<f:RenderField HeaderText="状态" ColumnID="State"
DataField="State" SortField="State" FieldType="String"
HeaderTextAlign="Center" TextAlign="Left" Width="120px">
</f:RenderField>
</Columns>
<PageItems>

View File

@ -172,6 +172,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage
,line.ActEndDate
,line.IsFinished
,line.FlowingSection
,(case line.State
when 0 then ''
when 1 then ''
when 2 then ''
when 3 then ''
when 4 then '' else '' end ) as State
,com.PipelineComponentId
,com.PreUnit
,com.PipelineComponentCode
@ -179,7 +185,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
,com.AssembleUnit
,com.PipeLineMatId
,com.QRCode
,com.State
,com.PlanStartDate as PlanStartDate_SHOP
,com.PlanEndDate as PlanEndDate_SHOP
,com.ActStartDate as ActStartDate_SHOP
@ -459,8 +464,20 @@ namespace FineUIPro.Web.HJGL.WeldingManage
ShowNotify("请先选择单位工程!", MessageBoxIcon.Warning);
}
}
#endregion
protected void btnUpDateState_Click(object sender, EventArgs e)
{
string unitworkid = this.tvControlItem.SelectedNodeID;
var pipeline=PipelineService.GetPipelinesByUnitWordId(unitworkid);
foreach (var item in pipeline)
{
BLL.PipelineService.GetStateByPipelineId(item.PipelineId);
}
BindGrid();
}
}
}

View File

@ -140,6 +140,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// btnUpDateState 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnUpDateState;
/// <summary>
/// btnImportFIELD 控件。
/// </summary>
@ -184,7 +193,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtPipelineCode;
protected global::FineUIPro.TextBox txtFlowingSection;
/// <summary>
/// txtSingleName 控件。
@ -213,6 +221,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.TextBox txtMaterialCode;
/// <summary>
/// txtFlowingSection 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtFlowingSection;
/// <summary>
/// btnQuery 控件。
/// </summary>
@ -231,6 +248,42 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// Label2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label2;
/// <summary>
/// Label3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label3;
/// <summary>
/// Label4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label4;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>