This commit is contained in:
佘春生 2024-06-13 14:30:02 +08:00
commit fb0e3dc6c7
1 changed files with 81 additions and 52 deletions

View File

@ -3998,53 +3998,82 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
////模拟数据 ////模拟数据
//string sql = "SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User union all SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User union all SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User"; //string sql = "SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User union all SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User union all SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User";
string sql = @"SELECT H.*, string sql = @"use HJGLDB_ZJBSF
Ma.MaterialCode, PPline.Specification FROM
( SELECT COUNT ( 1 ) AS totalNum,t.TestPackageNo,t.PipelineId,T.PipelineCode,t.WelderCode, select * from (
( SELECT COUNT( 1 ) FROM dbo.View_Pipeline_WeldJoint AS jot select d.PipelineCode,
WHERE jot.PipelineId= T.PipelineId AND jot.WelderCode= t.WelderCode AND jot.JointAttribute= 'F' (select MaterialCode from Base_Material as m where d.MainMaterialId=m.MaterialId) as MaterialCode ,
) AS FNum, d.Specification,
SUM ( T.NdeNum ) AS NdeNum, (select count(1) from Pipeline_WeldJoint as joint where joint.PipelineId=a.PipelineId) as jointCount, --线
SUM ( t.FNdeNum ) AS FNdeNum, ( case when a.isAll=1 then
NdeCode (select count(1) from Pipeline_WeldJoint as joint where joint.PipelineId=a.PipelineId and joint.JointAttribute='F')
FROM ( SELECT else
a.TestPackageNo,b.PipelineId,c.PipelineCode,c.WeldJointId,c.WelderCode, (select count(1) from Pipeline_WeldJoint as joint where joint.PipelineId=a.PipelineId and joint.JointAttribute='' and CHARINDEX(','+joint.WeldJointCode+',',','+a.WeldJonintCode+'')>0)
(SELECT COUNT( 1 ) FROM dbo.Batch_NDEItem nde
LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId end ) as FjointCount, --线
WHERE trust.WeldJointId= c.WeldJointId ) AS NdeNum,-- c.WelderCode, --
STUFF((SELECT nde.NDEReportNo FROM dbo.Batch_NDEItem nde ( case when a.isAll=1 then
LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId (select count(1) from View_Pipeline_WeldJoint as vjoint where vjoint.PipelineId=a.PipelineId and vjoint.WelderCode=c.WelderCode)
WHERE trust.WeldJointId= c.WeldJointId FOR xml path ( '' ) ),1,1,'' ) AS NdeCode,-- else
(SELECT COUNT( 1 ) FROM dbo.Batch_NDEItem nde (select count(1) from View_Pipeline_WeldJoint as vjoint where vjoint.PipelineId=a.PipelineId
LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId and CHARINDEX(','+vjoint.WeldJointCode+',',','+a.WeldJonintCode+'')>0 and vjoint.WelderCode=c.WelderCode)
LEFT JOIN dbo.Pipeline_WeldJoint j ON j.WeldJointId = trust.WeldJointId end ) as WelderNum,
WHERE trust.WeldJointId= c.WeldJointId AND j.JointAttribute= 'F' ) AS FNdeNum -- (case when a.isAll=1 then
FROM dbo.PTP_TestPackage AS a (select count(1) from Batch_NDEItem as nde inner join Batch_BatchTrustItem as trust
INNER JOIN dbo.PTP_PipelineList AS b ON a.PTP_ID= b.PTP_ID ON trust.TrustBatchItemId = nde.TrustBatchItemId
LEFT JOIN dbo.View_Pipeline_WeldJoint AS C ON b.PipelineId= c.PipelineId inner join View_Pipeline_WeldJoint as joint
LEFT JOIN dbo.Pipeline_Pipeline AS d ON b.PipelineId= d.PipelineId ON joint.WeldJointId=trust.WeldJointId
WHERE b.isAll= 1 and a.ProjectId=@projectId and a.PTP_ID=@PTPID where joint.PipelineId=a.PipelineId and joint.WelderCode=c.WelderCode)
UNION ALL else
SELECT a.TestPackageNo, b.PipelineId,d.PipelineCode,c.WeldJointId,c.WelderCode, (
(SELECT COUNT( 1 ) select count(1) from Batch_NDEItem as nde inner join Batch_BatchTrustItem as trust
FROM dbo.Batch_NDEItem nde LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId ON trust.TrustBatchItemId = nde.TrustBatchItemId
WHERE trust.WeldJointId= c.WeldJointId ) AS NdeNum,-- inner join View_Pipeline_WeldJoint as joint
STUFF((SELECT nde.NDEReportNo FROM dbo.Batch_NDEItem nde ON joint.WeldJointId=trust.WeldJointId
LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId where joint.PipelineId=a.PipelineId and CHARINDEX(','+joint.WeldJointCode+',',','+a.WeldJonintCode+'')>0 and joint.WelderCode=c.WelderCode
WHERE trust.WeldJointId= c.WeldJointId FOR xml path ( '' ) ),1,1,'' ) AS NdeCode,-- )
(SELECT COUNT( 1 ) end
FROM dbo.Batch_NDEItem nde LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId ) as NdeNum, --
LEFT JOIN dbo.Pipeline_WeldJoint j ON j.WeldJointId = trust.WeldJointId (case when a.isAll=1 then
WHERE trust.WeldJointId= c.WeldJointId AND j.JointAttribute= 'F' ) AS FNdeNum -- (select count(1) from Batch_NDEItem as nde inner join Batch_BatchTrustItem as trust
FROM dbo.PTP_TestPackage AS a INNER JOIN dbo.PTP_PipelineList AS b ON a.PTP_ID= b.PTP_ID ON trust.TrustBatchItemId = nde.TrustBatchItemId
LEFT JOIN dbo.View_Pipeline_WeldJoint AS C ON b.PipelineId= c.PipelineId inner join View_Pipeline_WeldJoint as joint
LEFT JOIN dbo.Pipeline_Pipeline AS d ON b.PipelineId= d.PipelineId ON joint.WeldJointId=trust.WeldJointId
WHERE b.isAll= 0 AND PATINDEX( '%' + c.WeldJointCode+ '%', b.WeldJonintCode ) > 0 where joint.PipelineId=a.PipelineId and joint.JointAttribute='F' and joint.WelderCode=c.WelderCode)
and a.ProjectId=@projectId and a.PTP_ID=@PTPID else
) AS t (
GROUP BY t.TestPackageNo, t.PipelineCode, t.WelderCode, t.PipelineId, t.NdeCode ) AS H select count(1) from Batch_NDEItem as nde inner join Batch_BatchTrustItem as trust
LEFT JOIN Pipeline_Pipeline AS PPline ON H.PipelineId= PPline.PipelineId ON trust.TrustBatchItemId = nde.TrustBatchItemId
LEFT JOIN Base_Material AS Ma ON PPline.MainMaterialId= Ma.MaterialId"; inner join View_Pipeline_WeldJoint as joint
ON joint.WeldJointId=trust.WeldJointId
where joint.PipelineId=a.PipelineId and CHARINDEX(','+joint.WeldJointCode+',',','+a.WeldJonintCode+'')>0 and joint.JointAttribute='F' and joint.WelderCode=c.WelderCode
)
end
) as FNdeNum , --
(
case when a.isAll=1 then
(stuff((select ','+nde.NDEReportNo from Batch_NDEItem as nde inner join Batch_BatchTrustItem as trust
ON trust.TrustBatchItemId = nde.TrustBatchItemId
inner join View_Pipeline_WeldJoint as joint
ON joint.WeldJointId=trust.WeldJointId
where joint.PipelineId=a.PipelineId and joint.WelderCode=c.WelderCode FOR xml path ('') ),1,1,''))
else
(stuff((select ','+nde.NDEReportNo from Batch_NDEItem as nde inner join Batch_BatchTrustItem as trust
ON trust.TrustBatchItemId = nde.TrustBatchItemId
inner join View_Pipeline_WeldJoint as joint
ON joint.WeldJointId=trust.WeldJointId
where joint.PipelineId=a.PipelineId and CHARINDEX(','+joint.WeldJointCode+',',','+a.WeldJonintCode+'')>0 and joint.WelderCode=c.WelderCode FOR xml path ( '' ) ),1,1,'') )
end) as NdeReportNo
from
PTP_PipelineList as a inner join
PTP_TestPackage as b on a.PTP_ID=b.PTP_ID
inner join View_Pipeline_WeldJoint as c
on c.PipelineId=a.PipelineId
inner join Pipeline_Pipeline as d
on c.PipelineId=d.PipelineId
where b.PTP_ID=@PTPID and b.ProjectId=@projectId
) as t
group by t.PipelineCode,t.MaterialCode,t.Specification,t.jointCount,t.FjointCount,t.WelderCode,t.WelderNum,t.NdeNum,t.FNdeNum,t.NdeReportNo";
SqlParameter[] parms = SqlParameter[] parms =
{ {
@ -4240,14 +4269,14 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
ws.GetRow(dataIndex).GetCell(0).SetCellValue(dr["PipelineCode"].ToString()); ws.GetRow(dataIndex).GetCell(0).SetCellValue(dr["PipelineCode"].ToString());
ws.GetRow(dataIndex).GetCell(2).SetCellValue(dr["MaterialCode"].ToString()); ws.GetRow(dataIndex).GetCell(2).SetCellValue(dr["MaterialCode"].ToString());
ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["Specification"].ToString()); ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["Specification"].ToString());
ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["totalNum"].ToString()); ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["jointCount"].ToString());
ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["Fnum"].ToString()); ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["fjointCount"].ToString());
ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["WelderCode"].ToString()); ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["WelderCode"].ToString());
ws.GetRow(dataIndex).GetCell(11).SetCellValue(dr["Fnum"].ToString()); ws.GetRow(dataIndex).GetCell(11).SetCellValue(dr["WelderNum"].ToString());
ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["NdeNum"].ToString()); ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["NdeNum"].ToString());
ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["FNdeNum"].ToString()); ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["FNdeNum"].ToString());
string a = string.IsNullOrEmpty(dr["NdeNum"].ToString()) ? "0" : dr["NdeNum"].ToString(); string a = string.IsNullOrEmpty(dr["NdeNum"].ToString()) ? "0" : dr["NdeNum"].ToString();
string b = string.IsNullOrEmpty(dr["Fnum"].ToString()) ? "0" : dr["Fnum"].ToString(); string b = string.IsNullOrEmpty(dr["WelderNum"].ToString()) ? "0" : dr["WelderNum"].ToString();
if (b == "0") if (b == "0")
{ {
@ -4258,7 +4287,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
decimal rate = Math.Round((decimal.Parse(a) / decimal.Parse(b)), 2); decimal rate = Math.Round((decimal.Parse(a) / decimal.Parse(b)), 2);
ws.GetRow(dataIndex).GetCell(17).SetCellValue($"{rate * 100}%"); ws.GetRow(dataIndex).GetCell(17).SetCellValue($"{rate * 100}%");
} }
ws.GetRow(dataIndex).GetCell(20).SetCellValue(dr["NdeCode"].ToString()); ws.GetRow(dataIndex).GetCell(20).SetCellValue(dr["NdeReportNo"].ToString());
} }
j++; j++;
} }