WHEN RollType <![CDATA[<>]]> '删除卷' AND B.RollNo IS NOT NULL THEN '已消耗'
WHEN RollType <![CDATA[<>]]> '删除卷' AND ISNULL(A.status, '*') = '*' AND B.RollNo IS NULL THEN '未消耗'
WHEN RollType <![CDATA[<>]]> '删除卷' AND ISNULL(A.status, '*') != '*' THEN '待入库' ELSE ''
END) AS finalStatus,
B.HistType,
B.HistType,
a.partNo,
p.PartDescription AS partDesc,
p.Spec AS spec ,
ISNULL(R.good_qty, 0) as goodQty,
ISNULL(R.surface_loss_qty, 0) as surfaceLossQty,
ISNULL(R.poor_performance_qty, 0) as poorPerformanceQty,
ISNULL(R.defect_qty, 0) as defectQty,
ISNULL(R.total_qty, 0) as totalQty,
round(isnull(yieldRate, 100), 2) as yieldRate
FROM SFDC_Rolls A
LEFT JOIN (SELECT OrderNo,SeqNo,ItemNo,StartDate, ReportDate,Reportedby,HistType,SITE,StartFromRollNo,RollNo ,ROW_NUMBER() OVER (PARTITION BY SITE, OrderNo, StartFromRollNo ORDER BY ReportDate DESC, SeqNo ASC) AS rn FROM SFDC_MaterialHist) B ON A.Site = B.SITE AND A.OrderNo = B.OrderNo AND A.RollNo = B.StartFromRollNo AND B.rn = 1
left join part p on a.site = p.site and a.partNo = p.partNo
LEFT JOIN (
select
site,
order_no,
roll_no,
seq_no,
SUM(good_qty) as good_qty,
SUM(surface_loss_qty) as surface_loss_qty,
SUM(poor_performance_qty) as poor_performance_qty,
SUM(defect_qty) as defect_qty,
SUM(total_qty) as total_qty,
CASE WHEN SUM(total_qty) = 0 THEN NULL ELSE 100.0 * SUM(good_qty) / SUM(total_qty) END AS yieldRate
from ProductionReport
GROUP BY Site,order_no,roll_no,seq_no) R on r.Site = a.site and r.roll_no = a.RollNo
A.RollType,
CASE
WHEN A.RollType = '删除卷' THEN '删除卷'
WHEN B.StartFromRollNo IS NOT NULL THEN '已消耗'
WHEN EXISTS ( SELECT 1 FROM SFDC_Genealogy G WHERE G.Site = A.Site AND G.OrderNo = A.OrderNo AND G.OriRollNo = A.RollNo AND RelationType ='合并卷' ) THEN '已消耗'
WHEN ISNULL(A.status, '*') = '*' THEN '未消耗'
ELSE '待入库'
END AS finalStatus,
A.partNo,
P.PartDescription AS partDesc,
P.Spec AS spec,
ISNULL(R.Good_Qty, 0) as goodQty,
ISNULL(R.Surface_Loss_Qty, 0) as surfaceLossQty,
ISNULL(R.Poor_Performance_Qty, 0) as poorPerformanceQty,
ISNULL(R.Defect_Qty, 0) as defectQty,
ISNULL(R.Total_Qty, 0) as totalQty,
ROUND(ISNULL(R.YieldRate, 100), 2) as yieldRate
FROM SFDC_Rolls A WITH(NOLOCK)
INNER JOIN SOScheduledRouting S WITH(NOLOCK) ON A.Site = S.Site AND A.CreatedOpsSeqNo = S.SeqNo
LEFT JOIN part P WITH(NOLOCK) ON A.Site = P.Site AND A.PartNo = P.PartNo
INNER JOIN SOScheduledRouting SOS WITH(NOLOCK) ON M.Site = SOS.Site AND M.SeqNo = SOS.SeqNo
WHERE M.Site = A.Site AND M.OrderNo = A.OrderNo AND M.StartFromRollNo = A.RollNo AND M.HistType = '发料'
ORDER BY M.ReportDate DESC) B
LEFT JOIN ( SELECT Site, Order_No, Roll_No, Seq_No, SUM(Good_Qty) AS Good_Qty, SUM(Surface_Loss_Qty) AS Surface_Loss_Qty, SUM(Poor_Performance_Qty) AS Poor_Performance_Qty,
SUM(Defect_Qty) AS Defect_Qty, SUM(Total_Qty) AS Total_Qty, (CASE WHEN SUM(Total_Qty) = 0 THEN NULL ELSE 100.0 * SUM(Good_Qty) / SUM(Total_Qty) END ) AS YieldRate
FROM ProductionReport WITH(NOLOCK) GROUP BY Site, Order_No, Roll_No, Seq_No) R ON R.Site = A.Site AND R.Roll_No = A.RollNo
<where>
<where>
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
AND a.site in (select site from AccessSite where userID = #{userName})
AND a.site in (select site from AccessSite where userID = #{userName})
@ -462,6 +460,21 @@
<iftest=" createdby != null and createdby != ''">
<iftest=" createdby != null and createdby != ''">
AND A.Createdby like '%' + #{createdby} + '%'
AND A.Createdby like '%' + #{createdby} + '%'
</if>
</if>
<iftest=" productionResourceID != null and productionResourceID != ''">
AND S.S_ResourceID like '%' + #{productionResourceID} + '%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND B.S_ResourceID like '%' + #{consumptionResourceID} + '%'
</if>
<iftest=" finalStatus != null and finalStatus != ''">
AND (CASE
WHEN A.RollType = '删除卷' THEN '删除卷'
WHEN B.StartFromRollNo IS NOT NULL THEN '已消耗'
WHEN EXISTS ( SELECT 1 FROM SFDC_Genealogy G WHERE G.Site = A.Site AND G.OrderNo = A.OrderNo AND G.OriRollNo = A.RollNo AND RelationType ='合并卷' ) THEN '已消耗'
ISNULL(SUM(ISNULL(R.surface_loss_qty, 0)), 0) AS surfaceLossQty,
ISNULL(SUM(ISNULL(R.poor_performance_qty, 0)), 0) AS poorPerformanceQty,
ISNULL(SUM(ISNULL(R.defect_qty, 0)), 0) AS defectQty,
ISNULL(SUM(ISNULL(R.total_qty, 0)), 0) AS totalQty
FROM SFDC_Rolls A
LEFT JOIN (SELECT OrderNo,SeqNo,ItemNo,StartDate, ReportDate,Reportedby,HistType,SITE,StartFromRollNo,RollNo ,ROW_NUMBER() OVER (PARTITION BY SITE, OrderNo, StartFromRollNo ORDER BY ReportDate DESC, SeqNo ASC) AS rn FROM SFDC_MaterialHist) B ON A.Site = B.SITE AND A.OrderNo = B.OrderNo AND A.RollNo = B.StartFromRollNo AND B.rn = 1
left join part p on a.site = p.site and a.partNo = p.partNo
LEFT JOIN (
select
site,
order_no,
roll_no,
seq_no,
SUM(good_qty) as good_qty,
SUM(surface_loss_qty) as surface_loss_qty,
SUM(poor_performance_qty) as poor_performance_qty,
SUM(defect_qty) as defect_qty,
SUM(total_qty) as total_qty
from ProductionReport
GROUP BY Site,order_no,roll_no,seq_no) R on r.Site = a.site and r.roll_no = a.RollNo
ISNULL(SUM(ISNULL(R.Good_Qty, 0)), 0) AS goodQty,
ISNULL(SUM(ISNULL(R.Surface_Loss_Qty, 0)), 0) AS surfaceLossQty,
ISNULL(SUM(ISNULL(R.Poor_Performance_Qty, 0)), 0) AS poorPerformanceQty,
ISNULL(SUM(ISNULL(R.Defect_Qty, 0)), 0) AS defectQty,
ISNULL(SUM(ISNULL(R.Total_Qty, 0)), 0) AS totalQty
FROM SFDC_Rolls A WITH(NOLOCK)
INNER JOIN SOScheduledRouting S WITH(NOLOCK) ON A.Site = S.Site AND A.CreatedOpsSeqNo = S.SeqNo
LEFT JOIN part P WITH(NOLOCK) ON A.Site = P.Site AND A.PartNo = P.PartNo
INNER JOIN SOScheduledRouting SOS WITH(NOLOCK) ON M.Site = SOS.Site AND M.SeqNo = SOS.SeqNo
WHERE M.Site = A.Site AND M.OrderNo = A.OrderNo AND M.StartFromRollNo = A.RollNo AND M.HistType = '发料'
ORDER BY M.ReportDate DESC) B
LEFT JOIN ( SELECT Site, Order_No, Roll_No, Seq_No, SUM(Good_Qty) AS Good_Qty, SUM(Surface_Loss_Qty) AS Surface_Loss_Qty, SUM(Poor_Performance_Qty) AS Poor_Performance_Qty,
SUM(Defect_Qty) AS Defect_Qty, SUM(Total_Qty) AS Total_Qty, (CASE WHEN SUM(Total_Qty) = 0 THEN NULL ELSE 100.0 * SUM(Good_Qty) / SUM(Total_Qty) END ) AS YieldRate
FROM ProductionReport WITH(NOLOCK) GROUP BY Site, Order_No, Roll_No, Seq_No) R ON R.Site = A.Site AND R.Roll_No = A.RollNo
<where>
<where>
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
AND a.site in (select site from AccessSite where userID = #{userName})
AND a.site in (select site from AccessSite where userID = #{userName})
@ -539,15 +547,38 @@
<iftest=" createdby != null and createdby != ''">
<iftest=" createdby != null and createdby != ''">
AND A.Createdby like '%' + #{createdby} + '%'
AND A.Createdby like '%' + #{createdby} + '%'
</if>
</if>
<iftest=" productionResourceID != null and productionResourceID != ''">
AND S.S_ResourceID like '%' + #{productionResourceID} + '%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND B.S_ResourceID like '%' + #{consumptionResourceID} + '%'
</if>
<iftest=" finalStatus != null and finalStatus != ''">
AND (CASE
WHEN A.RollType = '删除卷' THEN '删除卷'
WHEN B.StartFromRollNo IS NOT NULL THEN '已消耗'
WHEN EXISTS ( SELECT 1 FROM SFDC_Genealogy G WHERE G.Site = A.Site AND G.OrderNo = A.OrderNo AND G.OriRollNo = A.RollNo AND RelationType ='合并卷' ) THEN '已消耗'
INNER JOIN SOScheduledRouting SOS WITH(NOLOCK) ON M.Site = SOS.Site AND M.SeqNo = SOS.SeqNo
WHERE M.Site = A.Site AND M.OrderNo = A.OrderNo AND M.StartFromRollNo = A.RollNo AND M.HistType = '发料'
ORDER BY M.ReportDate DESC) B
LEFT JOIN ( SELECT Site, Order_No, Roll_No, Seq_No, SUM(Good_Qty) AS Good_Qty, SUM(Surface_Loss_Qty) AS Surface_Loss_Qty, SUM(Poor_Performance_Qty) AS Poor_Performance_Qty,
SUM(Defect_Qty) AS Defect_Qty, SUM(Total_Qty) AS Total_Qty, (CASE WHEN SUM(Total_Qty) = 0 THEN NULL ELSE 100.0 * SUM(Good_Qty) / SUM(Total_Qty) END ) AS YieldRate
FROM ProductionReport WITH(NOLOCK) GROUP BY Site, Order_No, Roll_No, Seq_No) R ON R.Site = A.Site AND R.Roll_No = A.RollNo
<where>
<where>
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
AND a.site in (select site from AccessSite where userID = #{userName})
AND a.site in (select site from AccessSite where userID = #{userName})
@ -594,6 +625,21 @@
<iftest=" createdby != null and createdby != ''">
<iftest=" createdby != null and createdby != ''">
AND A.Createdby like '%' + #{createdby} + '%'
AND A.Createdby like '%' + #{createdby} + '%'
</if>
</if>
<iftest=" productionResourceID != null and productionResourceID != ''">
AND S.S_ResourceID like '%' + #{productionResourceID} + '%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND B.S_ResourceID like '%' + #{consumptionResourceID} + '%'
</if>
<iftest=" finalStatus != null and finalStatus != ''">
AND (CASE
WHEN A.RollType = '删除卷' THEN '删除卷'
WHEN B.StartFromRollNo IS NOT NULL THEN '已消耗'
WHEN EXISTS ( SELECT 1 FROM SFDC_Genealogy G WHERE G.Site = A.Site AND G.OrderNo = A.OrderNo AND G.OriRollNo = A.RollNo AND RelationType ='合并卷' ) THEN '已消耗'