feat: 完善焊接质量检查和材料管理

补齐焊前专项审核和焊缝外观检测流程,统一质检查询、附件处理与材料明细导出,提升业务数据追溯和组件匹配使用效率。
This commit is contained in:
2026-08-10 17:58:55 +08:00
parent bd73295ff8
commit 2de696fad2
48 changed files with 2252 additions and 131 deletions
@@ -329,12 +329,19 @@ namespace FineUIPro.Web.HJGL.DataImport
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
pipe.Number,pipe.PrefabricatedComponents,
CASE pipe.PipeArea WHEN '1' THEN N'工厂预制' WHEN '2' THEN N'现场安装' END AS PipeAreaText,
weld.WeldJointCode
weld.WeldJointCode, ISNULL(reviewChange.HasChange, 0) AS HasReviewedBatchChange
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
OUTER APPLY (
SELECT TOP 1 CAST(CASE WHEN ISNULL(s.ReportedMainCode,'') <> ISNULL(pipe.MaterialCode,'') THEN 1 ELSE 0 END AS BIT) HasChange
FROM dbo.HJGL_PreWeldCuttingCheckMaterial s
INNER JOIN dbo.HJGL_PreWeldCuttingCheck c ON c.CuttingCheckId=s.CuttingCheckId
WHERE s.PipeLineMatId=pipe.PipeLineMatId AND c.ReviewState=2
ORDER BY c.ReviewTime DESC, c.CheckTime DESC, c.CuttingCheckId DESC
) reviewChange
WHERE line.UnitWorkId=@UnitWorkId and pipe.PipeArea='1' and pipe.PrefabricatedComponents !='' ";
List<SqlParameter> listStr = new List<SqlParameter>();
//if (!string.IsNullOrEmpty(txtMaterialCode.Text.Trim()))
@@ -373,12 +380,19 @@ namespace FineUIPro.Web.HJGL.DataImport
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
pipe.Number,
CASE pipe.PipeArea WHEN '1' THEN N'工厂预制' WHEN '2' THEN N'现场安装' END AS PipeAreaText,
weld.WeldJointCode
weld.WeldJointCode, ISNULL(reviewChange.HasChange, 0) AS HasReviewedBatchChange
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
OUTER APPLY (
SELECT TOP 1 CAST(CASE WHEN ISNULL(s.ReportedMainCode,'') <> ISNULL(pipe.MaterialCode,'') THEN 1 ELSE 0 END AS BIT) HasChange
FROM dbo.HJGL_PreWeldCuttingCheckMaterial s
INNER JOIN dbo.HJGL_PreWeldCuttingCheck c ON c.CuttingCheckId=s.CuttingCheckId
WHERE s.PipeLineMatId=pipe.PipeLineMatId AND c.ReviewState=2
ORDER BY c.ReviewTime DESC, c.CheckTime DESC, c.CuttingCheckId DESC
) reviewChange
WHERE line.UnitWorkId=@UnitWorkId and pipe.PipeArea='2' ";
List<SqlParameter> listStr = new List<SqlParameter>();
if (!string.IsNullOrEmpty(pipelineId))
@@ -413,12 +427,19 @@ namespace FineUIPro.Web.HJGL.DataImport
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
pipe.Number,pipe.PrefabricatedComponents,
CASE pipe.PipeArea WHEN '1' THEN N'工厂预制' WHEN '2' THEN N'现场安装' END AS PipeAreaText,
weld.WeldJointCode
weld.WeldJointCode, ISNULL(reviewChange.HasChange, 0) AS HasReviewedBatchChange
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
OUTER APPLY (
SELECT TOP 1 CAST(CASE WHEN ISNULL(s.ReportedMainCode,'') <> ISNULL(pipe.MaterialCode,'') THEN 1 ELSE 0 END AS BIT) HasChange
FROM dbo.HJGL_PreWeldCuttingCheckMaterial s
INNER JOIN dbo.HJGL_PreWeldCuttingCheck c ON c.CuttingCheckId=s.CuttingCheckId
WHERE s.PipeLineMatId=pipe.PipeLineMatId AND c.ReviewState=2
ORDER BY c.ReviewTime DESC, c.CheckTime DESC, c.CuttingCheckId DESC
) reviewChange
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()))
@@ -450,6 +471,19 @@ namespace FineUIPro.Web.HJGL.DataImport
#endregion
/// <summary>
/// 最新专项审核反馈主编码与当前材料主编码不一致时整行标红。
/// </summary>
protected void MaterialGrid_RowDataBound(object sender, GridRowEventArgs e)
{
var row = e.DataItem as DataRowView;
if (row != null && row.Row.Table.Columns.Contains("HasReviewedBatchChange")
&& Convert.ToBoolean(row["HasReviewedBatchChange"]))
{
e.RowCssClass = "batch-changed-review";
}
}
#region
#region