3dc7b0f2c0c40900413834b969a0a880e927edcf.svn-base 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?xml version="1.0" encoding='UTF-8'?>
  2. <queryMap desc="材料进程分析现状">
  3. <query id="UIE012060.Slab-Coil.Select" desc="" fetchSize="10">
  4. <![CDATA[
  5. SELECT (NVL(A.MAT_WGT, 0) + NVL(B.MAT_WGT, 0)) MAT_WGT,
  6. A.L_SLAB_WGT, A.Z_SLAB_WGT,
  7. B.SBB, B.SCB, B.SDB, B.SED, B.SFA, B.SFB,
  8. DECODE(C.FLAG, 1, '订单材', 2, '余材', '在库天数') FLAG,
  9. C.NAME
  10. FROM (
  11. SELECT SUM(SLAB_WGT) MAT_WGT,
  12. SUM(DECODE(SUBSTR(CUR_LOAD_LOC, 1, 1), 'Z', '', SLAB_WGT)) L_SLAB_WGT,
  13. SUM(DECODE(SUBSTR(CUR_LOAD_LOC, 1, 1), 'Z', SLAB_WGT, '')) Z_SLAB_WGT,
  14. DECODE(ORD_FL, 1, 'XB0', NVL(NONORD_CAUSE_CD, 'NON')) NONORD_CAUSE_CD
  15. FROM TBG02_SLAB_COMM
  16. WHERE SLAB_STAT = '2'
  17. AND (ORD_FL = '2' OR (ORD_FL = '1' AND CUR_PROG_CD = 'RBA'))
  18. AND STL_GRD LIKE ?||'%' -- 参数:钢号
  19. GROUP BY ORD_FL, NONORD_CAUSE_CD
  20. UNION ALL
  21. SELECT SUM(SLAB_WGT),
  22. SUM(DECODE(SUBSTR(CUR_LOAD_LOC, 1, 1), 'Z', '', SLAB_WGT)) L_SLAB_WGT,
  23. SUM(DECODE(SUBSTR(CUR_LOAD_LOC, 1, 1), 'Z', SLAB_WGT, '')) Z_SLAB_WGT,
  24. CASE
  25. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) <= 1 THEN 'XB1'
  26. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 4 THEN 'XB2'
  27. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 6 THEN 'XB3'
  28. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 8 THEN 'XB4'
  29. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 11 THEN 'XB5'
  30. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 16 THEN 'XB6'
  31. ELSE 'XB7' END
  32. FROM TBG02_SLAB_COMM
  33. WHERE SLAB_STAT = '2'
  34. AND (ORD_FL = '2' OR (ORD_FL = '1' AND CUR_PROG_CD = 'RBA'))
  35. AND STL_GRD LIKE ?||'%' -- 参数:钢号
  36. GROUP BY CASE
  37. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) <= 1 THEN 'XB1'
  38. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 4 THEN 'XB2'
  39. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 6 THEN 'XB3'
  40. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 8 THEN 'XB4'
  41. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 11 THEN 'XB5'
  42. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 16 THEN 'XB6'
  43. ELSE 'XB7' END) A, (
  44. SELECT SUM(ACT_WGT) MAT_WGT,
  45. SUM(DECODE(CUR_PROG_CD, 'SBB', ACT_WGT, '')) SBB,
  46. SUM(DECODE(CUR_PROG_CD, 'SCB', ACT_WGT, '')) SCB,
  47. SUM(DECODE(CUR_PROG_CD, 'SDB', ACT_WGT, '')) SDB,
  48. SUM(DECODE(CUR_PROG_CD, 'SED', ACT_WGT, '')) SED,
  49. SUM(DECODE(CUR_PROG_CD, 'SFA', ACT_WGT, '')) SFA,
  50. SUM(DECODE(CUR_PROG_CD, 'SFB', ACT_WGT, '')) SFB,
  51. DECODE(ORD_FL, 1, 'XB0', NVL(NONORD_CAUSE_CD, 'NON')) NONORD_CAUSE_CD
  52. FROM TBH02_COIL_COMM
  53. WHERE COIL_STAT = '2'
  54. AND CUR_PROG_CD in ('SBB', 'SCB', 'SDB', 'SED', 'SFA', 'SFB')
  55. AND STL_GRD LIKE ?||'%' -- 参数:钢号
  56. AND COIL_THK BETWEEN ? AND ? -- 参数:厚度
  57. AND COIL_WTH BETWEEN ? AND ? -- 参数:宽度
  58. GROUP BY ORD_FL, NONORD_CAUSE_CD
  59. UNION ALL
  60. SELECT SUM(ACT_WGT),
  61. SUM(DECODE(CUR_PROG_CD, 'SBB', ACT_WGT, '')) SBB,
  62. SUM(DECODE(CUR_PROG_CD, 'SCB', ACT_WGT, '')) SCB,
  63. SUM(DECODE(CUR_PROG_CD, 'SDB', ACT_WGT, '')) SDB,
  64. SUM(DECODE(CUR_PROG_CD, 'SED', ACT_WGT, '')) SED,
  65. SUM(DECODE(CUR_PROG_CD, 'SFA', ACT_WGT, '')) SFA,
  66. SUM(DECODE(CUR_PROG_CD, 'SFB', ACT_WGT, '')) SFB,
  67. CASE
  68. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) <= 1 THEN 'XB1'
  69. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 4 THEN 'XB2'
  70. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 6 THEN 'XB3'
  71. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 8 THEN 'XB4'
  72. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 11 THEN 'XB5'
  73. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 16 THEN 'XB6'
  74. ELSE 'XB7' END
  75. FROM TBH02_COIL_COMM
  76. WHERE COIL_STAT = '2'
  77. AND CUR_PROG_CD in ('SBB', 'SCB', 'SDB', 'SED', 'SFA', 'SFB')
  78. AND STL_GRD LIKE ?||'%' -- 参数:钢号
  79. AND COIL_THK BETWEEN ? AND ? -- 参数:厚度
  80. AND COIL_WTH BETWEEN ? AND ? -- 参数:宽度
  81. GROUP BY CASE
  82. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) <= 1 THEN 'XB1'
  83. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 4 THEN 'XB2'
  84. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 6 THEN 'XB3'
  85. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 8 THEN 'XB4'
  86. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 11 THEN 'XB5'
  87. WHEN TRUNC(SYSDATE - TO_DATE(SUBSTR(CUR_PROG_CD_DTIME, 1, 8), 'YYYYMMDD')) < 16 THEN 'XB6'
  88. ELSE 'XB7' END) B, (
  89. SELECT 1 FLAG, 1 SEQ, 'XB0' NONORD_CAUSE_CD, '正常物料' NAME FROM DUAL
  90. UNION ALL
  91. SELECT * FROM (
  92. SELECT 2, CD_SEQ, SM_CD, SM_CFNM FROM TBZ00_COMMCD
  93. WHERE LG_CD = 'E01010'
  94. ORDER BY CD_SEQ)
  95. UNION ALL
  96. SELECT 2, 1, 'NON', '无原因(非法)' NAME FROM DUAL
  97. UNION ALL
  98. SELECT 3, 1, 'XB1', '1天' FROM DUAL
  99. UNION ALL
  100. SELECT 3, 2, 'XB2', '2~3天' FROM DUAL
  101. UNION ALL
  102. SELECT 3, 3, 'XB3', '4~5天' FROM DUAL
  103. UNION ALL
  104. SELECT 3, 4, 'XB4', '6~7天' FROM DUAL
  105. UNION ALL
  106. SELECT 3, 5, 'XB5', '8~10天' FROM DUAL
  107. UNION ALL
  108. SELECT 3, 6, 'XB6', '11~15天' FROM DUAL
  109. UNION ALL
  110. SELECT 3, 7, 'XB7', '15天以上' FROM DUAL) C
  111. WHERE C.NONORD_CAUSE_CD = A.NONORD_CAUSE_CD(+)
  112. AND C.NONORD_CAUSE_CD = B.NONORD_CAUSE_CD(+)
  113. AND (A.NONORD_CAUSE_CD IS NOT NULL OR B.NONORD_CAUSE_CD IS NOT NULL)
  114. ORDER BY C.FLAG, C.SEQ
  115. ]]>
  116. </query>
  117. </queryMap>