diff --git a/DataBase/版本日志/SGGLDB_V2026-08-13-lpf.sql b/DataBase/版本日志/SGGLDB_V2026-08-13-lpf.sql new file mode 100644 index 00000000..c0ec178f --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-08-13-lpf.sql @@ -0,0 +1,2 @@ + ALTER TABLE HJGL_WeldAppearanceCheck DROP CONSTRAINT FK_HJGL_WeldAppearanceCheck_WeldJoint; + ALTER TABLE HJGL_Pipeline ALTER COLUMN PaintId nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL; diff --git a/SGGL/BLL/API/HJGL/APIPreWeldInspectionService.cs b/SGGL/BLL/API/HJGL/APIPreWeldInspectionService.cs index d390bfd5..93b8d734 100644 --- a/SGGL/BLL/API/HJGL/APIPreWeldInspectionService.cs +++ b/SGGL/BLL/API/HJGL/APIPreWeldInspectionService.cs @@ -137,9 +137,9 @@ namespace BLL /// /// 按材料编码获取防腐检查记录 /// - public static List GetAntiCorrosionChecksByMaterialCode(string materialCode, string projectId) + public static List GetAntiCorrosionChecksByMaterialCode(string barCode, string projectId) { - return PreWeldInspectionService.GetAntiCorrosionChecksByMaterialCode(materialCode, projectId); + return PreWeldInspectionService.GetAntiCorrosionChecksByMaterialCode(barCode, projectId); } /// /// 按焊口获取防腐检查记录列表 diff --git a/SGGL/BLL/HJGL/WeldingManage/PreWeldInspectionService.cs b/SGGL/BLL/HJGL/WeldingManage/PreWeldInspectionService.cs index b26fef3b..8e8c110a 100644 --- a/SGGL/BLL/HJGL/WeldingManage/PreWeldInspectionService.cs +++ b/SGGL/BLL/HJGL/WeldingManage/PreWeldInspectionService.cs @@ -604,18 +604,20 @@ namespace BLL /// /// 按材料编码获取防腐记录列表 /// - public static List GetAntiCorrosionChecksByMaterialCode(string materialCode, string projectId) + public static List GetAntiCorrosionChecksByMaterialCode(string barCode, string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var query = from r in db.HJGL_AntiCorrosionCheckRecord join m in db.HJGL_MaterialCodeLib on r.MaterialCode equals m.MaterialCode into materialJoin from m in materialJoin.DefaultIfEmpty() + join code in db.Tw_InputDetailBarCode on m.MaterialCode equals code.MaterialCode into barCodeJoin + from code in barCodeJoin.DefaultIfEmpty() join paint in db.Tw_PaintCodeDict on r.PaintId equals paint.Id into paintJoin from paint in paintJoin.DefaultIfEmpty() join person in db.Person_Persons on r.CheckPerson equals person.PersonId into personJoin from person in personJoin.DefaultIfEmpty() - where r.MaterialCode == materialCode && (string.IsNullOrEmpty(projectId) || r.ProjectId == projectId) + where code.BarCode == barCode && (string.IsNullOrEmpty(projectId) || r.ProjectId == projectId) orderby r.CheckTime descending select new Model.AntiCorrosionCheckRecordItem { diff --git a/SGGL/FineUIPro.Web/File/Fastreport/焊口打印_80x42.frx b/SGGL/FineUIPro.Web/File/Fastreport/焊口打印_80x42.frx index e180c4ca..6f3dcfe3 100644 --- a/SGGL/FineUIPro.Web/File/Fastreport/焊口打印_80x42.frx +++ b/SGGL/FineUIPro.Web/File/Fastreport/焊口打印_80x42.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -99,7 +99,7 @@ namespace FastReport } - + @@ -108,6 +108,7 @@ namespace FastReport + @@ -140,26 +141,29 @@ namespace FastReport - - - + + + - - - - - - - - - - - - + + + - - + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineListPDMSIn.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineListPDMSIn.aspx.cs index cd5fb217..6897a8a7 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineListPDMSIn.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineListPDMSIn.aspx.cs @@ -802,7 +802,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage if (!string.IsNullOrEmpty(col30)) { // AF列为非必填项,只有填写时才按防腐字典校验并回填字典ID - var paint = getPaintCodeDict.FirstOrDefault(x => !string.IsNullOrEmpty(x.PaintCode) && x.PaintCode.Contains(col30)); + // LINQ to SQL 不支持翻译 string.IsNullOrEmpty;AF 已确认非空,直接按字典编码精确匹配。 + var paint = getPaintCodeDict.FirstOrDefault(x => x.PaintCode == col30); if (paint == null) { result.Add("第" + (i + 1).ToString() + "行," + "防腐等级" + "【" + col30 + "】不存在!" + "|"); diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs index fd456007..29d189e6 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs @@ -1422,15 +1422,23 @@ namespace FineUIPro.Web.HJGL.WeldingManage { BLL.FastReportService.ResetData(); - var result = Funs.DB.View_HJGL_WeldJoint.Where(x => jointids.Contains(x.WeldJointId)).Select(x => new - { - pipelineCode = x.PipelineCode, - Mat = x.MaterialCode, - WeldJointId = x.WeldJointId, - Spec = x.Specification, - SortIndex = x.WeldJointCode.Replace(x.PipelineCode + "/", ""), - WeldJointPoint=x.WeldJointPoint - }).OrderBy(x => x.pipelineCode).ThenBy(x => x.SortIndex).ToList(); + // 防腐等级维护在管线上,打印时由焊口关联管线,再通过防腐字典取得显示代码。 + var result = (from weldJoint in Funs.DB.View_HJGL_WeldJoint + where jointids.Contains(weldJoint.WeldJointId) + join pipeline in Funs.DB.HJGL_Pipeline on weldJoint.PipelineId equals pipeline.PipelineId into pipelineGroup + from pipeline in pipelineGroup.DefaultIfEmpty() + join paint in Funs.DB.Tw_PaintCodeDict on pipeline.PaintId equals paint.Id into paintGroup + from paint in paintGroup.DefaultIfEmpty() + select new + { + pipelineCode = weldJoint.PipelineCode, + Mat = weldJoint.MaterialCode, + WeldJointId = weldJoint.WeldJointId, + Spec = weldJoint.Specification, + SortIndex = weldJoint.WeldJointCode.Replace(weldJoint.PipelineCode + "/", ""), + WeldJointPoint = weldJoint.WeldJointPoint, + PaintCode = paint == null ? string.Empty : paint.PaintCode + }).OrderBy(x => x.pipelineCode).ThenBy(x => x.SortIndex).ToList(); var tb = LINQToDataTable(result); if (tb != null && tb.Rows.Count > 0) {