feat: 完善材料管理与焊接业务功能
This commit is contained in:
@@ -70,6 +70,9 @@
|
||||
<f:RenderField Width="90px" ColumnID="MaterialUnit" DataField="MaterialUnit" FieldType="String" HeaderText="单位"
|
||||
HeaderTextAlign="Center" TextAlign="Left" SortField="MaterialUnit" >
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="180px" ColumnID="DesignInstitute" DataField="DesignInstitute" FieldType="String" HeaderText="所属设计院"
|
||||
HeaderTextAlign="Center" TextAlign="Left" SortField="DesignInstitute">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="260px" ColumnID="MaterialDef" DataField="MaterialDef" FieldType="String"
|
||||
HeaderText="材料描述" HeaderTextAlign="Center" TextAlign="Left"
|
||||
ExpandUnusedSpace="true">
|
||||
|
||||
@@ -55,13 +55,20 @@
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtMaterialUnit" runat="server" Label="单位"
|
||||
LabelWidth="100px">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtDesignInstitute" runat="server" Label="所属设计院"
|
||||
MaxLength="200" LabelWidth="100px">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextArea ID="txtMaterialDef" runat="server" Label="描述" MaxLength="300" LabelWidth="100px">
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
txtMaterialSpec.Text = lib.MaterialSpec;
|
||||
txtMaterialDef.Text = lib.MaterialDef;
|
||||
txtMaterialUnit.Text = lib.MaterialUnit;
|
||||
txtDesignInstitute.Text = lib.DesignInstitute;
|
||||
//txtMaterialCode.Enabled = false;
|
||||
}
|
||||
else
|
||||
@@ -71,7 +72,10 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
MaterialMade = this.txtMaterialMade.Text.Trim(),
|
||||
MaterialDef = this.txtMaterialDef.Text.Trim(),
|
||||
MaterialUnit = txtMaterialUnit.Text.Trim(),
|
||||
Code = this.txtCode.Text.Trim()
|
||||
Code = this.txtCode.Text.Trim(),
|
||||
DesignInstitute = string.IsNullOrWhiteSpace(txtDesignInstitute.Text)
|
||||
? null
|
||||
: txtDesignInstitute.Text.Trim()
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(materialCode))
|
||||
@@ -91,4 +95,4 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,6 +101,11 @@ namespace FineUIPro.Web.HJGL.BaseInfo {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtMaterialUnit;
|
||||
|
||||
/// <summary>
|
||||
/// txtDesignInstitute 控件。
|
||||
/// </summary>
|
||||
protected global::FineUIPro.TextBox txtDesignInstitute;
|
||||
|
||||
/// <summary>
|
||||
/// txtMaterialDef 控件。
|
||||
|
||||
@@ -153,6 +153,9 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
// item.MaterialMade = dv[i]["材质"].ToString();
|
||||
item.MaterialUnit = rows[i].MaterialUnit;
|
||||
item.MaterialName = rows[i].MaterialName;
|
||||
item.DesignInstitute = string.IsNullOrWhiteSpace(rows[i].DesignInstitute)
|
||||
? null
|
||||
: rows[i].DesignInstitute.Trim();
|
||||
//item.PipeGrade = dv[i]["管道等级"].ToString();
|
||||
//item.ProjectId = CurrUser.LoginProjectId;
|
||||
//= SQLHelper.GetNewID(typeof(Model.Editor_CostReport));
|
||||
@@ -236,6 +239,7 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
MaterialSpec = x.MaterialSpec,
|
||||
MaterialUnit = x.MaterialUnit,
|
||||
MaterialName = x.MaterialName,
|
||||
DesignInstitute = x.DesignInstitute,
|
||||
|
||||
}).DistinctBy(temp => new
|
||||
{
|
||||
@@ -243,7 +247,8 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
temp.MaterialDef,
|
||||
temp.MaterialSpec,
|
||||
temp.MaterialUnit,
|
||||
temp.MaterialName
|
||||
temp.MaterialName,
|
||||
temp.DesignInstitute
|
||||
}).ToList();
|
||||
codeLib_update = (from x in codeLib_update
|
||||
select new HJGL_MaterialCodeLib
|
||||
@@ -253,6 +258,7 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
MaterialSpec = x.MaterialSpec,
|
||||
MaterialUnit = x.MaterialUnit,
|
||||
MaterialName = x.MaterialName,
|
||||
DesignInstitute = x.DesignInstitute,
|
||||
|
||||
}).DistinctBy(temp => new
|
||||
{
|
||||
@@ -260,7 +266,8 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
temp.MaterialDef,
|
||||
temp.MaterialSpec,
|
||||
temp.MaterialUnit,
|
||||
temp.MaterialName
|
||||
temp.MaterialName,
|
||||
temp.DesignInstitute
|
||||
}).ToList();
|
||||
foreach (var item in codeLib_update)
|
||||
{
|
||||
@@ -281,4 +288,4 @@ namespace FineUIPro.Web.HJGL.BaseInfo
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,13 +88,7 @@
|
||||
</f:Button>
|
||||
<f:Button ID="btnPrint" Text="打印" Icon="Printer" runat="server"
|
||||
OnClick="btnPrint_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnImport" Text="导入" ToolTip="导入" Icon="PackageIn" runat="server" Hidden="true" OnClick="btnImport_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnUpdateImport" Text="更新导入" ToolTip="更新导入" Icon="PackageIn" runat="server" Hidden="true" OnClick="btnUpdateImport_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnPDMSImport" Text="PDMS导入" ToolTip="PDMS导入" Icon="PackageIn" runat="server" OnClick="btnPDMSImport_Click" Hidden="true">
|
||||
</f:Button>
|
||||
</f:Button>
|
||||
<f:Button ID="btnMatImport" Text="材料导入" ToolTip="材料导入" Icon="PackageIn" runat="server" OnClick="btnMatImport_Click">
|
||||
</f:Button>
|
||||
|
||||
@@ -156,6 +150,9 @@
|
||||
FieldType="String" HeaderText="数量" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="110px" ColumnID="PipeAreaText" DataField="PipeAreaText"
|
||||
FieldType="String" HeaderText="材料用途" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="MaterialUnit" DataField="MaterialUnit" SortField="MaterialUnit"
|
||||
FieldType="String" HeaderText="单位" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
@@ -218,6 +215,9 @@
|
||||
FieldType="String" HeaderText="数量" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="110px" ColumnID="PipeAreaText" DataField="PipeAreaText"
|
||||
FieldType="String" HeaderText="材料用途" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="MaterialUnit" DataField="MaterialUnit" SortField="MaterialUnit"
|
||||
FieldType="String" HeaderText="单位" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
@@ -279,6 +279,9 @@
|
||||
FieldType="String" HeaderText="数量" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="110px" ColumnID="PipeAreaText" DataField="PipeAreaText"
|
||||
FieldType="String" HeaderText="材料用途" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="MaterialUnit" DataField="MaterialUnit" SortField="MaterialUnit"
|
||||
FieldType="String" HeaderText="单位" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
|
||||
@@ -327,13 +327,15 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
ISNULL(lib.MaterialSpec, libCode.MaterialSpec) AS MaterialSpec,
|
||||
ISNULL(lib.MaterialMade, libCode.MaterialMade) AS MaterialMade,
|
||||
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
|
||||
pipe.Number,pipe.PrefabricatedComponents,weld.WeldJointCode
|
||||
pipe.Number,pipe.PrefabricatedComponents,
|
||||
CASE pipe.PipeArea WHEN '1' THEN N'工厂预制' WHEN '2' THEN N'现场安装' END AS PipeAreaText,
|
||||
weld.WeldJointCode
|
||||
FROM dbo.HJGL_PipeLineMat pipe
|
||||
LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode
|
||||
LEFT JOIN HJGL_Pipeline line ON pipe.PipelineId=line.PipelineId
|
||||
OUTER APPLY (SELECT TOP 1 * FROM dbo.HJGL_MaterialCodeLib codeLib WHERE codeLib.ProjectId=line.ProjectId AND codeLib.Code=pipe.MaterialCode2 ORDER BY codeLib.MaterialCode) libCode
|
||||
LEFT JOIN dbo.HJGL_WeldJoint weld ON weld.WeldJointId = pipe.WeldJointId
|
||||
WHERE line.UnitWorkId=@UnitWorkId and line.PipeArea='1' and pipe.PrefabricatedComponents !='' ";
|
||||
WHERE line.UnitWorkId=@UnitWorkId and pipe.PipeArea='1' and pipe.PrefabricatedComponents !='' ";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||
//if (!string.IsNullOrEmpty(txtMaterialCode.Text.Trim()))
|
||||
//{
|
||||
@@ -369,13 +371,15 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
ISNULL(lib.MaterialSpec, libCode.MaterialSpec) AS MaterialSpec,
|
||||
ISNULL(lib.MaterialMade, libCode.MaterialMade) AS MaterialMade,
|
||||
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
|
||||
pipe.Number,weld.WeldJointCode
|
||||
pipe.Number,
|
||||
CASE pipe.PipeArea WHEN '1' THEN N'工厂预制' WHEN '2' THEN N'现场安装' END AS PipeAreaText,
|
||||
weld.WeldJointCode
|
||||
FROM dbo.HJGL_PipeLineMat pipe
|
||||
LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode
|
||||
LEFT JOIN HJGL_Pipeline line ON pipe.PipelineId=line.PipelineId
|
||||
OUTER APPLY (SELECT TOP 1 * FROM dbo.HJGL_MaterialCodeLib codeLib WHERE codeLib.ProjectId=line.ProjectId AND codeLib.Code=pipe.MaterialCode2 ORDER BY codeLib.MaterialCode) libCode
|
||||
LEFT JOIN dbo.HJGL_WeldJoint weld ON weld.WeldJointId = pipe.WeldJointId
|
||||
WHERE line.UnitWorkId=@UnitWorkId and line.PipeArea='2' ";
|
||||
WHERE line.UnitWorkId=@UnitWorkId and pipe.PipeArea='2' ";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||
if (!string.IsNullOrEmpty(pipelineId))
|
||||
{
|
||||
@@ -407,13 +411,15 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
ISNULL(lib.MaterialSpec, libCode.MaterialSpec) AS MaterialSpec,
|
||||
ISNULL(lib.MaterialMade, libCode.MaterialMade) AS MaterialMade,
|
||||
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
|
||||
pipe.Number,pipe.PrefabricatedComponents,weld.WeldJointCode
|
||||
pipe.Number,pipe.PrefabricatedComponents,
|
||||
CASE pipe.PipeArea WHEN '1' THEN N'工厂预制' WHEN '2' THEN N'现场安装' END AS PipeAreaText,
|
||||
weld.WeldJointCode
|
||||
FROM dbo.HJGL_PipeLineMat pipe
|
||||
LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode
|
||||
LEFT JOIN HJGL_Pipeline line ON pipe.PipelineId=line.PipelineId
|
||||
OUTER APPLY (SELECT TOP 1 * FROM dbo.HJGL_MaterialCodeLib codeLib WHERE codeLib.ProjectId=line.ProjectId AND codeLib.Code=pipe.MaterialCode2 ORDER BY codeLib.MaterialCode) libCode
|
||||
LEFT JOIN dbo.HJGL_WeldJoint weld ON weld.WeldJointId = pipe.WeldJointId
|
||||
WHERE line.UnitWorkId=@UnitWorkId and line.PipeArea='1' and (pipe.PrefabricatedComponents is null or pipe.PrefabricatedComponents='') ";
|
||||
WHERE line.UnitWorkId=@UnitWorkId and pipe.PipeArea='1' and (pipe.PrefabricatedComponents is null or pipe.PrefabricatedComponents='') ";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||
//if (!string.IsNullOrEmpty(txtMaterialCode.Text.Trim()))
|
||||
//{
|
||||
@@ -1006,64 +1012,10 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
this.BindGrid2(this.tvControlItem.SelectedNodeID, this.hdUnitWorkId.Text);
|
||||
}
|
||||
|
||||
#region 导入
|
||||
/// <summary>
|
||||
/// 导入按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(this.tvControlItem.SelectedNodeID);
|
||||
if (unitWork != null)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("PipelineListIn.aspx?UnitWorkId={0}", this.tvControlItem.SelectedNodeID, "导入 - ")));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请先选择单位工程!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 更新导入
|
||||
/// <summary>
|
||||
/// 更新导入按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnUpdateImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(this.tvControlItem.SelectedNodeID);
|
||||
if (unitWork != null)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("PipelineListUpdateIn.aspx?UnitWorkId={0}", this.tvControlItem.SelectedNodeID, "更新导入 - ")));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请先选择单位工程!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PDMS导入
|
||||
/// <summary>
|
||||
/// 导入按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnPDMSImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(this.tvControlItem.SelectedNodeID);
|
||||
if (unitWork != null)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("PipelineListPDMSIn.aspx?UnitWorkId={0}", this.tvControlItem.SelectedNodeID, "导入 - ")));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请先选择单位工程!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
#region 管线材料导入
|
||||
|
||||
/// <summary>
|
||||
/// 管线材料导入
|
||||
|
||||
@@ -185,33 +185,6 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPrint;
|
||||
|
||||
/// <summary>
|
||||
/// btnImport 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnImport;
|
||||
|
||||
/// <summary>
|
||||
/// btnUpdateImport 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnUpdateImport;
|
||||
|
||||
/// <summary>
|
||||
/// btnPDMSImport 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPDMSImport;
|
||||
|
||||
/// <summary>
|
||||
/// btnMatImport 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -44,6 +44,15 @@
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownList ID="drpPipeArea" runat="server" Label="材料用途" Required="true"
|
||||
ShowRedStar="true" LabelWidth="100px">
|
||||
<f:ListItem Text="工厂预制" Value="1" />
|
||||
<f:ListItem Text="现场安装" Value="2" />
|
||||
</f:DropDownList>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
</Rows>
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
|
||||
|
||||
@@ -44,6 +44,9 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
? Const._Null
|
||||
: pipeLineMat.MaterialCode;
|
||||
this.txtMaterialCode.Text = pipeLineMat.MaterialCode2;
|
||||
this.drpPipeArea.SelectedValue = string.IsNullOrEmpty(pipeLineMat.PipeArea)
|
||||
? PipelineService.PipeArea_SHOP
|
||||
: pipeLineMat.PipeArea;
|
||||
BindMaterialDetails(pipeLineMat.MaterialCode, false);
|
||||
}
|
||||
}
|
||||
@@ -118,6 +121,7 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
this.PipeLineMatId,
|
||||
mainMaterialCode,
|
||||
this.txtMaterialCode.Text.Trim());
|
||||
PipelineMatService.UpdatePipeArea(this.PipeLineMatId, this.drpPipeArea.SelectedValue);
|
||||
ShowNotify("保存成功!", MessageBoxIcon.Success);
|
||||
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
||||
}
|
||||
|
||||
@@ -77,6 +77,11 @@ namespace FineUIPro.Web.HJGL.DataImport
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtBatchNo;
|
||||
|
||||
/// <summary>
|
||||
/// drpPipeArea 控件。
|
||||
/// </summary>
|
||||
protected global::FineUIPro.DropDownList drpPipeArea;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -674,7 +674,7 @@ namespace FineUIPro.Web.HJGL.HotProcessHard
|
||||
|
||||
string initTemplatePath = "";
|
||||
string rootPath = Server.MapPath("~/");
|
||||
initTemplatePath = "File\\Fastreport\\管道焊口热处理委托单NoPic.frx";
|
||||
initTemplatePath = "File\\Fastreport\\管道焊缝热处理委托_附件5.frx";
|
||||
|
||||
if (File.Exists(rootPath + initTemplatePath))
|
||||
{
|
||||
|
||||
@@ -233,11 +233,10 @@
|
||||
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
|
||||
</f:ToolbarText>
|
||||
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
|
||||
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
|
||||
<f:ListItem Text="10" Value="10" />
|
||||
<f:ListItem Text="15" Value="15" />
|
||||
<f:ListItem Text="20" Value="20" />
|
||||
<f:ListItem Text="25" Value="25" />
|
||||
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
|
||||
<f:ListItem Text="50" Value="50" />
|
||||
<f:ListItem Text="100" Value="100" />
|
||||
<f:ListItem Text="200" Value="200" />
|
||||
</f:DropDownList>
|
||||
</PageItems>
|
||||
</f:Grid>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
OnClick="btnDelete_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnPrint" Text="打印" Icon="Printer" runat="server"
|
||||
OnClick="btnPrint_Click" Hidden="true">
|
||||
MenuID="MenuPrint" ShowMenuIcon="true" Hidden="true">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
@@ -115,7 +115,7 @@
|
||||
<f:Button ID="btnBack" Text="退回" Icon="ArrowLeft" runat="server" OnClick="btnBack_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="Button1" Text="打印" Icon="Printer" runat="server"
|
||||
OnClick="btnPrint_Click">
|
||||
MenuID="MenuPrint" ShowMenuIcon="true">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
@@ -200,6 +200,10 @@
|
||||
<f:MenuButton ID="btnPointAudit" EnablePostBack="true" runat="server" Text="委托" Icon="ArrowNsew" OnClick="btnPointAudit_Click">
|
||||
</f:MenuButton>
|
||||
</f:Menu>
|
||||
<f:Menu ID="MenuPrint" runat="server">
|
||||
<f:MenuButton ID="btnPrintAttachment4" EnablePostBack="true" runat="server" Text="附件4:管道焊口检测委托单" Icon="Printer" OnClick="btnPrintAttachment4_Click" />
|
||||
<f:MenuButton ID="btnPrintAttachment6" EnablePostBack="true" runat="server" Text="附件6:无损检测委托单" Icon="Printer" OnClick="btnPrintAttachment6_Click" />
|
||||
</f:Menu>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
var menuID1 = '<%= Menu1.ClientID %>';
|
||||
|
||||
@@ -598,6 +598,21 @@ namespace FineUIPro.Web.HJGL.PointTrust
|
||||
return;
|
||||
}
|
||||
}
|
||||
protected void btnPrintAttachment4_Click(object sender, EventArgs e)
|
||||
{
|
||||
ViewState["TrustPrintTemplate"] = "附件4";
|
||||
btnPrint_Click(sender, e);
|
||||
}
|
||||
|
||||
protected void btnPrintAttachment6_Click(object sender, EventArgs e)
|
||||
{
|
||||
ViewState["TrustPrintTemplate"] = "附件6";
|
||||
btnPrint_Click(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按所选模板打印检测委托单。附件4为主单,附件6为无损检测附页,两者共用当前委托数据源。
|
||||
/// </summary>
|
||||
protected void btnPrint_Click(object sender, EventArgs e)
|
||||
{
|
||||
// string reportId = this.tvControlItem.SelectedNode.NodeID;
|
||||
@@ -629,6 +644,11 @@ namespace FineUIPro.Web.HJGL.PointTrust
|
||||
// Model.View_Batch_BatchTrust trust = BLL.Batch_BatchTrustService.GetBatchTrustViewByPointBatchId(this.tvControlItem.SelectedNodeID);
|
||||
// Model.HJGL_Batch_PointBatch batch = BLL.PointBatchService.GetPointBatchById(this.tvControlItem.SelectedNodeID);
|
||||
var trust = BLL.Batch_BatchTrustService.GetBatchTrustViewByPointBatchId(reportId);
|
||||
if (trust == null)
|
||||
{
|
||||
Alert.ShowInTop("请选择要打印的委托单!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
var CH_WeldMethod = (from batch in Funs.DB.View_Batch_BatchTrustItem
|
||||
join joint in Funs.DB.View_HJGL_WeldJoint on batch.WeldJointId equals joint.WeldJointId
|
||||
where batch.TrustBatchId == trust.TrustBatchId
|
||||
@@ -723,7 +743,9 @@ namespace FineUIPro.Web.HJGL.PointTrust
|
||||
// Session["CH_TrustID"] = reportId;
|
||||
string initTemplatePath = "";
|
||||
string rootPath = Server.MapPath("~/");
|
||||
initTemplatePath = "File\\Fastreport\\管道焊口检测委托单NoPic.frx";
|
||||
initTemplatePath = (ViewState["TrustPrintTemplate"] as string) == "附件6"
|
||||
? "File\\Fastreport\\无损检测委托单_附件6.frx"
|
||||
: "File\\Fastreport\\管道焊口检测委托单_附件4.frx";
|
||||
|
||||
if (File.Exists(rootPath + initTemplatePath))
|
||||
{
|
||||
|
||||
+67
-38
@@ -7,11 +7,13 @@
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
|
||||
|
||||
public partial class TrustBatch {
|
||||
|
||||
namespace FineUIPro.Web.HJGL.PointTrust
|
||||
{
|
||||
|
||||
|
||||
public partial class TrustBatch
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
@@ -20,7 +22,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
@@ -29,7 +31,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
@@ -38,7 +40,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// panelLeftRegion 控件。
|
||||
/// </summary>
|
||||
@@ -47,7 +49,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel panelLeftRegion;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar2 控件。
|
||||
/// </summary>
|
||||
@@ -56,7 +58,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpUnit 控件。
|
||||
/// </summary>
|
||||
@@ -65,7 +67,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList drpUnit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar4 控件。
|
||||
/// </summary>
|
||||
@@ -74,7 +76,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar4;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtWelderCode 控件。
|
||||
/// </summary>
|
||||
@@ -83,7 +85,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtWelderCode;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
@@ -92,7 +94,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtTrustDateMonth 控件。
|
||||
/// </summary>
|
||||
@@ -101,7 +103,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtTrustDateMonth;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// tvControlItem 控件。
|
||||
/// </summary>
|
||||
@@ -110,7 +112,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tree tvControlItem;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// panelCenterRegion 控件。
|
||||
/// </summary>
|
||||
@@ -119,7 +121,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel panelCenterRegion;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar3 控件。
|
||||
/// </summary>
|
||||
@@ -128,7 +130,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar3;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarFill1 控件。
|
||||
/// </summary>
|
||||
@@ -137,7 +139,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarFill ToolbarFill1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnAudit 控件。
|
||||
/// </summary>
|
||||
@@ -146,7 +148,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnAudit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnDelete 控件。
|
||||
/// </summary>
|
||||
@@ -155,7 +157,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnDelete;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPrint 控件。
|
||||
/// </summary>
|
||||
@@ -164,7 +166,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPrint;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm1 控件。
|
||||
/// </summary>
|
||||
@@ -173,7 +175,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtTrustBatchCode 控件。
|
||||
/// </summary>
|
||||
@@ -182,7 +184,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label txtTrustBatchCode;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtTrustDate 控件。
|
||||
/// </summary>
|
||||
@@ -191,7 +193,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label txtTrustDate;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtDetectionTypeCode 控件。
|
||||
/// </summary>
|
||||
@@ -200,7 +202,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label txtDetectionTypeCode;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// lbNDEUnit 控件。
|
||||
/// </summary>
|
||||
@@ -209,7 +211,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbNDEUnit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// lbIsTrust 控件。
|
||||
/// </summary>
|
||||
@@ -218,7 +220,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbIsTrust;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// lbIsAudit 控件。
|
||||
/// </summary>
|
||||
@@ -227,7 +229,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbIsAudit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnBack 控件。
|
||||
/// </summary>
|
||||
@@ -236,7 +238,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnBack;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Button1 控件。
|
||||
/// </summary>
|
||||
@@ -245,7 +247,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button Button1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
@@ -254,7 +256,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarSeparator1 控件。
|
||||
/// </summary>
|
||||
@@ -263,7 +265,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarText1 控件。
|
||||
/// </summary>
|
||||
@@ -272,7 +274,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarText ToolbarText1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ddlPageSize 控件。
|
||||
/// </summary>
|
||||
@@ -281,7 +283,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlPageSize;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
@@ -290,7 +292,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window2 控件。
|
||||
/// </summary>
|
||||
@@ -299,7 +301,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Menu1 控件。
|
||||
/// </summary>
|
||||
@@ -308,7 +310,7 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Menu Menu1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPointAudit 控件。
|
||||
/// </summary>
|
||||
@@ -317,5 +319,32 @@ namespace FineUIPro.Web.HJGL.PointTrust {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnPointAudit;
|
||||
|
||||
/// <summary>
|
||||
/// MenuPrint 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Menu MenuPrint;
|
||||
|
||||
/// <summary>
|
||||
/// btnPrintAttachment4 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnPrintAttachment4;
|
||||
|
||||
/// <summary>
|
||||
/// btnPrintAttachment6 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnPrintAttachment6;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
OnClick="btnDelete_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnPrint" Text="打印" Icon="Printer" runat="server"
|
||||
OnClick="btnPrint_Click">
|
||||
MenuID="MenuPrint" ShowMenuIcon="true">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
@@ -182,6 +182,10 @@
|
||||
EnableMaximize="true" Target="Top" EnableResize="false" runat="server"
|
||||
IsModal="true" Width="1010px" Height="660px">
|
||||
</f:Window>
|
||||
<f:Menu ID="MenuPrint" runat="server">
|
||||
<f:MenuButton ID="btnPrintAttachment4" EnablePostBack="true" runat="server" Text="附件4:管道焊口检测委托单" Icon="Printer" OnClick="btnPrintAttachment4_Click" />
|
||||
<f:MenuButton ID="btnPrintAttachment6" EnablePostBack="true" runat="server" Text="附件6:无损检测委托单(附页)" Icon="Printer" OnClick="btnPrintAttachment6_Click" />
|
||||
</f:Menu>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
function reloadGrid() {
|
||||
|
||||
@@ -449,6 +449,21 @@ namespace FineUIPro.Web.HJGL.RepairAndExpand
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnPrintAttachment4_Click(object sender, EventArgs e)
|
||||
{
|
||||
ViewState["TrustPrintTemplate"] = "附件4";
|
||||
btnPrint_Click(sender, e);
|
||||
}
|
||||
|
||||
protected void btnPrintAttachment6_Click(object sender, EventArgs e)
|
||||
{
|
||||
ViewState["TrustPrintTemplate"] = "附件6";
|
||||
btnPrint_Click(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按所选模板打印返修委托单。两个模板均保留返修页面的当前明细数据源。
|
||||
/// </summary>
|
||||
protected void btnPrint_Click(object sender, EventArgs e)
|
||||
{
|
||||
DataTable dt = new DataTable("Table1");
|
||||
@@ -548,7 +563,9 @@ namespace FineUIPro.Web.HJGL.RepairAndExpand
|
||||
// Session["CH_TrustID"] = reportId;
|
||||
string initTemplatePath = "";
|
||||
string rootPath = Server.MapPath("~/");
|
||||
initTemplatePath = "File\\Fastreport\\管道焊口返修委托单NoPic.frx";
|
||||
initTemplatePath = (ViewState["TrustPrintTemplate"] as string) == "附件6"
|
||||
? "File\\Fastreport\\无损检测委托单_附件6.frx"
|
||||
: "File\\Fastreport\\管道焊口检测委托单_附件4.frx";
|
||||
|
||||
if (File.Exists(rootPath + initTemplatePath))
|
||||
{
|
||||
|
||||
@@ -290,5 +290,20 @@ namespace FineUIPro.Web.HJGL.RepairAndExpand {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window2;
|
||||
|
||||
/// <summary>
|
||||
/// MenuPrint 控件。
|
||||
/// </summary>
|
||||
protected global::FineUIPro.Menu MenuPrint;
|
||||
|
||||
/// <summary>
|
||||
/// btnPrintAttachment4 控件。
|
||||
/// </summary>
|
||||
protected global::FineUIPro.MenuButton btnPrintAttachment4;
|
||||
|
||||
/// <summary>
|
||||
/// btnPrintAttachment6 控件。
|
||||
/// </summary>
|
||||
protected global::FineUIPro.MenuButton btnPrintAttachment6;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
<f:Toolbar ID="Toolbar1" runat="server">
|
||||
<Items>
|
||||
<f:Label ID="lbVersion2" runat="server" Text="预制散件导入时无需编辑组件"></f:Label>
|
||||
<f:Label ID="lbVersion3" runat="server" Text="模板末列材料用途必填:工厂预制或现场安装"></f:Label>
|
||||
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
@@ -59,11 +60,11 @@
|
||||
<Rows>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="false" Title="历史记录" IsFluid="true" ForceFit="true"
|
||||
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="false" Title="历史记录" IsFluid="true" ForceFit="true"
|
||||
EnableCollapse="false" runat="server" BoxFlex="1" DataKeyNames="DesignBasisDataImportId"
|
||||
AllowColumnLocking="true" EnableColumnLines="true" DataIDField="DesignBasisDataImportId"
|
||||
EnableColumnLines="true" DataIDField="DesignBasisDataImportId"
|
||||
AllowSorting="true" SortField="CreateDate" SortDirection="ASC" EnableMultiSelect="false" Height="250"
|
||||
IsDatabasePaging="false" AllowPaging="true" PageSize="300" EnableBigDataRowTip="false" EnableBigData="true">
|
||||
IsDatabasePaging="false" AllowPaging="true" PageSize="300" >
|
||||
<Columns>
|
||||
<f:RowNumberField EnablePagingNumber="true" HeaderText="编号"
|
||||
Width="60px" HeaderTextAlign="Center" TextAlign="Center" />
|
||||
|
||||
@@ -138,7 +138,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
Model.ResponeData responeData = new Model.ResponeData();
|
||||
List<string> result = new List<string>();
|
||||
bool includeBatch = ckIncludeBatch.Checked;
|
||||
int minColumnCount = includeBatch ? 7 : 5;
|
||||
int minColumnCount = includeBatch ? 8 : 6;
|
||||
|
||||
matList.Clear();
|
||||
if (count < minColumnCount)
|
||||
@@ -159,8 +159,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
|
||||
string unitworkId = string.Empty;
|
||||
unitworkId = Request.Params["UnitWorkId"];
|
||||
string PipeArea = string.Empty;//管线划分 1工厂预制 2现场施工
|
||||
|
||||
if (pds[i].A != null && !string.IsNullOrEmpty(pds[i].A.ToString()))
|
||||
{
|
||||
string pipelineCode = pds[i].A.ToString();
|
||||
@@ -168,7 +166,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
if (pipeline.Count() > 0)
|
||||
{
|
||||
item.PipelineId = pipeline.First().PipelineId;
|
||||
PipeArea = pipeline.First().PipeArea;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -182,6 +179,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
result.Add((i + 2) + "Line, [管线号] 不能为空</br>");
|
||||
}
|
||||
|
||||
// 材料用途由 Excel 显式填写,不再从所属管线区域推断。
|
||||
object pipeAreaValue = includeBatch ? pds[i].H : pds[i].F;
|
||||
item.PipeArea = GetPipeArea(pipeAreaValue == null ? null : pipeAreaValue.ToString());
|
||||
if (string.IsNullOrEmpty(item.PipeArea))
|
||||
{
|
||||
result.Add("第" + (i + 2).ToString() + "行, [材料用途] 必须填写“工厂预制”或“现场安装”</br>");
|
||||
}
|
||||
|
||||
|
||||
if (pds[i].C != null && !string.IsNullOrEmpty(pds[i].C.ToString()))
|
||||
{
|
||||
@@ -264,7 +269,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
result.Add((i + 2) + "Line, [数量] 不能为空</br>");
|
||||
}
|
||||
|
||||
if (PipeArea == "1")
|
||||
if (item.PipeArea == PipelineService.PipeArea_SHOP)
|
||||
{
|
||||
if (pds[i].B != null && !string.IsNullOrEmpty(pds[i].B.ToString()))
|
||||
{
|
||||
@@ -280,8 +285,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
}
|
||||
var model = includeBatch
|
||||
? matList.Where(x => x.PipelineId == item.PipelineId && x.MaterialCode == item.MaterialCode && x.WeldJointId == item.WeldJointId && x.PrefabricatedComponents == item.PrefabricatedComponents)
|
||||
: matList.Where(x => x.PipelineId == item.PipelineId && x.MaterialCode2 == item.MaterialCode2 && x.WeldJointId == item.WeldJointId && x.PrefabricatedComponents == item.PrefabricatedComponents);
|
||||
? matList.Where(x => x.PipelineId == item.PipelineId && x.MaterialCode == item.MaterialCode && x.WeldJointId == item.WeldJointId && x.PrefabricatedComponents == item.PrefabricatedComponents && x.PipeArea == item.PipeArea)
|
||||
: matList.Where(x => x.PipelineId == item.PipelineId && x.MaterialCode2 == item.MaterialCode2 && x.WeldJointId == item.WeldJointId && x.PrefabricatedComponents == item.PrefabricatedComponents && x.PipeArea == item.PipeArea);
|
||||
if (model.Count() == 0)
|
||||
{
|
||||
matList.Add(item);
|
||||
@@ -517,6 +522,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
&& x.WeldJointId == item.WeldJointId
|
||||
&& x.PipelineId == item.PipelineId
|
||||
&& x.PrefabricatedComponents == item.PrefabricatedComponents
|
||||
&& x.PipeArea == item.PipeArea
|
||||
&& (string.IsNullOrEmpty(item.MaterialCode) || x.MaterialCode == item.MaterialCode)
|
||||
select x;
|
||||
if (pipeLineMat.Count() == 0 || pipeLineMat == null)
|
||||
@@ -537,5 +543,23 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
BLL.HJGL_PipelineComponentService.SyncPipelineComponentByMatId(item.PipeLineMatId);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将导入模板中的材料用途转换为数据库编码。
|
||||
/// </summary>
|
||||
private static string GetPipeArea(string value)
|
||||
{
|
||||
string text = value == null ? string.Empty : value.Trim();
|
||||
if (string.Equals(text, "工厂预制", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return PipelineService.PipeArea_SHOP;
|
||||
}
|
||||
if (string.Equals(text, "现场安装", StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(text, "现场施工", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return PipelineService.PipeArea_FIELD;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,6 +122,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbVersion2;
|
||||
|
||||
/// <summary>
|
||||
/// lbVersion3 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbVersion3;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar3 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -90,7 +90,11 @@
|
||||
EnablePostBack="true" OnClick="btnTreeFind_Click" runat="server">
|
||||
</f:Button>
|
||||
<f:Button ID="btnStatisticsMat" ToolTip="匹配材料" Icon="TabGo" runat="server" OnClick="btnStatisticsMat_Click" Hidden="true">
|
||||
</f:Button>
|
||||
</f:Button>
|
||||
<f:Button ID="btnExportPartialComponents" Text="导出部分已焊组件" ToolTip="按当前区域导出所选单位工程的部分已焊组件"
|
||||
Icon="TableGo" runat="server" OnClick="btnExportPartialComponents_Click" EnableAjax="false"
|
||||
DisableControlBeforePostBack="true" EnablePostBack="true">
|
||||
</f:Button>
|
||||
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
@@ -163,7 +167,7 @@
|
||||
<Items>
|
||||
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="false" Title="材料匹配"
|
||||
EnableCollapse="true" runat="server" BoxFlex="1" DataKeyNames="PipelineId" ForceFit="true"
|
||||
EnableColumnLines="true" DataIDField="PipelineId" AllowSorting="true"
|
||||
EnableColumnLines="true" DataIDField="PipelineId" AllowSorting="true" EnableTextSelection="true"
|
||||
SortField="MatchRate" SortDirection="DESC" EnableCheckBoxSelect="true">
|
||||
<Columns>
|
||||
<f:RenderField Width="150px" ColumnID="UnitWorkName" DataField="UnitWorkName" SortField="UnitWorkName"
|
||||
@@ -189,7 +193,7 @@
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="材料匹配明细" EnableRowClickEvent="true"
|
||||
EnableCollapse="true" runat="server" BoxFlex="1" DataKeyNames="Id,PipelineId,PrefabricatedComponents,WeldJointId" ForceFit="true"
|
||||
EnableColumnLines="true" DataIDField="Id" AllowSorting="true" FixedRowHeight="true" RowHeight="46"
|
||||
EnableColumnLines="true" DataIDField="Id" AllowSorting="true" FixedRowHeight="true" RowHeight="46" EnableTextSelection="true"
|
||||
SortField="PipelineCode" SortDirection="ASC" OnSort="Grid1_Sort" EnableCheckBoxSelect="true" EnableSummary="true" SummaryPosition="Bottom" >
|
||||
<Columns>
|
||||
<f:RenderField Width="200px" ColumnID="PipelineCode" DataField="PipelineCode" SortField="PipelineCode"
|
||||
@@ -200,6 +204,10 @@
|
||||
FieldType="String" HeaderText="预制组件号" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="120px" ColumnID="ComponentMatchRateString" DataField="ComponentMatchRateString" SortField="ComponentMatchRate"
|
||||
FieldType="String" HeaderText="组件匹配率" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="120px" ColumnID="WeldJointCode" DataField="WeldJointCode" SortField="WeldJointCode"
|
||||
FieldType="String" HeaderText="焊口号" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
@@ -236,9 +244,10 @@
|
||||
FieldType="String" HeaderText="匹配率" HeaderTextAlign="Center"
|
||||
TextAlign="Left">
|
||||
</f:RenderField>
|
||||
|
||||
|
||||
</Columns>
|
||||
<Listeners>
|
||||
<f:Listener Event="dataload" Handler="onMaterialDetailDataLoad" />
|
||||
</Listeners>
|
||||
</f:Grid>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
@@ -262,6 +271,13 @@
|
||||
function reloadGrid() {
|
||||
__doPostBack(null, 'reloadGrid');
|
||||
}
|
||||
|
||||
function onMaterialDetailDataLoad(event) {
|
||||
// 逐级依赖管线和组件合并,避免同名组件跨管线或相同匹配率跨组件合并。
|
||||
this.mergeColumns(['PipelineCode', 'PrefabricatedComponents', 'ComponentMatchRateString'], {
|
||||
depends: true
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
using BLL;
|
||||
using FineUIPro.Web.DataShow;
|
||||
using MiniExcelLibs;
|
||||
using Model;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
@@ -13,6 +15,19 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
public int pageSize = PipelineService.pageSize;
|
||||
|
||||
private const string TreeCommandBuilding = "建筑工程";
|
||||
private const string TreeCommandInstallation = "安装工程";
|
||||
private const string TreeCommandUnitWork = "单位工程";
|
||||
private const string TreeCommandPipeline = "管线";
|
||||
private const string TreeCommandLoad = "加载";
|
||||
private const string PrefabricationJointAttribute = "预制口";
|
||||
private const string InstallationJointAttribute = "安装口";
|
||||
private const string WeldingRodConsumablesType = "2";
|
||||
private const string WeldingWireConsumablesType = "1";
|
||||
private const string ManualWeldingMode = "手动";
|
||||
private const string CoverMaterialClassFe1 = "Fe-1";
|
||||
private const string CoverMaterialClassFe3 = "Fe-3";
|
||||
|
||||
public string WarehouseId
|
||||
{
|
||||
get
|
||||
@@ -89,29 +104,61 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
//ctlAuditFlow.Url = BLL.Project_SysSetService.GetAvevaNetUrl(this.CurrUser.LoginProjectId);
|
||||
if (!IsPostBack)
|
||||
{
|
||||
tw_PipeMatMatchOutputs = new List<Model.Tw_PipeMatMatchOutput>();
|
||||
PipeArea = Request.Params["PipeArea"];
|
||||
drpWarehouse.DataTextField = "Key";
|
||||
drpWarehouse.DataValueField = "Value";
|
||||
drpWarehouse.DataSource = BLL.TwInOutplanmasterService.GetWarehouseCode(this.CurrUser.LoginProjectId);
|
||||
drpWarehouse.DataBind();
|
||||
drpWarehouse_SelectedIndexChanged(null, null);
|
||||
HJGL_MaterialService.materialStockItems_FIELD = new List<Model.MaterialStockItem>();
|
||||
HJGL_MaterialService.materialStockItems_SHOP = new List<Model.MaterialStockItem>();
|
||||
dicSeclectPipeLine = new Dictionary<string, string>();
|
||||
priorityWeldJoints = new Dictionary<string, HashSet<string>>();
|
||||
var pipeline = (from x in Funs.DB.HJGL_Pipeline
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId
|
||||
select x.FlowingSection).Distinct().ToList();
|
||||
this.drpFlowingSection.DataTextField = "Value";
|
||||
this.drpFlowingSection.DataValueField = "Value";
|
||||
this.drpFlowingSection.DataSource = pipeline;
|
||||
this.drpFlowingSection.DataBind();
|
||||
Funs.FineUIPleaseSelect(drpFlowingSection);
|
||||
this.InitTreeMenu();//加载树
|
||||
InitializePage();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化页面状态、筛选项和左侧管线树。
|
||||
/// </summary>
|
||||
private void InitializePage()
|
||||
{
|
||||
tw_PipeMatMatchOutputs = new List<Model.Tw_PipeMatMatchOutput>();
|
||||
PipeArea = Request.Params["PipeArea"];
|
||||
BindWarehouseOptions();
|
||||
ResetMaterialStockCache();
|
||||
dicSeclectPipeLine = new Dictionary<string, string>();
|
||||
priorityWeldJoints = new Dictionary<string, HashSet<string>>();
|
||||
BindFlowingSectionOptions();
|
||||
InitTreeMenu();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定当前项目可用仓库,并触发仓库切换后的树刷新。
|
||||
/// </summary>
|
||||
private void BindWarehouseOptions()
|
||||
{
|
||||
drpWarehouse.DataTextField = "Key";
|
||||
drpWarehouse.DataValueField = "Value";
|
||||
drpWarehouse.DataSource = BLL.TwInOutplanmasterService.GetWarehouseCode(this.CurrUser.LoginProjectId);
|
||||
drpWarehouse.DataBind();
|
||||
drpWarehouse_SelectedIndexChanged(null, null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清空材料库存缓存,避免首次加载沿用其他入口的区域缓存。
|
||||
/// </summary>
|
||||
private void ResetMaterialStockCache()
|
||||
{
|
||||
HJGL_MaterialService.materialStockItems_FIELD = new List<Model.MaterialStockItem>();
|
||||
HJGL_MaterialService.materialStockItems_SHOP = new List<Model.MaterialStockItem>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定当前项目的流水段筛选项。
|
||||
/// </summary>
|
||||
private void BindFlowingSectionOptions()
|
||||
{
|
||||
var flowingSections = (from x in Funs.DB.HJGL_Pipeline
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId
|
||||
select x.FlowingSection).Distinct().ToList();
|
||||
drpFlowingSection.DataTextField = "Value";
|
||||
drpFlowingSection.DataValueField = "Value";
|
||||
drpFlowingSection.DataSource = flowingSections;
|
||||
drpFlowingSection.DataBind();
|
||||
Funs.FineUIPleaseSelect(drpFlowingSection);
|
||||
}
|
||||
|
||||
#region 加载树装置-单位-工作区
|
||||
|
||||
/// <summary>
|
||||
@@ -121,20 +168,10 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
this.tvControlItem.Nodes.Clear();
|
||||
|
||||
TreeNode rootNode1 = new TreeNode();
|
||||
rootNode1.NodeID = "1";
|
||||
rootNode1.Text = "建筑工程";
|
||||
rootNode1.CommandName = "建筑工程";
|
||||
rootNode1.Selectable = false;
|
||||
rootNode1.EnableCheckBox = false;
|
||||
TreeNode rootNode1 = CreateRootNode("1", TreeCommandBuilding, false, false);
|
||||
this.tvControlItem.Nodes.Add(rootNode1);
|
||||
|
||||
TreeNode rootNode2 = new TreeNode();
|
||||
rootNode2.NodeID = "2";
|
||||
rootNode2.Text = "安装工程";
|
||||
rootNode2.CommandName = "安装工程";
|
||||
rootNode2.Expanded = true;
|
||||
rootNode2.EnableCheckBox = false;
|
||||
TreeNode rootNode2 = CreateRootNode("2", TreeCommandInstallation, true, null);
|
||||
this.tvControlItem.Nodes.Add(rootNode2);
|
||||
|
||||
var unitWorkList = (from x in Funs.DB.WBS_UnitWork
|
||||
@@ -143,57 +180,54 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
orderby x.UnitWorkCode
|
||||
select x).ToList();
|
||||
|
||||
List<Model.WBS_UnitWork> unitWork1 = null;
|
||||
List<Model.WBS_UnitWork> unitWork2 = null;
|
||||
BindUnitWorkNodes(rootNode1, unitWorkList.Where(x => x.ProjectType == "1"), false);
|
||||
BindUnitWorkNodes(rootNode2, unitWorkList.Where(x => x.ProjectType == "2"), true);
|
||||
}
|
||||
|
||||
unitWork1 = (from x in unitWorkList where x.ProjectType == "1" select x).ToList();
|
||||
unitWork2 = (from x in unitWorkList where x.ProjectType == "2" select x).ToList();
|
||||
|
||||
if (unitWork1.Count() > 0)
|
||||
/// <summary>
|
||||
/// 创建建筑工程或安装工程根节点。
|
||||
/// </summary>
|
||||
private TreeNode CreateRootNode(string nodeId, string text, bool expanded, bool? selectable)
|
||||
{
|
||||
var rootNode = new TreeNode
|
||||
{
|
||||
foreach (var q in unitWork1)
|
||||
{
|
||||
int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId);
|
||||
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
|
||||
TreeNode tn1 = new TreeNode();
|
||||
tn1.NodeID = q.UnitWorkId;
|
||||
tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线";
|
||||
tn1.ToolTip = "施工单位:" + unitNamesUnitIds;
|
||||
tn1.CommandName = "单位工程";
|
||||
tn1.EnableExpandEvent = true;
|
||||
tn1.EnableClickEvent = true;
|
||||
tn1.EnableCheckBox = false;
|
||||
rootNode1.Nodes.Add(tn1);
|
||||
if (a > 0)
|
||||
{
|
||||
BindTestPackageNodes(tn1);
|
||||
}
|
||||
}
|
||||
NodeID = nodeId,
|
||||
Text = text,
|
||||
CommandName = text,
|
||||
Expanded = expanded,
|
||||
EnableCheckBox = false
|
||||
};
|
||||
if (selectable.HasValue)
|
||||
{
|
||||
rootNode.Selectable = selectable.Value;
|
||||
}
|
||||
if (unitWork2.Count() > 0)
|
||||
{
|
||||
foreach (var q in unitWork2)
|
||||
{
|
||||
int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId);
|
||||
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
|
||||
TreeNode tn2 = new TreeNode();
|
||||
tn2.NodeID = q.UnitWorkId;
|
||||
tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线";
|
||||
if (q.UnitWorkId == this.hdUnitWorkId.Text)
|
||||
{
|
||||
tn2.Expanded = true;
|
||||
}
|
||||
tn2.ToolTip = "施工单位:" + unitNamesUnitIds;
|
||||
tn2.CommandName = "单位工程";
|
||||
tn2.EnableExpandEvent = true;
|
||||
tn2.EnableClickEvent = true;
|
||||
tn2.EnableCheckBox = false;
|
||||
return rootNode;
|
||||
}
|
||||
|
||||
rootNode2.Nodes.Add(tn2);
|
||||
if (a > 0)
|
||||
{
|
||||
BindTestPackageNodes(tn2);
|
||||
}
|
||||
/// <summary>
|
||||
/// 将单位工程节点绑定到指定工程根节点。
|
||||
/// </summary>
|
||||
private void BindUnitWorkNodes(TreeNode parentNode, IEnumerable<Model.WBS_UnitWork> unitWorks, bool expandSelectedNode)
|
||||
{
|
||||
foreach (var unitWork in unitWorks)
|
||||
{
|
||||
int pipelineCount = GetUnitWorkTestPackagePipelineCount(unitWork.UnitWorkId);
|
||||
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(unitWork.UnitId);
|
||||
TreeNode unitWorkNode = new TreeNode
|
||||
{
|
||||
NodeID = unitWork.UnitWorkId,
|
||||
Text = unitWork.UnitWorkName + "【" + pipelineCount.ToString() + "】管线",
|
||||
ToolTip = "施工单位:" + unitNamesUnitIds,
|
||||
CommandName = TreeCommandUnitWork,
|
||||
EnableExpandEvent = true,
|
||||
EnableClickEvent = true,
|
||||
EnableCheckBox = false,
|
||||
Expanded = expandSelectedNode && unitWork.UnitWorkId == hdUnitWorkId.Text
|
||||
};
|
||||
parentNode.Nodes.Add(unitWorkNode);
|
||||
if (pipelineCount > 0)
|
||||
{
|
||||
BindTestPackageNodes(unitWorkNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -219,16 +253,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
TreeNode newNode = new TreeNode();
|
||||
newNode.Text = item.PipelineCode;
|
||||
newNode.NodeID = item.PipelineId;
|
||||
newNode.CommandName = "管线";
|
||||
newNode.CommandName = TreeCommandPipeline;
|
||||
newNode.EnableClickEvent = true;
|
||||
node.Nodes.Add(newNode);
|
||||
}
|
||||
if (pageindex < pageCount)
|
||||
{
|
||||
TreeNode newNode = new TreeNode();
|
||||
newNode.Text = "加载";
|
||||
newNode.Text = TreeCommandLoad;
|
||||
newNode.NodeID = SQLHelper.GetNewID();
|
||||
newNode.CommandName = "加载";
|
||||
newNode.CommandName = TreeCommandLoad;
|
||||
newNode.Icon = Icon.ArrowDown;
|
||||
newNode.EnableClickEvent = true;
|
||||
node.Nodes.Add(newNode);
|
||||
@@ -288,7 +322,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定试压包下当前仓库、区域和筛选条件内尚未完成出库的管线。
|
||||
/// 获取指定试压包下当前仓库和页面筛选条件内尚未完成出库的管线;材料区域由匹配服务按材料明细过滤。
|
||||
/// </summary>
|
||||
/// <param name="ptpId">试压包ID。</param>
|
||||
/// <returns>符合材料匹配入口条件的管线列表。</returns>
|
||||
@@ -306,7 +340,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
where y == null
|
||||
&& p.PTP_ID == ptpId
|
||||
&& x.ProjectId == this.CurrUser.LoginProjectId
|
||||
&& x.PipeArea == PipeArea
|
||||
&& x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())
|
||||
&& x.WarehouseId == WarehouseId
|
||||
orderby x.PipelineCode
|
||||
@@ -353,7 +386,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
/// <param name="e"></param>
|
||||
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
||||
{
|
||||
if (e.CommandName == "加载")
|
||||
if (e.CommandName == TreeCommandLoad)
|
||||
{
|
||||
string CommandName = e.Node.ParentNode.CommandName;
|
||||
e.Node.ParentNode.CommandName = (int.Parse(CommandName.Split('|')[0]) + 1) + "|" + int.Parse(CommandName.Split('|')[1]);
|
||||
@@ -475,7 +508,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
selectList.Add(model.Id);
|
||||
}
|
||||
|
||||
if (IsMaterialCodeConfirmed(model, confirmedPipeLineMatIds))
|
||||
// 匹配率优先级高于历史确认状态,0% 或未满配材料不能再显示为绿色。
|
||||
if (model.MatchRate == null || model.MatchRate < 1)
|
||||
{
|
||||
Grid1.Rows[i].RowCssClass = "red";
|
||||
}
|
||||
else if (IsMaterialCodeConfirmed(model, confirmedPipeLineMatIds))
|
||||
{
|
||||
Grid1.Rows[i].RowCssClass = "green";
|
||||
}
|
||||
@@ -483,10 +521,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
Grid1.Rows[i].RowCssClass = "priority";
|
||||
}
|
||||
else if (model.MatchRate < 1 || model.MatchRate == null)
|
||||
{
|
||||
Grid1.Rows[i].RowCssClass = "red";
|
||||
}
|
||||
}
|
||||
|
||||
Grid1.SelectedRowIDArray = selectList.ToArray();
|
||||
@@ -531,10 +565,11 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
.Distinct()
|
||||
.ToList();
|
||||
var reportWeldJointIds = Funs.DB.HJGL_WeldJoint
|
||||
.Where(x => weldJointIds.Contains(x.WeldJointId)&& x.WeldingDailyId !=null)
|
||||
.Where(x => weldJointIds.Contains(x.WeldJointId) && x.WeldingDailyId != null && x.WeldingDailyId != "")
|
||||
.Select(x => x.WeldJointId).Distinct().ToList();
|
||||
return matchOutputs
|
||||
.Where(x => string.IsNullOrEmpty(x.WeldJointId) || !taskWeldJointIds.Contains(x.WeldJointId) || reportWeldJointIds.Contains(x.WeldJointId))
|
||||
.Where(x => string.IsNullOrEmpty(x.WeldJointId)
|
||||
|| (!taskWeldJointIds.Contains(x.WeldJointId) && !reportWeldJointIds.Contains(x.WeldJointId)))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
@@ -600,7 +635,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
/// <param name="e">事件参数。</param>
|
||||
protected void btnMatchHelp_Click(object sender, EventArgs e)
|
||||
{
|
||||
Alert.ShowInTop("1、管线绿色为匹配率100%,明细绿色为已反写材料主编码,红色为匹配率小于100%,蓝色为手动优先焊口。<br/>2、一个焊口可能对应多条材料明细,该焊口全部有效明细已反写材料主编码后才允许一键生成任务单。<br/>3、焊口已进行焊前准备,匹配了焊评才能生成任务单", "说明", MessageBoxIcon.Information);
|
||||
Alert.ShowInTop("1、管线绿色为匹配率100%,明细绿色为已反写材料主编码,红色为匹配率小于100%,蓝色为手动优先焊口。<br/>2、库存匹配顺序为手动优先焊口、存在已焊口的续作组件、其他未开工组件。<br/>3、一个焊口可能对应多条材料明细,该焊口全部有效明细已反写材料主编码后才允许一键生成任务单。<br/>4、焊口已进行焊前准备,匹配了焊评才能生成任务单", "说明", MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -625,7 +660,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
this.CurrUser.LoginProjectId,
|
||||
dicSeclectPipeLine.Keys.ToList(),
|
||||
drpWarehouse.SelectedValue,
|
||||
GetPriorityWeldJointList());
|
||||
GetPriorityWeldJointList(),
|
||||
PipeArea);
|
||||
BindGrid3();
|
||||
BindGrid2(keepSelectedPipelineIds);
|
||||
}
|
||||
@@ -692,7 +728,74 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按树节点获取可加入本次匹配的管线。单位工程节点会展开到其下所有试压包,再套用当前仓库、区域和页面筛选条件。
|
||||
/// 按当前材料区域导出所选单位工程下全部部分已焊接组件。
|
||||
/// </summary>
|
||||
protected void btnExportPartialComponents_Click(object sender, EventArgs e)
|
||||
{
|
||||
Model.WBS_UnitWork unitWork = tvControlItem.SelectedNode == null
|
||||
? null
|
||||
: BLL.UnitWorkService.GetUnitWorkByUnitWorkId(tvControlItem.SelectedNode.NodeID);
|
||||
if (unitWork == null)
|
||||
{
|
||||
ShowNotify("请先选择需要导出的单位工程!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
var components = TwArrivalStatisticsService.GetPartialWeldedComponents(
|
||||
this.CurrUser.LoginProjectId,
|
||||
unitWork.UnitWorkId,
|
||||
PipeArea,
|
||||
drpWarehouse.SelectedValue);
|
||||
if (!components.Any())
|
||||
{
|
||||
ShowNotify("当前单位工程和区域下没有部分已焊接组件!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
var exportData = components.Select(x => new
|
||||
{
|
||||
单位工程 = x.UnitWorkName,
|
||||
区域 = x.PipeAreaText,
|
||||
管线号 = x.PipelineCode,
|
||||
预制组件号 = x.PrefabricatedComponents,
|
||||
总焊口数 = x.TotalWeldJointCount,
|
||||
已焊口数 = x.WeldedWeldJointCount,
|
||||
未焊口数 = x.UnweldedWeldJointCount,
|
||||
组件匹配率 = x.ComponentMatchRateString
|
||||
}).ToList();
|
||||
|
||||
string areaText = PipeArea == PipelineService.PipeArea_SHOP ? "工厂预制" : "现场安装";
|
||||
string fileName = GetSafeFileName(unitWork.UnitWorkName) + "_" + areaText + "_部分已焊组件_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
|
||||
string tempDirectory = Path.Combine(Funs.RootPath, @"File\Excel\Temp");
|
||||
Directory.CreateDirectory(tempDirectory);
|
||||
string filePath = Path.Combine(tempDirectory, Guid.NewGuid().ToString("N") + ".xlsx");
|
||||
|
||||
MiniExcel.SaveAs(filePath, exportData);
|
||||
FileInfo fileInfo = new FileInfo(filePath);
|
||||
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
|
||||
response.Clear();
|
||||
response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||
response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
|
||||
response.AddHeader("Content-Length", fileInfo.Length.ToString());
|
||||
// 先读取到响应缓冲区再删除临时文件,避免 TransmitFile 异步发送期间文件仍被占用。
|
||||
response.BinaryWrite(File.ReadAllBytes(filePath));
|
||||
File.Delete(filePath);
|
||||
response.Flush();
|
||||
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
|
||||
}
|
||||
|
||||
private static string GetSafeFileName(string fileName)
|
||||
{
|
||||
string safeFileName = string.IsNullOrEmpty(fileName) ? "单位工程" : fileName;
|
||||
foreach (char invalidChar in Path.GetInvalidFileNameChars())
|
||||
{
|
||||
safeFileName = safeFileName.Replace(invalidChar, '_');
|
||||
}
|
||||
return safeFileName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按树节点获取可加入本次匹配的管线。单位工程节点会展开到其下所有试压包,再套用当前仓库和页面筛选条件。
|
||||
/// </summary>
|
||||
/// <param name="node">左侧树节点。</param>
|
||||
/// <returns>符合材料匹配入口条件的管线列表。</returns>
|
||||
@@ -703,13 +806,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
return new List<Model.HJGL_Pipeline>();
|
||||
}
|
||||
|
||||
if (node.CommandName == "管线")
|
||||
if (node.CommandName == TreeCommandPipeline)
|
||||
{
|
||||
var pipeline = PipelineService.GetPipelineByPipelineId(node.NodeID);
|
||||
return pipeline == null ? new List<Model.HJGL_Pipeline>() : new List<Model.HJGL_Pipeline> { pipeline };
|
||||
}
|
||||
|
||||
if (node.CommandName == "单位工程")
|
||||
if (node.CommandName == TreeCommandUnitWork)
|
||||
{
|
||||
var testPackageIds = (from x in Funs.DB.PTP_TestPackage
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId
|
||||
@@ -743,7 +846,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
var selectNodes = tvControlItem.GetCheckedNodes();
|
||||
foreach (var node in selectNodes)
|
||||
{
|
||||
if (dicSeclectPipeLine.Where(x => x.Key == node.NodeID).Count() == 0 && node.CommandName == "管线")
|
||||
if (dicSeclectPipeLine.Where(x => x.Key == node.NodeID).Count() == 0 && node.CommandName == TreeCommandPipeline)
|
||||
{
|
||||
dicSeclectPipeLine.Add(node.NodeID, node.Text);
|
||||
addCount++;
|
||||
@@ -978,19 +1081,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
ShowNotify("选中管线中没有已反写材料主编码的可生成任务单焊口!", MessageBoxIcon.Warning);
|
||||
return false;
|
||||
}
|
||||
var weldingRods = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "2" select x;
|
||||
var weldingWires = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "1" select x;
|
||||
var weldingRods = from x in Funs.DB.Base_Consumables where x.ConsumablesType == WeldingRodConsumablesType select x;
|
||||
var weldingWires = from x in Funs.DB.Base_Consumables where x.ConsumablesType == WeldingWireConsumablesType select x;
|
||||
var selectedWeldJointIdList = selectedWeldJointIds.ToList();
|
||||
var selectRowId = GetTaskableWeldJointRows(selectedWeldJointIdList);
|
||||
|
||||
Dictionary<string, string> unitworkTaskCode = new Dictionary<string, string>();
|
||||
Dictionary<string, string> unitworkSerialNumber = new Dictionary<string, string>();
|
||||
Dictionary<int, string> matchPipeline = new Dictionary<int, string>();
|
||||
// 生成任务单仍保留管线在匹配结果中的排序,用于任务单列表按管线顺序展示。
|
||||
for (int rowIndex = 0; rowIndex < Grid2.Rows.Count; rowIndex++)
|
||||
{
|
||||
matchPipeline.Add(rowIndex + 1, Grid2.Rows[rowIndex].RowID);
|
||||
}
|
||||
Dictionary<int, string> matchPipeline = GetMatchPipelineOrder();
|
||||
if (!selectRowId.Any())
|
||||
{
|
||||
ShowNotify("未找到可生成任务单的焊口!", MessageBoxIcon.Warning);
|
||||
@@ -998,8 +1096,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
foreach (var weldjoint in selectRowId)
|
||||
{
|
||||
string canWeldingRodName = string.Empty;
|
||||
string canWeldingWireName = string.Empty;
|
||||
Model.HJGL_WeldTask NewTask = new Model.HJGL_WeldTask();
|
||||
NewTask.ProjectId = this.CurrUser.LoginProjectId;
|
||||
NewTask.UnitWorkId = PipelineService.GetPipelineByPipelineId(weldjoint.PipelineId)?.UnitWorkId;
|
||||
@@ -1038,59 +1134,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
NewTask.PipeLineSortIndex = matchPipeline.FirstOrDefault(x => x.Value == weldJoint.PipelineId).Key;
|
||||
NewTask.WeldingRod = weldJoint.WeldingRod;
|
||||
NewTask.WeldingWire = weldJoint.WeldingWire;
|
||||
//获取可替代焊丝焊条
|
||||
var mat = BLL.Base_MaterialService.GetMaterialByMaterialId(weldJoint.Material1Id);
|
||||
string matClass = mat.MaterialClass;
|
||||
var matRod = weldingRods.FirstOrDefault(x => x.ConsumablesId == weldJoint.WeldingRod);
|
||||
if (matRod != null)
|
||||
{
|
||||
foreach (var item in weldingRods)
|
||||
{
|
||||
if (matClass == "Fe-1" || matClass == "Fe-3")
|
||||
{
|
||||
if (IsCoverClass(matRod.SteelType, item.SteelType))
|
||||
{
|
||||
canWeldingRodName = canWeldingRodName + item.ConsumablesName + ",";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (matRod.SteelType == item.SteelType)
|
||||
{
|
||||
canWeldingRodName = canWeldingRodName + item.ConsumablesName + ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(canWeldingRodName))
|
||||
{
|
||||
NewTask.CanWeldingRodName = canWeldingRodName.Substring(0, canWeldingRodName.Length - 1);
|
||||
}
|
||||
}
|
||||
var matWire = weldingWires.FirstOrDefault(x => x.ConsumablesId == weldJoint.WeldingWire);
|
||||
if (matWire != null)
|
||||
{
|
||||
foreach (var item in weldingWires)
|
||||
{
|
||||
if (matClass == "Fe-1" || matClass == "Fe-3")
|
||||
{
|
||||
if (IsCoverClass(matWire.SteelType, item.SteelType))
|
||||
{
|
||||
canWeldingWireName = canWeldingWireName + item.ConsumablesName + ",";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (matWire.SteelType == item.SteelType)
|
||||
{
|
||||
canWeldingWireName = canWeldingWireName + item.ConsumablesName + ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(canWeldingWireName))
|
||||
{
|
||||
NewTask.CanWeldingWireName = canWeldingWireName.Substring(0, canWeldingWireName.Length - 1);
|
||||
}
|
||||
}
|
||||
PopulateAlternativeConsumables(NewTask, weldJoint, weldingRods, weldingWires);
|
||||
}
|
||||
NewTask.JointAttribute = weldJoint.JointAttribute;
|
||||
|
||||
@@ -1098,7 +1142,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
NewTask.Tabler = this.CurrUser.PersonId;
|
||||
NewTask.TableDate = DateTime.Now;
|
||||
|
||||
weldJoint.WeldingMode = "手动";
|
||||
weldJoint.WeldingMode = ManualWeldingMode;
|
||||
BLL.WeldJointService.UpdateWeldJoint(weldJoint);
|
||||
BLL.WeldTaskService.AddWeldTask(NewTask);
|
||||
}
|
||||
@@ -1106,6 +1150,61 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前管线汇总表中的显示顺序,供任务单保存管线排序使用。
|
||||
/// </summary>
|
||||
private Dictionary<int, string> GetMatchPipelineOrder()
|
||||
{
|
||||
var matchPipeline = new Dictionary<int, string>();
|
||||
for (int rowIndex = 0; rowIndex < Grid2.Rows.Count; rowIndex++)
|
||||
{
|
||||
matchPipeline.Add(rowIndex + 1, Grid2.Rows[rowIndex].RowID);
|
||||
}
|
||||
return matchPipeline;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据母材类别计算任务单可替代的焊条和焊丝。
|
||||
/// </summary>
|
||||
private void PopulateAlternativeConsumables(
|
||||
Model.HJGL_WeldTask task,
|
||||
Model.HJGL_WeldJoint weldJoint,
|
||||
IEnumerable<Model.Base_Consumables> weldingRods,
|
||||
IEnumerable<Model.Base_Consumables> weldingWires)
|
||||
{
|
||||
// 获取可替代焊材时沿用原有母材类别和焊材钢号判断规则。
|
||||
var material = BLL.Base_MaterialService.GetMaterialByMaterialId(weldJoint.Material1Id);
|
||||
string materialClass = material.MaterialClass;
|
||||
var selectedRod = weldingRods.FirstOrDefault(x => x.ConsumablesId == weldJoint.WeldingRod);
|
||||
var selectedWire = weldingWires.FirstOrDefault(x => x.ConsumablesId == weldJoint.WeldingWire);
|
||||
|
||||
task.CanWeldingRodName = GetAlternativeConsumableNames(materialClass, selectedRod, weldingRods);
|
||||
task.CanWeldingWireName = GetAlternativeConsumableNames(materialClass, selectedWire, weldingWires);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回与当前焊材钢号兼容的候选名称,保持原有逗号分隔格式。
|
||||
/// </summary>
|
||||
private string GetAlternativeConsumableNames(
|
||||
string materialClass,
|
||||
Model.Base_Consumables selectedConsumable,
|
||||
IEnumerable<Model.Base_Consumables> candidateConsumables)
|
||||
{
|
||||
if (selectedConsumable == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
bool useCoverClass = materialClass == CoverMaterialClassFe1 || materialClass == CoverMaterialClassFe3;
|
||||
var names = candidateConsumables
|
||||
.Where(item => useCoverClass
|
||||
? IsCoverClass(selectedConsumable.SteelType, item.SteelType)
|
||||
: selectedConsumable.SteelType == item.SteelType)
|
||||
.Select(item => item.ConsumablesName)
|
||||
.ToList();
|
||||
return names.Any() ? string.Join(",", names) : null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按任务单实际生成规则过滤可生成任务单的焊口视图数据。
|
||||
/// </summary>
|
||||
@@ -1128,10 +1227,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
&& x.WeldTaskId == null
|
||||
&& x.WeldingMethodCode != null
|
||||
select x).ToList();
|
||||
if (PipeArea == "1")
|
||||
if (PipeArea == PipelineService.PipeArea_SHOP)
|
||||
{
|
||||
// 工厂预制材料匹配只允许预制口生成任务单,现场安装页面不套用该限制。
|
||||
taskableRows = taskableRows.Where(x => x.JointAttribute == "预制口").ToList();
|
||||
taskableRows = taskableRows.Where(x => x.JointAttribute == PrefabricationJointAttribute).ToList();
|
||||
}
|
||||
else if (PipeArea == PipelineService.PipeArea_FIELD)
|
||||
{
|
||||
taskableRows = taskableRows.Where(x => x.JointAttribute == InstallationJointAttribute).ToList();
|
||||
}
|
||||
|
||||
return taskableRows;
|
||||
@@ -1193,26 +1295,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
/// <returns>能覆盖返回 true,否则返回 false。</returns>
|
||||
private bool IsCoverClass(string wpsClass, string matClass)
|
||||
{
|
||||
bool isCover = false;
|
||||
int wpsSn = 0;
|
||||
int matSn = 0;
|
||||
if (wpsClass.Length > 2 && matClass.Length > 2)
|
||||
if (wpsClass.Length <= 2 || matClass.Length <= 2)
|
||||
{
|
||||
string wpsPre = wpsClass.Substring(0, wpsClass.Length - 2);
|
||||
string matPre = matClass.Substring(0, matClass.Length - 2);
|
||||
|
||||
string wps = wpsClass.Substring(wpsClass.Length - 1, 1);
|
||||
wpsSn = Funs.GetNewInt(wps).HasValue ? Funs.GetNewInt(wps).Value : 0;
|
||||
|
||||
string mat = matClass.Substring(matClass.Length - 1, 1);
|
||||
matSn = Funs.GetNewInt(mat).HasValue ? Funs.GetNewInt(mat).Value : 0;
|
||||
|
||||
if (wpsPre == matPre && matSn >= wpsSn)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return isCover;
|
||||
|
||||
string wpsPre = wpsClass.Substring(0, wpsClass.Length - 2);
|
||||
string matPre = matClass.Substring(0, matClass.Length - 2);
|
||||
int wpsSn = Funs.GetNewInt(wpsClass.Substring(wpsClass.Length - 1, 1)) ?? 0;
|
||||
int matSn = Funs.GetNewInt(matClass.Substring(matClass.Length - 1, 1)) ?? 0;
|
||||
return wpsPre == matPre && matSn >= wpsSn;
|
||||
}
|
||||
|
||||
#endregion 按钮事件
|
||||
|
||||
@@ -140,6 +140,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnStatisticsMat;
|
||||
|
||||
/// <summary>
|
||||
/// btnExportPartialComponents 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnExportPartialComponents;
|
||||
|
||||
/// <summary>
|
||||
/// tvControlItem 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -78,11 +78,11 @@
|
||||
</Items>
|
||||
</f:Panel>--%>
|
||||
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" RegionSplit="true" EnableCollapse="true" ShowBorder="true"
|
||||
Layout="VBox" BoxConfigAlign="Stretch" ShowHeader="false" RegionSplitWidth="20px" BodyPadding="1px" Height="400px" IconFont="PlusCircle" Title="焊接日报"
|
||||
Layout="VBox" BoxConfigAlign="Stretch" BoxFlex="1" ShowHeader="false" RegionSplitWidth="20px" BodyPadding="1px" IconFont="PlusCircle" Title="焊接日报"
|
||||
TitleToolTip="焊接日报" AutoScroll="true">
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" Title="焊接日报" EnableCollapse="true"
|
||||
runat="server" BoxFlex="1" DataKeyNames="WeldJointId" AllowCellEditing="true" OnRowClick="Grid1_RowClick" EnableRowClickEvent="true"
|
||||
runat="server" BoxFlex="2" DataKeyNames="WeldJointId" AllowCellEditing="true" OnRowClick="Grid1_RowClick" EnableRowClickEvent="true"
|
||||
AllowColumnLocking="true" EnableColumnLines="true" ClicksToEdit="2" DataIDField="WeldJointId"
|
||||
AllowSorting="true" SortField="PipelineCode,WeldJointCode" SortDirection="ASC" OnSort="Grid1_Sort"
|
||||
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange">
|
||||
|
||||
@@ -264,38 +264,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
/// </summary>
|
||||
private void BindPendingGrid()
|
||||
{
|
||||
string strSql = @"SELECT temp.TempDetailId,
|
||||
temp.WeldJointId,
|
||||
temp.WeldingDate,
|
||||
jot.PipelineCode,
|
||||
jot.WeldJointCode,
|
||||
coverWelder.WelderCode AS CoverWelderCode,
|
||||
backingWelder.WelderCode AS BackingWelderCode,
|
||||
temp.JointAttribute,
|
||||
location.WeldingLocationCode,
|
||||
jot.Size,
|
||||
jot.Dia,
|
||||
jot.Thickness,
|
||||
jot.WeldingMethodCode,
|
||||
submitPerson.PersonName AS SubmitPersonName,
|
||||
temp.SubmitDate,
|
||||
beforeAtt.AttachUrl AS BeforePhotoUrl,
|
||||
afterAtt.AttachUrl AS AfterPhotoUrl
|
||||
FROM dbo.HJGL_WeldingDailyTempDetail AS temp
|
||||
LEFT JOIN dbo.View_HJGL_WeldJoint AS jot ON jot.WeldJointId = temp.WeldJointId
|
||||
LEFT JOIN dbo.SitePerson_Person AS coverWelder ON coverWelder.PersonId = temp.CoverWelderId
|
||||
LEFT JOIN dbo.SitePerson_Person AS backingWelder ON backingWelder.PersonId = temp.BackingWelderId
|
||||
LEFT JOIN dbo.Base_WeldingLocation AS location ON location.WeldingLocationId = temp.WeldingLocationId
|
||||
LEFT JOIN dbo.Person_Persons AS submitPerson ON submitPerson.PersonId = temp.SubmitPersonId
|
||||
LEFT JOIN dbo.AttachFile AS beforeAtt ON beforeAtt.MenuId = @WeldReportMenuId
|
||||
AND beforeAtt.ToKeyId = temp.TempDetailId + '#Before'
|
||||
LEFT JOIN dbo.AttachFile AS afterAtt ON afterAtt.MenuId = @WeldReportMenuId
|
||||
AND afterAtt.ToKeyId = temp.TempDetailId + '#After'
|
||||
WHERE temp.ProjectId = @ProjectId AND temp.AuditState = 0";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
||||
listStr.Add(new SqlParameter("@WeldReportMenuId", Const.HJGL_WeldReportMenuId));
|
||||
|
||||
var unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID);
|
||||
if (unitWork == null)
|
||||
{
|
||||
@@ -305,31 +273,30 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(daily.UnitWorkId);
|
||||
}
|
||||
}
|
||||
if (unitWork != null)
|
||||
{
|
||||
strSql += " AND temp.UnitWorkId = @UnitWorkId";
|
||||
listStr.Add(new SqlParameter("@UnitWorkId", unitWork.UnitWorkId));
|
||||
}
|
||||
|
||||
DateTime? weldingDate = null;
|
||||
if (!string.IsNullOrEmpty(txtPendingWeldingDate.Text.Trim()))
|
||||
{
|
||||
strSql += " AND temp.WeldingDate >= @WeldingDate AND temp.WeldingDate < @WeldingDateEnd";
|
||||
DateTime weldingDate = Convert.ToDateTime(txtPendingWeldingDate.Text.Trim()).Date;
|
||||
listStr.Add(new SqlParameter("@WeldingDate", weldingDate));
|
||||
listStr.Add(new SqlParameter("@WeldingDateEnd", weldingDate.AddDays(1)));
|
||||
DateTime parsedDate;
|
||||
if (!DateTime.TryParse(txtPendingWeldingDate.Text.Trim(), out parsedDate))
|
||||
{
|
||||
GridPending.RecordCount = 0;
|
||||
GridPending.DataSource = null;
|
||||
GridPending.DataBind();
|
||||
Alert.ShowInTop("焊接日期格式不正确!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
weldingDate = parsedDate.Date;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(txtPendingPipelineCode.Text.Trim()))
|
||||
{
|
||||
strSql += " AND jot.PipelineCode LIKE @PendingPipelineCode";
|
||||
listStr.Add(new SqlParameter("@PendingPipelineCode", "%" + txtPendingPipelineCode.Text.Trim() + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(txtPendingWelderCode.Text.Trim()))
|
||||
{
|
||||
strSql += " AND (coverWelder.WelderCode LIKE @PendingWelderCode OR backingWelder.WelderCode LIKE @PendingWelderCode)";
|
||||
listStr.Add(new SqlParameter("@PendingWelderCode", "%" + txtPendingWelderCode.Text.Trim() + "%"));
|
||||
}
|
||||
strSql += " ORDER BY jot.PipelineCode, jot.WeldJointCode";
|
||||
|
||||
DataTable tb = SQLHelper.GetDataTableRunText(strSql, listStr.ToArray());
|
||||
// 待审核列表与接口共用同一套查询和字段映射,避免PC端SQL与接口逐渐分叉。
|
||||
var pendingItems = BLL.WeldingDailyService.GetWeldingDailyTempDetailList(
|
||||
this.CurrUser.LoginProjectId,
|
||||
unitWork == null ? null : unitWork.UnitWorkId,
|
||||
weldingDate,
|
||||
txtPendingPipelineCode.Text.Trim(),
|
||||
txtPendingWelderCode.Text.Trim());
|
||||
DataTable tb = this.LINQToDataTable(pendingItems);
|
||||
GridPending.RecordCount = tb.Rows.Count;
|
||||
tb = GetFilteredTable(GridPending.FilteredData, tb);
|
||||
var table = this.GetPagedDataTable(GridPending, tb);
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<f:Tree ID="tvControlItem" ShowHeader="false" Height="560px" Title="单位工程"
|
||||
OnNodeCommand="tvControlItem_NodeCommand" runat="server" ShowBorder="false" EnableCollapse="true"
|
||||
EnableSingleClickExpand="false" AutoLeafIdentification="true"
|
||||
EnableTextSelection="true" OnNodeExpand="tvControlItem_TreeNodeExpanded" EnableCheckBox="true" OnlyLeafCheck="true">
|
||||
EnableTextSelection="true" OnNodeExpand="tvControlItem_TreeNodeExpanded" OnNodeCheck="tvControlItem_NodeCheck" EnableCheckBox="true" OnlyLeafCheck="false">
|
||||
</f:Tree>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
public partial class WeldingConDate : PageBase
|
||||
{
|
||||
public int pageSize = PipelineService.pageSize;
|
||||
|
||||
public List<string> GridWeldJointIdList { get; set; }
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
@@ -27,7 +27,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
this.drpPipeArea.DataSource = BLL.PipelineService.GetPipeArea();
|
||||
this.drpPipeArea.DataBind();
|
||||
Funs.FineUIPleaseSelect(this.drpPipeArea);
|
||||
this.InitTreeMenu();
|
||||
this.InitTreeMenu();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
rootNode1.Text = "建筑工程";
|
||||
rootNode1.CommandName = "建筑工程";
|
||||
rootNode1.Selectable = false;
|
||||
rootNode1.EnableCheckBox = false;
|
||||
this.tvControlItem.Nodes.Add(rootNode1);
|
||||
|
||||
TreeNode rootNode2 = new TreeNode();
|
||||
@@ -51,6 +52,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
rootNode2.Text = "安装工程";
|
||||
rootNode2.CommandName = "安装工程";
|
||||
rootNode2.Expanded = true;
|
||||
rootNode2.EnableCheckBox = false;
|
||||
this.tvControlItem.Nodes.Add(rootNode2);
|
||||
|
||||
var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
||||
@@ -121,7 +123,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
tn1.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize);
|
||||
tn1.EnableExpandEvent = true;
|
||||
tn1.EnableClickEvent = true;
|
||||
tn1.EnableCheckBox = false;
|
||||
// 单位工程复选框表示“当前筛选条件下的全部管线”,不能只依赖已加载的分页节点。
|
||||
tn1.EnableCheckBox = true;
|
||||
rootNode1.Nodes.Add(tn1);
|
||||
if (a > 0)
|
||||
{
|
||||
@@ -183,7 +186,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize);
|
||||
tn2.EnableExpandEvent = true;
|
||||
tn2.EnableClickEvent = true;
|
||||
tn2.EnableCheckBox = false;
|
||||
// 单位工程复选框表示“当前筛选条件下的全部管线”,不能只依赖已加载的分页节点。
|
||||
tn2.EnableCheckBox = true;
|
||||
rootNode2.Nodes.Add(tn2);
|
||||
if (a > 0)
|
||||
{
|
||||
@@ -206,6 +210,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单位工程节点允许勾选;不展开分页子节点,批量自动录入时会按当前筛选条件重新查询全部管线。
|
||||
/// </summary>
|
||||
protected void tvControlItem_NodeCheck(object sender, TreeCheckEventArgs e)
|
||||
{
|
||||
// FineUI 会处理父子节点的视觉状态,这里不强制勾选未加载的子节点,避免分页节点遗漏。
|
||||
}
|
||||
private void BindNodes(TreeNode node)
|
||||
{
|
||||
BLL.PipelineService.BindTreeNodes(node, ckNOEdit.Checked, this.txtPipelineCode.Text.Trim(), this.CurrUser.LoginProjectId, pageSize, this.drpPipeArea.SelectedValue);
|
||||
@@ -261,12 +273,18 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
|
||||
#region 数据绑定
|
||||
private void BindGrid()
|
||||
{
|
||||
{
|
||||
GridWeldJointIdList = new List<string>();
|
||||
if (string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
|
||||
{
|
||||
return;
|
||||
|
||||
}
|
||||
string strSql = @"SELECT WeldJointId,WeldJointCode,PipelineId,PipelineCode,JointAttribute,
|
||||
IsWelding,IsHotProessStr,Material1Code,Material2Code,WeldTypeCode,
|
||||
Specification,HeartNo1,HeartNo2,Size,Dia,DNDia,Thickness,GrooveTypeCode,
|
||||
WeldingMethodCode,WeldingWireCode,WeldingRodCode,WeldingDate,WeldingDailyCode,
|
||||
BackingWelderCode,CoverWelderCode,MediumCode ,PreTemperature,JointArea,WPQCode,Remark,CAST(WeldJointCode as int) as WeldJointCodeInt
|
||||
BackingWelderCode,CoverWelderCode,MediumCode ,PreTemperature,JointArea,WPQCode,Remark,TRY_CAST(WeldJointCode AS INT) AS WeldJointCodeInt
|
||||
FROM View_HJGL_WeldJoint WHERE IsTwoJoint IS NULL ";
|
||||
List<SqlParameter> listStr = new List<SqlParameter> { };
|
||||
|
||||
@@ -309,7 +327,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
SqlParameter[] parameter = listStr.ToArray();
|
||||
System.Data.DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||
|
||||
GridWeldJointIdList = dt.AsEnumerable().Select(row => row.Field<string>("WeldJointId")).ToList();
|
||||
// 2.获取当前分页数据
|
||||
Grid1.RecordCount = dt.Rows.Count;
|
||||
var table = this.GetPagedDataTable(Grid1, dt);
|
||||
@@ -412,58 +430,19 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
ShowNotify("请选择工艺规程编制单位!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
|
||||
|
||||
// BindGrid() 上一次请求中的赋值不会保留到本次回发,按钮处理前重新查询当前筛选结果。
|
||||
BindGrid();
|
||||
if (GridWeldJointIdList.Any())
|
||||
{
|
||||
var jotList = from x in Funs.DB.HJGL_WeldJoint where x.PipelineId == tvControlItem.SelectedNodeID && x.JointAttribute == drpJointAttribute.SelectedValue select x;
|
||||
if (jotList.Count() > 0)
|
||||
{
|
||||
foreach (var jot in jotList)
|
||||
{
|
||||
List<Model.View_HJGL_WPQ> wpqList = BLL.WPQListServiceService.GetMatchWPQ(jot, this.CurrUser.LoginProjectId, drpUnit.SelectedValue);
|
||||
Model.HJGL_WeldJoint newJot = new Model.HJGL_WeldJoint();
|
||||
if (wpqList != null)
|
||||
{
|
||||
Model.WPQ_WPQList wps = new Model.WPQ_WPQList();
|
||||
var a = wpqList.FirstOrDefault(x => x.WeldingMethodId == "feb1234c-a538-476f-99ac-7b3ab15997c1"); //优先匹配GTAW+SMAW的焊评
|
||||
if (a == null)
|
||||
{
|
||||
wps = BLL.WPQListServiceService.GetWPQById(wpqList.First().WPQId);
|
||||
}
|
||||
else
|
||||
{
|
||||
wps = BLL.WPQListServiceService.GetWPQById(a.WPQId);
|
||||
}
|
||||
|
||||
newJot.WPQId = wps.WPQId;
|
||||
newJot.WeldJointId = jot.WeldJointId;
|
||||
newJot.WeldingRod = wps.WeldingRod;
|
||||
newJot.WeldingWire = wps.WeldingWire;
|
||||
newJot.WeldingMethodId = wps.WeldingMethodId;
|
||||
newJot.GrooveTypeId = wps.GrooveType;
|
||||
newJot.PreTemperature = wps.PreTemperature;
|
||||
newJot.IsHotProess = wps.IsHotProess;
|
||||
newJot.MatchableWPQ = string.Join(",", wpqList.Select(x => x.WPQCode));
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
newJot.WPQId = null;
|
||||
newJot.WeldJointId = jot.WeldJointId;
|
||||
newJot.WeldingRod = null;
|
||||
newJot.WeldingWire = null;
|
||||
newJot.WeldingMethodId = null;
|
||||
newJot.GrooveTypeId = null;
|
||||
newJot.PreTemperature = null;
|
||||
newJot.IsHotProess = null;
|
||||
newJot.MatchableWPQ = null;
|
||||
}
|
||||
BLL.WeldJointService.UpdateConWeldJoint(newJot);
|
||||
}
|
||||
}
|
||||
AutoInputWeldJoints(GridWeldJointIdList);
|
||||
BindGrid();
|
||||
ShowNotify("该管线焊口已完成自动录入!", MessageBoxIcon.Success);
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("当前筛选条件下没有可自动录入的焊口!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
protected void btnAutoInput2_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -473,64 +452,23 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
return;
|
||||
}
|
||||
TreeNode[] nodes = tvControlItem.GetCheckedNodes();
|
||||
if (nodes.Length > 0)
|
||||
var pipelineIds = new List<string>();
|
||||
foreach (TreeNode node in nodes)
|
||||
{
|
||||
foreach (TreeNode node in nodes)
|
||||
if (node.CommandName == "管线")
|
||||
{
|
||||
if (!string.IsNullOrEmpty(node.NodeID))
|
||||
{
|
||||
var jotList = from x in Funs.DB.HJGL_WeldJoint where x.PipelineId == node.NodeID && x.JointAttribute == drpJointAttribute.SelectedValue select x;
|
||||
if (jotList.Count() > 0)
|
||||
{
|
||||
foreach (var jot in jotList)
|
||||
{
|
||||
List<Model.View_HJGL_WPQ> wpqList = BLL.WPQListServiceService.GetMatchWPQ(jot, this.CurrUser.LoginProjectId, drpUnit.SelectedValue);
|
||||
Model.HJGL_WeldJoint newJot = new Model.HJGL_WeldJoint();
|
||||
if (wpqList != null)
|
||||
{
|
||||
Model.WPQ_WPQList wps = new Model.WPQ_WPQList();
|
||||
var a = wpqList.FirstOrDefault(x => x.WeldingMethodId == "feb1234c-a538-476f-99ac-7b3ab15997c1"); //优先匹配GTAW+SMAW的焊评
|
||||
if (a == null)
|
||||
{
|
||||
wps = BLL.WPQListServiceService.GetWPQById(wpqList.First().WPQId);
|
||||
}
|
||||
else
|
||||
{
|
||||
wps = BLL.WPQListServiceService.GetWPQById(a.WPQId);
|
||||
}
|
||||
|
||||
newJot.WPQId = wps.WPQId;
|
||||
newJot.WeldJointId = jot.WeldJointId;
|
||||
newJot.WeldingRod = wps.WeldingRod;
|
||||
newJot.WeldingWire = wps.WeldingWire;
|
||||
newJot.WeldingMethodId = wps.WeldingMethodId;
|
||||
newJot.GrooveTypeId = wps.GrooveType;
|
||||
newJot.PreTemperature = wps.PreTemperature;
|
||||
newJot.IsHotProess = wps.IsHotProess;
|
||||
newJot.MatchableWPQ = string.Join(",", wpqList.Select(x => x.WPQCode));
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
newJot.WPQId = null;
|
||||
newJot.WeldJointId = jot.WeldJointId;
|
||||
newJot.WeldingRod = null;
|
||||
newJot.WeldingWire = null;
|
||||
newJot.WeldingMethodId = null;
|
||||
newJot.GrooveTypeId = null;
|
||||
newJot.PreTemperature = null;
|
||||
newJot.IsHotProess = null;
|
||||
newJot.MatchableWPQ = null;
|
||||
}
|
||||
BLL.WeldJointService.UpdateConWeldJoint(newJot);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(node.NodeID)) pipelineIds.Add(node.NodeID);
|
||||
}
|
||||
// BindGrid();
|
||||
else if (node.CommandName != null && node.CommandName.Split('|').Length == 2)
|
||||
{
|
||||
// 单位工程节点覆盖全部分页数据,不能只取树上当前已经展开的叶子节点。
|
||||
pipelineIds.AddRange(GetPipelineIdsByUnitWork(node.NodeID));
|
||||
}
|
||||
}
|
||||
pipelineIds = pipelineIds.Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
|
||||
if (pipelineIds.Count > 0)
|
||||
{
|
||||
AutoInputWeldJoints(GetAutoInputWeldJoints(pipelineIds));
|
||||
ShowNotify("该管线焊口已完成自动录入!", MessageBoxIcon.Success);
|
||||
}
|
||||
else
|
||||
@@ -539,6 +477,69 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按当前树筛选条件查询单位工程下的全部管线,覆盖分页和未展开节点。
|
||||
/// </summary>
|
||||
private List<string> GetPipelineIdsByUnitWork(string unitWorkId)
|
||||
{
|
||||
var query = Funs.DB.HJGL_Pipeline.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == unitWorkId);
|
||||
if (this.drpPipeArea.SelectedValue != BLL.Const._Null)
|
||||
{
|
||||
query = query.Where(x => x.PipeArea == this.drpPipeArea.SelectedValue);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(this.txtPipelineCode.Text.Trim()))
|
||||
{
|
||||
query = query.Where(x => x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()));
|
||||
}
|
||||
if (ckNOEdit.Checked)
|
||||
{
|
||||
query = query.Where(p => Funs.DB.HJGL_WeldJoint.Any(w => w.PipelineId == p.PipelineId && w.IsTwoJoint == null && w.WPQId == null));
|
||||
}
|
||||
return query.Select(x => x.PipelineId).ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// “全部”表示不增加焊口属性条件;预制口和安装口仍按选择值精确筛选。
|
||||
/// </summary>
|
||||
private List<string> GetAutoInputWeldJoints(IEnumerable<string> pipelineIds)
|
||||
{
|
||||
var ids = pipelineIds.Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
|
||||
var query = Funs.DB.HJGL_WeldJoint.Where(x => ids.Contains(x.PipelineId));
|
||||
if (!string.IsNullOrEmpty(drpJointAttribute.SelectedValue))
|
||||
{
|
||||
query = query.Where(x => x.JointAttribute == drpJointAttribute.SelectedValue);
|
||||
}
|
||||
return query.Select(x=>x.WeldJointId).ToList();
|
||||
}
|
||||
|
||||
private void AutoInputWeldJoints(List<string> weldJoints)
|
||||
{
|
||||
foreach (var weldJointId in weldJoints)
|
||||
{
|
||||
|
||||
List<Model.View_HJGL_WPQ> wpqList = BLL.WPQListServiceService.GetMatchWPQ(WeldJointService.GetWeldJointByWeldJointId(weldJointId), this.CurrUser.LoginProjectId, drpUnit.SelectedValue);
|
||||
Model.HJGL_WeldJoint newJot = new Model.HJGL_WeldJoint { WeldJointId = weldJointId };
|
||||
if (wpqList != null && wpqList.Count > 0)
|
||||
{
|
||||
// 优先匹配 GTAW+SMAW 的焊评,保持原有业务优先级。
|
||||
var match = wpqList.FirstOrDefault(x => x.WeldingMethodId == "feb1234c-a538-476f-99ac-7b3ab15997c1") ?? wpqList.First();
|
||||
Model.WPQ_WPQList wps = BLL.WPQListServiceService.GetWPQById(match.WPQId);
|
||||
if (wps != null)
|
||||
{
|
||||
newJot.WPQId = wps.WPQId;
|
||||
newJot.WeldingRod = wps.WeldingRod;
|
||||
newJot.WeldingWire = wps.WeldingWire;
|
||||
newJot.WeldingMethodId = wps.WeldingMethodId;
|
||||
newJot.GrooveTypeId = wps.GrooveType;
|
||||
newJot.PreTemperature = wps.PreTemperature;
|
||||
newJot.IsHotProess = wps.IsHotProess;
|
||||
newJot.MatchableWPQ = string.Join(",", wpqList.Select(x => x.WPQCode));
|
||||
}
|
||||
}
|
||||
BLL.WeldJointService.UpdateConWeldJoint(newJot);
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnEdit_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.HJGL_WeldJointMenuId, BLL.Const.BtnModify))
|
||||
|
||||
Reference in New Issue
Block a user