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
INNER JOIN part P WITH(NOLOCK) ON A.Site = P.Site AND A.PartNo = P.PartNo
LEFT JOIN LatestMaterial B ON A.Site = B.Site AND A.RollNo = B.StartFromRollNo AND B.rn = 1
LEFT JOIN AggregatedReport R ON A.Site = R.Site AND A.RollNo = R.Roll_No AND A.CreatedOpsSeqNo = R.Seq_No
<where>
<where>
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
AND a.site in (select site from AccessSite where userID = #{userName})
A.site in (select site from AccessSite where userID = #{userName})
AND ISNULL(A.VirtualNewRollFlag, 'Y') = 'N'
<iftest=" createdDate2 != null">
<iftest=" createdDate2 != null">
AND CONVERT(varchar(10), a.CreatedDate, 120) >= #{createdDate2}
AND CONVERT(varchar(10), a.CreatedDate, 120) >= #{createdDate2}
</if>
</if>
@ -431,15 +439,6 @@
<iftest=" createdOpsItemNo != null and createdOpsItemNo != '' and createdOpsItemNo != 0">
<iftest=" createdOpsItemNo != null and createdOpsItemNo != '' and createdOpsItemNo != 0">
AND CAST(A.CreatedOpsItemNo AS VARCHAR) like '%'+CAST(#{createdOpsItemNo} AS VARCHAR)+'%'
AND CAST(A.CreatedOpsItemNo AS VARCHAR) like '%'+CAST(#{createdOpsItemNo} AS VARCHAR)+'%'
</if>
</if>
<iftest=" consumeOrderNo != null and consumeOrderNo != ''">
AND B.OrderNo like '%'+#{consumeOrderNo}+'%'
</if>
<iftest=" consumeSeqNo != null and consumeSeqNo != ''">
AND CAST(B.SeqNo AS VARCHAR) like '%'+#{consumeSeqNo}+'%'
</if>
<iftest=" consumeItemNo != null and consumeItemNo != ''">
AND CAST(B.ItemNo AS VARCHAR) like '%'+#{consumeItemNo}+'%'
</if>
<iftest=" partNo != null and partNo != ''">
<iftest=" partNo != null and partNo != ''">
AND A.partNo like '%'+#{partNo}+'%'
AND A.partNo like '%'+#{partNo}+'%'
</if>
</if>
@ -459,10 +458,7 @@
AND A.Createdby like '%' + #{createdby} + '%'
AND A.Createdby like '%' + #{createdby} + '%'
</if>
</if>
<iftest=" productionResourceID != null and productionResourceID != ''">
<iftest=" productionResourceID != null and productionResourceID != ''">
AND S.S_ResourceID like '%' + #{productionResourceID} + '%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND B.S_ResourceID like '%' + #{consumptionResourceID} + '%'
AND A.Createdby like '%' + #{productionResourceID} + '%'
</if>
</if>
<iftest=" finalStatus != null and finalStatus != ''">
<iftest=" finalStatus != null and finalStatus != ''">
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
INNER JOIN part P WITH(NOLOCK) ON A.Site = P.Site AND A.PartNo = P.PartNo
LEFT JOIN LatestMaterial B ON A.Site = B.Site AND A.RollNo = B.StartFromRollNo AND B.rn = 1
LEFT JOIN AggregatedReport R ON A.Site = R.Site AND A.RollNo = R.Roll_No AND A.CreatedOpsSeqNo = R.Seq_No
<where>
<where>
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
AND a.site in (select site from AccessSite where userID = #{userName})
A.site in (select site from AccessSite where userID = #{userName})
AND ISNULL(A.VirtualNewRollFlag, 'Y') = 'N'
<iftest=" createdDate2 != null">
<iftest=" createdDate2 != null">
AND CONVERT(varchar(10), a.CreatedDate, 120) >= #{createdDate2}
AND CONVERT(varchar(10), a.CreatedDate, 120) >= #{createdDate2}
</if>
</if>
@ -518,15 +539,6 @@
<iftest=" createdOpsItemNo != null and createdOpsItemNo != '' and createdOpsItemNo != 0">
<iftest=" createdOpsItemNo != null and createdOpsItemNo != '' and createdOpsItemNo != 0">
AND CAST(A.CreatedOpsItemNo AS VARCHAR) like '%'+CAST(#{createdOpsItemNo} AS VARCHAR)+'%'
AND CAST(A.CreatedOpsItemNo AS VARCHAR) like '%'+CAST(#{createdOpsItemNo} AS VARCHAR)+'%'
</if>
</if>
<iftest=" consumeOrderNo != null and consumeOrderNo != ''">
AND B.OrderNo like '%'+#{consumeOrderNo}+'%'
</if>
<iftest=" consumeSeqNo != null and consumeSeqNo != ''">
AND CAST(B.SeqNo AS VARCHAR) like '%'+#{consumeSeqNo}+'%'
</if>
<iftest=" consumeItemNo != null and consumeItemNo != ''">
AND CAST(B.ItemNo AS VARCHAR) like '%'+#{consumeItemNo}+'%'
</if>
<iftest=" partNo != null and partNo != ''">
<iftest=" partNo != null and partNo != ''">
AND A.partNo like '%'+#{partNo}+'%'
AND A.partNo like '%'+#{partNo}+'%'
</if>
</if>
@ -546,10 +558,7 @@
AND A.Createdby like '%' + #{createdby} + '%'
AND A.Createdby like '%' + #{createdby} + '%'
</if>
</if>
<iftest=" productionResourceID != null and productionResourceID != ''">
<iftest=" productionResourceID != null and productionResourceID != ''">
AND S.S_ResourceID like '%' + #{productionResourceID} + '%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND B.S_ResourceID like '%' + #{consumptionResourceID} + '%'
AND A.Createdby like '%' + #{productionResourceID} + '%'
</if>
</if>
<iftest=" finalStatus != null and finalStatus != ''">
<iftest=" finalStatus != null and finalStatus != ''">
ROW_NUMBER() OVER (PARTITION BY M.Site, M.StartFromRollNo ORDER BY M.ReportDate DESC) AS rn
FROM SFDC_MaterialHist M WITH(NOLOCK)
FROM SFDC_MaterialHist M WITH(NOLOCK)
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 M.site in (select site from AccessSite where userID = #{userName})
<iftest=" consumeOrderNo != null and consumeOrderNo != ''">
AND M.OrderNo like '%'+#{consumeOrderNo}+'%'
</if>
<iftest=" consumeSeqNo != null and consumeSeqNo != ''">
AND CAST(M.SeqNo AS VARCHAR) like '%'+#{consumeSeqNo}+'%'
</if>
<iftest=" consumeItemNo != null and consumeItemNo != ''">
AND CAST(M.ItemNo AS VARCHAR) like '%'+#{consumeItemNo}+'%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND M.Reportedby like '%' + #{consumptionResourceID} + '%'
</if>
),
AggregatedReport AS (
SELECT
Site, 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 WITH(NOLOCK)
GROUP BY Site, Roll_No, Seq_No
)
SELECT
COUNT(1)
FROM SFDC_Rolls A WITH(NOLOCK)
INNER JOIN part P WITH(NOLOCK) ON A.Site = P.Site AND A.PartNo = P.PartNo
LEFT JOIN LatestMaterial B ON A.Site = B.Site AND A.RollNo = B.StartFromRollNo AND B.rn = 1
LEFT JOIN AggregatedReport R ON A.Site = R.Site AND A.RollNo = R.Roll_No AND A.CreatedOpsSeqNo = R.Seq_No
<where>
<where>
ISNULL(A.VirtualNewRollFlag,'Y') = 'N'
AND a.site in (select site from AccessSite where userID = #{userName})
A.site in (select site from AccessSite where userID = #{userName})
AND ISNULL(A.VirtualNewRollFlag, 'Y') = 'N'
<iftest=" createdDate2 != null">
<iftest=" createdDate2 != null">
AND CONVERT(varchar(10), a.CreatedDate, 120) >= #{createdDate2}
AND CONVERT(varchar(10), a.CreatedDate, 120) >= #{createdDate2}
</if>
</if>
@ -595,16 +629,6 @@
<iftest=" createdOpsItemNo != null and createdOpsItemNo != '' and createdOpsItemNo != 0">
<iftest=" createdOpsItemNo != null and createdOpsItemNo != '' and createdOpsItemNo != 0">
AND CAST(A.CreatedOpsItemNo AS VARCHAR) like '%'+CAST(#{createdOpsItemNo} AS VARCHAR)+'%'
AND CAST(A.CreatedOpsItemNo AS VARCHAR) like '%'+CAST(#{createdOpsItemNo} AS VARCHAR)+'%'
</if>
</if>
<iftest=" consumeOrderNo != null and consumeOrderNo != ''">
AND B.OrderNo like '%'+#{consumeOrderNo}+'%'
</if>
<iftest=" consumeSeqNo != null and consumeSeqNo != ''">
AND CAST(B.SeqNo AS VARCHAR) like '%'+#{consumeSeqNo}+'%'
</if>
<iftest=" consumeItemNo != null and consumeItemNo != ''">
AND CAST(B.ItemNo AS VARCHAR) like '%'+#{consumeItemNo}+'%'
</if>
<iftest=" partNo != null and partNo != ''">
<iftest=" partNo != null and partNo != ''">
AND A.partNo like '%'+#{partNo}+'%'
AND A.partNo like '%'+#{partNo}+'%'
</if>
</if>
@ -624,10 +648,7 @@
AND A.Createdby like '%' + #{createdby} + '%'
AND A.Createdby like '%' + #{createdby} + '%'
</if>
</if>
<iftest=" productionResourceID != null and productionResourceID != ''">
<iftest=" productionResourceID != null and productionResourceID != ''">
AND S.S_ResourceID like '%' + #{productionResourceID} + '%'
</if>
<iftest=" consumptionResourceID != null and consumptionResourceID != ''">
AND B.S_ResourceID like '%' + #{consumptionResourceID} + '%'
AND A.Createdby like '%' + #{productionResourceID} + '%'
</if>
</if>
<iftest=" finalStatus != null and finalStatus != ''">
<iftest=" finalStatus != null and finalStatus != ''">