@ -386,6 +386,15 @@
<if test= "rollNo != null and rollNo != ''" >
AND smh.RollNo = #{rollNo}
</if>
<if test= "finishedFlag != null and finishedFlag != ''" >
AND smh.FinishFlag = #{finishedFlag}
</if>
<if test= "keyRMFlag != null and keyRMFlag != ''" >
AND smh.KeyRMFlag = #{keyRMFlag}
</if>
<if test= "histType != null and histType != ''" >
AND smh.HistType = #{histType}
</if>
</where>
ORDER BY smh.HistSeqNo DESC
</select>
@ -470,7 +479,169 @@
</if>
</where>
ORDER BY sfr.RollNo
</select>
<!-- 查询报工数据 -->
<select id= "getSfdcDataByCon" parameterType= "SearchScheduleData" resultType= "SfdcData" >
SELECT SUM (ApproveQty) approveQty, SUM (ReportQty - ApproveQty) defectQty, SUM (ReportedManfTime) reportedManfTime,
SUM (Downtime) downtime
FROM SFDC
<where >
<if test= "site != null and site != ''" >
AND Site = #{site}
</if>
<if test= "orderNo != null and orderNo != ''" >
AND OrderNo = #{orderNo}
</if>
<if test= "itemNo != null and itemNo != ''" >
AND ItemNo = #{itemNo}
</if>
<if test= "seqNo != null and seqNo != ''" >
AND AssJobSeqNo = #{seqNo}
</if>
<if test= "rollNo != null and rollNo != ''" >
AND RollNo = #{rollNo}
</if>
</where>
</select>
<!-- 查询sfdc_roll表的数据 -->
<select id= "getSfdcRollReportedQty" parameterType= "SearchScheduleData" resultType= "java.lang.Float" >
SELECT SUM(RollQty) reportedQty FROM SFDC_Rolls sfr
<where >
<if test= "site != null and site != ''" >
AND sfr.Site = #{site}
</if>
<if test= "orderNo != null and orderNo != ''" >
AND sfr.OrderNo = #{orderNo}
</if>
<if test= "itemNo != null and itemNo != ''" >
AND sfr.CreatedOpsItemNo = #{itemNo}
</if>
<if test= "seqNo != null and seqNo != ''" >
AND sfr.CreatedOpsSeqNo = #{seqNo}
</if>
<if test= "rollNo != null and rollNo != ''" >
AND sfr.OriRollNo = #{rollNo}
</if>
<choose >
<when test= 'switchKey != null and switchKey == "V"' >
AND sfr.VirtualRollFlag<![CDATA[<>]]> 'Y'
</when>
<when test= 'switchKey != null and switchKey == "VC"' >
AND NOT(T.VirtualRollFlag='N' AND T.CombineFlag='Y')
</when>
</choose>
AND sfr.RollType_DB<![CDATA[<>]]> 'C'
</where>
</select>
<!-- 统计是否报工过 -->
<select id= "countSfdcRollByRollNo" parameterType= "SearchScheduleData" resultType= "java.lang.Integer" >
SELECT COUNT(1) FROM SFDC_Rolls sfr
<where >
<if test= "site != null and site != ''" >
AND sfr.Site = #{site}
</if>
<if test= "orderNo != null and orderNo != ''" >
AND sfr.OrderNo = #{orderNo}
</if>
<if test= "itemNo != null and itemNo != ''" >
AND sfr.CreatedOpsItemNo = #{itemNo}
</if>
<if test= "seqNo != null and seqNo != ''" >
AND sfr.CreatedOpsSeqNo = #{seqNo}
</if>
<if test= "rollNo != null and rollNo != ''" >
AND sfr.OriRollNo = #{rollNo}
</if>
AND sfr.RollType_DB<![CDATA[<>]]> 'C'
</where>
</select>
<!-- 查询sfdcdefect的数据 -->
<select id= "getSfdcDefectDefectedQty" parameterType= "SearchScheduleData" resultType= "java.lang.Float" >
SELECT SUM(sfd.DefectQty) defectQty FROM SFDC_DefectHist sfd
<where >
<if test= "site != null and site != ''" >
AND sfd.Site = #{site}
</if>
<if test= "orderNo != null and orderNo != ''" >
AND sfd.OrderNo = #{orderNo}
</if>
<if test= "itemNo != null and itemNo != ''" >
AND sfd.ItemNo = #{itemNo}
</if>
<if test= "seqNo != null and seqNo != ''" >
AND sfd.SeqNo = #{seqNo}
</if>
<if test= "rollNo != null and rollNo != ''" >
AND sfd.RollNo = #{rollNo}
</if>
</where>
</select>
<!-- 查询sfdc_time_hist的数据 -->
<select id= "countSfdcTimeQty" parameterType= "SearchScheduleData" resultType= "java.util.HashMap" >
SELECT SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始调机'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalSetupTime
,SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='调机'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalDowntimeTime_Setup
,SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始生产'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalProdTime
,SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='生产'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalDowntimeTime_Prod
,SUM(CASE WHEN CompletedFlag='N' THEN 1.0 ELSE 0.0 END) unCloseLeft
FROM SFDC_TimeHist sfd
<where >
<if test= "site != null and site != ''" >
AND sfd.Site = #{site}
</if>
<if test= "orderNo != null and orderNo != ''" >
AND sfd.OrderNo = #{orderNo}
</if>
<if test= "ItemNo != null and itemNo != ''" >
AND sfd.ItemNo = #{itemNo}
</if>
<if test= "seqNo != null and seqNo != ''" >
AND sfd.SeqNo = #{seqNo}
</if>
<if test= "rollNo != null and rollNo != ''" >
AND sfd.RollNo = #{rollNo}
</if>
</where>
</select>
<!-- 查询sfdc_time_hist的数据 -->
<select id= "getSfdcTimeMaxAndMinTime" parameterType= "SearchScheduleData" resultType= "java.util.HashMap" >
SELECT MIN(sfd.EventTime) eventTime, COUNT(1) sl, SUM(TotalTime) totalTime,
MAX((CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate()END)) tillTime
FROM SFDC_TimeHist sfd
<where >
<if test= "site != null and site != ''" >
AND sfd.Site = #{site}
</if>
<if test= "orderNo != null and orderNo != ''" >
AND sfd.OrderNo = #{orderNo}
</if>
<if test= "ItemNo != null and itemNo != ''" >
AND sfd.ItemNo = #{itemNo}
</if>
<if test= "seqNo != null and seqNo != ''" >
AND sfd.SeqNo = #{seqNo}
</if>
<if test= "rollNo != null and rollNo != ''" >
AND sfd.RollNo = #{rollNo}
</if>
AND sfd.EventType='P'
</where>
</select>
</mapper>