diff --git a/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql
new file mode 100644
index 0000000..86a0ba5
--- /dev/null
+++ b/DataBase/版本日志/HJGLDB_DS_2026-04-28_bwj.sql
@@ -0,0 +1,150 @@
+
+
+ALTER PROC [dbo].[HJGL_sp_rpt_iso_analyze]
+ @unitNo VARCHAR(400) = NULL,
+ @isono VARCHAR(100) = NULL,
+ @steel varchar(50) = NULL,
+ @projectId NVARCHAR(50) = NULL,
+ @StartDate datetime =null,
+ @EndDate datetime =null
+AS
+/*ӹͳ ܴ2020.03.06*/
+SELECT iso.ProjectId,iso.ISO_IsoNo,iso.PressureTestPackageNo,Unit.UnitCode AS bsu_unitcode, --λ
+ Unit.UnitName AS bsu_unitname, --λ
+ Project.ProjectCode as projectCode, --ʩ
+ Project.ProjectName as projectName, --Ŀ
+ ''+cast(cast(ISO_Dia as FLOAT) as nvarchar(50))+''+cast(cast(ISO_Sch as FLOAT) as nvarchar(50)) as IsoDesc, --
+ v.ISO_ID,v.total_jot,v.total_din,
+ ISNULL(v1.finished_total_jot,0) AS finished_total_jot,
+ ISNULL(v1.finished_total_din,0) AS finished_total_din,v1.maxdate,
+ ISNULL(v1.total_film,0) AS total_film,
+ ISNULL(v1.pass_film,0) AS pass_film,
+ CAST(CASE ISNULL(v1.total_film ,0) WHEN 0 THEN 0
+ ELSE 1.0*ISNULL(v1.pass_film,0) / (1.0 * v1.total_film) END AS DECIMAL(19,3))
+ AS passrate, --ںϸ
+ ISNULL(v2.point_jot,0) AS point_jot,
+ ISNULL(v2.point_total_film,0) AS point_total_film,
+ ISNULL(v2.point_pass_film,0) AS point_pass_film,
+ CAST(CASE ISNULL(v2.point_total_film ,0) WHEN 0 THEN 0
+ ELSE 1.0*ISNULL(v2.point_pass_film,0) / (1.0 * v2.point_total_film) END AS DECIMAL(19,3))
+ AS point_passrate, --ںϸ
+
+ ISNULL(v3.ext_jot,0) AS ext_jot,
+ ISNULL(v3.ext_total_film,0) AS ext_total_film,
+ ISNULL(v3.ext_pass_film,0) AS ext_pass_film,
+ CAST(CASE ISNULL(v3.ext_total_film ,0) WHEN 0 THEN 0
+ ELSE 1.0*ISNULL(v3.ext_pass_film,0) / (1.0 * v3.ext_total_film) END AS DECIMAL(19,3))
+ AS point_passrate, --ϸ
+ (ISNULL(v2.point_jot,0)+ISNULL(v3.ext_jot,0)) AS check_total_jot,
+ ISNULL(v4.total_repairjot,0) AS total_repairjot,
+ ISNULL(v5.trust_total_jot,0) AS trust_total_jot,
+ CAST(CASE ISNULL(v.total_jot,0) WHEN 0 THEN 0
+ ELSE 1.0*ISNULL(v2.point_jot,0) / (1.0 * v.total_jot) END AS DECIMAL(19,3))
+ AS trustrate, --ίб
+ CAST(CASE ISNULL(v.total_jot,0) WHEN 0 THEN 0
+ ELSE 1.0*(ISNULL(v3.ext_jot,0) + ISNULL(v2.point_jot,0)) / (1.0 * v.total_jot)
+ END AS DECIMAL(19,3))
+ AS checkrate, --̽
+ ISNULL(v6.total_fjot,0) as total_fjot,--װ
+ ISNULL(v7.total_sjot,0) as total_sjot --Ԥƺ
+FROM
+ (SELECT ISO_ID, COUNT(JOT_ID) AS total_jot,SUM(ISNULL(JOT_Size,0)) AS total_din
+ FROM dbo.HJGL_PW_JointInfo
+ GROUP BY ISO_ID) v
+ LEFT JOIN
+ (SELECT ISO_ID, COUNT(JOT_ID) AS finished_total_jot,SUM(ISNULL(JOT_Size,0)) AS finished_total_din,
+ max(weldreport.JOT_WeldDate) AS maxdate, SUM(ISNULL(jot.RT_FilmNum,0)) AS total_film,
+ SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS pass_film
+ FROM dbo.HJGL_PW_JointInfo jot
+ LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
+ WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
+ AND jot.DReportID is not null
+ GROUP BY ISO_ID) v1 ON v1.ISO_ID=v.ISO_ID
+ LEFT JOIN
+ (SELECT ISO_ID, COUNT(jot.JOT_ID) AS point_jot,SUM(ISNULL(jot.RT_FilmNum,0)) AS point_total_film,
+ SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS point_pass_film
+ FROM dbo.HJGL_PW_JointInfo jot
+ LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
+ WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
+ AND jot.DReportID is not NULL AND jot.PointType='' or ((select top 1 CH_TrustItemID from HJGL_CH_TrustItem ti where ti.JOT_ID=jot.JOT_ID) is not null and jot.PointType is null)
+ GROUP BY ISO_ID) v2 ON v2.ISO_ID=v.ISO_ID
+ LEFT JOIN
+ (SELECT ISO_ID, COUNT(jot.JOT_ID) AS ext_jot,SUM(ISNULL(jot.RT_FilmNum,0)) AS ext_total_film,
+ SUM(ISNULL(jot.RT_FilmNum,0)-ISNULL(jot.RT1_RepairFilmNum,0)) AS ext_pass_film
+ FROM dbo.HJGL_PW_JointInfo jot
+ LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
+ WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
+ AND jot.DReportID is not NULL AND jot.PointType=''
+ GROUP BY ISO_ID) v3 ON v3.ISO_ID=v.ISO_ID
+ LEFT JOIN
+ (SELECT jot.ISO_ID, COUNT(distinct trust.JOT_ID) AS trust_total_jot --trust.CH_TrustItemID
+ FROM dbo.HJGL_CH_TrustItem trust
+ LEFT join dbo.HJGL_PW_JointInfo AS jot on jot.JOT_ID=trust.JOT_ID
+ LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
+ WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
+ AND jot.DReportID is not NULL
+ GROUP BY jot.ISO_ID) v5 ON v5.ISO_ID=v.ISO_ID
+ LEFT JOIN
+ (SELECT ISO_ID,COUNT(DISTINCT(jot.JOT_ID)) AS total_repairjot
+ FROM dbo.HJGL_PW_JointInfo jot
+ LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
+ WHERE (weldreport.JOT_WeldDate>=@StartDate or @StartDate is null) and (weldreport.JOT_WeldDate<=@EndDate or @EndDate is null)
+ AND jot.DReportID is not NULL
+ AND(jot.RT1_RepairFilmNum IS NOT NULL OR jot.PTIsRepair1=1 OR jot.MTIsRepair1=1 OR jot.UTIsRepair1=1)
+ GROUP BY ISO_ID) v4 ON v4.ISO_ID=v.ISO_ID
+--װ
+ LEFT JOIN
+ (SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_fjot
+ FROM dbo.HJGL_PW_JointInfo jot
+ LEFT join HJGL_BO_WeldReportMain AS weldreport on weldreport.DReportID=jot.DReportID
+ WHERE jot.WLO_Code='F'
+ GROUP BY ISO_ID) v6 ON v6.ISO_ID=v.ISO_ID
+--Ԥƺ
+ LEFT JOIN
+ (SELECT ISO_ID,COUNT(jot.JOT_ID) AS total_sjot
+ FROM dbo.HJGL_PW_JointInfo jot
+ WHERE jot.WLO_Code='S'
+ GROUP BY ISO_ID) v7 ON v7.ISO_ID=v.ISO_ID
+
+ LEFT JOIN dbo.HJGL_PW_IsoInfo iso ON iso.ISO_ID = v.ISO_ID
+ LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = iso.BSU_ID
+ LEFT JOIN Base_Project AS Project ON Project.ProjectId = iso.ProjectId
+ WHERE (iso.ProjectId = @projectId OR @projectId IS NULL)
+ AND (iso.BSU_ID=@unitno OR @unitno IS NULL)
+ AND (iso.STE_ID=@steel OR @steel IS NULL)
+ AND (iso.ISO_IsoNo = @isono OR @isono IS NULL)
+
+
+
+
+
+
+GO
+
+
+
+ALTER PROCEDURE [dbo].[sp_rpt_WelderQualified]
+(
+ @projectId NVARCHAR(50),
+ @WED_Name nvarchar(50) = null
+)
+AS
+/***********-ϸǼDZ*************/
+SELECT (ROW_NUMBER() OVER(ORDER BY pw.ProjectWelderId)) AS Number,
+pw.ProjectWelderId,
+w.WED_Code,
+w.WED_Name,
+w.WED_WorkCode as CertificateNo,
+convert(varchar(10),wqp.LimitDate,111) as LimitDate,
+ STRING_AGG(wqp.QualifiedProjectCode, '') as QualifiedProjectCode
+FROM Project_Welder pw
+LEFT JOIN HJGL_BS_Welder w ON w.WED_ID = pw.WED_ID
+left join HJGL_BS_WelderQualifiedProject wqp on wqp.WED_ID = pw.WED_ID
+where pw.ProjectId=@projectId
+and (w.WED_Name like @WED_Name or @WED_Name is null)
+and wqp.LimitDate IS NOT NULL AND wqp.LimitDate> = GETDATE()
+GROUP BY pw.ProjectWelderId,w.WED_Code,w.WED_Name,w.WED_WorkCode,wqp.LimitDate
+order by w.WED_Code,wqp.LimitDate
+GO
+
+
diff --git a/HJGL_DS/BLL/Common/Const.cs b/HJGL_DS/BLL/Common/Const.cs
index eca89e6..9dc044f 100644
--- a/HJGL_DS/BLL/Common/Const.cs
+++ b/HJGL_DS/BLL/Common/Const.cs
@@ -2544,6 +2544,11 @@ namespace BLL
///
public const string JGZL_QualifiedWelderUrl = "File\\Word\\JGZL\\合格焊工登记表导出模板.docx";
+ ///
+ /// 无损检测人员登记表导出模板
+ ///
+ public const string JGZL_NDTPersonUrl = "File\\Word\\JGZL\\无损检测人员登记表导出模板.docx";
+
///
/// 管道系统压力试验条件确认记录导出模板
///
diff --git a/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs b/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs
index a0fb23c..f767046 100644
--- a/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs
+++ b/HJGL_DS/BLL/Common/ProjectSet/Project_UserService.cs
@@ -107,6 +107,18 @@ namespace BLL
return pUser;
}
+ ///
+ /// 根据项目用户id获取用户
+ ///
+ ///
+ ///
+ ///
+ public static Model.Project_User GetProject_UserByProjectUserId(string projectUserId)
+ {
+ var pUser = Funs.DB.Project_User.FirstOrDefault(x => x.ProjectUserId == projectUserId);
+ return pUser;
+ }
+
///
/// 根据项目Id删除一个项目参与单位信息
///
diff --git a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx
index 8007f1b..6816dcd 100644
--- a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx
+++ b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/无损检测人员登记表.frx
@@ -1,5 +1,5 @@
-
+
using System;
using System.Collections;
using System.Collections.Generic;
@@ -42,7 +42,7 @@ namespace FastReport
}
-
+
diff --git a/HJGL_DS/FineUIPro.Web/File/Word/JGZL/合格焊工登记表导出模板.docx b/HJGL_DS/FineUIPro.Web/File/Word/JGZL/合格焊工登记表导出模板.docx
index 49ad41a..297ced6 100644
Binary files a/HJGL_DS/FineUIPro.Web/File/Word/JGZL/合格焊工登记表导出模板.docx and b/HJGL_DS/FineUIPro.Web/File/Word/JGZL/合格焊工登记表导出模板.docx differ
diff --git a/HJGL_DS/FineUIPro.Web/File/Word/JGZL/无损检测人员登记表导出模板.docx b/HJGL_DS/FineUIPro.Web/File/Word/JGZL/无损检测人员登记表导出模板.docx
new file mode 100644
index 0000000..854d45a
Binary files /dev/null and b/HJGL_DS/FineUIPro.Web/File/Word/JGZL/无损检测人员登记表导出模板.docx differ
diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj
index 51ba817..08de06f 100644
--- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj
@@ -1211,6 +1211,7 @@
+
@@ -1254,6 +1255,7 @@
+
@@ -6270,6 +6272,13 @@
DetectionPoint.aspx
+
+ JointInfoBatchUpdate.aspx
+ ASPXCodeBehind
+
+
+ JointInfoBatchUpdate.aspx
+
JointInfoCopy.aspx
ASPXCodeBehind
@@ -6571,6 +6580,13 @@
JointInfoOut2.aspx
+
+ WeldReportOut.aspx
+ ASPXCodeBehind
+
+
+ WeldReportOut.aspx
+
FeedbackResultSelect.aspx
ASPXCodeBehind
diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx
index 81ddade..815a56a 100644
--- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx
+++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx
@@ -62,15 +62,17 @@
-
+
-
+
-
+
-
+
-
+
+
+
@@ -373,6 +375,10 @@
Target="Parent" EnableResize="true" runat="server" IsModal="true" OnClose="Window8_Close"
Width="600px" Height="300px">
+
+