荣鑫后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234 lines
66 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
4 years ago
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.gaotao.modules.schedule.mapper.ScheduleMapper">
  4. <update id="closeOrOpenProduceOrder">
  5. Update SOScheduledRouting
  6. Set ClosedFlag=#{closedFlag}
  7. ,Closedby=#{username}
  8. ,ClosedDate=#{closedDate}
  9. Where Site=#{site}
  10. and OrderNo = #{orderNo}
  11. and ItemNo = #{itemNo}
  12. and SeqNo = #{seqNo}
  13. </update>
  14. <update id="pauseOrReopenProduceOrder">
  15. Update SOScheduledRouting
  16. Set ParkFlag=#{parkFlag}
  17. Where Site=#{site}
  18. and OrderNo = #{orderNo}
  19. and ItemNo = #{itemNo}
  20. and SeqNo = #{seqNo}
  21. </update>
  22. <update id="costRollUpProduceOrder">
  23. Update ShopOrder
  24. Set CostRollUpFlag= #{costRollUpFlag}
  25. Where Site= #{site}
  26. and OrderNo = #{orderNo}
  27. </update>
  28. <update id="manualProduceOrder">
  29. Update ShopOrder
  30. Set ManualFlag=#{manualFlag}
  31. Where Site= #{site}
  32. and OrderNo = #{orderNo}
  33. </update>
  34. <update id="repairSOFlagProduceOrder">
  35. Update ShopOrder
  36. Set RepairSOFlag=#{repairSOFlag}
  37. Where Site= #{site}
  38. and OrderNo = #{orderNo}
  39. </update>
  40. <!--查询加工中心机台的信息-->
  41. <select id="getResourceLIst" parameterType="SearchScheduleData" resultType="ResourceOutData">
  42. SELECT wcr.Site site, wcr.WorkCenterNo workCenterNo, wcr.ResourceID resourceId, wcr.ResourceDesc resourceDEsc, wcr.Efficiency efficiency,
  43. wcr.Utilization utilization, wcr.Active active, wcr.Remark Remark, wcr.CreatedDate createdDate, wcr.CalendarID calendarId, wcr.VirturlFlag virturlFlag
  44. FROM WorkCenterResource wcr
  45. <where>
  46. wcr.Site = site
  47. <if test="workCenterNo != null and workCenterNo != ''">
  48. AND wcr.WorkCenterNo= #{workCenterNo}
  49. </if>
  50. <if test="resourceId != null and resourceId != ''">
  51. AND wcr.ResourceID = #{resourceId}
  52. </if>
  53. </where>
  54. </select>
  55. <!--查询机台+排产日期的休息信息-->
  56. <select id="getResourceRestList" parameterType="SearchScheduleData" resultType="ShiftInfoData">
  57. Select top 10 ScheduleDate shiftDate, CONVERT(Varchar(200), (Case when ExceptDuration1<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime1)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration1)) else '' end)
  58. +' ; '+
  59. (Case when ExceptDuration2<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime2)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration2)) else '' end)
  60. +' ; '+
  61. (Case when ExceptDuration3<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime3)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration3)) else '' end)
  62. +' ; '+
  63. (Case when ExceptDuration4<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime4)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration4)) else '' end)
  64. +' ; '+
  65. (Case when ExceptDuration5<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime5)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration5)) else '' end)
  66. +' ; '+
  67. (Case when ExceptDuration6<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime6)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration6)) else '' end)
  68. ) as shiftInfo from Calendar_Exception cde
  69. <where>
  70. AND cde.Site = #{site}
  71. AND cde.CalendarID = #{calendarId}
  72. AND cde.ScheduleDate <![CDATA[ >= ]]> #{scheduleDate}
  73. </where>
  74. </select>
  75. <!--按照条件查询工单的数据-->
  76. <select id="getShopOrderList" parameterType="SearchScheduleData" resultType="ShopOrderOutData">
  77. Select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, T.OperationDesc itemDesc, T.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
  78. D.LotSize lotSize, T.QtyReported qtyReported, D.NeedDate needDate, T.PreItemNo PreItemNo, S1.OperationDesc PreItemDesc, S1.ScheduledFlag preScheduledFlag,
  79. T.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, S2.ScheduledFlag nextScheduledFlag, D.CustomerID customerId, P.ConfigurationTemplateID customerName,
  80. D.EnterDate enterDate, dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) availResource, T.WorkCenterNo workCenterNo,
  81. T.MachRunFactor machRunFactor, T.MachSetupTime machSetupTime, T.FactorUnit factorUnit, T.ScheduledFlag scheduledFlag, D.RoutingRevNo routingRevNo,
  82. T.QtyScheduled qtyScheduled,(round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) qtyToSchedule, Isnull(S1.QtyScheduled,0.0) qtyScheduledPreOps,
  83. dbo.getScheduleToPlanTime(D.LotSize, T.MachSetupTime, T.MachRunFactor, T.FactorUnit, t.Efficiency) scheduleToPlanTime,
  84. D.OriSOOrderNo oriSOOrderNo, P.Remark custPartNo, 1*t.Efficiency efficiency, D.CostRollUpFlag costRollUpFlag, isnull(S1.QtyApprove,0.0) qtyApprovedPreOps,
  85. d.ManualFlag manualFlag, d.RepairSOFlag repairSOFlag
  86. from SORouting as T
  87. Left Join ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
  88. Left Join Part as P On T.Site=P.Site and T.PartNo=P.PartNo
  89. Left Join SORouting as S1 On T.Site=S1.Site and T.OrderNo=S1.OrderNo and T.PreItemNo=S1.ItemNo
  90. Left Join SORouting as S2 On T.Site=S2.Site and T.OrderNo=S2.OrderNo and T.NextItemNo=S2.ItemNo
  91. <where>
  92. Round(T.QtyScheduled,3) <![CDATA[ < ]]> round(T.QtyRequired,3) and T.ClosedFlag = 'N' AND T.WorkCenterNo <![CDATA[<>]]> 'FQC'
  93. <if test="username != null and username != ''">
  94. and T.site in (Select Site from AccessSite where upper(UserID)=#{username})
  95. </if>
  96. and T.OrderNo<![CDATA[ <> ]]>'9999' and isnull(D.Status,'')<![CDATA[ <> ]]>'已取消' and isnull(D.Status,'')<![CDATA[ <> ]]>'已计划'
  97. and isnull(D.Status,'')<![CDATA[ <> ]]>'已关闭'
  98. <if test="enterTime1 != null">
  99. and D.EnterDate<![CDATA[ >= ]]> #{enterTime1}
  100. </if>
  101. <if test="enterTime2 != null">
  102. and D.EnterDate-1<![CDATA[<]]> #{enterTime2}
  103. </if>
  104. <if test="needTime1 != null">
  105. and D.NeedDate<![CDATA[ >= ]]>#{needTime1}
  106. </if>
  107. <if test="needTime2 != null">
  108. and D.NeedDate<![CDATA[ <= ]]>#{needTime2}
  109. </if>
  110. <if test="site != null and site != ''">
  111. AND T.Site like '%' + #{site} + '%'
  112. </if>
  113. <if test="partNo != null and partNo != ''">
  114. AND T.PartNo like '%' + #{partNo} + '%'
  115. </if>
  116. AND T.WorkCenterNo like '%' + #{workCenterNo} + '%'
  117. <if test="scheduledFlag != null and scheduledFlag != ''">
  118. AND Isnull(S1.ScheduledFlag, 'Y') = #{scheduledFlag}
  119. </if>
  120. AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%'
  121. </where>
  122. /*设置排序规则*/
  123. <if test="sortField == null || sortField == ''">
  124. Order by D.NeedDate
  125. </if>
  126. <if test="sortField != null and sortField == 'needDate'">
  127. Order by D.NeedDate
  128. </if>
  129. <if test="sortField != null and sortField == 'orderNo'">
  130. Order by T.OrderNo
  131. </if>
  132. <if test="sortField != null and sortField == 'partNo'">
  133. Order by T.PartNo
  134. </if>
  135. </select>
  136. <!--按照条件查询工单的数据-->
  137. <select id="getOrderScheduleList" parameterType="SearchScheduleData" resultType="ScheduleData">
  138. select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, S.OperationDesc itemDesc, S.PartNo partNo, P.PartDescription partDesc,
  139. P.Spec spec, T.QtyRequired qtyRequired, T.QtyReported qtyReported, D.NeedDate needDate, S.PreItemNo preItemNo, S1.OperationDesc preItemDesc,
  140. S1.ScheduledFlag preScheduledFlag, S.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, S2.ScheduledFlag nextScheduledFlag,
  141. D.CustomerID customerId, dbo.Get_CustomerDesc(D.Site,D.CustomerID) customerName, D.EnterDate enterDate,
  142. dbo.Get_SOOpsScheduleAvailResource(T.Site,S.OrderNo,T.S_WorkCenterNo,T.ItemNo) availResource, T.S_WorkCenterNo workCenterNo,
  143. S.MachRunFactor machRunFactor, S.MachSetupTime machSetupTime, S.FactorUnit factorUnit, T.ClosedFlag closedFlag,
  144. E.S_ScheduledSeqNo scheduledSeqNo, T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime, T.S_ResourceID resourceId,
  145. T.TimeRequired timeRequired, T.SeqNo seqNo, T.SelectedFlag selectedFlag, T.SourceFlag sourceFlag, S1.QtyScheduled qtyScheduledPreOps,
  146. T.ParkFlag parkFlag, T.TimeRequired_Original timeRequiredOriginal, T.QtyRequired_Original qtyRequiredOriginal, S1.PlanStartTime preOpsPlanStartTime,
  147. S1.PlanFinishTime preOpsPlanFinishTime, T.Remark remark, D.OriSOOrderNo oriSOOrderNo, P.Remark custPartNo, T.Efficiency eficiency,
  148. (Case when dbo.Get_SOOpsJobEstFinishDate(T.Site,T.OrderNo,T.ItemNo,T.SeqNo)<![CDATA[ <= ]]>T.PlanFinishTime then 0.0
  149. else round((convert(float,dbo.Get_SOOpsJobEstFinishDate(T.Site,T.OrderNo,T.ItemNo,T.SeqNo)) - convert(float,T.PlanFinishTime)) * 24,2) end) delayHours,
  150. dbo.Get_SOSchedule_RecordIdentity(T.Site,T.PlanStartTime,T.PlanFinishTime,D.NeedDate,S1.PlanStartTime,S1.PlanFinishTime) mergeStatusCon,
  151. D.CostRollUpFlag costRollUpFlag, dbo.getCurrentScheduleColorStyle(T.QtyReported, T.QtyRequired, T.PlanFinishTime, T.ClosedFlag) colorStyle
  152. from SOScheduledList as E,SOScheduledRouting as T
  153. Left Join ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
  154. ,SORouting as S
  155. Left Join Part as P On S.Site=P.Site and S.PartNo=P.PartNo
  156. Left Join SORouting as S1 On S.Site=S1.Site and S.OrderNo=S1.OrderNo and S.PreItemNo=S1.ItemNo
  157. Left Join SORouting as S2 On S.Site=S2.Site and S.OrderNo=S2.OrderNo and S.NextItemNo=S2.ItemNo
  158. <where>
  159. T.Site=S.Site and T.OrderNo=S.OrderNo and T.ItemNo=S.ItemNo and E.Site=T.Site and E.LinkedSeqNo=T.SeqNo
  160. <if test="site != null and site != ''">
  161. AND E.Site like #{site}
  162. </if>
  163. AND T.S_WorkCenterNo like #{workCenterNo} AND T.S_WorkCenterNo <![CDATA[<>]]> 'FQC'
  164. AND E.ResourceID like #{resourceId}
  165. </where>
  166. Order by E.S_ScheduledSeqNo
  167. </select>
  168. <!--查询-待生产工单-->
  169. <select id="getProduceScheduleData" parameterType="SearchScheduleData" resultType="ScheduleData">
  170. Select TOP 200 T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, D.OperationDesc itemDesc, D.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
  171. T.SeqNo seqNo, T.QtyRequired qtyRequired, T.QtyReported qtyReported, T.QtyApprove qtyApprove, ROUND(T.TimeRequired, 3) timeRequired,
  172. T.TimeReported timeReported, T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime, T.BarcodeID barcodeId, T.Remark remark,
  173. T.Crewsize crewSize, T.ClosedFlag closedFlag, T.QtyScrapt qtyScrapt, T.OutWorkFlag outWorkFlag, T.S_ScheduledDate scheduledDate,
  174. T.S_ResourceID resourceId, dbo.getWorkCenterResourceDesc(T.Site, t.S_WorkCenterNo, T.S_ResourceID) resourceDesc,
  175. E.S_ScheduledSeqNo scheduledSeqNo, T.S_ShiftNo shiftNo, D.MachSetupTime machSetupTime, D.MachRunFactor machRunFactor,
  176. D.FactorUnit factorUnit, D.Efficiency efficiency,D.NextItemNo nextItemNo, dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.NextItemNo) nextItemDesc,
  177. D.PreItemNo preItemNo,dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.PreItemNo) preItemDesc, SO.NeedDate needDate, T.ParkFlag parkFlag,
  178. dbo.Get_SOOpsPreResourceInfo(T.Site, T.OrderNo, T.ItemNo) preResourceInfo, dbo.Get_SOOpsPreQtyFinished(T.Site, T.OrderNo, T.ItemNo) preQtyFinished,
  179. P.ConfigurationTemplateID customerName, P.Remark custPartNo, t.S_WorkCenterNo workCenterNo, dbo.Get_WorkCenterDesc(T.Site, T.S_WorkCenterNo) workCenterDesc,
  180. T.QtyRequired_Original qtyRequiredOriginal, SO.orderType,
  181. T.ClosedBy closedBy, T.ClosedDate closedDate, T.mat_issueflag matIssueFlag, T.plate_issueflag plateIssueFlag, T.tool_issueflag toolIssueFlag
  182. from SOScheduledRouting as T
  183. Left Join SOScheduledList as E on E.Site=T.Site and E.LinkedSeqNo=T.SeqNo,
  184. SORouting as D,Part as P,ShopOrder as SO
  185. <where>
  186. T.Site=D.Site and T.OrderNo=D.OrderNo and T.ItemNo=D.ItemNo and D.Site=P.Site and D.PartNo=P.PartNo
  187. and T.site in (Select Site from AccessSite where upper(UserID)=#{username})
  188. and T.Site=SO.Site and T.OrderNo=SO.OrderNo and T.OrderNo<![CDATA[ <> ]]>'9999'
  189. <if test="site != null and site != ''">
  190. AND T.Site like '%' + #{site} + '%'
  191. </if>
  192. <if test="planStartTime1 != null">
  193. and T.PlanStartTime<![CDATA[ >= ]]> #{planStartTime1}
  194. </if>
  195. <if test="planStartTime2 != null">
  196. and T.PlanStartTime<![CDATA[ <= ]]> #{planStartTime2}
  197. </if>
  198. <if test="resourceId != null and resourceId != ''">
  199. AND T.S_ResourceID like '%' + #{resourceId} + '%'
  200. </if>
  201. <if test="orderNo != null and orderNo != ''">
  202. AND T.OrderNo like '%' + #{orderNo} + '%'
  203. </if>
  204. <if test="seqNo != null and seqNo != ''">
  205. AND T.SeqNo like '%' + #{seqNo} + '%'
  206. </if>
  207. <if test='closedFlag != null and closedFlag == "N"'>
  208. and T.ClosedFlag = #{closedFlag}
  209. </if>
  210. </where>
  211. Order by T.PlanFinishTime desc
  212. </select>
  213. <!--查询操作员信息列表-->
  214. <select id="getOperatorList" parameterType="OperatorOutData" resultType="OperatorOutData">
  215. SELECT op.Site site, op.OperatorID operatorId, op.OperatorName operatorName, op.Active status
  216. FROM Operator op
  217. <where>
  218. op.Site IN (SELECT Site FROM AccessSite WHERE UPPER(UserID) = #{username})
  219. <if test="site != null and site != ''">
  220. AND op.Site = #{site}
  221. </if>
  222. <if test="operatorId != null and operatorId != ''">
  223. AND op.OperatorID like '%' + #{operatorId} + '%'
  224. </if>
  225. <if test="operatorName != null and operatorName != ''">
  226. AND op.OperatorName like '%' + #{operatorName} + '%'
  227. </if>
  228. <if test="status != null and status != ''">
  229. AND op.Active = #{status}
  230. </if>
  231. </where>
  232. </select>
  233. <!--查询操作员信息-->
  234. <select id="getOperatorData" parameterType="OperatorOutData" resultType="OperatorOutData">
  235. SELECT op.Site site, op.OperatorID operatorId, op.OperatorName operatorName, op.Active status
  236. FROM Operator op
  237. <where>
  238. op.Site IN (SELECT Site FROM AccessSite WHERE UPPER(UserID) = #{username})
  239. <if test="site != null and site != ''">
  240. AND op.Site = #{site}
  241. </if>
  242. <if test="operatorId != null and operatorId != ''">
  243. AND op.OperatorID = #{operatorId}
  244. </if>
  245. <if test="operatorName != null and operatorName != ''">
  246. AND op.OperatorName = #{operatorName}
  247. </if>
  248. </where>
  249. </select>
  250. <!--按照派工单号查询派工单的数据-->
  251. <select id="getScheduleDataBySeqNo" parameterType="java.lang.String" resultType="ScheduleData">
  252. Select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, D.OperationDesc itemDesc, D.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
  253. T.SeqNo seqNo, T.QtyRequired qtyRequired, T.QtyReported qtyReported, T.QtyApprove qtyApprove, ROUND(T.TimeRequired, 3) timeRequired,
  254. T.TimeReported timeReported, T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime, T.BarcodeID barcodeId, T.Remark remark,
  255. T.Crewsize crewSize, T.ClosedFlag closedFlag, T.QtyScrapt qtyScrapt, T.OutWorkFlag outWorkFlag, T.S_ScheduledDate scheduledDate,
  256. t.S_WorkCenterNo workCenterNo,
  257. T.S_ResourceID resourceId, dbo.getWorkCenterResourceDesc(T.Site, t.S_WorkCenterNo, T.S_ResourceID) resourceDesc,
  258. E.S_ScheduledSeqNo scheduledSeqNo, T.S_ShiftNo shiftNo, D.MachSetupTime machSetupTime, D.MachRunFactor machRunFactor,
  259. D.FactorUnit factorUnit, D.Efficiency efficiency,D.NextItemNo nextItemNo, dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.NextItemNo) nextItemDesc,
  260. D.PreItemNo preItemNo,dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.PreItemNo) preItemDesc, SO.NeedDate needDate, T.ParkFlag parkFlag,
  261. P.ConfigurationTemplateID customerName, P.Remark custPartNo, t.S_WorkCenterNo workCenterNo, dbo.Get_WorkCenterDesc(T.Site, T.S_WorkCenterNo) workCenterDesc,
  262. T.QtyRequired_Original qtyRequiredOriginal,
  263. T.ClosedBy closedBy, T.ClosedDate closedDate, SO.CostRollUpFlag costRollUpFlag, SO.RepairSOFlag repairSOFlag, SO.ManualFlag manualFlag
  264. from SOScheduledRouting as T
  265. Left Join SOScheduledList as E on E.Site=T.Site and E.LinkedSeqNo=T.SeqNo,
  266. SORouting as D,Part as P,ShopOrder as SO
  267. <where>
  268. T.Site=D.Site and T.OrderNo=D.OrderNo and T.ItemNo=D.ItemNo and D.Site=P.Site and D.PartNo=P.PartNo
  269. and T.Site=SO.Site and T.OrderNo=SO.OrderNo and T.OrderNo<![CDATA[ <> ]]>'9999'
  270. AND T.SeqNo = #{seqNo}
  271. </where>
  272. </select>
  273. <!--获取当前的上机卷信息-->
  274. <select id="getCurrentRollOpsBySeqNo" parameterType="BaseRollData" resultType="SfdcRollOpsData">
  275. SELECT TOP 1 sro.Site site, sro.OrderNo orderNo, sro.RollNo rollNo, sro.ItemNo itemNo, sro.SeqNo seqNo, sro.ScanedBy scanedBy, sro.ScanedDate scanedDate,
  276. sro.StartProdFlag startProdFlag, sro.FirstSetupBy firstSetupBy, sro.FirstSetupDate firstSetupDate, sro.LatestSetupBy latestSetupBy,
  277. sro.LatestSetupDate latestSetupDate, sro.FirstEndSetupBy firstEndSetupBy, sro.FirstEndSetupDate firstEndSetupDate, sro.LatestEndSetupBy latestEndSetupBy,
  278. sro.LatestEndSetupDate latestEndSetupDate, sro.FirstProdBy firstProdBy, sro.FirstProdDate firstProdDate, sro.LatestProdBy latestProdBy,
  279. sro.LatestProdDate latestProdDate, sro.FirstEndProdBy firstEndProdBy, sro.FirstEndProdDate firstEndProdDate, sro.LatestEndProdBy latestEndProdBy,
  280. sro.LatestEndProdDate latestEndProdDate, sro.FinishedDate finishedDate, sro.FinishedBy finishedBy, sro.FinishedFlag finishedFlag, sro.PauseFlag pauseFlag,
  281. sro.Remark remark, sro.QtyReported qtyReported, sro.QtyDefected qtyDefected, sro.ReportedFlag reportedFlag
  282. FROM SFDC_RollOps sro
  283. <where>
  284. sro.Site = #{site} AND sro.SeqNo = #{seqNo}
  285. AND sro.FinishedFlag <![CDATA[<>]]> 'Y' AND sro.PauseFlag <![CDATA[<>]]> 'Y'
  286. </where>
  287. </select>
  288. <!--查询派工单的时间记录信息-->
  289. <select id="getSfdcTimeByCon" parameterType="SearchScheduleData" resultType="SfdcTimeData">
  290. SELECT sth.Site site, sth.OrderNo orderNo,sth.ItemNo itemNo, sth.SeqNo seqNo, sth.HistSeqNo histSeqNo, sth.RollNo rollNo,
  291. sth.EventTime eventTime, sth.Enteredby enteredby, sth.EventDesc eventDesc, sth.DowntimeCode downtimeCode, sth.TillTime tillTime,
  292. sth.TillEnteredTime tillEnteredTime, sth.TillEnteredBy tillEnteredBy, sth.CompletedFlag completedFlag, ROUND(sth.TotalTime, 3) totalTime,
  293. sth.DowntimePhaseIn downtimePhaseIn
  294. FROM SFDC_TimeHist sth
  295. <where>
  296. <if test="site != null and site != ''">
  297. AND sth.Site = #{site}
  298. </if>
  299. <if test="orderNo != null and orderNo != ''">
  300. AND sth.OrderNo = #{orderNo}
  301. </if>
  302. <if test="itemNo != null and itemNo != ''">
  303. AND sth.ItemNo = #{itemNo}
  304. </if>
  305. <if test="seqNo != null and seqNo != ''">
  306. AND sth.SeqNo = #{seqNo}
  307. </if>
  308. <if test="rollNo != null and rollNo != ''">
  309. AND sth.RollNo = #{rollNo}
  310. </if>
  311. </where>
  312. ORDER BY sth.HistSeqNo DESC
  313. </select>
  314. <!--查询工单工序的刀具信息-->
  315. <select id="getOrderToolByCon" parameterType="SearchScheduleData" resultType="ToolInstanceData">
  316. SELECT st.Site site, st.OrderNo orderNo, st.ItemNo itemNo, st.ToolID toolId, th.ToolDescription toolDesc, th.Spec spec,
  317. st.ToolQty toolQty, th.UMID umid, th.FamilyID familyId, dbo.Get_PartFamilyDesc (st.Site, th.FamilyID) familyName,
  318. th.Active active, st.Remark remark, st.CreateDate createdDate, st.CreatedBy createdBy
  319. FROM SOTool st
  320. LEFT JOIN ToolHeader th ON st.Site = th.Site AND st.ToolID = th.ToolID
  321. <where>
  322. st.Site = th.Site AND st.ToolID = th.ToolID
  323. <if test="site != null and site != ''">
  324. AND st.Site = #{site}
  325. </if>
  326. <if test="orderNo != null and orderNo != ''">
  327. AND st.OrderNo = #{orderNo}
  328. </if>
  329. <if test="itemNo != null and itemNo != ''">
  330. AND st.ItemNo = #{itemNo}
  331. </if>
  332. </where>
  333. ORDER BY st.ItemNo
  334. </select>
  335. <!--查询派工单的工具记录信息-->
  336. <select id="getSfdcToolByCon" parameterType="SearchScheduleData" resultType="SfdcToolData">
  337. SELECT sth.Site site, sth.OrderNo orderNo, sth.ItemNo itemNo, sth.SeqNo seqNo, sth.HistSeqNo histSeqNo, sth.RollNo rollNo,
  338. sth.ReportDate reportedDate, sth.Reportedby reportedby, sth.ToolInstanceID toolInstanceID, sth.StartDate startDate,
  339. sth.FinishDate finishedDate, sth.FinishFlag finishedFlag, sth.Remark remark, sth.StartFromRollNo startFromRollNo, sth.FinishQty finishQty
  340. FROM SFDC_ToolingHist sth
  341. <where>
  342. <if test="site != null and site != ''">
  343. AND sth.Site = #{site}
  344. </if>
  345. <if test="orderNo != null and orderNo != ''">
  346. AND sth.OrderNo = #{orderNo}
  347. </if>
  348. <if test="itemNo != null and itemNo != ''">
  349. AND sth.ItemNo = #{itemNo}
  350. </if>
  351. <if test="seqNo != null and seqNo != ''">
  352. AND sth.SeqNo = #{seqNo}
  353. </if>
  354. <if test="rollNo != null and rollNo != ''">
  355. AND sth.RollNo = #{rollNo}
  356. </if>
  357. </where>
  358. ORDER BY sth.HistSeqNo DESC
  359. </select>
  360. <!--获取关联的客户ID-->
  361. <select id="getReferenceCustomerId" parameterType="java.lang.String" resultType="java.lang.String">
  362. SELECT ISNULL(ReferenceCustomerID, '') referenceCustomerID FROM Site
  363. WHERE SiteID = #{site}
  364. </select>
  365. <!--查询工单的bom信息-->
  366. <select id="getOrderBomByCon" parameterType="SearchScheduleData" resultType="OrderBomData">
  367. SELECT vss.Site site, vss.OrderNo orderNo, vss.ItemNo itemNo, vss.ComponentPartNo componentPartNo,
  368. /*动态sql语句*/
  369. <if test="referenceCustomerId != null and referenceCustomerId != ''">
  370. <choose>
  371. <when test="referenceCustomerId != null and referenceCustomerId != ''">
  372. ISNULL(rpi.ReferencePartDesc, P.PartDescription) partDesc, '' partSpec,
  373. </when>
  374. <otherwise>
  375. P.PartDescription partDesc, P.Spec partSpec
  376. </otherwise>
  377. </choose>
  378. </if>
  379. P.UMid partUm, vss.QtyAssembly qtyAssembly, vss.QtyFixedScrapt qtyFixedScrapt, vss.ScraptFactor scraptFactor, vss.Remark remark,
  380. vss.QtyRequired qtyRequired, vss.QtyIssue qtyIssue, vss.IssueDate issueDate, vss.QtyReserved qtyReserved, vss.MatGroup matGroup, vss.RMType_DB rmTypeDb
  381. FROM dbo.view_SAP_SOBOM vss
  382. /*动态sql语句*/
  383. <if test="referenceCustomerId != null and referenceCustomerId != ''">
  384. LEFT JOIN ReferencePartInfo rpi ON vss.Site = rpi.Site AND vss.ComponentPartNo = rpi.PartNo AND rpi.CustomerID = #{referenceCustomerId}
  385. AND (rpi.FGPartNo = #{partNo} OR rpi.FGPartNo = '全部')
  386. </if>
  387. LEFT JOIN Part P ON vss.Site = P.Site AND vss.ComponentPartNo = P.PartNo
  388. <where>
  389. vss.Site = P.Site AND vss.ComponentPartNo = P.PartNo
  390. <if test="site != null and site != ''">
  391. AND vss.Site = #{site}
  392. </if>
  393. <if test="orderNo != null and orderNo != ''">
  394. AND vss.OrderNo = #{orderNo}
  395. </if>
  396. </where>
  397. ORDER BY vss.ItemNo ASC
  398. </select>
  399. <!--查询派工单时的材料记录信息-->
  400. <select id="getSfdcMaterialByCon" parameterType="SearchScheduleData" resultType="SfdcMaterialData">
  401. SELECT smh.Site site, smh.OrderNo orderNo, smh.ItemNo itemNo, smh.SeqNo seqNo, smh.HistSeqNo histSeqNo, smh.RollNo rollNo, smh.ReportDate reportDate,
  402. smh.Reportedby reportedby, smh.RMRollNo rmRollNo, smh.PartNo partNo, smh.Remark remark, smh.StartDate startDate, smh.FinishDate finishedDate,
  403. smh.FinishFlag finishedFlag, smh.HistType histType, smh.TransGeneratedFlag transGeneratedFlag, smh.OriginalRMRollNo originalRMRollNo,
  404. smh.UnissueFlag unissueFlag, ROUND(smh.TransQty, 3) transQty, ROUND(smh.NetIssueQty, 3) netIssueQty, smh.OriginalHistSeqNo originalHistSeqNo,
  405. smh.StartFromRollNo startFromRollNo, smh.KeyRMFlag keyRMFlag, smh.SAPBOMItemNo sAPBOMItemNo, smh.Setupflag setupflag
  406. FROM SFDC_MaterialHist smh
  407. <where>
  408. <if test="site != null and site != ''">
  409. AND smh.Site = #{site}
  410. </if>
  411. <if test="orderNo != null and orderNo != ''">
  412. AND smh.OrderNo = #{orderNo}
  413. </if>
  414. <if test="itemNo != null and itemNo != ''">
  415. AND smh.ItemNo = #{itemNo}
  416. </if>
  417. <if test="seqNo != null and seqNo != ''">
  418. AND smh.SeqNo = #{seqNo}
  419. </if>
  420. <if test="rollNo != null and rollNo != ''">
  421. AND smh.RollNo = #{rollNo}
  422. </if>
  423. <if test="finishedFlag != null and finishedFlag != ''">
  424. AND smh.FinishFlag = #{finishedFlag}
  425. </if>
  426. <if test="keyRMFlag != null and keyRMFlag != ''">
  427. AND smh.KeyRMFlag = #{keyRMFlag}
  428. </if>
  429. <if test="histType != null and histType != ''">
  430. AND smh.HistType = #{histType}
  431. </if>
  432. <if test="bomItemNo != null and bomItemNo > -1">
  433. AND smh.SAPBOMItemNo = #{bomItemNo}
  434. </if>
  435. <if test="histSeqNo != null and histSeqNo > 0">
  436. AND smh.HistSeqNo = #{histSeqNo}
  437. </if>
  438. </where>
  439. ORDER BY smh.HistSeqNo DESC
  440. </select>
  441. <!--按照条件查询上机卷记录-->
  442. <select id="getSfdcRollOpsByCon" parameterType="SearchScheduleData" resultType="SfdcRollOpsData">
  443. SELECT sro.Site site, sro.OrderNo orderNo, sro.RollNo rollNo, sro.ItemNo itemNo, sro.SeqNo seqNo, sro.ScanedBy scanedBy, sro.ScanedDate scanedDate,
  444. sro.StartProdFlag startProdFlag, sro.FirstSetupBy firstSetupBy, sro.FirstSetupDate firstSetupDate, sro.LatestSetupBy latestSetupBy,
  445. sro.LatestSetupDate latestSetupDate, sro.FirstEndSetupBy firstEndSetupBy, sro.FirstEndSetupDate firstEndSetupDate, sro.LatestEndSetupBy latestEndSetupBy,
  446. sro.LatestEndSetupDate latestEndSetupDate, sro.FirstProdBy firstProdBy, sro.FirstProdDate firstProdDate, sro.LatestProdBy latestProdBy,
  447. sro.LatestProdDate latestProdDate, sro.FirstEndProdBy firstEndProdBy, sro.FirstEndProdDate firstEndProdDate, sro.LatestEndProdBy latestEndProdBy,
  448. sro.LatestEndProdDate latestEndProdDate, sro.FinishedDate finishedDate, sro.FinishedBy finishedBy, sro.FinishedFlag finishedFlag, sro.PauseFlag pauseFlag,
  449. sro.Remark remark, sro.QtyReported qtyReported, sro.QtyDefected qtyDefected, sro.ReportedFlag reportedFlag
  450. FROM SFDC_RollOps sro
  451. <where>
  452. <if test="site != null and site != ''">
  453. AND sro.Site = #{site}
  454. </if>
  455. <if test="orderNo != null and orderNo != ''">
  456. AND sro.OrderNo = #{orderNo}
  457. </if>
  458. <if test="itemNo != null and itemNo != ''">
  459. AND sro.ItemNo = #{itemNo}
  460. </if>
  461. <if test="seqNo != null and seqNo != ''">
  462. AND sro.SeqNo = #{seqNo}
  463. </if>
  464. <if test="rollNo != null and rollNo != ''">
  465. AND sro.RollNo = #{rollNo}
  466. </if>
  467. </where>
  468. ORDER BY sro.RollNo DESC
  469. </select>
  470. <!--查询派工单的不良信息记录-->
  471. <select id="getSfdcDefectByCon" parameterType="SearchScheduleData" resultType="SfdcDefectData">
  472. SELECT sdh.Site site, sdh.OrderNo orderNo, sdh.ItemNo itemNo, sdh.SeqNo seqNo, sdh.HistSeqNo histSeqNo, sdh.RollNo rollNo,
  473. sdh.ReportDate reportedDate, sdh.Reportedby reportedBy, sdh.DefectCode defectCode, sdh.DefectQty defectQty, sdh.Remark remark,
  474. (SELECT idc.DefectDesc FROM InspectionDefectCode idc WHERE idc.Site = sdh.Site AND idc.DefectCode = sdh.DefectCode) defectDesc
  475. FROM SFDC_DefectHist sdh
  476. <where>
  477. <if test="site != null and site != ''">
  478. AND sdh.Site = #{site}
  479. </if>
  480. <if test="orderNo != null and orderNo != ''">
  481. AND sdh.OrderNo = #{orderNo}
  482. </if>
  483. <if test="itemNo != null and itemNo != ''">
  484. AND sdh.ItemNo = #{itemNo}
  485. </if>
  486. <if test="seqNo != null and seqNo != ''">
  487. AND sdh.SeqNo = #{seqNo}
  488. </if>
  489. <if test="rollNo != null and rollNo != ''">
  490. AND sdh.RollNo = #{rollNo}
  491. </if>
  492. </where>
  493. ORDER BY sdh.HistSeqNo DESC
  494. </select>
  495. <!--查询派工单的下机卷信息-->
  496. <select id="getSfdcRollByCon" parameterType="SearchScheduleData" resultType="SfdcRollData">
  497. SELECT sfr.Site site, sfr.OrderNo orderNo, sfr.RollNo rollNo, sfr.CreatedDate createdDate, sfr.Createdby createdby, sfr.CurrentOpsItemNo currentOpsItemNo,
  498. sfr.LastFinishedOpsItemNo lastFinishedOpsItemNo, sfr.FinishedDate finishedDate, sfr.FinishedFlag finishedFlag, sfr.OnLineFlag onLineFlag,
  499. sfr.PauseFlag pauseFlag, sfr.OriRollNo oriRollNo, sfr.StartOpsItemNo startOpsItemNo, sfr.RollType rollType, sfr.CreatedOpsItemNo createdOpsItemNo,
  500. sfr.CreatedOpsSeqNo createdOpsSeqNo, sfr.RollQty rollQty, sfr.FirstLevelRollNo firstLevelRollNo, sfr.VirtualRollFlag virtualRollFlag
  501. FROM SFDC_Rolls sfr
  502. <where>
  503. <if test="site != null and site != ''">
  504. AND sfr.Site = #{site}
  505. </if>
  506. <if test="orderNo != null and orderNo != ''">
  507. AND sfr.OrderNo = #{orderNo}
  508. </if>
  509. <if test="itemNo != null and itemNo != ''">
  510. AND sfr.CreatedOpsItemNo = #{itemNo}
  511. </if>
  512. <if test="seqNo != null and seqNo != ''">
  513. AND sfr.CreatedOpsSeqNo = #{seqNo}
  514. </if>
  515. <if test="rollNo != null and rollNo != ''">
  516. AND sfr.RollNo = #{rollNo}
  517. </if>
  518. </where>
  519. ORDER BY sfr.RollNo
  520. </select>
  521. <!--查询报工数据-->
  522. <select id="getSfdcDataByCon" parameterType="SearchScheduleData" resultType="SfdcData">
  523. SELECT SUM (ApproveQty) approveQty, SUM (ReportQty - ApproveQty) defectQty, SUM (ReportedManfTime) reportedManfTime,
  524. SUM (Downtime) downtime
  525. FROM SFDC
  526. <where>
  527. <if test="site != null and site != ''">
  528. AND Site = #{site}
  529. </if>
  530. <if test="orderNo != null and orderNo != ''">
  531. AND OrderNo = #{orderNo}
  532. </if>
  533. <if test="itemNo != null and itemNo != ''">
  534. AND ItemNo = #{itemNo}
  535. </if>
  536. <if test="seqNo != null and seqNo != ''">
  537. AND AssJobSeqNo = #{seqNo}
  538. </if>
  539. <if test="rollNo != null and rollNo != ''">
  540. AND RollNo = #{rollNo}
  541. </if>
  542. </where>
  543. </select>
  544. <!--查询sfdc_roll表的数据-->
  545. <select id="getSfdcRollReportedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
  546. SELECT SUM(RollQty) reportedQty FROM SFDC_Rolls sfr
  547. <where>
  548. <if test="site != null and site != ''">
  549. AND sfr.Site = #{site}
  550. </if>
  551. <if test="orderNo != null and orderNo != ''">
  552. AND sfr.OrderNo = #{orderNo}
  553. </if>
  554. <if test="itemNo != null and itemNo != ''">
  555. AND sfr.CreatedOpsItemNo = #{itemNo}
  556. </if>
  557. <if test="seqNo != null and seqNo != ''">
  558. AND sfr.CreatedOpsSeqNo = #{seqNo}
  559. </if>
  560. <if test="rollNo != null and rollNo != ''">
  561. AND sfr.OriRollNo = #{rollNo}
  562. </if>
  563. <choose>
  564. <when test='switchKey != null and switchKey == "V"'>
  565. AND sfr.VirtualRollFlag<![CDATA[<>]]>'Y'
  566. </when>
  567. <when test='switchKey != null and switchKey == "VC"'>
  568. AND NOT(sfr.VirtualRollFlag='N' AND sfr.CombineFlag='Y')
  569. </when>
  570. </choose>
  571. AND sfr.RollType_DB<![CDATA[<>]]>'C'
  572. </where>
  573. </select>
  574. <!--统计是否报工过-->
  575. <select id="countSfdcRollByRollNo" parameterType="SearchScheduleData" resultType="java.lang.Integer">
  576. SELECT COUNT(1) FROM SFDC_Rolls sfr
  577. <where>
  578. <if test="site != null and site != ''">
  579. AND sfr.Site = #{site}
  580. </if>
  581. <if test="orderNo != null and orderNo != ''">
  582. AND sfr.OrderNo = #{orderNo}
  583. </if>
  584. <if test="itemNo != null and itemNo != ''">
  585. AND sfr.CreatedOpsItemNo = #{itemNo}
  586. </if>
  587. <if test="seqNo != null and seqNo != ''">
  588. AND sfr.CreatedOpsSeqNo = #{seqNo}
  589. </if>
  590. <if test="rollNo != null and rollNo != ''">
  591. AND sfr.OriRollNo = #{rollNo}
  592. </if>
  593. AND sfr.RollType_DB<![CDATA[<>]]>'C'
  594. </where>
  595. </select>
  596. <!--查询sfdcdefect的数据-->
  597. <select id="getSfdcDefectDefectedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
  598. SELECT SUM(sfd.DefectQty) defectQty FROM SFDC_DefectHist sfd
  599. <where>
  600. <if test="site != null and site != ''">
  601. AND sfd.Site = #{site}
  602. </if>
  603. <if test="orderNo != null and orderNo != ''">
  604. AND sfd.OrderNo = #{orderNo}
  605. </if>
  606. <if test="itemNo != null and itemNo != ''">
  607. AND sfd.ItemNo = #{itemNo}
  608. </if>
  609. <if test="seqNo != null and seqNo != ''">
  610. AND sfd.SeqNo = #{seqNo}
  611. </if>
  612. <if test="rollNo != null and rollNo != ''">
  613. AND sfd.RollNo = #{rollNo}
  614. </if>
  615. </where>
  616. </select>
  617. <!--查询sfdc_time_hist的数据-->
  618. <select id="countSfdcTimeQty" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  619. SELECT Round(SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始调机'
  620. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  621. ELSE 0.0 END), 2) totalSetupTime
  622. , Round(SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='调机'
  623. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  624. ELSE 0.0 END), 2) totalDowntimeTimeSetup
  625. , Round(SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始生产'
  626. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  627. ELSE 0.0 END), 2) totalProdTime
  628. , Round(SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='生产'
  629. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  630. ELSE 0.0 END), 2) totalDowntimeTimeProd
  631. ,SUM(CASE WHEN CompletedFlag='N' THEN 1.0 ELSE 0.0 END) unCloseLeft
  632. FROM SFDC_TimeHist sfd
  633. <where>
  634. <if test="site != null and site != ''">
  635. AND sfd.Site = #{site}
  636. </if>
  637. <if test="orderNo != null and orderNo != ''">
  638. AND sfd.OrderNo = #{orderNo}
  639. </if>
  640. <if test="itemNo != null and itemNo != ''">
  641. AND sfd.ItemNo = #{itemNo}
  642. </if>
  643. <if test="seqNo != null and seqNo != ''">
  644. AND sfd.SeqNo = #{seqNo}
  645. </if>
  646. <if test="rollNo != null and rollNo != ''">
  647. AND sfd.RollNo = #{rollNo}
  648. </if>
  649. </where>
  650. </select>
  651. <!--查询sfdc_time_hist的数据-->
  652. <select id="getSfdcTimeMaxAndMinTime" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  653. SELECT MIN(sfd.EventTime) eventTime, COUNT(1) sl, ROUND(SUM(TotalTime), 2) totalTime,
  654. MAX((CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate()END)) tillTime
  655. FROM SFDC_TimeHist sfd
  656. <where>
  657. <if test="site != null and site != ''">
  658. AND sfd.Site = #{site}
  659. </if>
  660. <if test="orderNo != null and orderNo != ''">
  661. AND sfd.OrderNo = #{orderNo}
  662. </if>
  663. <if test="itemNo != null and itemNo != ''">
  664. AND sfd.ItemNo = #{itemNo}
  665. </if>
  666. <if test="seqNo != null and seqNo != ''">
  667. AND sfd.SeqNo = #{seqNo}
  668. </if>
  669. <if test="rollNo != null and rollNo != ''">
  670. AND sfd.RollNo = #{rollNo}
  671. </if>
  672. AND sfd.EventType='P'
  673. </where>
  674. </select>
  675. <!--查询sfdc_rollops表的数据-->
  676. <select id="getSfdcRollOpsReportedQty" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  677. SELECT sfo.QtyReported approvedQty, ISNULL((SELECT SUM(DefectQty) FROM SFDC_DefectHist sfd
  678. WHERE sfo.Site = sfd.Site AND sfo.OrderNo = sfd.OrderNo AND sfo.ItemNo = sfd.ItemNo AND sfo.SeqNo = sfd.SeqNo AND sfo.RollNo = sfd.RollNo), 0) defectedQty
  679. FROM SFDC_RollOps sfo
  680. <where>
  681. <if test="site != null and site != ''">
  682. AND sfo.Site = #{site}
  683. </if>
  684. <if test="orderNo != null and orderNo != ''">
  685. AND sfo.OrderNo = #{orderNo}
  686. </if>
  687. <if test="itemNo != null and itemNo != ''">
  688. AND sfo.ItemNo = #{itemNo}
  689. </if>
  690. <if test="seqNo != null and seqNo != ''">
  691. AND sfo.SeqNo = #{seqNo}
  692. </if>
  693. <if test="rollNo != null and rollNo != ''">
  694. AND sfo.RollNo = #{rollNo}
  695. </if>
  696. </where>
  697. </select>
  698. <!--查询派工单的班次信息数据-->
  699. <select id="getScheduleShiftData" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  700. Select WR.ResourceID resourceId, CE.ScheduleDate scheduledDate, CES.ShiftNo shiftNo, CES.ShiftDesc shiftDesc,
  701. (CONVERT(Decimal(20,6),CE.ScheduleDate) + CONVERT(Decimal(20,6),CES.StartTime / 24.0)) startTime,
  702. (CONVERT(Decimal(20,6),CE.ScheduleDate) + CONVERT(Decimal(20,6),CES.EndTime / 24.0) + (case when CES.EndTime <![CDATA[<]]> CES.StartTime then 1.0 else 0.0 end)) endTime,
  703. (CONVERT(Decimal(20,6),Convert(datetime, #{currentTime}))) curTime
  704. from WorkCenterResource as WR
  705. ,Calendar_Exception as CE,Calendar_Exception_Shift CES
  706. where WR.Site=CE.Site and WR.CalendarID=CE.CalendarID
  707. and CE.Site=CES.Site and CE.CalendarID=CES.CalendarID and CE.ScheduleDate=CES.ScheduleDate
  708. and WR.Site='1'
  709. and WR.ResourceID= #{resourceId}
  710. and CONVERT(Decimal(20,6),CE.ScheduleDate)<![CDATA[>=]]>Convert(Decimal(20,6),Convert(datetime, #{currentDate}))-1
  711. and CONVERT(Decimal(20,6),CE.ScheduleDate)<![CDATA[<=]]>Convert(Decimal(20,6),Convert(datetime, #{currentDate}))+1
  712. Order by CE.ScheduleDate,CES.StartTime
  713. </select>
  714. <!--查询sfdc的时间数据-->
  715. <select id="getSfdcTimeData" parameterType="SearchScheduleData" resultType="java.util.Map">
  716. SELECT MAX(finishtime) finishTime, SUM(ReportedSetupTime) reportedSetupTime, SUM(ReportedManfTime) reportedManfTime,
  717. SUM(Downtime) downTime, SUM(ReportedSetupDowntime) reportedSetupDowntime, SUM(ReportedManfDowntime) reportedManfDowntime
  718. FROM SFDC
  719. <where>
  720. <if test="site != null and site != ''">
  721. AND Site = #{site}
  722. </if>
  723. <if test="orderNo != null and orderNo != ''">
  724. AND OrderNo = #{orderNo}
  725. </if>
  726. <if test="itemNo != null and itemNo != ''">
  727. AND ItemNo = #{itemNo}
  728. </if>
  729. AND AssJobSeqNo = #{seqNo} AND RollNo = #{rollNo} AND InAdvanceflag='Y'
  730. </where>
  731. </select>
  732. <select id="getSfdcMaterialByRollNo" parameterType="SearchScheduleData" resultType="SfdcMaterialData">
  733. SELECT smh.Site site, smh.OrderNo orderNo, smh.ItemNo itemNo, smh.SeqNo seqNo, smh.HistSeqNo histSeqNo, smh.RollNo rollNo, smh.ReportDate reportDate,
  734. smh.Reportedby reportedby, smh.RMRollNo rmRollNo, smh.PartNo partNo, smh.Remark remark, smh.StartDate startDate, smh.FinishDate finishedDate,
  735. smh.FinishFlag finishedFlag, smh.HistType histType, smh.TransGeneratedFlag transGeneratedFlag, smh.OriginalRMRollNo originalRMRollNo,
  736. smh.UnissueFlag unissueFlag, ROUND(smh.TransQty, 3) transQty, ROUND(smh.NetIssueQty, 3) netIssueQty, smh.OriginalHistSeqNo originalHistSeqNo,
  737. smh.StartFromRollNo startFromRollNo, smh.KeyRMFlag keyRMFlag, smh.SAPBOMItemNo sAPBOMItemNo, smh.Setupflag setupflag
  738. FROM SFDC_MaterialHist smh
  739. <where>
  740. <if test="site != null and site != ''">
  741. AND smh.Site = #{site}
  742. </if>
  743. <if test="orderNo != null and orderNo != ''">
  744. AND smh.OrderNo = #{orderNo}
  745. </if>
  746. <if test="itemNo != null and itemNo != ''">
  747. AND smh.ItemNo = #{itemNo}
  748. </if>
  749. <if test="seqNo != null and seqNo != ''">
  750. AND smh.SeqNo = #{seqNo}
  751. </if>
  752. <if test="rollNo != null and rollNo != ''">
  753. AND smh.RollNo = #{rollNo}
  754. </if>
  755. <if test="finishedFlag != null and finishedFlag != ''">
  756. AND smh.FinishFlag = #{finishedFlag}
  757. </if>
  758. <if test="keyRMFlag != null and keyRMFlag != ''">
  759. AND smh.KeyRMFlag = #{keyRMFlag}
  760. </if>
  761. <if test="histType != null and histType != ''">
  762. AND smh.HistType = #{histType}
  763. </if>
  764. </where>
  765. ORDER BY smh.HistSeqNo DESC
  766. </select>
  767. <!--检查派工单是否关闭-->
  768. <select id="checkScheduleStatus" parameterType="SearchScheduleData" resultType="java.lang.Integer">
  769. SELECT COUNT(1) FROM SOScheduledRouting ssr
  770. <where>
  771. <if test="site != null and site != ''">
  772. AND ssr.Site = #{site}
  773. </if>
  774. <if test="orderNo != null and orderNo != ''">
  775. AND ssr.OrderNo = #{orderNo}
  776. </if>
  777. <if test="itemNo != null and itemNo != ''">
  778. AND ssr.ItemNo = #{itemNo}
  779. </if>
  780. <if test="seqNo != null and seqNo != ''">
  781. AND ssr.SeqNo = #{seqNo}
  782. </if>
  783. <if test="closedFlag != null and closedFlag != ''">
  784. AND ssr.ClosedFlag = #{closedFlag}
  785. </if>
  786. </where>
  787. </select>
  788. <!--获取rollId和normalRollId-->
  789. <select id="getRollIdAndNormalRollIdByCon" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  790. SELECT MAX(RollID) rollId, MAX(NormalRollID) normalRollId FROM SFDC_Rolls ssr
  791. <where>
  792. <if test="site != null and site != ''">
  793. AND ssr.Site = #{site}
  794. </if>
  795. <if test="orderNo != null and orderNo != ''">
  796. AND ssr.OrderNo = #{orderNo}
  797. </if>
  798. </where>
  799. </select>
  800. <!--插入sfdcRolls的数据-->
  801. <insert id="insertSfdcRolls" parameterType="SfdcRollData">
  802. INSERT INTO SFDC_Rolls(Site, OrderNo, RollID, RollNo, CreatedDate, Createdby, CreatedOpsItemNo, CreatedOpsSeqNo, CurrentOpsItemNo, LastFinishedOpsItemNo, FinishedDate,
  803. FinishedFlag, OnLineFlag, PauseFlag, OriRollNo, Remark, StartOpsItemNo, RollType, RollType_DB, RollQty, FirstLevelRollNo, FGRollFlag, FGRollID,
  804. NormalRollID, CombineFlag, VirtualRollFlag, VirtualLinkRollNo, CQCPassFlag, CQCInspectedFlag, CQCNeedInspectFlag)
  805. VALUES(#{site}, #{orderNo}, #{rollId}, #{rollNo}, #{createdDate}, #{createdBy}, #{createdOpsItemNo}, #{createdOpsSeqNo}, #{currentOpsItemNo}, #{lastFinishedOpsItemNo}, #{finishedDate},
  806. #{finishedFlag}, #{onLineFlag}, #{pauseFlag}, #{oriRollNo}, #{remark}, #{startOpsItemNo}, #{rollType}, #{rollTypeDb}, #{rollQty}, #{firstLevelRollNo}, #{fgRollFlag}, #{fgRollId},
  807. #{normalRollId}, #{combineFlag}, #{virtualRollFlag}, #{virtualLinkRollNo}, #{cqcPassFlag}, #{cqcInspectedFlag}, #{cqcNeedInspectFlag})
  808. </insert>
  809. <!--插入sfdcRollOps的数据-->
  810. <insert id="insertSfdcRollOps" parameterType="SfdcRollData">
  811. INSERT INTO SFDC_RollOps(Site, OrderNo, RollNo, ItemNo, SeqNo, StartProdFlag, FinishedFlag, PauseFlag,
  812. ScanedBy, ScanedDate, Remark, QtyReported, QtyDefected, ReportedFlag)
  813. VALUES(#{site}, #{orderNo}, #{rollNo}, #{itemNo}, #{seqNo}, #{startProdFlag}, #{finishedFlag}, #{pauseFlag},
  814. #{scanedBy}, #{scanedDate}, #{remark}, #{qtyReported}, #{qtyDefected}, #{reportedFlag})
  815. </insert>
  816. <!--根据条件或者材料卷数据-->
  817. <select id="getCRollInfoByRollNo" parameterType="SearchScheduleData" resultType="CRollInfoOutData">
  818. SELECT cri.rollno rollNo, cri.partno partNo, part.PartDescription partDesc, cri.rolltype rollType,
  819. cri.rolltype_db rollTypeDb, status status, cri.status_db statusDb, cri.rollqty rollQty, cri.site,
  820. cri.SourceType orderRefType, cri.orderref1 orderRef1, cri.orderref2 orderRef2, cri.orderref3 orderRef3,
  821. cri.frozenflag frozenFlag
  822. FROM C_RollInfo cri
  823. LEFT JOIN Part part ON part.Site = cri.site AND part.PartNo = cri.partno
  824. WHERE cri.site = #{site} AND cri.rollno = #{rmRollNo}
  825. </select>
  826. <!--根据工单和物料自动获取bom行数据-->
  827. <select id="getBomItemNosByPartNo" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  828. SELECT Site site, OrderNo orderNo, CONVERT(INT, ItemNo) itemNo, ComponentPartNo partNo, QtyAssembly qtyAssembly, QtyFixedScrapt qtyFixedScrapt,
  829. ScraptFactor scraptFactor, Remark remark, QtyRequired qtyRequired, QtyIssue qtyIssue, CONVERT(VARCHAR(20), IssueDate, 120) issueDate,
  830. QtyReserved qtyReserved, MatGroup matGroup, QtyNotified qtyNotified, RMType_DB rmTypeDb, IssueType issueType
  831. FROM dbo.view_SAP_SOBOM vss
  832. WHERE vss.Site = #{site} AND vss. OrderNo = #{orderNo} AND vss.ComponentPartNo = #{rmPartNo}
  833. </select>
  834. <!--查询材料的上机卷记录数据-->
  835. <select id="getBomItemNosByPartNo" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  836. SELECT OrderNo+'/'+CONVERT(VARCHAR(20), ItemNo)+'/'+CONVERT(VARCHAR(20), SeqNo) orderInfo
  837. FROM SFDC_MaterialHist
  838. WHERE Site = #{site} AND RMRollNo = #{rmPartNo}
  839. </select>
  840. <!--查询派工单时的材料记录信息-->
  841. <select id="getSfdcMaterialByBomItemNo" parameterType="SearchScheduleData" resultType="SfdcMaterialData">
  842. SELECT smh.Site site, smh.OrderNo orderNo, smh.ItemNo itemNo, smh.SeqNo seqNo, smh.HistSeqNo histSeqNo, smh.RollNo rollNo, smh.ReportDate reportDate,
  843. smh.Reportedby reportedby, smh.RMRollNo rmRollNo, smh.PartNo partNo, smh.Remark remark, smh.StartDate startDate, smh.FinishDate finishedDate,
  844. smh.FinishFlag finishedFlag, smh.HistType histType, smh.TransGeneratedFlag transGeneratedFlag, smh.OriginalRMRollNo originalRMRollNo,
  845. smh.UnissueFlag unissueFlag, ROUND(smh.TransQty, 3) transQty, ROUND(smh.NetIssueQty, 3) netIssueQty, smh.OriginalHistSeqNo originalHistSeqNo,
  846. smh.StartFromRollNo startFromRollNo, smh.KeyRMFlag keyRMFlag, smh.SAPBOMItemNo sAPBOMItemNo, smh.Setupflag setupflag
  847. FROM SFDC_MaterialHist smh
  848. <where>
  849. <if test="site != null and site != ''">
  850. AND smh.Site = #{site}
  851. </if>
  852. <if test="orderNo != null and orderNo != ''">
  853. AND smh.OrderNo = #{orderNo}
  854. </if>
  855. <if test="itemNo != null and itemNo > 0">
  856. AND smh.ItemNo = #{itemNo}
  857. </if>
  858. <if test="seqNo != null and seqNo != ''">
  859. AND smh.SeqNo = #{seqNo}
  860. </if>
  861. <if test="bomItemNo != null and bomItemNo > -1">
  862. AND smh.SAPBOMItemNo = #{bomItemNo}
  863. </if>
  864. </where>
  865. ORDER BY smh.HistSeqNo DESC
  866. </select>
  867. <!--查询派工单时的材料记录信息-->
  868. <select id="getSfdcMaterialByBomItemNo" parameterType="SearchScheduleData" resultType="SfdcMaterialData">
  869. SELECT COUNT(1) FROM SFDC_MaterialHist smh
  870. <where>
  871. <if test="site != null and site != ''">
  872. AND smh.Site = #{site}
  873. </if>
  874. <if test="orderNo != null and orderNo != ''">
  875. AND smh.OrderNo = #{orderNo}
  876. </if>
  877. <if test="itemNo != null and itemNo > 0">
  878. AND smh.ItemNo = #{itemNo}
  879. </if>
  880. <if test="seqNo != null and seqNo != ''">
  881. AND smh.SeqNo = #{seqNo}
  882. </if>
  883. <if test="rollNo != null and rollNo != ''">
  884. AND smh.RollNo = #{rollNo}
  885. </if>
  886. <if test="rmPartNo != null and rmPartNo != ''">
  887. AND smh.PartNo = #{rmPartNo}
  888. </if>
  889. <if test="finishedFlag != null and finishedFlag != ''">
  890. AND smh.FinishFlag = #{finishedFlag}
  891. </if>
  892. <if test="histType != null and histType != ''">
  893. AND smh.HistType = #{histType}
  894. </if>
  895. </where>
  896. ORDER BY smh.HistSeqNo DESC
  897. </select>
  898. <!--查询派工单的不良记录-->
  899. <select id="getScheduleDefectHist" parameterType="SearchScheduleData" resultType="SfdcDefectData">
  900. SELECT sdh.Site site, sdh.OrderNo orderNo, sdh.ItemNo itemNo, sdh.SeqNo seqNo, sdh.HistSeqNo histSeqNo, sdh.RollNo rollNo,
  901. sdh.ReportDate reportedDate, sdh.Reportedby reportedBy, sdh.DefectCode defectCode, sdh.DefectQty defectQty, sdh.Remark remark,
  902. (SELECT idc.DefectDesc FROM InspectionDefectCode idc WHERE idc.Site = sdh.Site AND idc.DefectCode = sdh.DefectCode) defectDesc
  903. FROM SFDC_DefectHist sdh
  904. <where>
  905. <if test="site != null and site != ''">
  906. AND sdh.Site = #{site}
  907. </if>
  908. <if test="orderNo != null and orderNo != ''">
  909. AND sdh.OrderNo = #{orderNo}
  910. </if>
  911. <if test="itemNo != null and itemNo != ''">
  912. AND sdh.ItemNo = #{itemNo}
  913. </if>
  914. <if test="seqNo != null and seqNo != ''">
  915. AND sdh.SeqNo = #{seqNo}
  916. </if>
  917. </where>
  918. ORDER BY sdh.HistSeqNo DESC
  919. </select>
  920. <!--查询派工单的不良记录-->
  921. <select id="countToolUsedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
  922. SELECT SUM(FinishQty) FROM SFDC_ToolingHist sth
  923. WHERE sth.Site = #{site} AND sth.OrderNo = #{orderNo} AND sth.ItemNo = #{itemNo} AND sth.SeqNo = #{seqNo}
  924. AND sth.RollNo <![CDATA[<>]]> #{rollNo} AND sth.ToolInstanceID = #{oriToolInstanceId}
  925. </select>
  926. <!--查询派工单的时间记录信息-->
  927. <select id="getSfdcTimeHistBySeqNo" parameterType="SearchScheduleData" resultType="SfdcTimeData">
  928. SELECT sth.Site site, sth.OrderNo orderNo,sth.ItemNo itemNo, sth.SeqNo seqNo, sth.HistSeqNo histSeqNo, sth.RollNo rollNo,
  929. sth.EventTime eventTime, sth.Enteredby enteredby, sth.EventDesc eventDesc, sth.DowntimeCode downtimeCode, sth.TillTime tillTime,
  930. sth.TillEnteredTime tillEnteredTime, sth.TillEnteredBy tillEnteredBy, sth.CompletedFlag completedFlag, ROUND(sth.TotalTime, 3) totalTime,
  931. sth.DowntimePhaseIn downtimePhaseIn
  932. FROM SFDC_TimeHist sth
  933. <where>
  934. <if test="site != null and site != ''">
  935. AND sth.Site = #{site}
  936. </if>
  937. <if test="orderNo != null and orderNo != ''">
  938. AND sth.OrderNo = #{orderNo}
  939. </if>
  940. <if test="itemNo != null and itemNo != ''">
  941. AND sth.ItemNo = #{itemNo}
  942. </if>
  943. <if test="seqNo != null and seqNo != ''">
  944. AND sth.SeqNo = #{seqNo}
  945. </if>
  946. <if test='showNoFinishedTimeFlag != null and showNoFinishedTimeFlag != "" and showNoFinishedTimeFlag == "Y"'>
  947. AND sth.CompletedFlag = 'N'
  948. </if>
  949. </where>
  950. ORDER BY sth.HistSeqNo DESC
  951. </select>
  952. <!--查询派工单的工具记录信息-->
  953. <select id="getSfdcToolHistBySeqNo" parameterType="SearchScheduleData" resultType="SfdcToolData">
  954. SELECT sth.Site site, sth.OrderNo orderNo, sth.ItemNo itemNo, sth.SeqNo seqNo, sth.HistSeqNo histSeqNo, sth.RollNo rollNo,
  955. sth.ReportDate reportedDate, sth.Reportedby reportedby, sth.ToolInstanceID toolInstanceID, sth.StartDate startDate,
  956. sth.FinishDate finishedDate, sth.FinishFlag finishedFlag, sth.Remark remark, sth.StartFromRollNo startFromRollNo, sth.FinishQty finishQty
  957. FROM SFDC_ToolingHist sth
  958. <where>
  959. <if test="site != null and site != ''">
  960. AND sth.Site = #{site}
  961. </if>
  962. <if test="orderNo != null and orderNo != ''">
  963. AND sth.OrderNo = #{orderNo}
  964. </if>
  965. <if test="itemNo != null and itemNo != ''">
  966. AND sth.ItemNo = #{itemNo}
  967. </if>
  968. <if test="seqNo != null and seqNo != ''">
  969. AND sth.SeqNo = #{seqNo}
  970. </if>
  971. <if test='showNoFinishedToolFlag != null and showNoFinishedToolFlag != "" and showNoFinishedToolFlag == "Y"'>
  972. AND sth.FinishFlag = 'N'
  973. </if>
  974. </where>
  975. ORDER BY sth.HistSeqNo DESC
  976. </select>
  977. <!--查询派工单时的材料记录信息-->
  978. <select id="getSfdcMaterialHistBySeqNo" parameterType="SearchScheduleData" resultType="SfdcMaterialData">
  979. SELECT smh.Site site, smh.OrderNo orderNo, smh.ItemNo itemNo, smh.SeqNo seqNo, smh.HistSeqNo histSeqNo, smh.RollNo rollNo, smh.ReportDate reportDate,
  980. smh.Reportedby reportedby, smh.RMRollNo rmRollNo, smh.PartNo partNo, smh.Remark remark, smh.StartDate startDate, smh.FinishDate finishedDate,
  981. smh.FinishFlag finishedFlag, smh.HistType histType, smh.TransGeneratedFlag transGeneratedFlag, smh.OriginalRMRollNo originalRMRollNo,
  982. smh.UnissueFlag unissueFlag, ROUND(smh.TransQty, 3) transQty, ROUND(smh.NetIssueQty, 3) netIssueQty, smh.OriginalHistSeqNo originalHistSeqNo,
  983. smh.StartFromRollNo startFromRollNo, smh.KeyRMFlag keyRMFlag, smh.SAPBOMItemNo sAPBOMItemNo, smh.Setupflag setupflag
  984. FROM SFDC_MaterialHist smh
  985. <where>
  986. <if test="site != null and site != ''">
  987. AND smh.Site = #{site}
  988. </if>
  989. <if test="orderNo != null and orderNo != ''">
  990. AND smh.OrderNo = #{orderNo}
  991. </if>
  992. <if test="itemNo != null and itemNo != ''">
  993. AND smh.ItemNo = #{itemNo}
  994. </if>
  995. <if test="seqNo != null and seqNo != ''">
  996. AND smh.SeqNo = #{seqNo}
  997. </if>
  998. <if test='showNoFinishedMaterialFlag != null and showNoFinishedMaterialFlag != "" and showNoFinishedMaterialFlag == "Y"'>
  999. AND smh.FinishFlag = 'N'
  1000. </if>
  1001. </where>
  1002. ORDER BY smh.HistSeqNo DESC
  1003. </select>
  1004. <!--获取当前加工中心机台对应的calendarId-->
  1005. <select id="getCalendarId" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  1006. SELECT wcr.CalendarID calendarId,
  1007. (SELECT cd.CalendarDesc FROM Calendar cd WHERE wcr.Site = cd.Site AND wcr.CalendarID = cd.CalendarID) calendarDesc,
  1008. Efficiency efficiency
  1009. FROM WorkCenterResource wcr
  1010. WHERE wcr.Site = #{site} AND wcr.WorkCenterNo = #{workCenterNo} AND wcr.ResourceID = #{resourceId}
  1011. </select>
  1012. <!--获取班次选择的数据-->
  1013. <select id="getScheduleShiftWithSelect" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  1014. SELECT WR.ResourceID resourceId, CONVERT(VARCHAR(10), CE.ScheduleDate, 120) scheduleDate, CES.ShiftNo shiftNo, CES.ShiftDesc shiftDesc,
  1015. CONVERT(VARCHAR(5), CES.StartExactTime, 108) startTime, CONVERT(VARCHAR(5), CES.EndExactTime, 108) endTime,
  1016. (CASE WHEN CES.EndTime <![CDATA[<]]> CES.StartTime THEN 'Y' ELSE 'N' END) nextDayFlag
  1017. FROM WorkCenterResource WR, Calendar_Exception CE, Calendar_Exception_Shift CES
  1018. WHERE WR.Site=CE.Site and WR.CalendarID=CE.CalendarID
  1019. AND CE.Site=CES.Site and CE.CalendarID=CES.CalendarID and CE.ScheduleDate=CES.ScheduleDate
  1020. AND WR.Site = #{site}
  1021. AND WR.ResourceID = #{resourceId}
  1022. AND CONVERT(DECIMAL(20,6),CE.ScheduleDate)<![CDATA[>=]]>CONVERT(DECIMAL(20,6), CONVERT(datetime, #{scheduledDate})) - 1
  1023. AND CONVERT(DECIMAL(20,6),CE.ScheduleDate)<![CDATA[<=]]>CONVERT(DECIMAL(20,6), CONVERT(datetime, #{scheduledDate})) + 1
  1024. AND (CONVERT(DECIMAL(20,6),CE.ScheduleDate) + CONVERT(DECIMAL(20,6), CES.StartTime / 24.0)) <![CDATA[<=]]>(CONVERT(DECIMAL(20,6),CONVERT(datetime, #{scheduledDate})) +
  1025. (CONVERT(DECIMAL(20,6),CONVERT(datetime, #{reportedTime})) - floor(CONVERT(DECIMAL(20,6),CONVERT(datetime, #{reportedTime})))))
  1026. ORDER BY CE.ScheduleDate,CES.Starttime
  1027. </select>
  1028. <select id="searchFqcSfdcRolls" resultType="com.gaotao.modules.schedule.data.SfdcRollData">
  1029. SELECT sfr.Site site, sfr.OrderNo orderNo, sfr.RollNo rollNo, sfr.CreatedDate createdDate, sfr.Createdby createdby, sfr.CurrentOpsItemNo currentOpsItemNo,
  1030. sfr.LastFinishedOpsItemNo lastFinishedOpsItemNo, sfr.FinishedDate finishedDate, sfr.FinishedFlag finishedFlag, sfr.OnLineFlag onLineFlag,
  1031. sfr.PauseFlag pauseFlag, sfr.OriRollNo oriRollNo, sfr.StartOpsItemNo startOpsItemNo, sfr.RollType rollType, sfr.CreatedOpsItemNo createdOpsItemNo,
  1032. sfr.CreatedOpsSeqNo createdOpsSeqNo, sfr.RollQty rollQty, sfr.FirstLevelRollNo firstLevelRollNo, sfr.VirtualRollFlag virtualRollFlag
  1033. FROM SFDC_Rolls sfr
  1034. <where>
  1035. sfr.Site= #{site}
  1036. and sfr.OrderNo=#{orderNo}
  1037. and sfr.StartOpsItemNo <![CDATA[ <= ]]> #{itemNo}
  1038. and sfr.CQCPassFlag='N'
  1039. and sfr.FinishedFlag='N'
  1040. and sfr.CQCInspectedFlag='Y'
  1041. <if test=" rollNo != null and rollNo != ''">
  1042. and sfr.RollNo like #{rollNo}
  1043. </if>
  1044. </where>
  1045. </select>
  1046. <select id="getReworkSfdcRollByCon" resultType="com.gaotao.modules.schedule.data.SfdcRollData">
  1047. SELECT sfr.Site site, sfr.OrderNo orderNo, sfr.RollNo rollNo, sfr.CreatedDate createdDate, sfr.Createdby createdby, sfr.CurrentOpsItemNo currentOpsItemNo,
  1048. sfr.LastFinishedOpsItemNo lastFinishedOpsItemNo, sfr.FinishedDate finishedDate, sfr.FinishedFlag finishedFlag, sfr.OnLineFlag onLineFlag,
  1049. sfr.PauseFlag pauseFlag, sfr.OriRollNo oriRollNo, sfr.StartOpsItemNo startOpsItemNo, sfr.RollType rollType, sfr.CreatedOpsItemNo createdOpsItemNo,
  1050. sfr.CreatedOpsSeqNo createdOpsSeqNo, sfr.RollQty rollQty, sfr.FirstLevelRollNo firstLevelRollNo, sfr.VirtualRollFlag virtualRollFlag,
  1051. sfr.CombineFlag combineFlag
  1052. FROM SFDC_Rolls sfr
  1053. <where>
  1054. <if test="site != null and site != ''">
  1055. AND sfr.Site = #{site}
  1056. </if>
  1057. <if test="orderNo != null and orderNo != ''">
  1058. AND sfr.OrderNo = #{orderNo}
  1059. </if>
  1060. <if test="itemNo != null and itemNo != ''">
  1061. AND sfr.CreatedOpsItemNo = #{itemNo}
  1062. </if>
  1063. <if test="seqNo != null and seqNo != ''">
  1064. AND sfr.CreatedOpsSeqNo = #{seqNo}
  1065. </if>
  1066. <if test="rollNo != null and rollNo != ''">
  1067. AND sfr.RollNo = #{rollNo}
  1068. </if>
  1069. </where>
  1070. Union all
  1071. Select T.Site,T.OrderNo,D.RollNo,D.CreatedDate,D.Createdby,D.CurrentOpsItemNo,D.LastFinishedOpsItemNo,D.FinishedDate,D.FinishedFlag
  1072. ,D.OnLineFlag,D.PauseFlag,D.OriRollNo,D.StartOpsItemNo,D.RollType,D.CreatedOpsItemNo,D.CreatedOpsSeqNo,D.RollQty,D.FirstLevelRollNo
  1073. ,D.FGRollFlag,D.CombineFlag
  1074. from SFDC_RollOps as T,SFDC_Rolls as D
  1075. Where T.Site=D.Site and T.OrderNo=D.OrderNo and T.RollNo=D.RollNo
  1076. and T.Site=#{site}
  1077. and T.OrderNo=#{orderNo}
  1078. and T.ItemNo=#{itemNo}
  1079. and T.SeqNo=#{seqNo}
  1080. and T.Remark='直接送检'
  1081. ORDER BY sfr.RollNo
  1082. </select>
  1083. <select id="reportCheck" resultType="java.lang.Integer">
  1084. Select count(1) from SOScheduledRouting as T
  1085. Where Site=#{site}
  1086. and S_ResourceID = #{resourceId}
  1087. and S_WorkCenterNo = #{workCenterNo}
  1088. and SeqNo != #{seqNo}
  1089. and ClosedFlag = 'N'
  1090. and StartProdFlag = 'Y'
  1091. and (
  1092. (case when exists(select 1 from SFDC_MaterialHist as T1
  1093. where T1.Site=T.Site and T1.OrderNo=T.OrderNo and T1.ItemNo=T.ItemNo and T1.SeqNo=T.SeqNo and T1.FinishFlag='N'
  1094. )
  1095. then 1 else 0 end
  1096. )
  1097. +
  1098. (case when exists(select 1 from SFDC_ToolingHist as T2
  1099. where T2.Site=T.Site and T2.OrderNo=T.OrderNo and T2.ItemNo=T.ItemNo and T2.SeqNo=T.SeqNo and T2.FinishFlag='N'
  1100. )
  1101. then 1 else 0 end
  1102. )
  1103. +
  1104. (case when exists(select 1 from SFDC_TimeHist as T3
  1105. where T3.Site=T.Site and T3.OrderNo=T.OrderNo and T3.ItemNo=T.ItemNo and T3.SeqNo=T.SeqNo and T3.CompletedFlag='N'
  1106. )
  1107. then 1 else 0 end
  1108. )
  1109. +
  1110. (case when exists(select 1 from SFDC_RollOps as T4
  1111. where T4.Site=T.Site and T4.OrderNo=T.OrderNo and T4.ItemNo=T.ItemNo and T4.SeqNo=T.SeqNo and T4.FinishedFlag='N'
  1112. )
  1113. then 1 else 0 end
  1114. )
  1115. )>0
  1116. </select>
  1117. <select id="getUserSpecialSecurity" resultType="java.lang.String">
  1118. select dbo.Get_User_Special_Security (#{username},#{sNo})
  1119. </select>
  1120. <insert id="saveSfdcDefect" parameterType="SfdcDefectData">
  1121. INSERT INTO SFDC_DefectHist(Site,OrderNo,ItemNo,SeqNo,HistSeqNo,ReportDate,Reportedby,DefectCode,DefectQty,RollNo)
  1122. VALUES(#{site},#{orderNo},#{itemNo},#{seqNo},#{histSeqNo},#{reportedDate},#{reportedBy},#{defectCode},#{defectQty},#{rollNo})
  1123. </insert>
  1124. <insert id="saveSfdcDefectList">
  1125. INSERT INTO SFDC_DefectHist(Site,OrderNo,ItemNo,SeqNo,HistSeqNo,ReportDate,Reportedby,DefectCode,DefectQty,RollNo)
  1126. VALUES
  1127. <foreach collection="list" separator="," item="item" >
  1128. ( #{item.site},#{item.orderNo},#{item.itemNo},#{item.seqNo},#{item.histSeqNo}
  1129. ,#{item.reportedDate},#{item.reportedBy},#{item.defectCode},#{item.defectQty},#{item.rollNo} )
  1130. </foreach>
  1131. </insert>
  1132. <insert id="insertShopOrderChangeHist">
  1133. Insert into ShopOrderChangeHist(Site,OrderNo,CreateDate,Fieldname,FieldCaption,OldValue,NewValue,UserID,RecordType,Remark)
  1134. Values(#{site},#{orderNo},getdate(),'*','*','*','*',#{username},'更改',#{orderChangeStatus})
  1135. </insert>
  1136. <select id="getSORoutingPreviousOperationItemNo" resultType="java.lang.Integer">
  1137. select dbo.Get_SORouting_PreviousOperationItemNo(#{site},#{orderNo},#{itemNo})
  1138. </select>
  1139. <select id="getShopOrderType" resultType="java.lang.String">
  1140. Select OrderType as order_type from ShopOrder
  1141. where Site=#{site}
  1142. and OrderNo=#{orderNo}
  1143. </select>
  1144. <!--查询分切工单的物料信息-->
  1145. <select id="getSplitOrderParts" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  1146. SELECT vss.Site site, vss.SAPOrderNo sapOrderNo, vss.OrderNo orderNo, vss.OrderItemNo bomItemNo,
  1147. vss.PartNo partNo, vss.PartDescription partDesc, vss.Quantity orderQty
  1148. FROM view_sap_slitting_partlist vss
  1149. WHERE vss.Site = #{site} AND vss.OrderNo = #{orderNo}
  1150. </select>
  1151. <!--统计C_RollInfo是否报工过-->
  1152. <select id="countCRollByRollNo" parameterType="SearchScheduleData" resultType="java.lang.Integer">
  1153. SELECT COUNT(1) FROM C_RollInfo cri
  1154. <where>
  1155. cri.Site = #{site} AND cri.OrderRef1 = #{orderNo} AND cri.OriginalRollNo = #{rollNo}
  1156. </where>
  1157. </select>
  1158. <!--统计C_RollInfo表的报工数据-->
  1159. <select id="getCRollReportedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
  1160. SELECT SUM(ISNULL(cri.RollQty, 0)) FROM C_RollInfo cri
  1161. <where>
  1162. cri.Site = #{site} AND cri.OrderRef1 = #{orderNo} AND cri.OriginalRollNo = #{rollNo}
  1163. </where>
  1164. </select>
  1165. <!--修改派工单的排料标记-->
  1166. <update id="updateSoScheduledRoutingMatIssueFlag" parameterType="SearchScheduleData">
  1167. UPDATE SOScheduledRouting SET mat_issueflag = #{matIssueFlag} WHERE Site = #{site} AND OrderNo = #{orderNo} AND SeqNo = #{seqNo}
  1168. </update>
  1169. <!--修改派工单的网版标记-->
  1170. <update id="updateSoScheduledRoutingPlateIssueFlag" parameterType="SearchScheduleData">
  1171. UPDATE SOScheduledRouting SET plate_issueflag = #{plateIssueFlag} WHERE Site = #{site} AND OrderNo = #{orderNo} AND SeqNo = #{seqNo}
  1172. </update>
  1173. <!--修改派工单的刀模标记-->
  1174. <update id="updateSoScheduledRoutingToolIssueFlag" parameterType="SearchScheduleData">
  1175. UPDATE SOScheduledRouting SET tool_issueflag = #{toolIssueFlag} WHERE Site = #{site} AND OrderNo = #{orderNo} AND SeqNo = #{seqNo}
  1176. </update>
  1177. </mapper>