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.

907 lines
36 KiB

7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
4 months ago
7 months ago
4 months ago
4 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
4 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
4 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months 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.shopOrder.dao.ShopOrderMapper">
  4. <!-- =============生产订单类型===================-->
  5. <select id="getShopOrderFamily" resultType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
  6. Select OrderType, TypeDesc, Site, Active
  7. from SOOrderType as T
  8. where T.Site in (Select Site from AccessSite where upper(UserID) = #{user})
  9. </select>
  10. <insert id="saveShopOrderFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
  11. INSERT INTO SOOrderType (OrderType, TypeDesc, Site, Active)
  12. values (#{orderType}, #{typeDesc}, #{site}, #{active})
  13. </insert>
  14. <update id="editShopOrderFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
  15. UPDATE SOOrderType
  16. SET TypeDesc=#{typeDesc},
  17. Active=#{active},
  18. Site=#{site}
  19. where OrderType = #{orderType}
  20. and Site = #{site}
  21. </update>
  22. <delete id="deleteShopOrderFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
  23. delete
  24. from SOOrderType
  25. where OrderType = #{orderType}
  26. and Site = #{site}
  27. </delete>
  28. <select id="checkOrderType" resultType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
  29. select OrderType, TypeDesc
  30. from SOOrderType
  31. where OrderType = #{orderType}
  32. and Site = #{site}
  33. </select>
  34. <!-- =============生产计划===================-->
  35. <select id="getPlanFamily" resultType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
  36. Select PlannerType, TypeDesc, Site, Active
  37. from SOPlanner as T
  38. where T.Site in (Select Site from AccessSite where upper(UserID) = #{user})
  39. </select>
  40. <insert id="savePlanFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
  41. INSERT INTO SOPlanner (PlannerType, TypeDesc, Site, Active)
  42. values (#{plannerType}, #{typeDesc}, #{site}, #{active})
  43. </insert>
  44. <update id="editPlanFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
  45. UPDATE SOPlanner
  46. SET TypeDesc=#{typeDesc},
  47. Active=#{active},
  48. Site=#{site}
  49. where PlannerType = #{plannerType}
  50. and Site = #{site}
  51. </update>
  52. <delete id="deletePlanFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
  53. delete
  54. from SOPlanner
  55. where PlannerType = #{plannerType}
  56. and Site = #{site}
  57. </delete>
  58. <select id="checkPlannerType" resultType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
  59. select PlannerType, TypeDesc
  60. from SOPlanner
  61. where PlannerType = #{plannerType}
  62. and Site = #{site}
  63. </select>
  64. <!-- 查询-生产订单无工艺路线 -->
  65. <select id="searchShopOrderWithNoProcessRoute"
  66. resultType="com.gaotao.modules.shopOrder.entity.ShopOrderWithNoProcessRouteData">
  67. Select * from view_SOrouting_check as T
  68. <where>
  69. AND T.site in (Select Site from AccessSite where upper(UserID)=#{user})
  70. <if test=" site != null and site != ''">
  71. AND Site like '%' + #{site} + '%'
  72. </if>
  73. <if test=" orderNo != null and orderNo != ''">
  74. AND OrderNo like '%' + #{orderNo} + '%'
  75. </if>
  76. <if test=" partNo != null and partNo != ''">
  77. AND PartNo like '%' + #{partNo} + '%'
  78. </if>
  79. <if test=" date1 != null ">
  80. AND EnterDate >= #{date1}
  81. </if>
  82. <if test=" date2 != null ">
  83. AND dateadd( DAY, 1, #{date2} ) > EnterDate
  84. </if>
  85. </where>
  86. </select>
  87. <select id="searchProductionDispatchList" resultType="com.gaotao.modules.shopOrder.entity.SearchProductionDispatchListData">
  88. SELECT
  89. <if test="page != null and limit != null">
  90. COUNT(*) OVER() AS totalCount,
  91. </if>
  92. T.Site,
  93. T.OrderNo,
  94. T.ItemNo,
  95. S.OperationDesc,
  96. S.PartNo,
  97. P.PartDescription,
  98. P.Spec,
  99. T.QtyRequired AS LotSize,
  100. T.QtyReported,
  101. (T.QtyRequired - T.QtyReported) as qtyToReport,
  102. D.NeedDate,
  103. S.PreItemNo,
  104. S1.OperationDesc AS PreOperationDesc,
  105. S1.ScheduledFlag AS PreScheduledFlag,
  106. S.NextItemNo,
  107. S2.OperationDesc AS NextOperationDesc,
  108. S2.ScheduledFlag AS NextScheduledFlag,
  109. D.CustomerID,
  110. C.CustomerName AS CustomerName,
  111. D.EnterDate,
  112. dbo.Get_SOOpsScheduleAvailResource (
  113. T.Site,
  114. T.OrderNo,
  115. T.S_WorkCenterNo,
  116. T.ItemNo
  117. ) AS AvailResource,
  118. T.S_WorkCenterNo AS WorkCenterNo,
  119. S.MachRunFactor,
  120. S.MachSetupTime,
  121. S.FactorUnit,
  122. T.ClosedFlag,
  123. isnull(E.S_ScheduledSeqNo ,- 1) AS S_ScheduledSeqNo,
  124. T.PlanStartTime,
  125. T.PlanFinishTime,
  126. T.S_ResourceID,
  127. ROUND(T.TimeRequired,2),
  128. T.SeqNo,
  129. T.SelectedFlag,
  130. T.SourceFlag,
  131. S1.QtyScheduled AS QtyScheduled_PreOps,
  132. T.ParkFlag,
  133. ROUND(T.TimeRequired_Original,2),
  134. T.QtyRequired_Original,
  135. S1.PlanStartTime AS PreOpsPlanStartTime,
  136. S1.PlanFinishTime AS PreOpsPlanFinishTime,
  137. T.EnteredDate,
  138. (
  139. CASE
  140. WHEN S1.PlanStartTime > T.PlanStartTime THEN
  141. 'Y'
  142. ELSE
  143. 'N'
  144. END
  145. ) AS InAdvancedFlag,
  146. P.Remark AS CustPartNo,
  147. T.ClosedDate,
  148. T.closedby,
  149. T.serial_number AS serialNumber,
  150. d.total_roll,
  151. ISNULL(R.RollCount, 0) AS rollCount,
  152. D.LotSize AS OrderQty
  153. FROM
  154. SOScheduledRouting AS T
  155. INNER JOIN SORouting AS S WITH(NOLOCK) ON T.Site = S.Site AND T.OrderNo = S.OrderNo AND T.ItemNo = S.ItemNo
  156. LEFT JOIN ShopOrder AS D WITH(NOLOCK) ON T.Site = D.Site AND T.OrderNo = D.OrderNo
  157. LEFT JOIN SOScheduledList AS E WITH(NOLOCK) ON E.Site = T.Site AND E.LinkedSeqNo = T.SeqNo and T.S_ResourceID = E.ResourceID
  158. LEFT JOIN Part AS P WITH(NOLOCK) ON S.Site = P.Site AND S.PartNo = P.PartNo
  159. LEFT JOIN SORouting AS S1 WITH(NOLOCK) ON S.Site = S1.Site AND S.OrderNo = S1.OrderNo AND S.PreItemNo = S1.ItemNo
  160. LEFT JOIN SORouting AS S2 WITH(NOLOCK) ON S.Site = S2.Site AND S.OrderNo = S2.OrderNo AND S.NextItemNo = S2.ItemNo
  161. LEFT JOIN (SELECT Site, CreatedOpsSeqNo, COUNT(1) AS RollCount FROM SFDC_Rolls WITH(NOLOCK) WHERE RollType = '下道流转' GROUP BY Site, CreatedOpsSeqNo) AS R ON R.Site = T.Site AND R.CreatedOpsSeqNo = T.SeqNo
  162. LEFT JOIN Customer C WITH(NOLOCK) ON D.Site = C.Site AND D.CustomerID = C.CustomerID
  163. <where>
  164. AND T.Site = S.Site
  165. AND T.OrderNo = S.OrderNo
  166. AND T.ItemNo = S.ItemNo
  167. <if test="site != null and site != ''">
  168. AND T.Site like '%' + #{site} + '%'
  169. </if>
  170. <if test="orderNo != null and orderNo != ''">
  171. AND T.OrderNo like '%' + #{orderNo} + '%'
  172. </if>
  173. <if test="seqNo != null">
  174. AND T.SeqNo like '%' + CAST(CAST(#{seqNo} AS BIGINT) AS VARCHAR) + '%'
  175. </if>
  176. <if test="partNo != null and partNo != ''">
  177. AND S.PartNo like '%' + #{partNo} + '%'
  178. </if>
  179. <if test="sResourceID != null and sResourceID != ''">
  180. AND T.S_ResourceID like '%' + #{sResourceID} + '%'
  181. </if>
  182. <if test="workCenterNo != null and workCenterNo != ''">
  183. AND T.S_WorkCenterNo like '%' + #{workCenterNo} + '%'
  184. </if>
  185. <if test="date1 != null ">
  186. AND D.EnterDate >= #{date1}
  187. </if>
  188. <if test="date2 != null ">
  189. AND dateadd( DAY, 1, #{date2} ) > D.EnterDate
  190. </if>
  191. <if test="date3 != null ">
  192. AND T.PlanStartTime >= #{date3}
  193. </if>
  194. <if test="date4 != null ">
  195. AND dateadd( DAY, 1, #{date4} ) > T.PlanStartTime
  196. </if>
  197. <if test="date5 != null ">
  198. AND T.PlanFinishTime>= #{date5}
  199. </if>
  200. <if test="date6 != null ">
  201. AND dateadd( DAY, 1, #{date6} ) > T.PlanFinishTime
  202. </if>
  203. <if test="closedFlag != null and closedFlag != ''">
  204. AND T.ClosedFlag = #{closedFlag}
  205. </if>
  206. <if test="parkFlag != null and parkFlag != ''">
  207. AND T.ParkFlag = #{parkFlag}
  208. </if>
  209. ${sql}
  210. </where>
  211. ORDER BY d.bu_no, T.S_ResourceID, ISNULL(T.serial_number, 999999)
  212. <if test="page != null and limit != null">
  213. OFFSET #{page} ROWS FETCH NEXT #{limit} ROWS ONLY
  214. </if>
  215. </select>
  216. <select id="searchShopOrder" resultType="com.gaotao.modules.shopOrder.entity.SearchShopOrder">
  217. Select T.OrderNo,T.NeedDate,T.OrderType,T.PartNo,p.PartDescription+' / '+isnull(p.Spec,'') as PartDescription,
  218. T.LotSize,T.Planner,T.Status,T.CustomerID,P.ConfigurationTemplateID as CustomerName,T.PlanStartDate,T.Leadtime,
  219. T.EnterDate,T.Username,T.FinishedQty,T.ReleaseDate,T.ReleaseGuys,T.ScheduleDate,T.Scheduler,T.IssueDate,
  220. T.ReportDate,T.ReceiveDate,T.Printed,T.ProjectID,pr.ProjectName,T.BOMRevNo,T.RoutingRevNo,T.OriginalNeedDate,
  221. T.OrderRef1,T.OrderRef2,T.Site,T.Remark,CostRollUpFlag,T.ManualFlag,T.OriSOOrderNo,P.FamilyID,
  222. dbo.Get_PartFamilyDesc(P.Site,P.FamilyID) as FamilyName,P.GroupID,dbo.Get_PartGroupDesc(P.Site,P.GroupID) as
  223. GroupName,
  224. T.ReceiveStatus,T.RepairSOFlag,T.E_OriginalOrderType,T.E_OriginalOrderNo,T.E_Levels,P.PartType,P.Remark as
  225. CustPartNo,
  226. T.NeedDate as COPlanShipDate
  227. from Part as p,ShopOrder as T
  228. left join Project as pr on pr.Site=T.Site and pr.Projectid=T.ProjectID
  229. <where>
  230. AND T.Site=p.Site and T.PartNo=p.PartNo
  231. and T.site in (Select Site from AccessSite where upper(UserID)=#{user})
  232. <if test=" orderType != null and orderType != ''">
  233. AND T.OrderType like '%' + #{orderType} + '%'
  234. </if>
  235. <if test=" planner != null and planner != ''">
  236. AND T.Planner like '%' + #{planner} + '%'
  237. </if>
  238. <if test=" site != null and site != ''">
  239. AND T.Site like '%' + #{site} + '%'
  240. </if>
  241. <if test=" buNo != null and buNo != ''">
  242. AND T.bu_no like '%' + #{buNo} + '%'
  243. </if>
  244. <if test=" partType != null and partType != ''">
  245. AND P.PartType like '%' + #{partType} + '%'
  246. </if>
  247. <if test=" partNo != null and partNo != ''">
  248. AND T.PartNo like '%' + #{partNo} + '%'
  249. </if>
  250. <if test=" partDescription != null and partDescription != ''">
  251. AND p.PartDescription like '%' + #{partDescription} + '%'
  252. </if>
  253. <if test=" projectID != null and projectID != ''">
  254. AND T.ProjectID like '%' + #{projectID} + '%'
  255. </if>
  256. <if test=" remark != null and remark != ''">
  257. AND T.Remark like '%' + #{remark} + '%'
  258. </if>
  259. <if test=" orderNo != null and orderNo != ''">
  260. AND T.OrderNo like '%' + #{orderNo} + '%'
  261. </if>
  262. <if test=" orderRef1 != null and orderRef1 != ''">
  263. AND T.OrderRef1 like '%' + #{orderRef1} + '%'
  264. </if>
  265. <if test=" costRollUpFlag != null and costRollUpFlag != ''">
  266. AND CostRollUpFlag like '%' + #{costRollUpFlag} + '%'
  267. </if>
  268. <if test=" statusList != null and statusList.size > 0 ">
  269. AND T.Status in
  270. <foreach item="item" collection="statusList" open="(" separator="," close=")">
  271. #{item}
  272. </foreach>
  273. </if>
  274. <if test=" date1 != null ">
  275. AND T.EnterDate >= #{date1}
  276. </if>
  277. <if test=" date2 != null ">
  278. AND dateadd( DAY, 1, #{date2} ) > T.EnterDate
  279. </if>
  280. <if test=" date3 != null ">
  281. AND T.PlanStartDate >= #{date3}
  282. </if>
  283. <if test=" date4 != null ">
  284. AND dateadd( DAY, 1, #{date4} ) > T.PlanStartDate
  285. </if>
  286. </where>
  287. </select>
  288. <select id="searchShopOrderByPaging" parameterType="com.gaotao.modules.shopOrder.entity.SearchShopOrder" resultType="com.gaotao.modules.shopOrder.entity.SearchShopOrder">
  289. Select
  290. T.OrderNo,
  291. T.NeedDate,
  292. T.OrderType,
  293. T.PartNo,
  294. p.PartDescription + ' / ' + isnull(p.Spec, '') AS PartDescription,
  295. T.LotSize,
  296. T.Planner,
  297. T.Status,
  298. T.CustomerID,
  299. P.ConfigurationTemplateID AS CustomerName,
  300. T.PlanStartDate,
  301. T.Leadtime,
  302. T.EnterDate,
  303. T.Username,
  304. T.FinishedQty,
  305. T.ReleaseDate,
  306. T.ReleaseGuys,
  307. T.ScheduleDate,
  308. T.Scheduler,
  309. T.IssueDate,
  310. T.ReportDate,
  311. T.ReceiveDate,
  312. T.Printed,
  313. T.ProjectID,
  314. pr.ProjectName,
  315. T.BOMRevNo,
  316. T.RoutingRevNo,
  317. T.OriginalNeedDate,
  318. T.OrderRef1,
  319. T.OrderRef2,
  320. T.Site,
  321. T.Remark,
  322. CostRollUpFlag,
  323. T.ManualFlag,
  324. T.OriSOOrderNo,
  325. P.FamilyID,
  326. dbo.Get_PartFamilyDesc (P.Site, P.FamilyID) AS FamilyName,
  327. P.GroupID,
  328. dbo.Get_PartGroupDesc (P.Site, P.GroupID) AS GroupName,
  329. T.ReceiveStatus,
  330. T.RepairSOFlag,
  331. T.E_OriginalOrderType,
  332. T.E_OriginalOrderNo,
  333. T.E_Levels,
  334. P.PartType,
  335. P.Remark AS CustPartNo,
  336. T.NeedDate AS COPlanShipDate,
  337. T.batch_no batchNo,
  338. (SELECT COUNT(1) FROM SOScheduledRouting where Site = T.site and OrderNo = T.OrderNo ) AS apsResourceTotal,
  339. (SELECT COUNT(1) FROM SOScheduledRouting where Site = T.site and OrderNo = T.OrderNo AND QtyReported <![CDATA[<=]]> 0 AND TimeReported <![CDATA[<=]]> 0 ) AS notYetStartedResourceTotal,
  340. <!--(SELECT ROUND(SUM(issureQty),3) FROM SOIssueNotifyOrderList where Site = T.site and sOOrderNo = T.OrderNo)--> 0 alreadyApplyTotal
  341. from Part as p,ShopOrder as T
  342. left join Project as pr on pr.Site=T.Site and pr.Projectid=T.ProjectID
  343. <where>
  344. AND T.Site = p.Site and T.PartNo = p.PartNo
  345. and T.site in (Select Site from AccessSite where upper(UserID)=#{query.user})
  346. <if test=" query.orderType != null and query.orderType != ''">
  347. AND T.OrderType like '%' + #{query.orderType} + '%'
  348. </if>
  349. <if test=" query.planner != null and query.planner != ''">
  350. AND T.Planner like '%' + #{query.planner} + '%'
  351. </if>
  352. <if test=" query.site != null and query.site != ''">
  353. AND T.Site like '%' + #{query.site} + '%'
  354. </if>
  355. <if test=" query.buNo != null and query.buNo != ''">
  356. AND T.bu_no like '%' + #{query.buNo} + '%'
  357. </if>
  358. <if test=" query.partType != null and query.partType != ''">
  359. AND P.PartType like '%' + #{query.partType} + '%'
  360. </if>
  361. <if test=" query.partNo != null and query.partNo != ''">
  362. AND T.PartNo like '%' + #{query.partNo} + '%'
  363. </if>
  364. <if test=" query.statusList != null and query.statusList.size > 0 ">
  365. AND T.Status in
  366. <foreach item="item" collection="query.statusList" open="(" separator="," close=")">
  367. #{item}
  368. </foreach>
  369. </if>
  370. <if test=" query.partDescription != null and query.partDescription != ''">
  371. AND p.PartDescription like '%' + #{query.partDescription} + '%'
  372. </if>
  373. <if test=" query.projectID != null and query.projectID != ''">
  374. AND T.ProjectID like '%' + #{query.projectID} + '%'
  375. </if>
  376. <if test=" query.remark != null and query.remark != ''">
  377. AND T.Remark like '%' + #{query.remark} + '%'
  378. </if>
  379. <if test=" query.orderNo != null and query.orderNo != ''">
  380. AND T.OrderNo like '%' + #{query.orderNo} + '%'
  381. </if>
  382. <if test=" query.orderRef1 != null and query.orderRef1 != ''">
  383. AND T.OrderRef1 like '%' + #{query.orderRef1} + '%'
  384. </if>
  385. <if test=" query.costRollUpFlag != null and query.costRollUpFlag != ''">
  386. AND CostRollUpFlag like '%' + #{query.costRollUpFlag} + '%'
  387. </if>
  388. <if test=" query.statusList != null and query.statusList.size > 0 ">
  389. AND T.Status in
  390. <foreach item="item" collection="query.statusList" open="(" separator="," close=")">
  391. #{item}
  392. </foreach>
  393. </if>
  394. <if test=" query.date1 != null ">
  395. AND T.EnterDate >= #{query.date1}
  396. </if>
  397. <if test=" query.date2 != null ">
  398. AND dateadd( DAY, 1, #{query.date2} ) > T.EnterDate
  399. </if>
  400. <if test=" query.date3 != null ">
  401. AND T.PlanStartDate >= #{query.date3}
  402. </if>
  403. <if test=" query.date4 != null ">
  404. AND dateadd( DAY, 1, #{query.date4} ) > T.PlanStartDate
  405. </if>
  406. </where>
  407. </select>
  408. <select id="getShopOrderData" resultType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
  409. SELECT
  410. T.*,
  411. dbo.Get_ProjectDesc(T.Site,T.ProjectID) as ProjectIDName,
  412. P.Remark as PartRemark,
  413. P.ConfigurationTemplateID,
  414. P.UMID,
  415. p.PartDescription + ' / ' + isnull(p.Spec,'') as PartDesc,
  416. t.total_roll
  417. FROM
  418. ShopOrder AS T
  419. LEFT JOIN
  420. Part as P ON P.Site=T.Site and P.PartNo=T.PartNo
  421. <where>
  422. AND MaterialSplitFlag = 'N'
  423. and T.Site IN (
  424. SELECT
  425. Site
  426. FROM
  427. AccessSite
  428. WHERE
  429. UPPER (UserID) = #{user}
  430. )
  431. <if test=" orderNo != null and orderNo != ''">
  432. AND T.OrderNo like '%' + #{orderNo} + '%'
  433. </if>
  434. <if test=" site != null and site != ''">
  435. AND T.Site like '%' + #{site} + '%'
  436. </if>
  437. <if test=" partNo != null and partNo != ''">
  438. AND T.PartNo like '%' + #{partNo} + '%'
  439. </if>
  440. <if test=" status != null and status != ''">
  441. AND T.Status = #{status}
  442. </if>
  443. <if test=" date1 != null ">
  444. AND T.NeedDate >= #{date1}
  445. </if>
  446. <if test=" date2 != null ">
  447. AND dateadd( DAY, 1, #{date2} ) > T.NeedDate
  448. </if>
  449. <if test=" date3 != null ">
  450. AND T.PlanStartDate >= #{date3}
  451. </if>
  452. <if test=" date4 != null ">
  453. AND dateadd( DAY, 1, #{date4} ) > T.PlanStartDate
  454. </if>
  455. </where>
  456. </select>
  457. <delete id="deleteShopOrderData">
  458. delete
  459. from ShopOrder
  460. where site = #{site}
  461. and orderNo = #{orderNo}
  462. </delete>
  463. <delete id="deleteRouteInShopOrder">
  464. delete
  465. from SORouting
  466. where site = #{site}
  467. and orderNo = #{orderNo}
  468. and itemNo = #{itemNo}
  469. </delete>
  470. <insert id="insertRouteInShopOrder">
  471. insert into SORouting (Site, OrderNo, ItemNo, OperationDesc,
  472. WorkCenterNo, MachSetupTime, MachRunFactor,
  473. FactorUnit_DB, FactorUnit, QtyRequired,
  474. QtyReported, QtyApprove, TimeRequired,
  475. TimeReported, Efficiency, PlanStartTime,
  476. PlanFinishTime, BarcodeID, Remark,
  477. PartNo, Crewsize, ClosedFlag,
  478. ActionNotes, QtyScheduled)
  479. values (#{site}, #{orderNo}, #{itemNo}, #{operationDesc}, #{workCenterNo}, #{machSetupTime}, #{machRunFactor},
  480. #{factorUnit_DB},
  481. #{factorUnit}, #{qtyRequired}, #{qtyReported}, #{qtyApprove}, #{timeRequired}, #{timeReported},
  482. #{efficiency},
  483. #{planStartTime}, #{planFinishTime}, #{barcodeID}, #{remark}, #{partNo}, #{crewsize}, #{closedFlag},
  484. #{actionNotes}, 0)
  485. </insert>
  486. <delete id="deleteAvailResourceInShopOrder">
  487. delete from SORouting_AvailableResource where site=#{site} and orderNo=#{orderNo} and ItemNo=#{itemNo}
  488. </delete>
  489. <update id="updateRouteInShopOrder">
  490. update SORouting
  491. set OperationDesc = #{operationDesc}
  492. , WorkCenterNo = #{workCenterNo}
  493. , MachSetupTime = #{machSetupTime}
  494. , MachRunFactor = #{machRunFactor}
  495. , FactorUnit = #{factorUnit}
  496. , Efficiency =#{efficiency}
  497. , TimeReported =#{timeRequired}
  498. , PlanFinishTime = #{planFinishTime}
  499. , PlanStartTime = #{planStartTime}
  500. , Crewsize = #{crewsize}
  501. , Remark= #{remark}
  502. where site = #{site}
  503. and OrderNo = #{orderNo}
  504. and ItemNo = #{itemNo}
  505. </update>
  506. <select id="getRoutingTimeRequired" resultType="java.math.BigDecimal">
  507. select dbo.Get_Routing_TimeRequired(#{site}, #{lotSize}, #{machSetupTime}, #{machRunFactor}, #{factorUnit},
  508. #{efficiency})
  509. </select>
  510. <select id="getWorkCenterInfo" resultType="com.gaotao.modules.shopOrder.entity.vo.WorkCenterVo">
  511. Select WorkCenterNo Work_Center_No,
  512. WorkCenterDesc Work_Center_Desc,
  513. WorkCenterType Work_Center_Type,
  514. Active,
  515. Site
  516. from WorkCenter
  517. where WorkCenterNo = #{workCenterNo}
  518. and Site = #{site}
  519. </select>
  520. <select id="getOrderNoRouteInMaxItemNo" resultType="java.lang.String">
  521. select max(itemno)
  522. from SORouting
  523. where site = #{site}
  524. and orderNo = #{orderNo}
  525. </select>
  526. <select id="getOrderNoItemNoCenter" resultType="java.lang.String">
  527. select dbo.Get_SORoutingAvailResource(#{site}, #{orderNo}, #{workCenterNo}, #{itemNo})
  528. </select>
  529. <update id="saveShopOrderData" parameterType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
  530. update ShopOrder
  531. set NeedDate=#{needDate},
  532. PlanStartDate=#{planStartDate},
  533. OriginalNeedDate=#{originalNeedDate},
  534. OrderType=#{orderType},
  535. Planner=#{planner},
  536. OriSOOrderNo=#{oriSOOrderNo},
  537. ProjectID=#{projectID},
  538. Leadtime=#{leadtime,jdbcType=FLOAT},
  539. RepairSOFlag=#{repairSOFlag},
  540. TechInfo=#{techInfo},
  541. Remark=#{remark},
  542. batch_no=#{batchNo},
  543. total_roll=#{totalRoll,jdbcType=INTEGER}
  544. where Site = #{site}
  545. and OrderNo = #{orderNo}
  546. </update>
  547. <select id="getRouteInShopOrderData" resultType="com.gaotao.modules.shopOrder.entity.RouteInShopOrderData">
  548. Select R.Site
  549. , R.OrderNo
  550. , R.ItemNo
  551. , R.OperationDesc
  552. , R.WorkCenterNo
  553. , W.WorkCenterDesc
  554. , R.MachSetupTime
  555. , R.MachRunFactor
  556. , R.FactorUnit_DB
  557. , R.FactorUnit
  558. , R.QtyRequired
  559. , R.production_qty as productionQty
  560. , R.total_roll_qty as totalRollQty
  561. , R.total_per_volume as totalPerVolume
  562. , R.QtyReported
  563. , R.QtyApprove
  564. , R.TimeRequired
  565. , R.TimeReported
  566. , R.Efficiency
  567. , R.PlanStartTime
  568. , R.PlanFinishTime
  569. , R.BarcodeID
  570. , R.Remark
  571. , R.PartNo
  572. , R.Crewsize
  573. , R.ClosedFlag
  574. , R.ActionNotes
  575. , W.WorkCenterType
  576. , dbo.Get_SORoutingAvailResource(R.Site, R.OrderNo, R.WorkCenterNo, R.ItemNo) as AvailResource
  577. from SORouting as R,
  578. WorkCenter as W
  579. <where>
  580. R.Site = W.Site
  581. and R.WorkCenterNo = W.WorkCenterNo
  582. and R.Site = #{site}
  583. and R.OrderNo = #{orderNo}
  584. <if test="itemNo!= null and itemNo != '' ">
  585. and R.itemNo = #{itemNo}
  586. </if>
  587. <if test=" itemDesc != null and itemDesc != ''">
  588. AND R.OperationDesc like '%' + #{itemDesc} + '%'
  589. </if>
  590. </where>
  591. order by R.ItemNo
  592. </select>
  593. <select id="getToolInShopOrder" resultType="com.gaotao.modules.shopOrder.entity.ToolInShopOrder">
  594. Select T.Site
  595. , T.OrderNo
  596. , ItemNo
  597. , T.ToolID
  598. , P.ToolDescription
  599. , P.Spec
  600. , T.ToolQty
  601. , P.UMID
  602. , P.FamilyID
  603. , dbo.Get_PartFamilyDesc(T.Site, P.FamilyID) as FamilyName
  604. , P.Active
  605. , T.Remark
  606. , T.CreateDate
  607. , T.CreatedBy
  608. from SOTool as T,
  609. ToolHeader as P
  610. Where T.Site = P.Site
  611. and T.ToolID = P.ToolID
  612. and T.Site = #{site}
  613. and T.OrderNo = #{orderNo}
  614. Order by ItemNo, T.ToolID
  615. </select>
  616. <select id="getProductMixInShopOrder" resultType="com.gaotao.modules.shopOrder.entity.ProductMixInShopOrder">
  617. SELECT
  618. B.Site,
  619. B.OrderNo,
  620. B.ItemNo,
  621. B.ComponentPartNo,
  622. P.PartDescription AS PartDesc,
  623. P.Spec AS PartSpec,
  624. P.UMid AS PartUm,
  625. B.QtyAssembly,
  626. B.QtyFixedScrapt,
  627. B.ScraptFactor,
  628. B.Remark,
  629. B.QtyRequired,
  630. B.QtyIssue,
  631. B.IssueDate,
  632. B.QtyReserved,
  633. B.RMType_DB,
  634. p.issue_method
  635. FROM dbo.view_SAP_SOBOM AS B
  636. left join Part as P on B.Site = P.Site and B.ComponentPartNo = P.PartNo
  637. Where B.Site = #{site} and B.OrderNo = #{orderNo}
  638. Order by B.ItemNo
  639. </select>
  640. <select id="getShopOrderSapSOBOM" resultType="com.gaotao.modules.shopOrder.entity.ProductMixInShopOrder">
  641. Select T.ItemNo as item_no,
  642. T.ComponentPartNo as component_part_no,
  643. P.PartDescription as part_desc,
  644. P.Spec as part_spec,
  645. P.UMID,
  646. T.QtyRequired as qty_required
  647. ,
  648. P.DefaultLocationID as default_location_ID
  649. from dbo.view_SAP_SOBOM as T,
  650. Part as P
  651. Where T.Site = P.Site
  652. and T.ComponentPartNo = P.PartNo
  653. and T.Site = #{site}
  654. and T.OrderNo = #{orderNo}
  655. </select>
  656. <select id="getOrderInfo" resultType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
  657. Select T.OrderNo as order_no
  658. , T.PartNo as part_no
  659. , T.LotSize as lot_size
  660. , P.PartDescription as part_desc
  661. , isnull(P.Spec, '') as spec
  662. , T.Remark as remark
  663. , dbo.get_ShopOrderPrintInfo(T.Site, T.OrderNo) as first_item_no
  664. from ShopOrder as T,
  665. Part as P
  666. Where T.Site = P.Site
  667. and T.PartNo = P.PartNo
  668. and T.Site = #{site}
  669. and T.OrderNo = #{orderNo}
  670. </select>
  671. <!--获取工单的工具信息-->
  672. <select id="getShopOrderToolDatas" resultType="ShopOrderToolData">
  673. Select T.Site site,
  674. T.OrderNo orderNo,
  675. ItemNo itemNo,
  676. T.ToolID toolId,
  677. P.ToolDescription toolDesc,
  678. P.Spec toolSpec,
  679. T.ToolQty toolQty,
  680. P.UMID umid,
  681. P.FamilyID familyId,
  682. dbo.Get_SOOpsDescription(T.Site, T.OrderNo, ItemNo) itemDesc,
  683. dbo.Get_PartFamilyDesc(T.Site, P.FamilyID) familyName,
  684. P.Active active,
  685. T.Remark remark,
  686. T.CreateDate createdDate,
  687. T.CreatedBy createdBy
  688. FROM SOTool as T,
  689. ToolHeader as P
  690. Where T.Site = P.Site
  691. and T.ToolID = P.ToolID
  692. and T.Site = #{site}
  693. and T.OrderNo = #{orderNo}
  694. Order by ItemNo, T.ToolID
  695. </select>
  696. <select id="getOrderQtyRequired" resultType="java.lang.Double">
  697. Select LotSize
  698. from ShopOrder
  699. Where Site = #{site}
  700. and OrderNo = #{orderNo}
  701. </select>
  702. <select id="getSORoute" resultType="com.gaotao.modules.shopOrder.entity.RouteInShopOrderData">
  703. Select R.Site
  704. , R.OrderNo
  705. , R.ItemNo
  706. , ISNULL(R.NextItemNo, 0) next_item_no
  707. , ISNULL(R.PreItemNo, 0) pre_item_no
  708. from SORouting as R
  709. where R.site = #{site}
  710. and R.OrderNo = #{orderNo}
  711. and R.ItemNo = #{itemNo}
  712. </select>
  713. <update id="updateRouteByItemNo">
  714. update SORouting
  715. <set>
  716. <if test="nextItemNo != null">
  717. NextItemNo = #{nextItemNo},
  718. </if>
  719. <if test="preItemNo != null">
  720. PreItemNo = #{preItemNo},
  721. </if>
  722. </set>
  723. where site = #{site}
  724. and OrderNo = #{orderNo}
  725. and ItemNo = #{itemNo}
  726. </update>
  727. <select id="getSORouteItemNoOrderBy" resultType="com.gaotao.modules.shopOrder.entity.RouteInShopOrderData">
  728. select top 1 Site
  729. , OrderNo
  730. , ItemNo
  731. from SORouting
  732. <where>
  733. site = #{route.site}
  734. and OrderNo = #{route.orderNo}
  735. <if test="orderBy == 'desc'">
  736. and ItemNo <![CDATA[ < ]]> #{route.itemNo}
  737. </if>
  738. <if test="orderBy == 'asc'">
  739. and ItemNo > #{route.itemNo}
  740. </if>
  741. </where>
  742. order by ItemNo ${orderBy}
  743. </select>
  744. <select id="getShopOrderByPart" resultType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
  745. SELECT
  746. *
  747. FROM
  748. ShopOrder AS T
  749. WHERE
  750. Site = #{site}
  751. AND PartNo = #{partNo}
  752. AND ( Status = '已计划' OR Status = '已下达' )
  753. AND NOT EXISTS ( SELECT 1 FROM SOScheduledRouting AS D WHERE T.Site = D.Site AND T.OrderNo = D.OrderNo )
  754. AND T.OrderType != 'P'
  755. </select>
  756. <select id="getRouteInShopOrderResource"
  757. resultType="com.gaotao.modules.shopOrder.entity.SoroutingAvailableresourceEntity">
  758. SELECT s.Site,s.OrderNo,s.ItemNo,s.WorkCenterNo,w.ResourceID FROM
  759. SORouting s,RoutingDetail e
  760. LEFT JOIN RoutingDetail_AvailableResource w ON
  761. e.Site = w.Site AND
  762. e.PartNo = w.PartNo AND
  763. e.RevNo = w.RevNo AND
  764. e.itemNo=w.itemNo
  765. WHERE s.Site = #{site} AND s.OrderNo = #{orderNo} AND
  766. e.Site = s.Site AND
  767. e.PartNo = s.PartNo AND
  768. e.RevNo=#{bOMRevNo}
  769. and s.ItemNo=e.ItemNo
  770. and s.itemNo in (select h.itemNo from RoutingDetail_AvailableResource h
  771. where h.site = e.site
  772. and h.partno = e.partno
  773. and h.revno = e.revno )
  774. Union all
  775. SELECT s.Site,s.OrderNo,s.ItemNo,s.WorkCenterNo,w.ResourceID FROM
  776. SORouting s
  777. LEFT JOIN WorkCenterResource w ON
  778. s.Site = w.Site AND
  779. s.WorkCenterNo = w.WorkCenterNo
  780. WHERE w.Active = 'Y' AND s.Site = #{site} AND s.OrderNo = #{orderNo}
  781. and s.itemNo not in (select h.itemNo from RoutingDetail_AvailableResource h
  782. where h.site = s.site
  783. and h.partno = s.partno
  784. and h.revno = #{bOMRevNo} )
  785. </select>
  786. <select id="getOrderSopFileInfo" resultType="com.gaotao.modules.oss.entity.SysOssEntity">
  787. SELECT
  788. *
  789. FROM
  790. (--如果工序有设置了可用机台的话,那么和可用机台关联
  791. SELECT
  792. t.Site,
  793. t.WorkCenterNo,
  794. d.ResourceID ,
  795. w.ResourceDesc
  796. FROM
  797. SORouting AS t,
  798. SORouting_AvailableResource AS d ,
  799. WorkCenterResource AS w
  800. WHERE
  801. t.site= d.site
  802. AND t.site= w.site
  803. AND t.WorkCenterNo= w.WorkCenterNo
  804. AND d.ResourceID = w.ResourceID
  805. AND t.OrderNo= d.OrderNo
  806. AND t.ItemNo= d.ItemNo
  807. AND t.Site=#{site}
  808. AND t.OrderNo=#{orderNo}
  809. UNION ALL--如果工序没有设置可用机台的话,那么和和该加工中心下的所有机台对应
  810. SELECT
  811. t.Site,
  812. t.WorkCenterNo,
  813. d.ResourceID ,
  814. w.ResourceDesc
  815. FROM
  816. SORouting AS t
  817. LEFT JOIN SORouting_AvailableResource AS d ON t.site= d.site
  818. AND t.OrderNo= d.OrderNo
  819. AND t.ItemNo= d.ItemNo
  820. ,
  821. WorkCenterResource AS w
  822. WHERE
  823. d.Site IS NULL
  824. AND t.site= w.site
  825. AND t.WorkCenterNo= w.WorkCenterNo
  826. AND d.ResourceID = w.ResourceID
  827. AND t.Site=#{site}
  828. AND t.OrderNo=#{orderNo}
  829. ) AS x,
  830. sys_oss AS y
  831. WHERE
  832. x.Site= y.order_ref1
  833. AND x.WorkCenterNo= y.order_ref2
  834. AND x.ResourceID= y.order_ref3
  835. ORDER BY ResourceID,order_ref4
  836. </select>
  837. <select id="getShopOrderSopSOBOM" resultType="com.gaotao.modules.shopOrder.entity.ProductMixInShopOrder">
  838. Select
  839. T.ItemNo as item_no,
  840. T.WOR1_ItemCode as component_part_no,
  841. T.WOR1_ItemName as part_desc,
  842. T.WOR1_PlannedQty as qty_required,
  843. T.U_SNUM AS qty_on_hand
  844. from dbo.sop_sobom as T
  845. Where
  846. T.Site = #{site}
  847. and T.DocEntry = #{orderNo}
  848. </select>
  849. <select id="getOrderSopInfo" resultType="com.gaotao.modules.shopOrder.entity.SopViewData">
  850. select * from sop
  851. where DocEntry = #{orderNo}
  852. </select>
  853. <select id="getFileData" resultType="com.gaotao.modules.oss.entity.SysOssEntity">
  854. select url,file_name,new_file_name from sys_oss where id = #{id}
  855. </select>
  856. <insert id="saveShopOrderData2">
  857. insert into ShopOrder
  858. (Site, bu_no, OrderNo, Status, Status_Tmp, EnterDate, NeedDate, PlanStartDate,
  859. OrderType, PartNo, LotSize, BOMRevNo, RoutingRevNo, ProjectID, CustomerID, batch_no, OrderRef1, OrderRef2)
  860. values
  861. (#{site}, #{buNo}, #{orderNo}, #{status}, #{statusTmp}, #{enterDate}, #{needDate}, #{planStartDate},
  862. #{orderType}, #{partNo}, #{lotSize,jdbcType=FLOAT}, #{bOMRevNo}, #{routingRevNo}, #{projectID}, #{customerID}, #{batchNo}, #{orderRef1}, #{orderRef2})
  863. </insert>
  864. </mapper>