荣鑫后端
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.

646 lines
35 KiB

  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.dao.ScheduleMapper">
  4. <!--查询加工中心机台的信息-->
  5. <select id="getResourceLIst" parameterType="SearchScheduleData" resultType="ResourceOutData">
  6. SELECT wcr.Site site, wcr.WorkCenterNo workCenterNo, wcr.ResourceID resourceId, wcr.ResourceDesc resourceDEsc, wcr.Efficiency efficiency,
  7. wcr.Utilization utilization, wcr.Active active, wcr.Remark Remark, wcr.CreatedDate createdDate, wcr.CalendarID calendarId, wcr.VirturlFlag virturlFlag
  8. FROM WorkCenterResource wcr
  9. <where>
  10. wcr.Site = site
  11. <if test="workCenterNo != null and workCenterNo != ''">
  12. AND wcr.WorkCenterNo= #{workCenterNo}
  13. </if>
  14. <if test="resourceId != null and resourceId != ''">
  15. AND wcr.ResourceID = #{resourceId}
  16. </if>
  17. </where>
  18. </select>
  19. <!--查询机台+排产日期的休息信息-->
  20. <select id="getResourceRestList" parameterType="SearchScheduleData" resultType="ShiftInfoData">
  21. 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)
  22. +' ; '+
  23. (Case when ExceptDuration2<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime2)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration2)) else '' end)
  24. +' ; '+
  25. (Case when ExceptDuration3<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime3)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration3)) else '' end)
  26. +' ; '+
  27. (Case when ExceptDuration4<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime4)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration4)) else '' end)
  28. +' ; '+
  29. (Case when ExceptDuration5<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime5)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration5)) else '' end)
  30. +' ; '+
  31. (Case when ExceptDuration6<![CDATA[ <> ]]>0 then CONVERT(Varchar(10),Convert(float,ExceptTime6)) + '/' + CONVERT(Varchar(10),Convert(float,ExceptDuration6)) else '' end)
  32. ) as shiftInfo from Calendar_Exception cde
  33. <where>
  34. AND cde.Site = #{site}
  35. AND cde.CalendarID = #{calendarId}
  36. AND cde.ScheduleDate <![CDATA[ >= ]]> #{scheduleDate}
  37. </where>
  38. </select>
  39. <!--按照条件查询工单的数据-->
  40. <select id="getShopOrderList" parameterType="SearchScheduleData" resultType="ShopOrderOutData">
  41. Select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, T.OperationDesc itemDesc, T.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
  42. D.LotSize lotSize, T.QtyReported qtyReported, D.NeedDate needDate, T.PreItemNo PreItemNo, S1.OperationDesc PreItemDesc, S1.ScheduledFlag preScheduledFlag,
  43. T.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, S2.ScheduledFlag nextScheduledFlag, D.CustomerID customerId, P.ConfigurationTemplateID customerName,
  44. D.EnterDate enterDate, dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) availResource, T.WorkCenterNo workCenterNo,
  45. T.MachRunFactor machRunFactor, T.MachSetupTime machSetupTime, T.FactorUnit factorUnit, T.ScheduledFlag scheduledFlag, D.RoutingRevNo routingRevNo,
  46. T.QtyScheduled qtyScheduled,(round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) qtyToSchedule, Isnull(S1.QtyScheduled,0.0) qtyScheduledPreOps,
  47. D.OriSOOrderNo oriSOOrderNo, P.Remark custPartNo, 1*t.Efficiency efficiency, D.CostRollUpFlag costRollUpFlag, isnull(S1.QtyApprove,0.0) qtyApprovedPreOps,
  48. d.ManualFlag manualFlag, d.RepairSOFlag repairSOFlag
  49. from SORouting as T
  50. Left Join ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
  51. Left Join Part as P On T.Site=P.Site and T.PartNo=P.PartNo
  52. Left Join SORouting as S1 On T.Site=S1.Site and T.OrderNo=S1.OrderNo and T.PreItemNo=S1.ItemNo
  53. Left Join SORouting as S2 On T.Site=S2.Site and T.OrderNo=S2.OrderNo and T.NextItemNo=S2.ItemNo
  54. <where>
  55. Round(T.QtyScheduled,3) <![CDATA[ < ]]> round(T.QtyRequired,3) and T.ClosedFlag = 'N'
  56. <if test="username != null and username != ''">
  57. and T.site in (Select Site from AccessSite where upper(UserID)=#{username})
  58. </if>
  59. and T.OrderNo<![CDATA[ <> ]]>'9999' and isnull(D.Status,'')<![CDATA[ <> ]]>'已取消' and isnull(D.Status,'')<![CDATA[ <> ]]>'已计划'
  60. and isnull(D.Status,'')<![CDATA[ <> ]]>'已关闭'
  61. <if test="enterTime1 != null">
  62. and D.EnterDate<![CDATA[ >= ]]> #{enterTime1}
  63. </if>
  64. <if test="enterTime2 != null">
  65. and D.EnterDate-1<![CDATA[<]]> #{enterTime2}
  66. </if>
  67. <if test="needTime1 != null">
  68. and D.NeedDate<![CDATA[ >= ]]>#{needTime1}
  69. </if>
  70. <if test="needTime2 != null">
  71. and D.NeedDate<![CDATA[ <= ]]>#{needTime2}
  72. </if>
  73. <if test="site != null and site != ''">
  74. AND T.Site like '%' + #{site} + '%'
  75. </if>
  76. <if test="workCenterNo != null and workCenterNo != ''">
  77. AND T.WorkCenterNo like '%' + #{workCenterNo} + '%'
  78. </if>
  79. <if test="scheduledFlag != null and scheduledFlag != ''">
  80. AND Isnull(S1.ScheduledFlag, 'Y') = #{scheduledFlag}
  81. </if>
  82. <if test="resourceId != null and resourceId != ''">
  83. AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%'
  84. </if>
  85. </where>
  86. Order by D.NeedDate
  87. </select>
  88. <!--按照条件查询工单的数据-->
  89. <select id="getOrderScheduleList" parameterType="SearchScheduleData" resultType="ScheduleData">
  90. select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, S.OperationDesc itemDesc, S.PartNo partNo, P.PartDescription partDesc,
  91. P.Spec spec, T.QtyRequired lotSize, T.QtyReported qtyReported, D.NeedDate needDate, S.PreItemNo preItemNo, S1.OperationDesc preItemDesc,
  92. S1.ScheduledFlag preScheduledFlag, S.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, S2.ScheduledFlag nextScheduledFlag,
  93. D.CustomerID customerId, dbo.Get_CustomerDesc(D.Site,D.CustomerID) customerName, D.EnterDate enterDate,
  94. dbo.Get_SOOpsScheduleAvailResource(T.Site,S.OrderNo,T.S_WorkCenterNo,T.ItemNo) availResource, T.S_WorkCenterNo workCenterNo,
  95. S.MachRunFactor machRunFactor, S.MachSetupTime machSetupTime, S.FactorUnit factorUnit, T.ClosedFlag closedFlag,
  96. E.S_ScheduledSeqNo scheduledSeqNo, T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime, T.S_ResourceID resourceId,
  97. T.TimeRequired timeRequired, T.SeqNo seqNo, T.SelectedFlag selectedFlag, T.SourceFlag sourceFlag, S1.QtyScheduled qtyScheduledPreOps,
  98. T.ParkFlag parkFlag, T.TimeRequired_Original timeRequiredOriginal, T.QtyRequired_Original qtyRequiredOriginal, S1.PlanStartTime preOpsPlanStartTime,
  99. S1.PlanFinishTime preOpsPlanFinishTime, T.Remark remark, D.OriSOOrderNo oriSOOrderNo, P.Remark custPartNo, T.Efficiency eficiency,
  100. (Case when dbo.Get_SOOpsJobEstFinishDate(T.Site,T.OrderNo,T.ItemNo,T.SeqNo)<![CDATA[ <= ]]>T.PlanFinishTime then 0.0
  101. else round((convert(float,dbo.Get_SOOpsJobEstFinishDate(T.Site,T.OrderNo,T.ItemNo,T.SeqNo)) - convert(float,T.PlanFinishTime)) * 24,2) end) delayHours,
  102. D.CostRollUpFlag costRollUpFlag
  103. from SOScheduledList as E,SOScheduledRouting as T
  104. Left Join ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
  105. ,SORouting as S
  106. Left Join Part as P On S.Site=P.Site and S.PartNo=P.PartNo
  107. Left Join SORouting as S1 On S.Site=S1.Site and S.OrderNo=S1.OrderNo and S.PreItemNo=S1.ItemNo
  108. Left Join SORouting as S2 On S.Site=S2.Site and S.OrderNo=S2.OrderNo and S.NextItemNo=S2.ItemNo
  109. <where>
  110. T.Site=S.Site and T.OrderNo=S.OrderNo and T.ItemNo=S.ItemNo and E.Site=T.Site and E.LinkedSeqNo=T.SeqNo
  111. <if test="site != null and site != ''">
  112. AND E.Site like '%' + #{site} + '%'
  113. </if>
  114. <if test="workCenterNo != null and workCenterNo != ''">
  115. AND T.S_WorkCenterNo like '%' + #{workCenterNo} + '%'
  116. </if>
  117. <if test="resourceId != null and resourceId != ''">
  118. AND E.ResourceID like '%' + #{resourceId} + '%'
  119. </if>
  120. </where>
  121. Order by E.S_ScheduledSeqNo
  122. </select>
  123. <!--查询-待生产工单-->
  124. <select id="getProduceScheduleData" parameterType="SearchScheduleData" resultType="ScheduleData">
  125. Select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, D.OperationDesc itemDesc, D.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
  126. T.SeqNo seqNo, T.QtyRequired qtyRequired, T.QtyReported qtyReported, T.QtyApprove qtyApprove, ROUND(T.TimeRequired, 3) timeRequired,
  127. T.TimeReported timeReported, T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime, T.BarcodeID barcodeId, T.Remark remark,
  128. T.Crewsize crewSize, T.ClosedFlag closedFlag, T.QtyScrapt qtyScrapt, T.OutWorkFlag outWorkFlag, T.S_ScheduledDate scheduledDate,
  129. T.S_ResourceID resourceId, dbo.getWorkCenterResourceDesc(T.Site, t.S_WorkCenterNo, T.S_ResourceID) resourceDesc,
  130. E.S_ScheduledSeqNo scheduledSeqNo, T.S_ShiftNo shiftNo, D.MachSetupTime machSetupTime, D.MachRunFactor machRunFactor,
  131. D.FactorUnit factorUnit, D.Efficiency efficiency,D.NextItemNo nextItemNo, dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.NextItemNo) nextItemDesc,
  132. D.PreItemNo preItemNo,dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.PreItemNo) preItemDesc, SO.NeedDate needDate, T.ParkFlag parkFlag,
  133. P.ConfigurationTemplateID customerName, P.Remark custPartNo, t.S_WorkCenterNo workCenterNo, dbo.Get_WorkCenterDesc(T.Site, T.S_WorkCenterNo) workCenterDesc,
  134. T.QtyRequired_Original qtyRequiredOriginal,
  135. T.ClosedBy closedBy, T.ClosedDate closedDate, SO.CostRollUpFlag costRollUpFlag, SO.RepairSOFlag repairSOFlag, SO.ManualFlag manualFlag
  136. from SOScheduledRouting as T
  137. Left Join SOScheduledList as E on E.Site=T.Site and E.LinkedSeqNo=T.SeqNo,
  138. SORouting as D,Part as P,ShopOrder as SO
  139. <where>
  140. T.Site=D.Site and T.OrderNo=D.OrderNo and T.ItemNo=D.ItemNo and D.Site=P.Site and D.PartNo=P.PartNo
  141. and T.site in (Select Site from AccessSite where upper(UserID)=#{username})
  142. and T.Site=SO.Site and T.OrderNo=SO.OrderNo and T.OrderNo<![CDATA[ <> ]]>'9999'
  143. <if test="site != null and site != ''">
  144. AND T.Site like '%' + #{site} + '%'
  145. </if>
  146. <if test="planStartTime1 != null">
  147. and T.PlanStartTime<![CDATA[ >= ]]> #{planStartTime1}
  148. </if>
  149. <if test="planStartTime2 != null">
  150. and T.PlanStartTime<![CDATA[ <= ]]> #{planStartTime2}
  151. </if>
  152. <if test="resourceId != null and resourceId != ''">
  153. AND T.S_ResourceID like '%' + #{resourceId} + '%'
  154. </if>
  155. <if test="orderNo != null and orderNo != ''">
  156. AND T.OrderNo like '%' + #{orderNo} + '%'
  157. </if>
  158. <if test="seqNo != null and seqNo != ''">
  159. AND T.SeqNo like '%' + #{seqNo} + '%'
  160. </if>
  161. <if test='closedFlag != null and closedFlag == "N"'>
  162. and T.ClosedFlag = #{closedFlag}
  163. </if>
  164. </where>
  165. Order by T.PlanFinishTime desc
  166. </select>
  167. <!--查询操作员信息列表-->
  168. <select id="getOperatorList" parameterType="OperatorOutData" resultType="OperatorOutData">
  169. SELECT op.Site site, op.OperatorID operatorId, op.OperatorName operatorName, op.Active status
  170. FROM Operator op
  171. <where>
  172. op.Site IN (SELECT Site FROM AccessSite WHERE UPPER(UserID) = #{username})
  173. <if test="site != null and site != ''">
  174. AND op.Site = #{site}
  175. </if>
  176. <if test="operatorId != null and operatorId != ''">
  177. AND op.OperatorID like '%' + #{operatorId} + '%'
  178. </if>
  179. <if test="operatorName != null and operatorName != ''">
  180. AND op.OperatorName like '%' + #{operatorName} + '%'
  181. </if>
  182. <if test="status != null and status != ''">
  183. AND op.Active = #{status}
  184. </if>
  185. </where>
  186. </select>
  187. <!--查询操作员信息-->
  188. <select id="getOperatorData" parameterType="OperatorOutData" resultType="OperatorOutData">
  189. SELECT op.Site site, op.OperatorID operatorId, op.OperatorName operatorName, op.Active status
  190. FROM Operator op
  191. <where>
  192. op.Site IN (SELECT Site FROM AccessSite WHERE UPPER(UserID) = #{username})
  193. <if test="site != null and site != ''">
  194. AND op.Site = #{site}
  195. </if>
  196. <if test="operatorId != null and operatorId != ''">
  197. AND op.OperatorID = #{operatorId}
  198. </if>
  199. <if test="operatorName != null and operatorName != ''">
  200. AND op.OperatorName = #{operatorName}
  201. </if>
  202. </where>
  203. </select>
  204. <!--按照派工单号查询派工单的数据-->
  205. <select id="getScheduleDataBySeqNo" parameterType="java.lang.String" resultType="ScheduleData">
  206. Select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, D.OperationDesc itemDesc, D.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
  207. T.SeqNo seqNo, T.QtyRequired qtyRequired, T.QtyReported qtyReported, T.QtyApprove qtyApprove, ROUND(T.TimeRequired, 3) timeRequired,
  208. T.TimeReported timeReported, T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime, T.BarcodeID barcodeId, T.Remark remark,
  209. T.Crewsize crewSize, T.ClosedFlag closedFlag, T.QtyScrapt qtyScrapt, T.OutWorkFlag outWorkFlag, T.S_ScheduledDate scheduledDate,
  210. T.S_ResourceID resourceId, dbo.getWorkCenterResourceDesc(T.Site, t.S_WorkCenterNo, T.S_ResourceID) resourceDesc,
  211. E.S_ScheduledSeqNo scheduledSeqNo, T.S_ShiftNo shiftNo, D.MachSetupTime machSetupTime, D.MachRunFactor machRunFactor,
  212. D.FactorUnit factorUnit, D.Efficiency efficiency,D.NextItemNo nextItemNo, dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.NextItemNo) nextItemDesc,
  213. D.PreItemNo preItemNo,dbo.Get_SOOpsDescription(T.Site,T.OrderNo,D.PreItemNo) preItemDesc, SO.NeedDate needDate, T.ParkFlag parkFlag,
  214. P.ConfigurationTemplateID customerName, P.Remark custPartNo, t.S_WorkCenterNo workCenterNo, dbo.Get_WorkCenterDesc(T.Site, T.S_WorkCenterNo) workCenterDesc,
  215. T.QtyRequired_Original qtyRequiredOriginal,
  216. T.ClosedBy closedBy, T.ClosedDate closedDate, SO.CostRollUpFlag costRollUpFlag, SO.RepairSOFlag repairSOFlag, SO.ManualFlag manualFlag
  217. from SOScheduledRouting as T
  218. Left Join SOScheduledList as E on E.Site=T.Site and E.LinkedSeqNo=T.SeqNo,
  219. SORouting as D,Part as P,ShopOrder as SO
  220. <where>
  221. T.Site=D.Site and T.OrderNo=D.OrderNo and T.ItemNo=D.ItemNo and D.Site=P.Site and D.PartNo=P.PartNo
  222. and T.Site=SO.Site and T.OrderNo=SO.OrderNo and T.OrderNo<![CDATA[ <> ]]>'9999'
  223. AND T.SeqNo = #{seqNo}
  224. </where>
  225. </select>
  226. <!--获取当前的上机卷信息-->
  227. <select id="getCurrentRollOpsBySeqNo" parameterType="BaseRollData" resultType="SfdcRollOpsData">
  228. SELECT sro.Site site, sro.OrderNo orderNo, sro.RollNo rollNo, sro.ItemNo itemNo, sro.SeqNo seqNo, sro.ScanedBy scanBy, sro.ScanedDate scanDate,
  229. sro.StartProdFlag startProdFlag, sro.FirstSetupBy firstSetupBy, sro.FirstSetupDate firstSetupDate, sro.LatestSetupBy latestSetupBy,
  230. sro.LatestSetupDate latestSetupDate, sro.FirstEndSetupBy firstEndSetupBy, sro.FirstEndSetupDate firstEndSetupDate, sro.LatestEndSetupBy latestEndSetupBy,
  231. sro.LatestEndSetupDate latestEndSetupDate, sro.FirstProdBy firstProdBy, sro.FirstProdDate firstProdDate, sro.LatestProdBy latestProdBy,
  232. sro.LatestProdDate latestProdDate, sro.FirstEndProdBy firstEndProdBy, sro.FirstEndProdDate firstEndProdDate, sro.LatestEndProdBy latestEndProdBy,
  233. sro.LatestEndProdDate latestEndProdDate, sro.FinishedDate finishedDate, sro.FinishedBy finishedBy, sro.FinishedFlag finishedFlag, sro.PauseFlag pauseFlag,
  234. sro.Remark remark, sro.QtyReported qtyReported, sro.QtyDefected qtyDefected, sro.ReportedFlag reportedFlag
  235. FROM SFDC_RollOps sro
  236. <where>
  237. sro.Site = #{site} AND sro.SeqNo = #{seqNo}
  238. AND sro.FinishedFlag <![CDATA[<>]]> 'Y' AND sro.PauseFlag <![CDATA[<>]]> 'Y'
  239. </where>
  240. </select>
  241. <!--查询派工单的时间记录信息-->
  242. <select id="getSfdcTimeByCon" parameterType="SearchScheduleData" resultType="SfdcTimeData">
  243. SELECT sth.Site site, sth.OrderNo orderNo,sth.ItemNo itemNo, sth.SeqNo seqNo, sth.HistSeqNo histSeqNo, sth.RollNo rollNo,
  244. sth.EventTime eventTime, sth.Enteredby enteredby, sth.EventDesc eventDesc, sth.DowntimeCode downtimeCode, sth.TillTime tillTime,
  245. sth.TillEnteredTime tillEnteredTime, sth.TillEnteredBy tillEnteredBy, sth.CompletedFlag completedFlag, sth.TotalTime totalTime,
  246. sth.DowntimePhaseIn downtimePhaseIn
  247. FROM SFDC_TimeHist sth
  248. <where>
  249. <if test="site != null and site != ''">
  250. AND sth.Site = #{site}
  251. </if>
  252. <if test="orderNo != null and orderNo != ''">
  253. AND sth.OrderNo = #{orderNo}
  254. </if>
  255. <if test="itemNo != null and itemNo != ''">
  256. AND sth.ItemNo = #{itemNo}
  257. </if>
  258. <if test="seqNo != null and seqNo != ''">
  259. AND sth.SeqNo = #{seqNo}
  260. </if>
  261. <if test="rollNo != null and rollNo != ''">
  262. AND sth.RollNo = #{rollNo}
  263. </if>
  264. </where>
  265. ORDER BY sth.HistSeqNo DESC
  266. </select>
  267. <!--查询工单工序的刀具信息-->
  268. <select id="getOrderToolByCon" parameterType="SearchScheduleData" resultType="ToolInstanceData">
  269. SELECT st.Site site, st.OrderNo orderNo, st.ItemNo itemNo, st.ToolID toolId, th.ToolDescription toolDesc, th.Spec spec,
  270. st.ToolQty toolQty, th.UMID umid, th.FamilyID familyId, dbo.Get_PartFamilyDesc (st.Site, th.FamilyID) familyName,
  271. th.Active active, st.Remark remark, st.CreateDate createdDate, st.CreatedBy createdBy
  272. FROM SOTool st
  273. LEFT JOIN ToolHeader th ON st.Site = th.Site AND st.ToolID = th.ToolID
  274. <where>
  275. st.Site = th.Site AND st.ToolID = th.ToolID
  276. <if test="site != null and site != ''">
  277. AND st.Site = #{site}
  278. </if>
  279. <if test="orderNo != null and orderNo != ''">
  280. AND st.OrderNo = #{orderNo}
  281. </if>
  282. <if test="itemNo != null and itemNo != ''">
  283. AND st.ItemNo = #{itemNo}
  284. </if>
  285. </where>
  286. ORDER BY st.ItemNo
  287. </select>
  288. <!--查询派工单的工具记录信息-->
  289. <select id="getSfdcToolByCon" parameterType="SearchScheduleData" resultType="SfdcToolData">
  290. SELECT sth.Site site, sth.OrderNo orderNo, sth.ItemNo itemNo, sth.SeqNo seqNo, sth.HistSeqNo histSeqNo, sth.RollNo rollNo,
  291. sth.ReportDate reportedDate, sth.Reportedby reportedby, sth.ToolInstanceID toolInstanceID, sth.StartDate startDate,
  292. sth.FinishDate finishedDate, sth.FinishFlag finishedFlag, sth.Remark remark, sth.StartFromRollNo startFromRollNo, sth.FinishQty finishQty
  293. FROM SFDC_ToolingHist sth
  294. <where>
  295. <if test="site != null and site != ''">
  296. AND sth.Site = #{site}
  297. </if>
  298. <if test="orderNo != null and orderNo != ''">
  299. AND sth.OrderNo = #{orderNo}
  300. </if>
  301. <if test="itemNo != null and itemNo != ''">
  302. AND sth.ItemNo = #{itemNo}
  303. </if>
  304. <if test="seqNo != null and seqNo != ''">
  305. AND sth.SeqNo = #{seqNo}
  306. </if>
  307. <if test="rollNo != null and rollNo != ''">
  308. AND sth.RollNo = #{rollNo}
  309. </if>
  310. </where>
  311. ORDER BY sth.HistSeqNo DESC
  312. </select>
  313. <!--获取关联的客户ID-->
  314. <select id="getReferenceCustomerId" parameterType="java.lang.String" resultType="java.lang.String">
  315. SELECT ISNULL(ReferenceCustomerID, '') referenceCustomerID FROM Site
  316. WHERE SiteID = #{site}
  317. </select>
  318. <!--查询工单的bom信息-->
  319. <select id="getOrderBomByCon" parameterType="SearchScheduleData" resultType="OrderBomData">
  320. SELECT vss.Site site, vss.OrderNo orderNo, vss.ItemNo itemNo, vss.ComponentPartNo componentPartNo,
  321. /*动态sql语句*/
  322. <if test="referenceCustomerId != null and referenceCustomerId != ''">
  323. <choose>
  324. <when test="referenceCustomerId != null and referenceCustomerId != ''">
  325. ISNULL(rpi.ReferencePartDesc, P.PartDescription) partDesc, '' partSpec,
  326. </when>
  327. <otherwise>
  328. P.PartDescription partDesc, P.Spec partSpec
  329. </otherwise>
  330. </choose>
  331. </if>
  332. P.UMid partUm, vss.QtyAssembly qtyAssembly, vss.QtyFixedScrapt qtyFixedScrapt, vss.ScraptFactor scraptFactor, vss.Remark remark,
  333. vss.QtyRequired qtyRequired, vss.QtyIssue qtyIssue, vss.IssueDate issueDate, vss.QtyReserved qtyReserved, vss.MatGroup matGroup, vss.RMType_DB rmTypeDb
  334. FROM dbo.view_SAP_SOBOM vss
  335. /*动态sql语句*/
  336. <if test="referenceCustomerId != null and referenceCustomerId != ''">
  337. LEFT JOIN ReferencePartInfo rpi ON vss.Site = rpi.Site AND vss.ComponentPartNo = rpi.PartNo AND rpi.CustomerID = #{referenceCustomerId}
  338. AND (rpi.FGPartNo = #{partNo} OR rpi.FGPartNo = '全部')
  339. </if>
  340. LEFT JOIN Part P ON vss.Site = P.Site AND vss.ComponentPartNo = P.PartNo
  341. <where>
  342. vss.Site = P.Site AND vss.ComponentPartNo = P.PartNo
  343. <if test="site != null and site != ''">
  344. AND vss.Site = #{site}
  345. </if>
  346. <if test="orderNo != null and orderNo != ''">
  347. AND vss.OrderNo = #{orderNo}
  348. </if>
  349. </where>
  350. ORDER BY vss.ItemNo ASC
  351. </select>
  352. <!--查询派工单时的材料记录信息-->
  353. <select id="getSfdcMaterialByCon" parameterType="SearchScheduleData" resultType="SfdcMaterialData">
  354. SELECT smh.Site site, smh.OrderNo orderNo, smh.ItemNo itemNo, smh.SeqNo seqNo, smh.HistSeqNo histSeqNo, smh.RollNo rollNo, smh.ReportDate reportDate,
  355. smh.Reportedby reportedby, smh.RMRollNo rmRollNo, smh.PartNo partNo, smh.Remark remark, smh.StartDate startDate, smh.FinishDate finishedDate,
  356. smh.FinishFlag finishedFlag, smh.HistType histType, smh.TransGeneratedFlag transGeneratedFlag, smh.OriginalRMRollNo originalRMRollNo,
  357. smh.UnissueFlag unissueFlag, smh.TransQty transQty, smh.NetIssueQty netIssueQty, smh.OriginalHistSeqNo originalHistSeqNo, smh.StartFromRollNo startFromRollNo,
  358. smh.KeyRMFlag keyRMFlag, smh.SAPBOMItemNo sAPBOMItemNo, smh.Setupflag setupflag
  359. FROM SFDC_MaterialHist smh
  360. <where>
  361. <if test="site != null and site != ''">
  362. AND smh.Site = #{site}
  363. </if>
  364. <if test="orderNo != null and orderNo != ''">
  365. AND smh.OrderNo = #{orderNo}
  366. </if>
  367. <if test="itemNo != null and itemNo != ''">
  368. AND smh.ItemNo = #{itemNo}
  369. </if>
  370. <if test="seqNo != null and seqNo != ''">
  371. AND smh.SeqNo = #{seqNo}
  372. </if>
  373. <if test="rollNo != null and rollNo != ''">
  374. AND smh.RollNo = #{rollNo}
  375. </if>
  376. <if test="finishedFlag != null and finishedFlag != ''">
  377. AND smh.FinishFlag = #{finishedFlag}
  378. </if>
  379. <if test="keyRMFlag != null and keyRMFlag != ''">
  380. AND smh.KeyRMFlag = #{keyRMFlag}
  381. </if>
  382. <if test="histType != null and histType != ''">
  383. AND smh.HistType = #{histType}
  384. </if>
  385. </where>
  386. ORDER BY smh.HistSeqNo DESC
  387. </select>
  388. <!--按照条件查询上机卷记录-->
  389. <select id="getSfdcRollOpsByCon" parameterType="SearchScheduleData" resultType="SfdcRollOpsData">
  390. SELECT sro.Site site, sro.OrderNo orderNo, sro.RollNo rollNo, sro.ItemNo itemNo, sro.SeqNo seqNo, sro.ScanedBy scanBy, sro.ScanedDate scanDate,
  391. sro.StartProdFlag startProdFlag, sro.FirstSetupBy firstSetupBy, sro.FirstSetupDate firstSetupDate, sro.LatestSetupBy latestSetupBy,
  392. sro.LatestSetupDate latestSetupDate, sro.FirstEndSetupBy firstEndSetupBy, sro.FirstEndSetupDate firstEndSetupDate, sro.LatestEndSetupBy latestEndSetupBy,
  393. sro.LatestEndSetupDate latestEndSetupDate, sro.FirstProdBy firstProdBy, sro.FirstProdDate firstProdDate, sro.LatestProdBy latestProdBy,
  394. sro.LatestProdDate latestProdDate, sro.FirstEndProdBy firstEndProdBy, sro.FirstEndProdDate firstEndProdDate, sro.LatestEndProdBy latestEndProdBy,
  395. sro.LatestEndProdDate latestEndProdDate, sro.FinishedDate finishedDate, sro.FinishedBy finishedBy, sro.FinishedFlag finishedFlag, sro.PauseFlag pauseFlag,
  396. sro.Remark remark, sro.QtyReported qtyReported, sro.QtyDefected qtyDefected, sro.ReportedFlag reportedFlag
  397. FROM SFDC_RollOps sro
  398. <where>
  399. <if test="site != null and site != ''">
  400. AND sro.Site = #{site}
  401. </if>
  402. <if test="orderNo != null and orderNo != ''">
  403. AND sro.OrderNo = #{orderNo}
  404. </if>
  405. <if test="itemNo != null and itemNo != ''">
  406. AND sro.ItemNo = #{itemNo}
  407. </if>
  408. <if test="seqNo != null and seqNo != ''">
  409. AND sro.SeqNo = #{seqNo}
  410. </if>
  411. <if test="rollNo != null and rollNo != ''">
  412. AND sro.RollNo = #{rollNo}
  413. </if>
  414. </where>
  415. ORDER BY sro.RollNo DESC
  416. </select>
  417. <!--查询派工单的不良信息记录-->
  418. <select id="getSfdcDefectByCon" parameterType="SearchScheduleData" resultType="SfdcDefectData">
  419. SELECT sdh.Site site, sdh.OrderNo orderNo, sdh.ItemNo itemNo, sdh.SeqNo seqNo, sdh.HistSeqNo histSeqNo, sdh.RollNo rollNo,
  420. sdh.ReportDate reportedDate, sdh.Reportedby reportedBy, sdh.DefectCode defectCode, sdh.DefectQty defectQty, sdh.Remark remark,
  421. (SELECT idc.DefectDesc FROM InspectionDefectCode idc WHERE idc.Site = sdh.Site AND idc.DefectCode = sdh.DefectCode) defectDesc
  422. FROM SFDC_DefectHist sdh
  423. <where>
  424. <if test="site != null and site != ''">
  425. AND sdh.Site = #{site}
  426. </if>
  427. <if test="orderNo != null and orderNo != ''">
  428. AND sdh.OrderNo = #{orderNo}
  429. </if>
  430. <if test="itemNo != null and itemNo != ''">
  431. AND sdh.ItemNo = #{itemNo}
  432. </if>
  433. <if test="seqNo != null and seqNo != ''">
  434. AND sdh.SeqNo = #{seqNo}
  435. </if>
  436. <if test="rollNo != null and rollNo != ''">
  437. AND sdh.RollNo = #{rollNo}
  438. </if>
  439. </where>
  440. ORDER BY sdh.HistSeqNo DESC
  441. </select>
  442. <!--查询派工单的下机卷信息-->
  443. <select id="getSfdcRollByCon" parameterType="SearchScheduleData" resultType="SfdcRollData">
  444. SELECT sfr.Site site, sfr.OrderNo orderNo, sfr.RollNo rollNo, sfr.CreatedDate createdDate, sfr.Createdby createdby, sfr.CurrentOpsItemNo currentOpsItemNo,
  445. sfr.LastFinishedOpsItemNo lastFinishedOpsItemNo, sfr.FinishedDate finishedDate, sfr.FinishedFlag finishedFlag, sfr.OnLineFlag onLineFlag,
  446. sfr.PauseFlag pauseFlag, sfr.OriRollNo oriRollNo, sfr.StartOpsItemNo startOpsItemNo, sfr.RollType rollType, sfr.CreatedOpsItemNo createdOpsItemNo,
  447. sfr.CreatedOpsSeqNo createdOpsSeqNo, sfr.RollQty rollQty, sfr.FirstLevelRollNo firstLevelRollNo, sfr.VirtualRollFlag virtualRollFlag
  448. FROM SFDC_Rolls sfr
  449. <where>
  450. <if test="site != null and site != ''">
  451. AND sfr.Site = #{site}
  452. </if>
  453. <if test="orderNo != null and orderNo != ''">
  454. AND sfr.OrderNo = #{orderNo}
  455. </if>
  456. <if test="itemNo != null and itemNo != ''">
  457. AND sfr.CreatedOpsItemNo = #{itemNo}
  458. </if>
  459. <if test="seqNo != null and seqNo != ''">
  460. AND sfr.CreatedOpsSeqNo = #{seqNo}
  461. </if>
  462. <if test="rollNo != null and rollNo != ''">
  463. AND sfr.RollNo = #{rollNo}
  464. </if>
  465. </where>
  466. ORDER BY sfr.RollNo
  467. </select>
  468. <!--查询报工数据-->
  469. <select id="getSfdcDataByCon" parameterType="SearchScheduleData" resultType="SfdcData">
  470. SELECT SUM (ApproveQty) approveQty, SUM (ReportQty - ApproveQty) defectQty, SUM (ReportedManfTime) reportedManfTime,
  471. SUM (Downtime) downtime
  472. FROM SFDC
  473. <where>
  474. <if test="site != null and site != ''">
  475. AND Site = #{site}
  476. </if>
  477. <if test="orderNo != null and orderNo != ''">
  478. AND OrderNo = #{orderNo}
  479. </if>
  480. <if test="itemNo != null and itemNo != ''">
  481. AND ItemNo = #{itemNo}
  482. </if>
  483. <if test="seqNo != null and seqNo != ''">
  484. AND AssJobSeqNo = #{seqNo}
  485. </if>
  486. <if test="rollNo != null and rollNo != ''">
  487. AND RollNo = #{rollNo}
  488. </if>
  489. </where>
  490. </select>
  491. <!--查询sfdc_roll表的数据-->
  492. <select id="getSfdcRollReportedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
  493. SELECT SUM(RollQty) reportedQty FROM SFDC_Rolls sfr
  494. <where>
  495. <if test="site != null and site != ''">
  496. AND sfr.Site = #{site}
  497. </if>
  498. <if test="orderNo != null and orderNo != ''">
  499. AND sfr.OrderNo = #{orderNo}
  500. </if>
  501. <if test="itemNo != null and itemNo != ''">
  502. AND sfr.CreatedOpsItemNo = #{itemNo}
  503. </if>
  504. <if test="seqNo != null and seqNo != ''">
  505. AND sfr.CreatedOpsSeqNo = #{seqNo}
  506. </if>
  507. <if test="rollNo != null and rollNo != ''">
  508. AND sfr.OriRollNo = #{rollNo}
  509. </if>
  510. <choose>
  511. <when test='switchKey != null and switchKey == "V"'>
  512. AND sfr.VirtualRollFlag<![CDATA[<>]]>'Y'
  513. </when>
  514. <when test='switchKey != null and switchKey == "VC"'>
  515. AND NOT(T.VirtualRollFlag='N' AND T.CombineFlag='Y')
  516. </when>
  517. </choose>
  518. AND sfr.RollType_DB<![CDATA[<>]]>'C'
  519. </where>
  520. </select>
  521. <!--统计是否报工过-->
  522. <select id="countSfdcRollByRollNo" parameterType="SearchScheduleData" resultType="java.lang.Integer">
  523. SELECT COUNT(1) FROM SFDC_Rolls sfr
  524. <where>
  525. <if test="site != null and site != ''">
  526. AND sfr.Site = #{site}
  527. </if>
  528. <if test="orderNo != null and orderNo != ''">
  529. AND sfr.OrderNo = #{orderNo}
  530. </if>
  531. <if test="itemNo != null and itemNo != ''">
  532. AND sfr.CreatedOpsItemNo = #{itemNo}
  533. </if>
  534. <if test="seqNo != null and seqNo != ''">
  535. AND sfr.CreatedOpsSeqNo = #{seqNo}
  536. </if>
  537. <if test="rollNo != null and rollNo != ''">
  538. AND sfr.OriRollNo = #{rollNo}
  539. </if>
  540. AND sfr.RollType_DB<![CDATA[<>]]>'C'
  541. </where>
  542. </select>
  543. <!--查询sfdcdefect的数据-->
  544. <select id="getSfdcDefectDefectedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
  545. SELECT SUM(sfd.DefectQty) defectQty FROM SFDC_DefectHist sfd
  546. <where>
  547. <if test="site != null and site != ''">
  548. AND sfd.Site = #{site}
  549. </if>
  550. <if test="orderNo != null and orderNo != ''">
  551. AND sfd.OrderNo = #{orderNo}
  552. </if>
  553. <if test="itemNo != null and itemNo != ''">
  554. AND sfd.ItemNo = #{itemNo}
  555. </if>
  556. <if test="seqNo != null and seqNo != ''">
  557. AND sfd.SeqNo = #{seqNo}
  558. </if>
  559. <if test="rollNo != null and rollNo != ''">
  560. AND sfd.RollNo = #{rollNo}
  561. </if>
  562. </where>
  563. </select>
  564. <!--查询sfdc_time_hist的数据-->
  565. <select id="countSfdcTimeQty" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  566. SELECT SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始调机'
  567. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  568. ELSE 0.0 END) totalSetupTime
  569. ,SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='调机'
  570. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  571. ELSE 0.0 END) totalDowntimeTime_Setup
  572. ,SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始生产'
  573. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  574. ELSE 0.0 END) totalProdTime
  575. ,SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='生产'
  576. THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
  577. ELSE 0.0 END) totalDowntimeTime_Prod
  578. ,SUM(CASE WHEN CompletedFlag='N' THEN 1.0 ELSE 0.0 END) unCloseLeft
  579. FROM SFDC_TimeHist sfd
  580. <where>
  581. <if test="site != null and site != ''">
  582. AND sfd.Site = #{site}
  583. </if>
  584. <if test="orderNo != null and orderNo != ''">
  585. AND sfd.OrderNo = #{orderNo}
  586. </if>
  587. <if test="ItemNo != null and itemNo != ''">
  588. AND sfd.ItemNo = #{itemNo}
  589. </if>
  590. <if test="seqNo != null and seqNo != ''">
  591. AND sfd.SeqNo = #{seqNo}
  592. </if>
  593. <if test="rollNo != null and rollNo != ''">
  594. AND sfd.RollNo = #{rollNo}
  595. </if>
  596. </where>
  597. </select>
  598. <!--查询sfdc_time_hist的数据-->
  599. <select id="getSfdcTimeMaxAndMinTime" parameterType="SearchScheduleData" resultType="java.util.HashMap">
  600. SELECT MIN(sfd.EventTime) eventTime, COUNT(1) sl, SUM(TotalTime) totalTime,
  601. MAX((CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate()END)) tillTime
  602. FROM SFDC_TimeHist sfd
  603. <where>
  604. <if test="site != null and site != ''">
  605. AND sfd.Site = #{site}
  606. </if>
  607. <if test="orderNo != null and orderNo != ''">
  608. AND sfd.OrderNo = #{orderNo}
  609. </if>
  610. <if test="ItemNo != null and itemNo != ''">
  611. AND sfd.ItemNo = #{itemNo}
  612. </if>
  613. <if test="seqNo != null and seqNo != ''">
  614. AND sfd.SeqNo = #{seqNo}
  615. </if>
  616. <if test="rollNo != null and rollNo != ''">
  617. AND sfd.RollNo = #{rollNo}
  618. </if>
  619. AND sfd.EventType='P'
  620. </where>
  621. </select>
  622. </mapper>