FrmUpdatePlan.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <queryMap desc = "炉计划信息管理">
  3. <query id = "FrmUpdatePlan.queryMilPlan" desc = "查询炉计划信息">
  4. <![CDATA[
  5. SELECT
  6. T.ID,
  7. T.SEQ,
  8. T.STOVE_NO,
  9. T.JUDGE_STOVE_NO,
  10. T.LOT_NO,
  11. T.CONTRACT_NO,
  12. T.IMP_PROCESS,
  13. T.PLINE_CODE,
  14. CASE STATUS WHEN
  15. '00' THEN '上料' WHEN
  16. '05' THEN '开始锯切' WHEN
  17. '10' THEN '锯切完成' WHEN
  18. '15' THEN '入炉' WHEN
  19. '20' THEN '出炉' WHEN
  20. '25' THEN '开始穿孔' WHEN
  21. '30' THEN '穿孔完成' WHEN
  22. '35' THEN '开始连轧' WHEN
  23. '40' THEN '连轧完成' WHEN
  24. '45' THEN '入再加热炉' WHEN
  25. '50' THEN '出再加热炉' WHEN
  26. '55' THEN '开始定径' WHEN
  27. '60' THEN '定径完成' WHEN
  28. '65' THEN '开始分切' WHEN
  29. '70' THEN '分切完成' WHEN
  30. '75' THEN '开始矫直' WHEN
  31. '80' THEN '矫直完成 ' WHEN
  32. '85' THEN '开始探伤' WHEN
  33. '90' THEN '探伤完成' WHEN
  34. '95' THEN '人工质检开始' WHEN
  35. '99' THEN '入库' END AS STATUS,
  36. T.PRODUCER,
  37. T.PROCESS_STATUS,
  38. T.DB_LENGTH,
  39. T.DB_HEIGHT,
  40. T.ROLL_LENGTH,
  41. T.SAW_NUM,
  42. T.TARGET_LENGTH,
  43. T.FINISH_USER,
  44. T.TARGET_LIABRARY,
  45. T.VARIETIES,
  46. T.PIPE_SIZE,
  47. T.BUCKLE_TYPE,
  48. T.LENGTH_RANGE,
  49. T.ROLL_STANDRAD,
  50. T.PIPE_SECTION,
  51. T.STEELCODE,
  52. T.STEELNAME,
  53. T.GRADECODE,
  54. T.GRADENAME,
  55. T.STEEL_STANDRAD,
  56. T.TARGET,
  57. T.BRANCH,
  58. T.TON,
  59. T.CUT_TARGET,
  60. T.CUT_LENGTH,
  61. T.CUT_WEIGHT,
  62. T.DB_NUM,
  63. TO_CHAR(T.START_TIME, 'YYYY-MM-DD HH24:MI:SS') START_TIME,
  64. TO_CHAR(T.END_TIME, 'YYYY-MM-DD HH24:MI:SS') END_TIME,
  65. TO_CHAR(T.TOM, 'YYYY-MM-DD HH24:MI:SS') TOM,
  66. TO_CHAR(T.TOC, 'YYYY-MM-DD HH24:MI:SS') TOC,
  67. CASE NODE_STATUS WHEN
  68. '00' THEN '' WHEN
  69. '10' THEN '锯切完成' WHEN
  70. '15' THEN '入炉' WHEN
  71. '20' THEN '出炉' WHEN
  72. '25' THEN '开始穿孔' WHEN
  73. '30' THEN '穿孔完成' WHEN
  74. '35' THEN '开始连轧' WHEN
  75. '40' THEN '连轧完成' WHEN
  76. '45' THEN '入再加热炉' WHEN
  77. '50' THEN '出再加热炉' WHEN
  78. '55' THEN '开始定径' WHEN
  79. '60' THEN '定径完成' WHEN
  80. '65' THEN '开始分切' WHEN
  81. '70' THEN '分切完成' WHEN
  82. '75' THEN '开始矫直' WHEN
  83. '80' THEN '矫直完成 ' WHEN
  84. '85' THEN '开始探伤' WHEN
  85. '90' THEN '探伤完成' WHEN
  86. '96' THEN '人工质检完成'
  87. END AS NODE_STATUS,
  88. T.CUT_HEAD_LENGTHP,
  89. T.CUT_TRAIL_LENGTHP,
  90. T.CONTROL_THICKP,
  91. T.OFFLINE_FLAG,
  92. T.IS_BATCH,
  93. TO_CHAR(T.OFFLINE_DATE, 'YYYY-MM-DD HH24:MI:SS') OFFLINE_DATE,
  94. T.CUT_TYPE,
  95. T.ROLLING_STATUS,
  96. T.PRODUCE_STANDRAD,
  97. T.SIMPLE_PROCESS,
  98. T.BACK_LINE_FLAG,
  99. DECODE(T.BACK_PLAN_FLAG,'7','矫直返线','8','探伤返线','9','表检返线','正常计划')BACK_PLAN_FLAG,
  100. T.FEED_SEQ,
  101. TO_CHAR(T.FEED_TIME, 'YYYY-MM-DD HH24:MI:SS') FEED_TIME,
  102. T.LOT_SEQ,
  103. T.FEED_HEAT_NO,
  104. T.LENGTHCP,
  105. T.CUT_HEAD_LENGTHA,
  106. T.CUT_TRAIL_LENGTHA,
  107. T.ORDER_LENGTHA,
  108. T.HOT_CHECK_FLAG,
  109. T.BACK_SLAB_FLAG,
  110. TO_CHAR(T.BACK_SLAB_TIME, 'YYYY-MM-DD HH24:MI:SS') BACK_SLAB_TIME,
  111. T.BATCH_MAX,
  112. T.CODE_SAMPLE_FLAG,
  113. T.VARIETIES_CODE,
  114. T.PIPE_SIZE_CODE,
  115. T.BUCKLE_TYPE_CODE,
  116. T.ROLL_STANDRAD_CODE,
  117. T.STD_STYLE,
  118. T.STD_STYLE_DESC,
  119. T.PRO_PLAN_ID,
  120. T.GX_PLAN_NO
  121. FROM MIL_PLAN T
  122. WHERE T.JUDGE_STOVE_NO || '&' LIKE '%' || ? || '%'
  123. AND T.LOT_NO || '&' LIKE '%' || ? || '%'
  124. AND T.PLINE_CODE = ?
  125. AND T.BACK_PLAN_FLAG = '0'
  126. ]]>
  127. </query>
  128. <query id = "FrmUpdatePlan.doQuerySawResult" desc = "查询是否产生分切实绩">
  129. SELECT COUNT(1)ACOUNT
  130. FROM MIL_SAW_RESULT T
  131. WHERE T.RESULT_NO = ?
  132. AND T.JUDGE_STOVE_NO = ?
  133. </query>
  134. <query id = "FrmUpdatePlan.doQuerySamplePipe" desc = "查询是否分批取样">
  135. SELECT COUNT(1) ACOUNT
  136. FROM PORT_MIL_BATCH_SAMPLE_RESULT T
  137. WHERE T.IS_SAMPLE_PIPE = '1'
  138. AND T.PLAN_ID = ?
  139. AND T.JUDGE_STOVE_NO = ?
  140. </query>
  141. <query id = "FrmUpdatePlan.updateSawNum" desc = "修改倍尺数">
  142. DECLARE
  143. BEGIN
  144. UPDATE MIL_PLAN T
  145. SET T.SAW_NUM = ?
  146. WHERE T.ID = ?
  147. AND T.JUDGE_STOVE_NO = ?;
  148. DELETE FROM PORT_MIL_BATCH_SAMPLE_RESULT T WHERE T.PLAN_ID = ? AND T.JUDGE_STOVE_NO = ?;
  149. END;
  150. </query>
  151. <query id = "FrmUpdatePlan.SelectFeedNum" desc = "查询上料行信息">
  152. SELECT T.FEED_NUM,T.DB_NUM,S.SAW_NUM,S.PIPE_SIZE,S.TARGET_LENGTH
  153. FROM MIL_FEED_PLAN T,
  154. MIL_PLAN S
  155. WHERE T.JUDGE_STOVE_NO = S.JUDGE_STOVE_NO
  156. AND T.LOT_NO = S.LOT_NO
  157. AND S.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO#'
  158. AND S.LOT_NO = '#LOT_NO#'
  159. AND S.ID = '#ID#'
  160. ORDER BY T.FEED_ROW_NO ASC
  161. </query>
  162. <query id = "FrmUpdatePlan.insertPortBacth" desc = "重新生成进程表队列">
  163. INSERT INTO PORT_MIL_BATCH_SAMPLE_RESULT(
  164. PLAN_ID,
  165. LOT_NO,
  166. STOVE_NO,
  167. JUDGE_STOVE_NO,
  168. GROUP_NO,
  169. PLINE_CODE,
  170. BATCH_NO,
  171. SEQ,
  172. MAT_NO,
  173. IS_SAMPLE_PIPE,
  174. IS_VALID,
  175. REMARK,
  176. SAMPLE_PIPE_LEN,
  177. GET_SAMPLE_NAME,
  178. GET_SAMPLE_TIME,
  179. GET_SAMPLE_SHIFT,
  180. GET_SAMPLE_CLASS,
  181. ORDER_LENGTH,
  182. REAL_BATCH_NO,
  183. ACT_THEORY_WEIGHT,
  184. ACT_COUNT,
  185. CRATE_TIME,
  186. STATUS,
  187. M_MAT_NO,
  188. GROUP_FLAG,
  189. OP_PROCESS,
  190. BACK_PROCESS,
  191. M_M_MAT_NO)
  192. VALUES(
  193. ?,
  194. ?,
  195. ?,
  196. ?,
  197. '',
  198. ?,
  199. '',
  200. ?,
  201. ?,
  202. '0',
  203. '1',
  204. '',
  205. '',
  206. '',
  207. '',
  208. '',
  209. '',
  210. ?,
  211. '',
  212. ?,
  213. '1',
  214. TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'),
  215. '0',
  216. ?,
  217. '0',
  218. '',
  219. '',
  220. ?)
  221. </query>
  222. <query id = "FrmUpdatePlan.SelectScrapNum" desc = "查询热区所有废管">
  223. <![CDATA[
  224. SELECT T.PROCESS_NO, T.SEQ, T.JUDGE_STOVE_NO
  225. FROM MIL_SLAB_SCRAP_SEQ T
  226. WHERE T.JUDGE_STOVE_NO = ?
  227. AND T.PROCESS_NO < 7
  228. ORDER BY T.PROCESS_NO ASC
  229. ]]>
  230. </query>
  231. <query id = "FrmUpdatePlan.SelectNodeStaus" desc = "查询是否已结炉">
  232. SELECT T.NODE_FUR_FLAG FROM #RESULT# T WHERE T.JUDGE_STOVE_NO = ?
  233. </query>
  234. <query id = "FrmUpdatePlan.scarpPortBacth" desc = "锯切剔管写进程表">
  235. DECLARE
  236. BEGIN
  237. IF(?=0)THEN
  238. FOR MYROW IN (SELECT M_M_MAT_NO
  239. FROM (SELECT ROWNUM SEQ, M_M_MAT_NO
  240. FROM (SELECT T.M_M_MAT_NO,
  241. T.IS_SAMPLE_PIPE,
  242. T.INSTORE_FLAG,
  243. ROW_NUMBER() OVER(PARTITION BY M_M_MAT_NO ORDER BY IS_SAMPLE_PIPE DESC,INSTORE_FLAG DESC) RN
  244. FROM PORT_MIL_BATCH_SAMPLE_RESULT T
  245. WHERE T.JUDGE_STOVE_NO = ?
  246. AND T.Status = '0'
  247. )
  248. WHERE RN = '1'
  249. AND IS_SAMPLE_PIPE = '0'
  250. AND INSTORE_FLAG = '0')
  251. WHERE SEQ = ?) LOOP
  252. UPDATE PORT_MIL_BATCH_SAMPLE_RESULT T SET T.STATUS = '1',T.OP_PROCESS = ? WHERE T.JUDGE_STOVE_NO = ? AND T.M_M_MAT_NO = MYROW.M_M_MAT_NO;
  253. END LOOP;
  254. ELSIF(?=1)THEN
  255. FOR MYROW1 IN (SELECT M_MAT_NO
  256. FROM (SELECT ROWNUM SEQ, M_MAT_NO
  257. FROM (SELECT T.M_MAT_NO,
  258. T.IS_SAMPLE_PIPE,
  259. T.INSTORE_FLAG,
  260. ROW_NUMBER() OVER(PARTITION BY M_MAT_NO ORDER BY IS_SAMPLE_PIPE DESC,INSTORE_FLAG DESC) RN
  261. FROM PORT_MIL_BATCH_SAMPLE_RESULT T
  262. WHERE T.JUDGE_STOVE_NO = ?
  263. AND T.Status in ('0','1')
  264. )
  265. WHERE RN = '1'
  266. AND IS_SAMPLE_PIPE = '0'
  267. AND INSTORE_FLAG = '0')
  268. WHERE SEQ = ?) LOOP
  269. UPDATE PORT_MIL_BATCH_SAMPLE_RESULT T SET T.STATUS = '1',T.OP_PROCESS = ? WHERE T.JUDGE_STOVE_NO = ? AND T.M_MAT_NO = MYROW1.M_MAT_NO;
  270. END LOOP;
  271. END IF;
  272. END;
  273. </query>
  274. <query id = "FrmUpdatePlan.scarpPortBacth1" desc = "其他热区工序剔管进程表">
  275. DECLARE
  276. BEGIN
  277. FOR MYROW1 IN (SELECT M_MAT_NO
  278. FROM (SELECT ROWNUM SEQ, M_MAT_NO
  279. FROM (SELECT T.M_MAT_NO,
  280. T.IS_SAMPLE_PIPE,
  281. T.INSTORE_FLAG,
  282. ROW_NUMBER() OVER(PARTITION BY M_MAT_NO ORDER BY IS_SAMPLE_PIPE DESC,INSTORE_FLAG DESC) RN
  283. FROM PORT_MIL_BATCH_SAMPLE_RESULT T
  284. WHERE T.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO#'
  285. AND (T.OP_PROCESS IS NULL OR
  286. T.OP_PROCESS = '#OP_PROCESS#')
  287. )
  288. WHERE RN = '1'
  289. AND IS_SAMPLE_PIPE = '0'
  290. AND INSTORE_FLAG = '0')
  291. WHERE SEQ = '#SEQ#') LOOP
  292. UPDATE PORT_MIL_BATCH_SAMPLE_RESULT T SET T.STATUS = '1',T.OP_PROCESS = '#OP_PROCESS#' WHERE T.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO#' AND T.M_MAT_NO = MYROW1.M_MAT_NO;
  293. END LOOP;
  294. END;
  295. </query>
  296. <query id="FrmUpdatePlan.UpdatePlanPredict" desc="锯切结炉,回写计划表中预计支吨">
  297. <![CDATA[
  298. DECLARE
  299. V_INPUT_WEIGHT PORT_MIL_BATCH_SAMPLE_RESULT.INPUT_WEIGHT%type := null;
  300. BEGIN
  301. FOR MYROW IN (SELECT T.JUDGE_STOVE_NO,
  302. T.PRO_PLAN_ID,
  303. T.GX_PLAN_NO,
  304. SUM(B.FEED_NUM_PLAN * B.DB_NUM) * MAX(T1.SAW_NUM) YJZ,
  305. SUM(B.MAT_TOTAL_HEIGHT) *
  306. (1 - NVL((select R.BURNNING_RATE
  307. from MIL_FUR_RESULT R
  308. WHERE R.JUDGE_STOVE_NO = T.JUDGE_STOVE_NO
  309. AND NVL(R.PRO_PLAN_ID, '/') =
  310. NVL(T.PRO_PLAN_ID, '/')
  311. AND NVL(R.GX_PLAN_NO, '/') =
  312. NVL(T.GX_PLAN_NO, '/')) / 100,
  313. 0)) -
  314. DECODE(MAX(T1.CONTROL_THICKP),
  315. 0,
  316. 0,
  317. (MAX(T1.CUT_HEAD_LENGTHP) +
  318. MAX(T1.CUT_TRAIL_LENGTHP)) / 1000 *
  319. (0.02466 * MAX(T1.CONTROL_THICKP) / 1000 * 1.02 *
  320. ((SUBSTR(MAX(T1.PIPE_SIZE),
  321. 1,
  322. INSTR(MAX(T1.PIPE_SIZE), '*') - 1)) *
  323. (CASE
  324. WHEN INSTR(MAX(T1.VARIETIES), '套管') > 0 THEN
  325. 1.005
  326. WHEN INSTR(MAX(T1.VARIETIES), '油管') > 0 THEN
  327. 1.005
  328. ELSE
  329. 1
  330. END) - (MAX(T1.CONTROL_THICKP) / 1000 * 1.02)) *
  331. SUM(B.FEED_NUM_PLAN * B.DB_NUM))) YJD
  332. from MIL_FEEDSAW_RESULT T, MIL_FEED_PLAN B, MIL_PLAN T1
  333. WHERE T.JUDGE_STOVE_NO = T1.JUDGE_STOVE_NO
  334. AND NVL(T.PRO_PLAN_ID, '/') = NVL(T1.PRO_PLAN_ID, '/')
  335. AND T.JUDGE_STOVE_NO = B.JUDGE_STOVE_NO
  336. AND NVL(T.PRO_PLAN_ID, '/') = NVL(B.PRO_PLAN_ID, '/')
  337. AND T.JUDGE_STOVE_NO = ?
  338. AND NVL(T.PRO_PLAN_ID, '/') = NVL(?, '/')
  339. AND NVL(T.GX_PLAN_NO, '/') = NVL(?, '/')
  340. GROUP BY T.JUDGE_STOVE_NO, T.PRO_PLAN_ID, T.GX_PLAN_NO) LOOP
  341. UPDATE MIL_PLAN M
  342. SET M.PREDICT_PIECE = MYROW.YJZ, M.PREDICT_TON = MYROW.YJD
  343. WHERE M.JUDGE_STOVE_NO = MYROW.JUDGE_STOVE_NO
  344. AND NVL(M.PRO_PLAN_ID, '/') = NVL(MYROW.PRO_PLAN_ID, '/')
  345. AND NVL(M.GX_PLAN_NO, '/') = NVL(MYROW.GX_PLAN_NO, '/');
  346. END LOOP;
  347. END;
  348. ]]>
  349. </query>
  350. </queryMap>