UIF023100_TEST.pck 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538
  1. CREATE OR REPLACE PACKAGE UIF023100_TEST IS
  2. -- Author : SUNJIAWANG
  3. -- Created : 2009-2-13 17:09:40
  4. -- Purpose : HCR_EDIT&SEND_TO_L2
  5. --update time : 2009-03-07 08:30:40
  6. --begin---
  7. --check
  8. PROCEDURE INIT_ROLL_MANA_NO(P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE,
  9. P_POSITION VARCHAR);
  10. PROCEDURE CHECK_ERROR(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE,
  11. P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE,
  12. P_POSITION VARCHAR2);
  13. PROCEDURE CHECK_MILL_FL(P_CHARGE_MANA_NO IN TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE);
  14. PROCEDURE CHECK_CHARGE_IDX(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE);
  15. FUNCTION GET_COIL_NO RETURN TBF02_SPEC_MILL.COIL_NO%TYPE;
  16. PROCEDURE ADUST_ROLL_MANA_NO;
  17. PROCEDURE INSERT_SPEC_ROLL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE);
  18. PROCEDURE HCR_INSERT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE);
  19. PROCEDURE HCR_INSERT_MILL_IDX;
  20. PROCEDURE HCR_INSERT_SPEC_MILL;
  21. PROCEDURE HCR_U_SPEC_SLAB_MILL_FL;
  22. PROCEDURE HCR_U_SPEC_CHARGE_MILL_FL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE);
  23. PROCEDURE HCR_INSERT_SPEC_MILL_EDT;
  24. PROCEDURE HCR_INSERT_SPECMILL_D;
  25. PROCEDURE HCR_EDIT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE,
  26. P_ROLL_MANA_NO VARCHAR2,
  27. P_POSITION VARCHAR2,
  28. P_REG_ID VARCHAR2,
  29. P_TYPE OUT VARCHAR2,
  30. P_ST OUT VARCHAR2,
  31. P_EN OUT VARCHAR2,
  32. P_RTN_MSG OUT VARCHAR2);
  33. PROCEDURE CHECK_RZGYBZ(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE);
  34. PROCEDURE CALLL_E_INIT_OUT_PARAM(P_TYPE OUT VARCHAR2,
  35. P_ST OUT VARCHAR2,
  36. P_EN OUT VARCHAR2);
  37. CURSOR CUR_HCR(V_CHARGE_MANA_NO TBF01_SPEC_SLAB.CHARGE_MANA_NO%TYPE) IS
  38. SELECT CHARGE_SLAB_SEQ,
  39. A.SLAB_EDT_SEQ -- 板坯编制号
  40. ,
  41. REPLACE(SUBSTR(SLAB_MANA_NO, 1, 1), '3', 'J') ||
  42. SUBSTR(SLAB_MANA_NO, 2) SLAB_MANA_NO -- 板坯号
  43. ,
  44. '' --A.COIL_NO -- 钢卷号
  45. ,
  46. '' --A.ROLL_EDT_SEQ -- 轧辊编制号
  47. ,
  48. '' --A.ROLL_MANA_NO -- 轧辊管理号
  49. ,
  50. '' --A.ROLL_NO -- 轧辊号
  51. ,
  52. '' --A.ROLL_SLAB_SEQ -- 轧辊内顺序
  53. ,
  54. '' LOT_NO -- LOT号
  55. ,
  56. 0 LOT_COIL_CNT -- LOT内钢卷个数
  57. ,
  58. 0 LOT_COIL_SEQ -- LOT内钢卷编号
  59. ,
  60. /* A.PRODNM_CD -- 产品代码*/
  61. ---------------------------------------------------------------------------------------------
  62. N.PRDNM_CD PRODNM_CD -- 产品代码
  63. --MODIFY BY SJW 090818
  64. --DESC :扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求)
  65. --------------------------------------------------------------------------------------------
  66. ,
  67. B.STL_GRD SPEC_STL_GRD,
  68. A.STL_GRD -- 钢号
  69. ,
  70. D.FAC_STL_GRP -- 钢号组
  71. ,
  72. A.SLAB_THK -- 板坯厚度
  73. ,
  74. A.SLAB_WTH -- 板坯宽度
  75. ,
  76. A.SLAB_LEN -- 板坯长度
  77. ,
  78. A.SLAB_WGT -- 板坯重量
  79. ,
  80. '0' SLAB_TAPER -- 调宽有无代码
  81. ,
  82. A.SLAB_WTH SLAB_WTH_HEAD -- 板坯HEAD 宽度
  83. ,
  84. A.SLAB_WTH SLAB_WTH_TAIL -- 板坯TAIL 宽度
  85. ,
  86. '' WTH_CHG_STS -- 宽度变更开始位置
  87. ,
  88. '' WTH_CHG_END -- 宽度变更部分长度
  89. ,
  90. C.THK_AIM -- 厚度目标
  91. ,
  92. (SELECT T.THK_GRP_CD
  93. FROM TBF02_ROLL_THK_GRP T -- 厚度组代码
  94. WHERE T.PLT = 'H'
  95. AND A.ORD_THK >= T.MINI
  96. AND A.ORD_THK < T.MAXI) THK_GRP_CD,
  97. C.HOT_THK_AIM -- 热厚度AIM
  98. ,
  99. C.HOT_THK_MIN -- 热厚度MIN
  100. ,
  101. C.HOT_THK_MAX -- 热厚度MAX
  102. ,
  103. C.WTH_AIM -- 宽度AlM
  104. ,
  105. C.WTH_MIN -- 宽度MIN
  106. ,
  107. C.WTH_MAX -- 宽度MAX
  108. ,
  109. (SELECT T.WTH_GRP_CD
  110. FROM TBF02_ROLL_WTH_GRP T --宽度组代码
  111. WHERE T.PLT = 'H'
  112. AND A.ORD_WTH >= T.MINI
  113. AND A.ORD_WTH < T.MAXI) WTH_GRP_CD,
  114. H.MILL_LEN -- 轧钢总长度
  115. ,
  116. H.MILL_WGT --A.MILL_WGT -- 轧钢总重量
  117. ,
  118. A.HCR_CLF -- 热送代号
  119. ,
  120. A.ORD_NO -- 合同号
  121. ,
  122. A.ORD_SEQ -- 订单号
  123. ,
  124. E.ORD_USEAGE_CD -- 订单用途代码
  125. ,
  126. A.SPEC_ABBSYM -- 标准号
  127. ,
  128. E.ORDCUST_CD --A.ORD_CUST_CD -- 客户代码
  129. ,
  130. E.CUST_CD -- 客户代码
  131. ,
  132. E.DEST_CD -- 目的地代码
  133. ,
  134. A.DELV_REQ_DATE -- 交货期
  135. ,
  136. E.UST_CD -- UST区分
  137. ,
  138. A.SLAB_RT -- 去向
  139. ,
  140. A.ORD_THK -- 订单厚度
  141. ,
  142. A.ORD_WTH -- 订单宽度
  143. ,
  144. A.ORD_WGT -- 订单重量
  145. ,
  146. A.ORD_WGT_MIN -- 订单单重下限
  147. ,
  148. A.ORD_WGT_MAX -- 订单单重上限
  149. ,
  150. E.ORD_INDIA --A.ORD_INDIA 订单内径
  151. ,
  152. E.ORD_OUTDIA -- ORD_OUTDIA 订单外径
  153. ,
  154. E.PACK_METHOD -- 包装方法
  155. ,
  156. A.CAST_MANA_NO -- 浇次号
  157. ,
  158. M.CCM_PRC_LINE --A.CCM_PRC_LINE -- 连铸机号
  159. ,
  160. '' PATH_MILL_CD -- 轧制工艺流程
  161. ,
  162. A.SPM_PROC_YN -- 平整分卷指定判断
  163. ,
  164. A.SLAB_CUT_CNT -- 钢卷分割数
  165. ,
  166. '' RHF_TGT_TEMP -- 目标加热温度
  167. ,
  168. B.EXTRACT_TGT_TEMP -- 目标出炉温度
  169. ,
  170. B.EXTRACT_MIN_TEMP -- 最小出炉温度
  171. ,
  172. B.EXTRACT_MAX_TEMP -- 最大出炉温度
  173. ,
  174. B.CHARGING_TGT_TEMP -- 出炉均热度(目标)
  175. ,
  176. B.CHARGING_MAX_TEMP -- 出炉均热度(上限)
  177. ,
  178. B.INFUR_MIN_HOUR -- 在炉时间(下限)
  179. ,
  180. B.INFUR_MAX_HOUR -- 在炉时间(上限)
  181. ,
  182. B.EQ_HT_MIN_HOUR -- 均热时间(下限)
  183. ,
  184. B.EQ_HT_MAX_HOUR -- 均热时间(上限)
  185. ,
  186. (SELECT NVL(F.FUR_TME, 0)
  187. FROM TBF02_FUR_TIME F
  188. WHERE F.PLT = 'H'
  189. AND F.FUR_LINE = 1
  190. AND F.STL_GRD = A.STL_GRD
  191. AND F.SLAB_THK_MIN <= A.SLAB_THK
  192. AND F.SLAB_THK_MAX > A.SLAB_THK
  193. AND F.HCR_CLF = 'H') FUR_TME -- FUR_TME 炉内驻留时间
  194. ,
  195. '' MILL_TME --轧制时间
  196. ,
  197. '' FUR_IN_PRE_DTIME -- 计划加热炉装炉日期
  198. ,
  199. '' MILL_PRE_TME -- 计划轧制时间
  200. ,
  201. 0 SPEC_SLAB_EDT_SEQ -- 出钢板坯编制号
  202. ,
  203. A.STATUS_CD -- 状态区分
  204. ,
  205. '' FL --标识
  206. FROM TBF01_SPEC_SLAB A,
  207. TBH01_OPRN_STD B,
  208. TBB01_ORD_PROD C,
  209. TBD00_STLGRD D,
  210. TBE02_ORD_PRC E,
  211. TBF01_CHARGE_IDX M,
  212. /* (SELECT B.ORD_NO, B.ORD_SEQ, B.SPEC_ABBSYM, B.SPEC_STL_GRD, A.PRDNM_CD
  213. FROM TBA01_ORD_COMM A, TBA01_ORD_LINE B
  214. WHERE B.ORD_NO = A.ORD_NO) N,*/
  215. ----------------------------------------------------------------------------------------
  216. (SELECT B.ORD_NO,
  217. B.ORD_SEQ,
  218. B.SPEC_ABBSYM,
  219. B.SPEC_STL_GRD,
  220. A.PRDNM_CD
  221. FROM TBB01_ORD_HEAD A, TBA01_ORD_LINE B
  222. WHERE B.ORD_NO = A.ORD_NO
  223. AND B.ORD_SEQ =A.ORD_SEQ) N,
  224. --MODIFY BY SJW 090818
  225. --DESC :扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求)
  226. ----------------------------------------------------------------------------------------
  227. (SELECT SLAB_EDT_SEQ,
  228. SUM(ORD_WGT) MILL_WGT,
  229. SUM(ORD_LEN) MILL_LEN
  230. FROM TBF01_SPEC_SLAB_D
  231. GROUP BY SLAB_EDT_SEQ) H
  232. WHERE A.ORD_NO = C.ORD_NO
  233. AND A.ORD_SEQ = C.ORD_SEQ
  234. AND A.ORD_NO = E.ORD_NO
  235. AND A.ORD_SEQ = E.ORD_SEQ
  236. AND A.ORD_NO = N.ORD_NO
  237. AND A.ORD_SEQ = N.ORD_SEQ
  238. AND A.STL_GRD = D.FAC_STL_GRD
  239. AND N.PRDNM_CD = B.PRDNM_CD
  240. AND N.SPEC_STL_GRD = B.STL_GRD
  241. AND N.SPEC_ABBSYM = B.SPEC_ABBSYM
  242. AND A.CHARGE_EDT_SEQ = M.CHARGE_EDT_SEQ
  243. AND A.SLAB_EDT_SEQ = H.SLAB_EDT_SEQ
  244. AND A.STATUS_CD IN ('A', 'B')
  245. AND A.CHARGE_MANA_NO = V_CHARGE_MANA_NO
  246. AND A.HCR_CLF = 'H'
  247. ORDER BY A.CHARGE_SLAB_SEQ;
  248. REC_HCR CUR_HCR%ROWTYPE;
  249. END UIF023100_TEST;
  250. /
  251. CREATE OR REPLACE PACKAGE BODY UIF023100_TEST IS
  252. /************************************************************************/
  253. /* PACKAGE UIF023100_TEST Author: SunJiawang */
  254. /************************************************************************/
  255. /* DESCRIPTION CCR顺序调整 CCR指示到L2 */
  256. /************************************************************************/
  257. /* UPD_TIME | WHO | PROGRAM | CONTTENT
  258. /* 09-05-25 SUNJIAWANG CHECK_RZGYBZ ADD CHECK_RZGYBZ
  259. /* 09-06-29 SUNJIAWANG CURSOR 将扎制厚度目标更改为订单厚度传送到L2
  260. /* 09-07-07 SUNJIAWANG -->MILL_FL = 'N'
  261. /* 09-07-07 SUNJIAWANG HCR_INSERT_SPECMILL_D 增加查询 STATUS_CD = 'B'
  262. /* 09-08-06 SUNJIAWANG CHECK_ROLL_STATUS 增加procedure CHECK_ROLL_STATUS
  263. /* 09-08-18 SUNJIAWANG CUR_HCR 扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求)
  264. /************************************************************************/
  265. --GOLAB PARMAETER
  266. V_ROLL_MANA_NO VARCHAR(5) := ''; -- new roll_mana_no
  267. V_ROLL_EDT_SEQ TBF02_SPEC_ROLL.ROLL_EDT_SEQ %TYPE := 0; -- new roll_edt_seq
  268. V_SEQ_NO TBF02_MILL_IDX.SEQ_NO%TYPE := 0; -- new seq_no
  269. V_SLAB_EDT_SEQ TBF02_MILL_IDX.SLAB_EDT_SEQ%TYPE := 0;
  270. V_ROLL_SLAB_SEQ TBF02_SPEC_MILL.ROLL_SLAB_SEQ%TYPE := 1;
  271. V_CURYEAR VARCHAR2(1) := ''; -- current year
  272. /************************************************************************/
  273. /* procedure CHECK_MILL_FL Author: SunJiawang */
  274. /************************************************************************/
  275. /* DESCRIPTION check the mill_fl of the HCR if mill_fl = 'Y' then
  276. HCR not allowed to edited */
  277. /************************************************************************/
  278. /* parentProcedure: CHECK_ERROR
  279. /************************************************************************/
  280. PROCEDURE CHECK_MILL_FL(P_CHARGE_MANA_NO IN TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS
  281. V_MILL_FL TBF01_SPEC_CHARGE.MILL_FL %TYPE := 'N'; --默认编制‘N’
  282. VE EXCEPTION;
  283. BEGIN
  284. SELECT T.MILL_FL
  285. INTO V_MILL_FL
  286. FROM TBF01_SPEC_CHARGE T
  287. WHERE T.CHARGE_MANA_NO = P_CHARGE_MANA_NO;
  288. IF (V_MILL_FL = 'Y') THEN
  289. RAISE VE;
  290. END IF;
  291. EXCEPTION
  292. WHEN VE THEN
  293. COMM.REC_ERR.P_PRG_ID := 'CHECK_MILL_FL';
  294. COMM.REC_ERR.P_OPERATE := 'I';
  295. COMM.REC_ERR.P_ERR_PARAM1 := 'MILL_FL';
  296. COMM.REC_ERR.P_TABLE := 'TBF01_SPEC_CHARGE';
  297. COMM.REC_ERR.P_ERR_MSG := '该炉次已经被编制,不允许重复编制';
  298. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  299. END;
  300. /************************************************************************/
  301. /* procedure INIT_ROLL_MANA_NO Author: SunJiawang */
  302. /************************************************************************/
  303. /* DESCRIPTION init the new roll_mana_no |
  304. 如果没有编制任何轧辊,新产生的轧辊管理号默认为'A0001',以此增加,当增加到
  305. 'A999'的时候,则新增加的轧辊管理号为‘B0001’如此类推至‘Z9999’ 为最大极限
  306. 之轧辊号 */
  307. /************************************************************************/
  308. /* parentProcedure: HCR_EDIT
  309. /************************************************************************/
  310. PROCEDURE INIT_ROLL_MANA_NO(P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE,
  311. P_POSITION VARCHAR) IS
  312. LV_CNT_ROLL INTEGER := 0;
  313. LV_MAX_ROLL_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE := '';
  314. VE EXCEPTION;
  315. POS_VE EXCEPTION;
  316. BEGIN
  317. SELECT NVL(MAX(ROLL_MANA_NO), 'A0001')
  318. INTO LV_MAX_ROLL_NO
  319. FROM TBF02_SPEC_ROLL;
  320. SELECT COUNT(ROLL_MANA_NO) INTO LV_CNT_ROLL FROM TBF02_SPEC_ROLL;
  321. IF LV_CNT_ROLL = 0 THEN
  322. V_ROLL_MANA_NO := 'A0001';
  323. --modify by sjw 090323
  324. ELSIF P_ROLL_MANA_NO IS NULL THEN
  325. V_ROLL_MANA_NO := COMM.ADUST_ORDER(LV_MAX_ROLL_NO);
  326. ELSIF P_POSITION IS NOT NULL THEN
  327. V_ROLL_MANA_NO := COMM.ADUST_ORDER(P_ROLL_MANA_NO, P_POSITION);
  328. ELSE
  329. RAISE POS_VE;
  330. END IF;
  331. EXCEPTION
  332. WHEN VE THEN
  333. COMM.REC_ERR.P_ERR_MSG := 'ROLL_MANA_NO IS NULL';
  334. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  335. WHEN POS_VE THEN
  336. COMM.REC_ERR.P_ERR_MSG := 'POSITION IS NULL';
  337. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  338. END;
  339. /************************************************************************/
  340. /* procedure CHECK_CHARGE_IDX Author: SunJiawang */
  341. /************************************************************************/
  342. /* DESCRIPTION 检查HCR炉次的编制顺序 |后出来的炉次不能编制在先出来的
  343. 炉次前 ,以连铸结束时间为准 */
  344. /************************************************************************/
  345. /* parentProcedure: CHECK_ERROR
  346. /************************************************************************/
  347. PROCEDURE CHECK_CHARGE_IDX(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE) IS
  348. V_PRE_CCM_END_DTIME TBF01_SPEC_CHARGE.PRE_CCM_END_DTIME%TYPE := '';
  349. VE EXCEPTION;
  350. V_CNT NUMBER := -1;
  351. BEGIN
  352. SELECT A.PRE_CCM_END_DTIME
  353. INTO V_PRE_CCM_END_DTIME
  354. FROM TBF01_SPEC_CHARGE A
  355. WHERE A.CHARGE_MANA_NO = P_CHARGE_MANA_NO;
  356. --LOGIC
  357. --先出来的炉次应该编制在后出来的炉次前
  358. SELECT COUNT(DISTINCT(C.CHARGE_MANA_NO))
  359. INTO V_CNT
  360. FROM TBF02_SPEC_MILL A, TBF01_SPEC_CHARGE B, TBF01_SPEC_SLAB C
  361. WHERE A.SLAB_EDT_SEQ = C.MILL_SLAB_EDT_SEQ
  362. AND B.CHARGE_EDT_SEQ = C.CHARGE_EDT_SEQ
  363. AND B.MILL_FL = 'Y'
  364. AND C.MILL_FL = 'Y'
  365. AND A.STATUS_CD IN ('A', 'B')
  366. AND ((A.ROLL_MANA_NO >= V_ROLL_MANA_NO AND
  367. B.PRE_CCM_END_DTIME < V_PRE_CCM_END_DTIME) OR
  368. (A.ROLL_MANA_NO < V_ROLL_MANA_NO AND
  369. B.PRE_CCM_END_DTIME > V_PRE_CCM_END_DTIME));
  370. IF V_CNT > 0 THEN
  371. RAISE VE;
  372. END IF;
  373. --exception
  374. EXCEPTION
  375. WHEN VE THEN
  376. COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.CHECK_CHARGE_IDX';
  377. COMM.REC_ERR.P_OPERATE := 'I';
  378. COMM.REC_ERR.P_ERR_PARAM1 := 'V_PRE_CCM_END_DTIME';
  379. COMM.REC_ERR.P_TABLE := 'TBF01_SPEC_CHARGE';
  380. COMM.REC_ERR.P_ERR_MSG := '先出来的炉次应该编制在后出来的炉次前';
  381. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  382. END;
  383. /************************************************************************/
  384. /* procedure CHECK_ROLL_STATUS Author: SunJiawang */
  385. /************************************************************************/
  386. /* DESCRIPTION HCR 不能够编制在轧制进行的物料之前 */
  387. /************************************************************************/
  388. /* parentProcedure: CHECK_ERROR
  389. /************************************************************************/
  390. PROCEDURE CHECK_ROLL_STATUS(P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE,
  391. P_POSITION VARCHAR2) IS
  392. LV_P_BEF_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE := ''; --转换为移动对象前的轧辊管理号
  393. LV_MAX_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE := '';
  394. LV_CNT_STATUS INTEGER := 0;
  395. LV_CNT_COIL_STAT INTEGER := 0;
  396. VE EXCEPTION;
  397. BEGIN
  398. SELECT MAX(ROLL_MANA_NO)
  399. INTO LV_MAX_ROLL_MANA_NO
  400. FROM TBF02_SPEC_MILL A
  401. WHERE A.STATUS_CD IN ('A', 'B');
  402. IF (P_POSITION = 'B') THEN
  403. LV_P_BEF_ROLL_MANA_NO := P_ROLL_MANA_NO;
  404. ELSIF (P_ROLL_MANA_NO < LV_MAX_ROLL_MANA_NO AND P_POSITION = 'A') THEN
  405. SELECT A.ROLL_MANA_NO
  406. INTO LV_P_BEF_ROLL_MANA_NO
  407. FROM (SELECT ROLL_MANA_NO
  408. FROM TBF02_SPEC_ROLL
  409. WHERE ROLL_MANA_NO > P_ROLL_MANA_NO
  410. ORDER BY ROLL_MANA_NO ASC) A
  411. WHERE ROWNUM = 1;
  412. END IF;
  413. SELECT SUM(DECODE(A.STATUS_CD, 'B', 1, 0)),
  414. SUM(DECODE(B.COIL_STAT, '0', 1, 0))
  415. INTO LV_CNT_STATUS, LV_CNT_COIL_STAT
  416. FROM TBF02_SPEC_MILL A, TBH02_COIL_COMM B
  417. WHERE B.SLAB_NO = A.SLAB_NO(+)
  418. AND B.COIL_NO = A.COIL_NO(+)
  419. AND A.ROLL_MANA_NO = LV_P_BEF_ROLL_MANA_NO
  420. AND A.STATUS_CD IN ('A', 'B');
  421. IF (LV_CNT_STATUS > 0 OR LV_CNT_COIL_STAT > 0) THEN
  422. RAISE VE;
  423. END IF;
  424. EXCEPTION
  425. WHEN VE THEN
  426. COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.CHECK_ROLL_STATUS';
  427. COMM.REC_ERR.P_OPERATE := 'CHECK';
  428. COMM.REC_ERR.P_ERR_PARAM1 := 'LV_P_BEF_ROLL_MANA_NO';
  429. COMM.REC_ERR.P_TABLE := 'TBF02_SPEC_MILL';
  430. COMM.REC_ERR.P_ERR_MSG := '不能够编制在轧制进行或上料的物料之前';
  431. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  432. END;
  433. /************************************************************************/
  434. /* procedure CHECK_ERROR Author: SunJiawang */
  435. /************************************************************************/
  436. /* DESCRIPTION check the object error
  437. 检查HCR有没有被编制,被编制的炉次不能够再次被编制
  438. 检查炉次的顺序 ,后出来的炉次不能够编制在先出来的炉次之前
  439. 检查编制对象是不是有热轧工艺标准 */
  440. /************************************************************************/
  441. /* parentProcedure: HCR_EDIT
  442. /************************************************************************/
  443. PROCEDURE CHECK_ERROR(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE,
  444. P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE,
  445. P_POSITION VARCHAR2) IS
  446. BEGIN
  447. CHECK_ROLL_STATUS(P_ROLL_MANA_NO, P_POSITION);
  448. CHECK_MILL_FL(P_CHARGE_MANA_NO);
  449. CHECK_CHARGE_IDX(P_CHARGE_MANA_NO);
  450. CHECK_RZGYBZ(P_CHARGE_MANA_NO);
  451. END;
  452. /************************************************************************/
  453. /* procedure ADUST_ROLL_MANA_NO Author: SunJiawang */
  454. /************************************************************************/
  455. /* DESCRIPTION 调整炉次顺序
  456. 插入插辊后的轧辊号都要增加1 */
  457. /************************************************************************/
  458. /* parentProcedure: HCR_EDIT
  459. /************************************************************************/
  460. PROCEDURE ADUST_ROLL_MANA_NO IS
  461. VE EXCEPTION;
  462. BEGIN
  463. UPDATE TBF02_SPEC_ROLL
  464. SET ROLL_MANA_NO = COMM.SEQ_INCREASE(ROLL_MANA_NO)
  465. WHERE ROLL_MANA_NO >= V_ROLL_MANA_NO;
  466. UPDATE TBF02_MILL_IDX T
  467. SET ROLL_MANA_NO = COMM.SEQ_INCREASE(ROLL_MANA_NO)
  468. WHERE ROLL_MANA_NO >= V_ROLL_MANA_NO;
  469. UPDATE TBF02_SPEC_MILL T
  470. SET ROLL_MANA_NO = COMM.SEQ_INCREASE(ROLL_MANA_NO)
  471. WHERE ROLL_MANA_NO >= V_ROLL_MANA_NO;
  472. EXCEPTION
  473. WHEN VE THEN
  474. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  475. END;
  476. /************************************************************************/
  477. /* procedure INSERT_SPEC_ROLL Author: SunJiawang */
  478. /************************************************************************/
  479. /* DESCRIPTION 编制对象插入TBFO2_SPEC_ROLL */
  480. /************************************************************************/
  481. /* parentProcedure: HCR_EDIT
  482. /************************************************************************/
  483. PROCEDURE INSERT_SPEC_ROLL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS
  484. SLAB_CNT INTEGER := 0;
  485. SUM_SLAB_WGT INTEGER := 0;
  486. SUM_MILL_LEN INTEGER := 0;
  487. V_MAX_ROLL_EDT_SEQ TBF02_SPEC_ROLL.ROLL_EDT_SEQ %TYPE;
  488. BEGIN
  489. /*记录要插入到轧辊中的板坯数量*/
  490. /* slab_cnt := slabCnt(p_charge_edt_seq); */
  491. --INIT
  492. SELECT COUNT(SLAB_EDT_SEQ), SUM(A.SLAB_WGT), SUM(A.ORD_LEN)
  493. INTO SLAB_CNT, SUM_SLAB_WGT, SUM_MILL_LEN
  494. FROM TBF01_SPEC_SLAB A
  495. WHERE A.STATUS_CD IN ('A', 'B')
  496. AND A.CHARGE_MANA_NO = P_CHARGE_MANA_NO
  497. AND A.HCR_CLF = 'H';
  498. SELECT NVL(MAX(ROLL_EDT_SEQ), 0)
  499. INTO V_MAX_ROLL_EDT_SEQ
  500. FROM TBF02_SPEC_ROLL;
  501. V_ROLL_EDT_SEQ := V_MAX_ROLL_EDT_SEQ + 1;
  502. --LOGIC
  503. INSERT INTO TBF02_SPEC_ROLL T
  504. (T.ROLL_EDT_SEQ,
  505. T.ROLL_MANA_NO,
  506. T.ROLL_SLAB_CNT,
  507. T.ROLL_SLAB_WGT,
  508. T.MILL_LEN,
  509. T.STATUS_CD,
  510. T.HCR_CLF,
  511. T.REG_DTIME,
  512. T.REG_ID)
  513. VALUES
  514. (V_MAX_ROLL_EDT_SEQ + 1,
  515. V_ROLL_MANA_NO,
  516. SLAB_CNT,
  517. SUM_SLAB_WGT,
  518. SUM_MILL_LEN,
  519. 'A',
  520. 'H',
  521. TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'),
  522. COMM.REC_USER.P_REG_ID);
  523. END;
  524. /************************************************************************/
  525. /* procedure HCR_INSERT Author: SunJiawang */
  526. /************************************************************************/
  527. /* DESCRIPTION 编制对象插入 */
  528. /************************************************************************/
  529. /* parentProcedure: HCR_EDIT
  530. /************************************************************************/
  531. PROCEDURE HCR_INSERT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE) IS
  532. V_MAX_SEQ_NO TBF02_MILL_IDX.SEQ_NO%TYPE := 0;
  533. V_MAX_SLAB_EDT_SEQ TBF02_MILL_IDX.SLAB_EDT_SEQ%TYPE := 0;
  534. BEGIN
  535. --INIT
  536. SELECT NVL(MAX(SEQ_NO), 0) INTO V_MAX_SEQ_NO FROM TBF02_MILL_IDX;
  537. V_SEQ_NO := V_MAX_SEQ_NO + 1;
  538. SELECT NVL(MAX(SLAB_EDT_SEQ), 0)
  539. INTO V_MAX_SLAB_EDT_SEQ
  540. FROM TBF02_MILL_IDX;
  541. V_SLAB_EDT_SEQ := V_MAX_SLAB_EDT_SEQ + 1;
  542. --LOGIC
  543. --UPDATE SPEC_CHARGE_MILL_FL
  544. OPEN CUR_HCR(P_CHARGE_MANA_NO);
  545. LOOP
  546. FETCH CUR_HCR
  547. INTO REC_HCR;
  548. EXIT WHEN CUR_HCR %NOTFOUND;
  549. HCR_INSERT_MILL_IDX;
  550. HCR_INSERT_SPEC_MILL;
  551. --UPDATE SPEC_SLAB_MILL_FL AND MILL_SLAB_EDT_SEQ
  552. HCR_U_SPEC_SLAB_MILL_FL;
  553. --PARAMS++
  554. V_SEQ_NO := V_SEQ_NO + 1;
  555. V_SLAB_EDT_SEQ := V_SLAB_EDT_SEQ + 1;
  556. END LOOP;
  557. IF (CUR_HCR %ROWCOUNT = 0) THEN
  558. RAISE COMM.VE_NULL;
  559. END IF;
  560. CLOSE CUR_HCR;
  561. -- HCR_INSERT_SPECMILL_D;
  562. HCR_INSERT_SPEC_MILL_EDT;
  563. EXCEPTION
  564. WHEN COMM.VE_NULL THEN
  565. COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.HCR_INSET';
  566. COMM.REC_ERR.P_TABLE := 'TBF02_SPEC_MILL & TBF02_MILL_IDX';
  567. COMM.REC_ERR.P_OPERATE := 'I';
  568. COMM.REC_ERR.P_ERR_MSG := '编制对象数据错误,没有记录!';
  569. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  570. END;
  571. PROCEDURE HCR_INSERT_MILL_IDX IS
  572. BEGIN
  573. INSERT INTO TBF02_MILL_IDX T
  574. (T.SEQ_NO,
  575. T.SLAB_EDT_SEQ,
  576. T.SLAB_NO,
  577. T.ROLL_EDT_SEQ,
  578. T.ROLL_MANA_NO,
  579. T.STATUS_CD,
  580. T.L2_SEND,
  581. T.REG_DTIME)
  582. VALUES
  583. (V_SEQ_NO,
  584. V_SLAB_EDT_SEQ,
  585. REC_HCR.SLAB_MANA_NO,
  586. V_ROLL_EDT_SEQ,
  587. V_ROLL_MANA_NO,
  588. 'A',
  589. 'Y',
  590. TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'));
  591. END;
  592. PROCEDURE HCR_INSERT_SPEC_MILL IS
  593. V_MAX_ROLL_SLAB_SEQ TBF02_SPEC_MILL.ROLL_SLAB_SEQ%TYPE := 0;
  594. V_CUR_COIL_NO TBF02_SPEC_MILL.COIL_NO%TYPE := '';
  595. BEGIN
  596. --INIT
  597. SELECT NVL(MAX(ROLL_SLAB_SEQ), 0)
  598. INTO V_MAX_ROLL_SLAB_SEQ
  599. FROM TBF02_SPEC_MILL
  600. WHERE ROLL_MANA_NO = V_ROLL_MANA_NO;
  601. V_CUR_COIL_NO := GET_COIL_NO;
  602. V_ROLL_SLAB_SEQ := V_MAX_ROLL_SLAB_SEQ + 1;
  603. INSERT INTO TBF02_SPEC_MILL
  604. VALUES
  605. (V_SLAB_EDT_SEQ,
  606. REC_HCR.SLAB_MANA_NO,
  607. V_CUR_COIL_NO,
  608. V_ROLL_EDT_SEQ,
  609. V_ROLL_MANA_NO,
  610. V_ROLL_MANA_NO,
  611. V_ROLL_SLAB_SEQ,
  612. REC_HCR.LOT_NO,
  613. REC_HCR.LOT_COIL_CNT,
  614. REC_HCR.LOT_COIL_SEQ,
  615. REC_HCR.PRODNM_CD,
  616. REC_HCR.SPEC_STL_GRD,
  617. REC_HCR.STL_GRD,
  618. REC_HCR.FAC_STL_GRP --STL_GRP_CD
  619. ,
  620. REC_HCR.SLAB_THK,
  621. REC_HCR.SLAB_WTH,
  622. REC_HCR.SLAB_LEN,
  623. REC_HCR.SLAB_WGT,
  624. REC_HCR.SLAB_TAPER,
  625. REC_HCR.SLAB_WTH_HEAD,
  626. REC_HCR.SLAB_WTH_TAIL,
  627. REC_HCR.WTH_CHG_STS,
  628. REC_HCR.WTH_CHG_END,
  629. REC_HCR.THK_AIM,
  630. REC_HCR.THK_GRP_CD,
  631. REC_HCR.HOT_THK_AIM,
  632. REC_HCR.HOT_THK_MIN,
  633. REC_HCR.HOT_THK_MAX,
  634. REC_HCR.WTH_AIM,
  635. REC_HCR.WTH_MIN,
  636. REC_HCR.WTH_MAX,
  637. REC_HCR.WTH_GRP_CD,
  638. REC_HCR.MILL_LEN,
  639. REC_HCR.MILL_WGT,
  640. REC_HCR.HCR_CLF,
  641. REC_HCR.ORD_NO,
  642. REC_HCR.ORD_SEQ,
  643. REC_HCR.ORD_USEAGE_CD,
  644. REC_HCR.SPEC_ABBSYM,
  645. REC_HCR.ORDCUST_CD --ORD_CUST_CD
  646. ,
  647. REC_HCR.CUST_CD,
  648. REC_HCR.DEST_CD,
  649. REC_HCR.DELV_REQ_DATE,
  650. REC_HCR.UST_CD,
  651. REC_HCR.SLAB_RT --ROUTE
  652. ,
  653. REC_HCR.ORD_THK,
  654. REC_HCR.ORD_WTH,
  655. REC_HCR.ORD_WGT,
  656. REC_HCR.ORD_WGT_MIN,
  657. REC_HCR.ORD_WGT_MAX,
  658. REC_HCR.ORD_INDIA,
  659. REC_HCR.ORD_OUTDIA,
  660. REC_HCR.PACK_METHOD,
  661. REC_HCR.CAST_MANA_NO,
  662. REC_HCR.CCM_PRC_LINE,
  663. REC_HCR.PATH_MILL_CD,
  664. REC_HCR.SPM_PROC_YN,
  665. REC_HCR.SLAB_CUT_CNT,
  666. REC_HCR.RHF_TGT_TEMP,
  667. REC_HCR.EXTRACT_TGT_TEMP -- 目标出炉温度
  668. ,
  669. REC_HCR.EXTRACT_MIN_TEMP -- 最小出炉温度
  670. ,
  671. REC_HCR.EXTRACT_MAX_TEMP -- 最大出炉温度
  672. ,
  673. REC_HCR.CHARGING_TGT_TEMP -- 出炉均热度(目标)
  674. ,
  675. REC_HCR.CHARGING_MAX_TEMP -- 出炉均热度(上限)
  676. ,
  677. REC_HCR.INFUR_MIN_HOUR -- 在炉时间(下限)
  678. ,
  679. REC_HCR.INFUR_MAX_HOUR -- 在炉时间(上限)
  680. ,
  681. REC_HCR.EQ_HT_MIN_HOUR -- 均热时间(下限)
  682. ,
  683. REC_HCR.EQ_HT_MAX_HOUR -- 均热时间(上限)
  684. ,
  685. '' --rec_hcr.FUR_TME
  686. ,
  687. '' --rec_hcr.MILL_TME
  688. ,
  689. '' --rec_hcr.FUR_IN_PRE_DTIME
  690. ,
  691. '' --rec_hcr.MILL_PRE_TME
  692. ,
  693. '0' -- rec_hcr.SPEC_SLAB_EDT_SEQ
  694. ,
  695. 'A' -- rec_hcr.STATUS_CD
  696. ,
  697. '' -- FL
  698. ,
  699. TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'),
  700. COMM.REC_USER.P_REG_ID,
  701. TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'),
  702. COMM.REC_USER.P_REG_ID);
  703. END;
  704. /************************************************************************/
  705. /* procedure HCR_U_SPEC_SLAB_MILL_FL Author: SunJiawang */
  706. /************************************************************************/
  707. /* DESCRIPTION 修改HCR编制的状态 */
  708. /************************************************************************/
  709. /* parentProcedure: HCR_EDIT
  710. /************************************************************************/
  711. PROCEDURE HCR_U_SPEC_SLAB_MILL_FL IS
  712. BEGIN
  713. UPDATE TBF01_SPEC_SLAB T
  714. SET T.MILL_SLAB_EDT_SEQ = V_SLAB_EDT_SEQ, T.MILL_FL = 'Y'
  715. WHERE T.SLAB_EDT_SEQ = REC_HCR.SLAB_EDT_SEQ;
  716. END;
  717. /************************************************************************/
  718. /* procedure HCR_U_SPEC_CHARGE_MILL_FL Author: SunJiawang */
  719. /************************************************************************/
  720. /* DESCRIPTION 修改HCR编制的状态 */
  721. /************************************************************************/
  722. /* parentProcedure: HCR_INSERT
  723. /************************************************************************/
  724. PROCEDURE HCR_U_SPEC_CHARGE_MILL_FL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS
  725. BEGIN
  726. /*编制完成后,更新炉次参数表的编制状态*/
  727. UPDATE TBF01_SPEC_CHARGE T
  728. SET T.MILL_FL = 'Y'
  729. WHERE T.CHARGE_MANA_NO = P_CHARGE_MANA_NO;
  730. END;
  731. PROCEDURE HCR_INSERT_SPEC_MILL_EDT IS
  732. CUR_MILL_EDT COMM.REF_CURSOR;
  733. TYPE REC_MILL_EDT_TYPE IS RECORD(
  734. SLAB_EDT_SEQ TBF02_SPEC_MILL_DET.SLAB_EDT_SEQ%TYPE, -- 板坯编制号
  735. SLAB_NO TBF02_SPEC_MILL_DET.SLAB_NO%TYPE, -- 板坯号
  736. FERR_MODE TBF02_SPEC_MILL_DET.FERR_MODE%TYPE, -- 铁素体轧制模式
  737. FERR_CON_STA_TGT_TEMP TBF02_SPEC_MILL_DET.FERR_CON_STA_TGT_TEMP%TYPE, -- 开始铁素体轧制时温度
  738. FERR_CON_END_TGT_TEMP TBF02_SPEC_MILL_DET.FERR_CON_END_TGT_TEMP%TYPE, -- 结束铁素体轧制时温度
  739. EXTRACT_TGT_TEMP TBF02_SPEC_MILL_DET.EXTRACT_TGT_TEMP %TYPE, -- 板坯目标出炉温度
  740. RM1_EXIT_TGT_TEMP TBF02_SPEC_MILL_DET.RM2_EXIT_TGT_TEMP%TYPE, -- R2出口目标温度【额定R2温度】
  741. RM1_EXIT_MIN_TEMP TBF02_SPEC_MILL_DET.RM2_EXIT_MIN_TEMP%TYPE, -- 额定R2温度公差(-)
  742. RM1_EXIT_MAX_TEMP TBF02_SPEC_MILL_DET.RM2_EXIT_MAX_TEMP%TYPE, -- 额定R2温度公差(+)
  743. STRIP_AIM_THK TBF02_SPEC_MILL_DET.STRIP_AIM_THK%TYPE, -- 额定轧制厚度
  744. STRIP_MAX_THK TBF02_SPEC_MILL_DET.STRIP_MAX_THK%TYPE, -- 额定轧制厚度公差(+)
  745. STRIP_MIN_THK TBF02_SPEC_MILL_DET.STRIP_MIN_THK%TYPE, -- 额定轧制厚度公差(-)
  746. STRIP_CHG_TGT_THK TBF02_SPEC_MILL_DET.STRIP_CHG_TGT_THK%TYPE, --
  747. STRIP_CHG_MAX_THK TBF02_SPEC_MILL_DET.STRIP_CHG_MAX_THK%TYPE, --
  748. STRIP_CHG_MIN_THK TBF02_SPEC_MILL_DET.STRIP_CHG_MIN_THK%TYPE, --
  749. STRIP_AIM_WTH TBF02_SPEC_MILL_DET.STRIP_AIM_WTH%TYPE, -- 额定轧制宽度
  750. STRIP_MAX_WTH TBF02_SPEC_MILL_DET.STRIP_MAX_WTH%TYPE, -- 额定轧制宽度公差(+)
  751. STRIP_MIN_WTH TBF02_SPEC_MILL_DET.STRIP_MIN_WTH%TYPE, -- 额定轧制宽度公差(-)
  752. STRIP_TGT_TEMP TBF02_SPEC_MILL_DET.STRIP_TGT_TEMP%TYPE, -- 额定精轧出口温度
  753. STRIP_MIN_TEMP TBF02_SPEC_MILL_DET.STRIP_MIN_TEMP%TYPE, -- 额定精轧出口温度公差(+)
  754. STRIP_MAX_TEMP TBF02_SPEC_MILL_DET.STRIP_MAX_TEMP%TYPE, -- 额定精轧出口温度公差(-)
  755. CROWN_AIM_C39 TBF02_SPEC_MILL_DET.CROWN_AIM_C40%TYPE, -- 额定钢卷凸度 C40
  756. CROWN_MAX_C39 TBF02_SPEC_MILL_DET.CROWN_MAX_C40%TYPE, -- 额定钢卷凸度最小值(+)
  757. CROWN_MIN_C39 TBF02_SPEC_MILL_DET.CROWN_MIN_C40%TYPE, -- 额定钢卷凸度最大值(-)
  758. FM_SYM_STRIP_FLATNESS_DEV TBF02_SPEC_MILL_DET.FM_SYM_STRIP_FLATNESS_DEV%TYPE, -- 对称平直度偏差
  759. FM_ASY_STRIP_FLATNESS_DEV TBF02_SPEC_MILL_DET.FM_ASY_STRIP_FLATNESS_DEV%TYPE, -- 非对称平直度偏差
  760. STRIP_WEDGE_MIN TBF02_SPEC_MILL_DET.STRIP_WEDGE_MIN%TYPE, -- 钢板契型最小值
  761. STRIP_WEDGE_MAX TBF02_SPEC_MILL_DET.STRIP_WEDGE_MAX%TYPE, -- 钢板契型最大值
  762. COOLING_MODE TBF02_SPEC_MILL_DET.COOLING_MODE%TYPE, -- 冷却方式代码
  763. DUAL_PAHSE TBF02_SPEC_MILL_DET.DUAL_PAHSE%TYPE, -- "两阶段轧制标记铁素体 和 奥素体 轧制转换 标记"
  764. DUAL_TEMP TBF02_SPEC_MILL_DET.DUAL_TEMP%TYPE, -- 两阶段轧制时保持温度
  765. DUAL_TIME TBF02_SPEC_MILL_DET.DUAL_TIME%TYPE, -- 两阶段轧制时间
  766. UNCOIL_HEAD_LEN TBF02_SPEC_MILL_DET.UNCOIL_HEAD_LEN%TYPE, -- 头部开始计算 不冷却钢卷长度
  767. UNCOIL_TAIL_LEN TBF02_SPEC_MILL_DET.UNCOIL_TAIL_LEN%TYPE, -- 尾部开始计算 不冷却钢卷长度
  768. UNCOOL_AREA_LEN TBF02_SPEC_MILL_DET.UNCOOL_AREA_LEN%TYPE, -- 头部不冷却部分的长度
  769. COOLING_RATE_TOP TBF02_SPEC_MILL_DET.COOLING_RATE_TOP%TYPE, -- 头部冷却速率
  770. COOLING_RATE_BOT TBF02_SPEC_MILL_DET.COOLING_RATE_BOT%TYPE, -- 尾部冷却速率
  771. COOL_EXIT_TGT_TEMP TBF02_SPEC_MILL_DET.COOL_EXIT_TGT_TEMP%TYPE, -- 额定卷取温度
  772. COOL_EXIT_MAX_TEMP TBF02_SPEC_MILL_DET.COOL_EXIT_MAX_TEMP%TYPE, -- 额定卷取温度公差(+)
  773. COOL_EXIT_MIN_TEMP TBF02_SPEC_MILL_DET.COOL_EXIT_MIN_TEMP%TYPE, -- 额定卷取温度公差(-)
  774. SAMPLE_NO TBF02_SPEC_MILL_DET.SAMPLE_NO%TYPE, -- 取样代码
  775. INSPECT_YN TBF02_SPEC_MILL_DET.INSPECT_YN%TYPE, -- 对质量的观察指令
  776. BINDING_AMT_CIRC TBF02_SPEC_MILL_DET.BINDING_AMT_CIRC%TYPE, -- 横向打捆条数
  777. BINDING_AMT_RADI TBF02_SPEC_MILL_DET.BINDING_AMT_RADI%TYPE, -- 纵向打捆条数
  778. SMP_YS TBF02_SPEC_MILL_DET.SMP_YS%TYPE, -- 抗拉强度(TS)
  779. SMP_YP TBF02_SPEC_MILL_DET.SMP_YP%TYPE, -- 弯曲强度(YP)
  780. ALLOY_COMP_THK_DEV TBF02_SPEC_MILL_DET.ALLOY_COMP_THK_DEV%TYPE, -- 合金补正CODE
  781. DILAT_CURVE TBF02_SPEC_MILL_DET.DILAT_CURVE%TYPE, -- 膨胀曲线号
  782. DIAMOND_FLAG TBF02_SPEC_MILL_DET.DIAMOND_FLAG%TYPE, -- 花纹板 区分
  783. STS_FLAG TBF02_SPEC_MILL_DET.STS_FLAG%TYPE, -- 不锈钢 区分
  784. ORD_NO TBF02_SPEC_MILL_DET.ORD_NO%TYPE, -- 生产合同号
  785. COIL_LAYER TBF02_SPEC_MILL_DET.COIL_LAYER%TYPE, -- 钢卷堆放层次区分
  786. HAEA_TAIL_CD TBF02_SPEC_MILL_DET.HAEA_TAIL_CD%TYPE, -- 切头切尾指示
  787. PDI_COMM TBF02_SPEC_MILL_DET.PDI_COMM%TYPE, -- 热轧特殊指示
  788. CHEM_CLF TBF02_SPEC_MILL_DET.CHEM_CLF%TYPE, -- 成分值区分
  789. CHEM_AL TBF02_SPEC_MILL_DET.CHEM_AL%TYPE, -- Aluminium Al Content
  790. CHEM_AS TBF02_SPEC_MILL_DET.CHEM_AS%TYPE, -- Arsenic As Content
  791. CHEM_B TBF02_SPEC_MILL_DET.CHEM_B %TYPE, -- Boron B Content
  792. CHEM_BE TBF02_SPEC_MILL_DET.CHEM_BE%TYPE, -- Analysis of Beryllium
  793. CHEM_BI TBF02_SPEC_MILL_DET.CHEM_BI%TYPE, -- Bismuth Bi Content
  794. CHEM_C TBF02_SPEC_MILL_DET.CHEM_C %TYPE, -- Carbon C Content
  795. CHEM_CA TBF02_SPEC_MILL_DET.CHEM_CA%TYPE, -- Calcium Ca Content
  796. CHEM_CE TBF02_SPEC_MILL_DET.CHEM_CE%TYPE, -- Analysis of Cerium
  797. CHEM_CO TBF02_SPEC_MILL_DET.CHEM_CO%TYPE, -- Cobalt Co Content
  798. CHEM_CR TBF02_SPEC_MILL_DET.CHEM_CR%TYPE, -- Chromium Cr Content
  799. CHEM_CU TBF02_SPEC_MILL_DET.CHEM_CU%TYPE, -- Copper Cu Content
  800. CHEM_H TBF02_SPEC_MILL_DET.CHEM_H %TYPE, -- Hydrogen H Content
  801. CHEM_LA TBF02_SPEC_MILL_DET.CHEM_LA%TYPE, -- Analysis of Lanthanum
  802. CHEM_MG TBF02_SPEC_MILL_DET.CHEM_MG%TYPE, -- Magnesium Mg Content
  803. CHEM_MN TBF02_SPEC_MILL_DET.CHEM_MN%TYPE, -- Manganese Mn Content
  804. CHEM_MO TBF02_SPEC_MILL_DET.CHEM_MO%TYPE, -- Molybdenum Mo Content
  805. CHEM_N TBF02_SPEC_MILL_DET.CHEM_N %TYPE, -- Nitrogen N Content
  806. CHEM_NB TBF02_SPEC_MILL_DET.CHEM_NB%TYPE, -- Niobium Nb Content
  807. CHEM_NI TBF02_SPEC_MILL_DET.CHEM_NI%TYPE, -- Nickel Ni Content
  808. CHEM_O TBF02_SPEC_MILL_DET.CHEM_O %TYPE, -- Oxygen O Content
  809. CHEM_P TBF02_SPEC_MILL_DET.CHEM_P %TYPE, -- Phosphorus P Content
  810. CHEM_S TBF02_SPEC_MILL_DET.CHEM_S %TYPE, -- Sulphur S Content
  811. CHEM_SB TBF02_SPEC_MILL_DET.CHEM_SB%TYPE, -- Antimony Sb Content
  812. CHEM_SE TBF02_SPEC_MILL_DET.CHEM_SE%TYPE, -- Analysis of Selenium
  813. CHEM_SI TBF02_SPEC_MILL_DET.CHEM_SI%TYPE, -- Silicon Si Content
  814. CHEM_TI TBF02_SPEC_MILL_DET.CHEM_TI%TYPE, -- Titanium Ti Content
  815. CHEM_SN TBF02_SPEC_MILL_DET.CHEM_SN%TYPE, -- Tin Sn Content
  816. CHEM_TA TBF02_SPEC_MILL_DET.CHEM_TA%TYPE, -- Tantalum Ta Content
  817. CHEM_TE TBF02_SPEC_MILL_DET.CHEM_TE%TYPE, -- Analysis of Tellurium
  818. CHEM_PB TBF02_SPEC_MILL_DET.CHEM_PB%TYPE, -- Lead Pb Content
  819. CHEM_PD TBF02_SPEC_MILL_DET.CHEM_PD%TYPE, -- Analysis of Palladium
  820. CHEM_V TBF02_SPEC_MILL_DET.CHEM_V %TYPE, -- Vanadium V Content
  821. CHEM_W TBF02_SPEC_MILL_DET.CHEM_W %TYPE, -- Tungsten W Content
  822. CHEM_ZN TBF02_SPEC_MILL_DET.CHEM_ZN%TYPE, -- Zinc Zn Content
  823. CHEM_ZR TBF02_SPEC_MILL_DET.CHEM_ZR%TYPE, -- Zirconium Zr Content
  824. RESERVE_FIELD1 TBF02_SPEC_MILL_DET.RESERVE_FIELD1%TYPE, -- 预备 1
  825. RESERVE_FIELD2 TBF02_SPEC_MILL_DET.RESERVE_FIELD2%TYPE, -- 预备 2
  826. RESERVE_FIELD3 TBF02_SPEC_MILL_DET.RESERVE_FIELD3%TYPE, -- 预备 3
  827. RESERVE_FIELD4 TBF02_SPEC_MILL_DET.RESERVE_FIELD4%TYPE, -- 预备 4
  828. RESERVE_FIELD5 TBF02_SPEC_MILL_DET.RESERVE_FIELD5%TYPE -- 预备 5
  829. );
  830. REC_MILL_EDT REC_MILL_EDT_TYPE;
  831. -- CUR_MILL_EDT IS REF CURSOR;
  832. BEGIN
  833. OPEN CUR_MILL_EDT FOR
  834. SELECT F.SLAB_EDT_SEQ -- SLAB_EDT_SEQ 板坯编制号
  835. ,
  836. F.SLAB_NO -- SLAB_NO 板坯号
  837. ,
  838. B.FERR_MODE -- FERR_MODE 铁素体轧制模式
  839. ,
  840. B.FERR_CON_STA_TGT_TEMP -- FERR_CON_STA_TGT_TEMP 开始铁素体轧制时温度
  841. ,
  842. B.FERR_CON_END_TGT_TEMP -- FERR_CON_END_TGT_TEMP 结束铁素体轧制时温度
  843. ,
  844. B.EXTRACT_TGT_TEMP -- EXTRACT_TGT_TEMP 板坯目标出炉温度
  845. ,
  846. '' RM2_EXIT_TGT_TEMP -- RM2_EXIT_TGT_TEMP R2出口目标温度【额定R2温度】
  847. ,
  848. '' RM2_EXIT_MIN_TEMP -- RM2_EXIT_MIN_TEMP 额定R2温度公差(-)
  849. ,
  850. '' RM2_EXIT_MAX_TEMP -- RM2_EXIT_MAX_TEMP 额定R2温度公差(+)
  851. ,
  852. -- TO_CHAR(C.HOT_THK_AIM) STRIP_AIM_THK --额定轧制厚度
  853. TO_CHAR(D.ORD_THK) STRIP_AIM_THK --额定轧制厚度 --UPDATE 090629
  854. ,
  855. TO_CHAR(C.HOT_THK_MAX - C.HOT_THK_AIM) STRIP_MAX_THK --额定轧制厚度公差(+)
  856. ,
  857. TO_CHAR(C.HOT_THK_AIM - C.HOT_THK_MIN) STRIP_MIN_THK --额定轧制厚度公差(-)
  858. ,
  859. '' -- STRIP_CHG_TGT_THK
  860. ,
  861. '' -- STRIP_CHG_MAX_THK
  862. ,
  863. '' -- STRIP_CHG_MIN_THK
  864. ,
  865. TO_CHAR(C.WTH_AIM) STRIP_AIM_WTH --额定轧制宽度
  866. ,
  867. TO_CHAR(C.WTH_MAX - C.WTH_AIM) STRIP_MAX_WTH --额定轧制宽度公差(+)
  868. ,
  869. TO_CHAR(C.WTH_AIM - C.WTH_MIN) STRIP_MIN_WTH --额定轧制宽度公差(-)
  870. ,
  871. CASE
  872. WHEN (X.THK_MAX_LABEL = 'D' AND
  873. F.THK_AIM >= X.THK_MAX) THEN
  874. B.STRIP_TGT_TEMP2
  875. WHEN (X.THK_MAX_LABEL = 'C' AND F.THK_AIM > X.THK_MAX) THEN
  876. B.STRIP_TGT_TEMP2
  877. ELSE
  878. B.STRIP_TGT_TEMP1
  879. END STRIP_TGT_TEMP -- COOL_EXIT_TGT_TEMP 额定卷取温度
  880. ,
  881. B.STRIP_MIN_TEMP -- STRIP_MIN_TEMP 额定精轧出口温度公差(+)
  882. ,
  883. B.STRIP_MAX_TEMP -- STRIP_MAX_TEMP 额定精轧出口温度公差(-)
  884. ,
  885. B.FM_ENT_TGT_CROWN_40 -- CROWN_AIM_C40 额定钢卷凸度 C40
  886. ,
  887. B.FM_ENT_MAX_CROWN_40 -- CROWN_MAX_C40 额定钢卷凸度最大值(+)
  888. ,
  889. B.FM_ENT_MIN_CROWN_40 -- CROWN_MIN_C40 额定钢卷凸度最小值(-)
  890. ,
  891. B.SYM_FLATNESS_DEV -- FM_SYM_STRIP_FLATNESS_DEV 对称平直度偏差
  892. ,
  893. B.ASY_FLATNESS_DEV -- FM_ASY_STRIP_FLATNESS_DEV 非对称平直度偏差
  894. ,
  895. B.STRIP_WED_MIN -- STRIP_WEDGE_MIN 钢板契型最小值
  896. ,
  897. B.STRIP_WED_MAX -- STRIP_WEDGE_MAX 钢板契型最大值
  898. ,
  899. NVL(B.COOL_MODE, '0') COOLING_MODE --冷却方式代码
  900. ,
  901. NVL(B.DUAL_PHASE_CLF, '0') -- DUAL_PAHSE 两阶段轧制标记 铁素体 和 奥素体 轧制转换 标记
  902. ,
  903. B.DUAL_PHASE_TEMP -- DUAL_TEMP 两阶段轧制时保持温度
  904. ,
  905. B.DUAL_PHASE_TIME -- DUAL_TIME 两阶段轧制时间
  906. ,
  907. B.NON_COOL_LEN_HEAD -- UNCOIL_HEAD_LEN 头部开始计算 不冷却钢卷长度
  908. ,
  909. B.NON_COOL_LEN_TAIL -- UNCOIL_TAIL_LEN 尾部开始计算 不冷却钢卷长度
  910. ,
  911. B.NON_COOL_LEN_NOR -- UNCOOL_AREA_LEN 头部不冷却部分的长度
  912. ,
  913. NVL(B.COOL_TOP_RATE, '50') COOLING_RATE_TOP --头部冷却速率
  914. ,
  915. NVL(B.COOL_BOT_RATE, '50') COOLING_RATE_BOT --尾部冷却速率
  916. ,
  917. CASE
  918. WHEN (X.THK_MAX_LABEL = 'D' AND
  919. F.THK_AIM >= X.THK_MAX) THEN
  920. B.COILING_TGT_TEMP2
  921. WHEN (X.THK_MAX_LABEL = 'C' AND F.THK_AIM > X.THK_MAX) THEN
  922. B.COILING_TGT_TEMP2
  923. ELSE
  924. B.COILING_TGT_TEMP1
  925. END COILING_TGT_TEMP -- COOL_EXIT_TGT_TEMP 额定卷取温度
  926. ,
  927. B.COILING_MAX_TEMP -- COOL_EXIT_MAX_TEMP 额定卷取温度公差(+)
  928. ,
  929. B.COILING_MIN_TEMP -- COOL_EXIT_MIN_TEMP 额定卷取温度公差(-)
  930. ,
  931. '' -- SAMPLE_NO 取样代码
  932. ,
  933. '' -- INSPECT_YN 对质量的观察指令
  934. ,
  935. NVL(B.BINDING_WGT_CIR, '1') BINDING_AMT_CIRC --横向打捆条数
  936. ,
  937. NVL(B.BINDING_WGT_RAD, '1') BINDING_AMT_RADI --纵向打捆条数
  938. ,
  939. (SELECT CASE
  940. WHEN NVL(E.QLTY_MIN, 0) = 0 AND
  941. NVL(E.QLTY_MAX, 0) = 0 THEN
  942. 0
  943. WHEN NVL(E.QLTY_MIN, 0) <> 0 AND
  944. NVL(E.QLTY_MAX, 0) = 0 THEN
  945. E.QLTY_MIN
  946. WHEN NVL(E.QLTY_MIN, 0) = 0 AND
  947. NVL(E.QLTY_MAX, 0) <> 0 THEN
  948. E.QLTY_MAX
  949. ELSE
  950. (E.QLTY_MIN + E.QLTY_MAX) / 2
  951. END
  952. FROM TBB01_ORD_QLTY E
  953. WHERE E.ORD_NO = F.ORD_NO
  954. AND E.ORD_SEQ = F.ORD_SEQ
  955. AND E.DSN_KIND || QLTY_CD =
  956. (SELECT MAX(B.DSN_KIND) || MIN(B.QLTY_CD)
  957. FROM TBB01_ORD_QLTY B
  958. WHERE B.ORD_NO = F.ORD_NO
  959. AND B.ORD_SEQ = F.ORD_SEQ
  960. AND B.QLTY_CD LIKE 'EL%'
  961. AND B.DSN_KIND =
  962. (SELECT MAX(B.DSN_KIND)
  963. FROM TBB01_ORD_QLTY B
  964. WHERE B.ORD_NO = F.ORD_NO
  965. AND B.ORD_SEQ = F.ORD_SEQ
  966. AND B.QLTY_CD LIKE 'EL%')))
  967. -- SMP_YS 抗拉强度(TS)
  968. ,
  969. (SELECT CASE
  970. WHEN NVL(D.QLTY_MIN, 0) = 0 AND
  971. NVL(D.QLTY_MAX, 0) = 0 THEN
  972. 0
  973. WHEN NVL(D.QLTY_MIN, 0) <> 0 AND
  974. NVL(D.QLTY_MAX, 0) = 0 THEN
  975. D.QLTY_MIN
  976. WHEN NVL(D.QLTY_MIN, 0) = 0 AND
  977. NVL(D.QLTY_MAX, 0) <> 0 THEN
  978. D.QLTY_MAX
  979. ELSE
  980. (D.QLTY_MIN + D.QLTY_MAX) / 2
  981. END
  982. FROM TBB01_ORD_QLTY D
  983. WHERE D.QLTY_CD = 'TT07'
  984. AND D.ORD_NO = F.ORD_NO
  985. AND D.ORD_SEQ = F.ORD_SEQ
  986. AND D.DSN_KIND =
  987. (SELECT MAX(A.DSN_KIND)
  988. FROM TBB01_ORD_QLTY A
  989. WHERE A.ORD_NO = F.ORD_NO
  990. AND A.ORD_SEQ = F.ORD_SEQ
  991. AND A.QLTY_CD = 'TT07'))
  992. -- SMP_YP 弯曲强度(YP)
  993. ,
  994. B.ALLOY_COMP -- ALLOY_COMP_THK_DEV 合金补正CODE
  995. ,
  996. B.DILAT_CURVE -- DILAT_CURVE 膨胀曲线号
  997. ,
  998. '0' -- DIAMOND_FLAG 花纹板 区分
  999. ,
  1000. '' -- STS_FLAG 不锈钢 区分
  1001. ,
  1002. F.ORD_NO || F.ORD_SEQ -- ORD_NO 生产合同号
  1003. ,
  1004. '1' -- COIL_LAYER 钢卷堆放层次区分
  1005. ,
  1006. '1' -- HAEA_TAIL_CD 切头切尾指示
  1007. ,
  1008. '' -- PDI_COMM 热轧特殊指示
  1009. ,
  1010. '1' -- CHEM_CLF 成分值区分
  1011. ,
  1012. G.CHEM_AL -- CHEM_Al Aluminium Al Content
  1013. ,
  1014. G.CHEM_AS -- CHEM_As Arsenic As Content
  1015. ,
  1016. G.CHEM_B -- CHEM_B Boron B Content
  1017. ,
  1018. G.CHEM_BE -- CHEM_Be Analysis of Beryllium
  1019. ,
  1020. G.CHEM_BI -- CHEM_Bi Bismuth Bi Content
  1021. ,
  1022. G.CHEM_C -- CHEM_C Carbon C Content
  1023. ,
  1024. G.CHEM_CA -- CHEM_Ca Calcium Ca Content
  1025. ,
  1026. G.CHEM_CE -- CHEM_Ce Analysis of Cerium
  1027. ,
  1028. G.CHEM_CO -- CHEM_Co Cobalt Co Content
  1029. ,
  1030. G.CHEM_CR -- CHEM_Cr Chromium Cr Content
  1031. ,
  1032. G.CHEM_CU -- CHEM_Cu Copper Cu Content
  1033. ,
  1034. G.CHEM_H -- CHEM_H Hydrogen H Content
  1035. ,
  1036. G.CHEM_LA -- CHEM_La Analysis of Lanthanum
  1037. ,
  1038. G.CHEM_MG -- CHEM_Mg Magnesium Mg Content
  1039. ,
  1040. G.CHEM_MN -- CHEM_Mn Manganese Mn Content
  1041. ,
  1042. G.CHEM_MO -- CHEM_Mo Molybdenum Mo Content
  1043. ,
  1044. G.CHEM_N -- CHEM_N Nitrogen N Content
  1045. ,
  1046. G.CHEM_NB -- CHEM_Nb Niobium Nb Content
  1047. ,
  1048. G.CHEM_NI -- CHEM_Ni Nickel Ni Content
  1049. ,
  1050. G.CHEM_O -- CHEM_O Oxygen O Content
  1051. ,
  1052. G.CHEM_P -- CHEM_P Phosphorus P Content
  1053. ,
  1054. G.CHEM_S -- CHEM_S Sulphur S Content
  1055. ,
  1056. G.CHEM_SB -- CHEM_Sb Antimony Sb Content
  1057. ,
  1058. G.CHEM_SE -- CHEM_Se Analysis of Selenium
  1059. ,
  1060. G.CHEM_SI -- CHEM_Si Silicon Si Content
  1061. ,
  1062. G.CHEM_TI -- CHEM_Ti Titanium Ti Content
  1063. ,
  1064. G.CHEM_SN -- CHEM_Sn Tin Sn Content
  1065. ,
  1066. G.CHEM_TA -- CHEM_Ta Tantalum Ta Content
  1067. ,
  1068. G.CHEM_TE -- CHEM_Te Analysis of Tellurium
  1069. ,
  1070. G.CHEM_PB -- CHEM_Pb Lead Pb Content
  1071. ,
  1072. G.CHEM_PD -- CHEM_Pd Analysis of Palladium
  1073. ,
  1074. G.CHEM_V -- CHEM_V Vanadium V Content
  1075. ,
  1076. G.CHEM_W -- CHEM_W Tungsten W Content
  1077. ,
  1078. G.CHEM_ZN -- CHEM_Zn Zinc Zn Content
  1079. ,
  1080. G.CHEM_ZR -- CHEM_Zr Zirconium Zr Content
  1081. ,
  1082. '' -- RESERVE_FIELD1 预备 1
  1083. ,
  1084. '' -- RESERVE_FIELD2 预备 2
  1085. ,
  1086. '' -- RESERVE_FIELD3 预备 3
  1087. ,
  1088. '' -- RESERVE_FIELD4 预备 4
  1089. ,
  1090. '' -- RESERVE_FIELD5 预备 5
  1091. FROM TBF02_SPEC_MILL F,
  1092. TBH01_OPRN_STD B,
  1093. TBB01_ORD_PROD C,
  1094. TBB01_ORD_HEAD D,
  1095. TBH01_THK_STD X,
  1096. (SELECT FAC_STL_GRD,
  1097. MAX(DECODE(CHEM_CD, 'Al', CHEM_AIM)) CHEM_AL,
  1098. MAX(DECODE(CHEM_CD, 'As', CHEM_AIM)) CHEM_AS,
  1099. MAX(DECODE(CHEM_CD, 'B', CHEM_AIM)) CHEM_B,
  1100. MAX(DECODE(CHEM_CD, 'Be', CHEM_AIM)) CHEM_BE,
  1101. MAX(DECODE(CHEM_CD, 'Bi', CHEM_AIM)) CHEM_BI,
  1102. MAX(DECODE(CHEM_CD, 'C', CHEM_AIM)) CHEM_C,
  1103. MAX(DECODE(CHEM_CD, 'Ca', CHEM_AIM)) CHEM_CA,
  1104. MAX(DECODE(CHEM_CD, 'Ce', CHEM_AIM)) CHEM_CE,
  1105. MAX(DECODE(CHEM_CD, 'Co', CHEM_AIM)) CHEM_CO,
  1106. MAX(DECODE(CHEM_CD, 'Cr', CHEM_AIM)) CHEM_CR,
  1107. MAX(DECODE(CHEM_CD, 'Cu', CHEM_AIM)) CHEM_CU,
  1108. MAX(DECODE(CHEM_CD, 'H', CHEM_AIM)) CHEM_H,
  1109. MAX(DECODE(CHEM_CD, 'La', CHEM_AIM)) CHEM_LA,
  1110. MAX(DECODE(CHEM_CD, 'Mg', CHEM_AIM)) CHEM_MG,
  1111. MAX(DECODE(CHEM_CD, 'Mn', CHEM_AIM)) CHEM_MN,
  1112. MAX(DECODE(CHEM_CD, 'Mo', CHEM_AIM)) CHEM_MO,
  1113. MAX(DECODE(CHEM_CD, 'N', CHEM_AIM)) CHEM_N,
  1114. MAX(DECODE(CHEM_CD, 'Nb', CHEM_AIM)) CHEM_NB,
  1115. MAX(DECODE(CHEM_CD, 'Ni', CHEM_AIM)) CHEM_NI,
  1116. MAX(DECODE(CHEM_CD, 'O', CHEM_AIM)) CHEM_O,
  1117. MAX(DECODE(CHEM_CD, 'P', CHEM_AIM)) CHEM_P,
  1118. MAX(DECODE(CHEM_CD, 'S', CHEM_AIM)) CHEM_S,
  1119. MAX(DECODE(CHEM_CD, 'Sb', CHEM_AIM)) CHEM_SB,
  1120. MAX(DECODE(CHEM_CD, 'Se', CHEM_AIM)) CHEM_SE,
  1121. MAX(DECODE(CHEM_CD, 'Si', CHEM_AIM)) CHEM_SI,
  1122. MAX(DECODE(CHEM_CD, 'Ti', CHEM_AIM)) CHEM_TI,
  1123. MAX(DECODE(CHEM_CD, 'Sn', CHEM_AIM)) CHEM_SN,
  1124. MAX(DECODE(CHEM_CD, 'Ta', CHEM_AIM)) CHEM_TA,
  1125. MAX(DECODE(CHEM_CD, 'Te', CHEM_AIM)) CHEM_TE,
  1126. MAX(DECODE(CHEM_CD, 'Pb', CHEM_AIM)) CHEM_PB,
  1127. MAX(DECODE(CHEM_CD, 'Pd', CHEM_AIM)) CHEM_PD,
  1128. MAX(DECODE(CHEM_CD, 'V', CHEM_AIM)) CHEM_V,
  1129. MAX(DECODE(CHEM_CD, 'W', CHEM_AIM)) CHEM_W,
  1130. MAX(DECODE(CHEM_CD, 'Zn', CHEM_AIM)) CHEM_ZN,
  1131. MAX(DECODE(CHEM_CD, 'Zr', CHEM_AIM)) CHEM_ZR
  1132. FROM TBB01_FAC_INGR
  1133. GROUP BY FAC_STL_GRD) G
  1134. WHERE F.ROLL_MANA_NO = V_ROLL_MANA_NO
  1135. AND F.ORD_NO = D.ORD_NO(+)
  1136. AND F.ORD_SEQ = D.ORD_SEQ(+)
  1137. AND F.ORD_NO = C.ORD_NO(+)
  1138. AND F.ORD_SEQ = C.ORD_SEQ(+)
  1139. AND D.PRDNM_CD = B.PRDNM_CD(+)
  1140. AND D.SPEC_ABBSYM = B.SPEC_ABBSYM(+)
  1141. AND D.SPEC_STL_GRD = B.STL_GRD(+)
  1142. AND X.THK_TGT(+) = B.THK_TGT
  1143. AND F.STL_GRD = G.FAC_STL_GRD;
  1144. LOOP
  1145. FETCH CUR_MILL_EDT
  1146. INTO REC_MILL_EDT;
  1147. EXIT WHEN CUR_MILL_EDT%NOTFOUND;
  1148. INSERT INTO TBF02_SPEC_MILL_DET
  1149. VALUES
  1150. (REC_MILL_EDT.SLAB_EDT_SEQ,
  1151. REC_MILL_EDT.SLAB_NO,
  1152. REC_MILL_EDT.FERR_MODE,
  1153. REC_MILL_EDT.FERR_CON_STA_TGT_TEMP,
  1154. REC_MILL_EDT.FERR_CON_END_TGT_TEMP,
  1155. REC_MILL_EDT.EXTRACT_TGT_TEMP,
  1156. REC_MILL_EDT.RM1_EXIT_TGT_TEMP,
  1157. REC_MILL_EDT.RM1_EXIT_MIN_TEMP,
  1158. REC_MILL_EDT.RM1_EXIT_MAX_TEMP,
  1159. REC_MILL_EDT.STRIP_AIM_THK,
  1160. REC_MILL_EDT.STRIP_MAX_THK,
  1161. REC_MILL_EDT.STRIP_MIN_THK,
  1162. REC_MILL_EDT.STRIP_CHG_TGT_THK,
  1163. REC_MILL_EDT.STRIP_CHG_MAX_THK,
  1164. REC_MILL_EDT.STRIP_CHG_MIN_THK,
  1165. REC_MILL_EDT.STRIP_AIM_WTH,
  1166. REC_MILL_EDT.STRIP_MAX_WTH,
  1167. REC_MILL_EDT.STRIP_MIN_WTH,
  1168. REC_MILL_EDT.STRIP_TGT_TEMP,
  1169. REC_MILL_EDT.STRIP_MIN_TEMP,
  1170. REC_MILL_EDT.STRIP_MAX_TEMP,
  1171. REC_MILL_EDT.CROWN_AIM_C39,
  1172. REC_MILL_EDT.CROWN_MAX_C39,
  1173. REC_MILL_EDT.CROWN_MIN_C39,
  1174. REC_MILL_EDT.FM_SYM_STRIP_FLATNESS_DEV,
  1175. REC_MILL_EDT.FM_ASY_STRIP_FLATNESS_DEV,
  1176. REC_MILL_EDT.STRIP_WEDGE_MIN,
  1177. REC_MILL_EDT.STRIP_WEDGE_MAX,
  1178. REC_MILL_EDT.COOLING_MODE,
  1179. REC_MILL_EDT.DUAL_PAHSE,
  1180. REC_MILL_EDT.DUAL_TEMP,
  1181. REC_MILL_EDT.DUAL_TIME,
  1182. REC_MILL_EDT.UNCOIL_HEAD_LEN,
  1183. REC_MILL_EDT.UNCOIL_TAIL_LEN,
  1184. REC_MILL_EDT.UNCOOL_AREA_LEN,
  1185. REC_MILL_EDT.COOLING_RATE_TOP,
  1186. REC_MILL_EDT.COOLING_RATE_BOT,
  1187. REC_MILL_EDT.COOL_EXIT_TGT_TEMP,
  1188. REC_MILL_EDT.COOL_EXIT_MAX_TEMP,
  1189. REC_MILL_EDT.COOL_EXIT_MIN_TEMP,
  1190. REC_MILL_EDT.SAMPLE_NO,
  1191. REC_MILL_EDT.INSPECT_YN,
  1192. REC_MILL_EDT.BINDING_AMT_CIRC,
  1193. REC_MILL_EDT.BINDING_AMT_RADI,
  1194. REC_MILL_EDT.SMP_YS,
  1195. REC_MILL_EDT.SMP_YP,
  1196. REC_MILL_EDT.ALLOY_COMP_THK_DEV,
  1197. REC_MILL_EDT.DILAT_CURVE,
  1198. REC_MILL_EDT.DIAMOND_FLAG,
  1199. REC_MILL_EDT.STS_FLAG,
  1200. REC_MILL_EDT.ORD_NO,
  1201. REC_MILL_EDT.COIL_LAYER,
  1202. REC_MILL_EDT.HAEA_TAIL_CD,
  1203. REC_MILL_EDT.PDI_COMM,
  1204. REC_MILL_EDT.CHEM_CLF,
  1205. REC_MILL_EDT.CHEM_AL,
  1206. REC_MILL_EDT.CHEM_AS,
  1207. REC_MILL_EDT.CHEM_B,
  1208. REC_MILL_EDT.CHEM_BE,
  1209. REC_MILL_EDT.CHEM_BI,
  1210. REC_MILL_EDT.CHEM_C,
  1211. REC_MILL_EDT.CHEM_CA,
  1212. REC_MILL_EDT.CHEM_CE,
  1213. REC_MILL_EDT.CHEM_CO,
  1214. REC_MILL_EDT.CHEM_CR,
  1215. REC_MILL_EDT.CHEM_CU,
  1216. REC_MILL_EDT.CHEM_H,
  1217. REC_MILL_EDT.CHEM_LA,
  1218. REC_MILL_EDT.CHEM_MG,
  1219. REC_MILL_EDT.CHEM_MN,
  1220. REC_MILL_EDT.CHEM_MO,
  1221. REC_MILL_EDT.CHEM_N,
  1222. REC_MILL_EDT.CHEM_NB,
  1223. REC_MILL_EDT.CHEM_NI,
  1224. REC_MILL_EDT.CHEM_O,
  1225. REC_MILL_EDT.CHEM_P,
  1226. REC_MILL_EDT.CHEM_S,
  1227. REC_MILL_EDT.CHEM_SB,
  1228. REC_MILL_EDT.CHEM_SE,
  1229. REC_MILL_EDT.CHEM_SI,
  1230. REC_MILL_EDT.CHEM_TI,
  1231. REC_MILL_EDT.CHEM_SN,
  1232. REC_MILL_EDT.CHEM_TA,
  1233. REC_MILL_EDT.CHEM_TE,
  1234. REC_MILL_EDT.CHEM_PB,
  1235. REC_MILL_EDT.CHEM_PD,
  1236. REC_MILL_EDT.CHEM_V,
  1237. REC_MILL_EDT.CHEM_W,
  1238. REC_MILL_EDT.CHEM_ZN,
  1239. REC_MILL_EDT.CHEM_ZR,
  1240. REC_MILL_EDT.RESERVE_FIELD1,
  1241. REC_MILL_EDT.RESERVE_FIELD2,
  1242. REC_MILL_EDT.RESERVE_FIELD3,
  1243. REC_MILL_EDT.RESERVE_FIELD4,
  1244. REC_MILL_EDT.RESERVE_FIELD5);
  1245. END LOOP;
  1246. COMM.IS_CUR_NULL(CUR_MILL_EDT);
  1247. /* IF(CUR_MILL_EDT %ROWCOUNT = 0) THEN
  1248. RAISE COMM.VE_NULL;
  1249. END IF;
  1250. CLOSE CUR_MILL_EDT;*/
  1251. EXCEPTION
  1252. WHEN COMM.VE_NULL THEN
  1253. COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.HCR_INSET_SPEC_MILL_EDT';
  1254. COMM.REC_ERR.P_TABLE := 'TBF02_SPEC_MILL_EDT';
  1255. COMM.REC_ERR.P_OPERATE := 'I';
  1256. COMM.REC_ERR.P_ERR_PARAM1 := 'STL_GRD';
  1257. COMM.REC_ERR.P_ERR_MSG := '请检查牌号和热轧工艺标准';
  1258. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  1259. END;
  1260. PROCEDURE HCR_INSERT_SPECMILL_D IS
  1261. CUR_SPEC_MILL_D COMM.REF_CURSOR;
  1262. TYPE REC_SPEC_MILL_D_TYPE IS RECORD(
  1263. P_SLAB_EDT_SEQ TBF02_SPEC_MILL_D.SLAB_EDT_SEQ%TYPE,
  1264. P_SLAB_CUT_SEQ TBF02_SPEC_MILL_D.COIL_CUT_SEQ%TYPE,
  1265. P_ORD_THK TBF02_SPEC_MILL_D.ORD_THK%TYPE,
  1266. P_ORD_WTH TBF02_SPEC_MILL_D.ORD_WTH%TYPE,
  1267. P_ORD_LEN TBF02_SPEC_MILL_D.ORD_LEN%TYPE,
  1268. P_ORD_WGT TBF02_SPEC_MILL_D.ORD_WGT%TYPE,
  1269. P_ORD_UNIT_WGT_MIN TBE02_ORD_PRC.ORD_UNIT_WGT_MIN%TYPE,
  1270. P_ORD_UNIT_WGT_MAX TBE02_ORD_PRC.ORD_UNIT_WGT_MAX%TYPE,
  1271. P_ORD_INDIA TBF02_SPEC_MILL_D.ORD_INDIA%TYPE,
  1272. P_ORD_OUTDIA TBF02_SPEC_MILL_D.ORD_OUTDIA%TYPE,
  1273. P_ORD_NO TBF02_SPEC_MILL_D.ORD_NO%TYPE,
  1274. P_ORD_SEQ TBF02_SPEC_MILL_D.ORD_SEQ%TYPE,
  1275. P_ORD_FL TBF02_SPEC_MILL_D.ORD_FL%TYPE);
  1276. REC_SPECMILLD REC_SPEC_MILL_D_TYPE;
  1277. BEGIN
  1278. OPEN CUR_SPEC_MILL_D FOR
  1279. SELECT B.SLAB_EDT_SEQ,
  1280. A.SLAB_CUT_SEQ,
  1281. A.ORD_THK,
  1282. A.ORD_WTH,
  1283. A.ORD_LEN,
  1284. A.ORD_WGT,
  1285. D.ORD_UNIT_WGT_MIN,
  1286. D.ORD_UNIT_WGT_MAX,
  1287. A.COIL_INDIA,
  1288. A.COIL_OUTDIA,
  1289. A.ORD_NO,
  1290. A.ORD_SEQ,
  1291. A.ORD_FL
  1292. FROM TBF01_SPEC_SLAB_D A,
  1293. TBF01_SPEC_SLAB C,
  1294. TBE02_ORD_PRC D,
  1295. (SELECT X.SLAB_EDT_SEQ
  1296. FROM TBF02_SPEC_MILL X
  1297. WHERE X.SLAB_EDT_SEQ NOT IN
  1298. (SELECT SLAB_EDT_SEQ FROM TBF02_SPEC_MILL_D)) B
  1299. WHERE A.ORD_NO = D.ORD_NO
  1300. AND A.ORD_SEQ = D.ORD_SEQ
  1301. AND C.SLAB_EDT_SEQ = A.SLAB_EDT_SEQ
  1302. AND B.SLAB_EDT_SEQ = C.MILL_SLAB_EDT_SEQ
  1303. AND C.STATUS_CD = 'B' --ADD BY SJW 090707
  1304. AND C.MILL_FL = 'Y'
  1305. ORDER BY B.SLAB_EDT_SEQ ASC;
  1306. LOOP
  1307. FETCH CUR_SPEC_MILL_D
  1308. INTO REC_SPECMILLD;
  1309. EXIT WHEN CUR_SPEC_MILL_D %NOTFOUND;
  1310. INSERT INTO TBF02_SPEC_MILL_D
  1311. (SLAB_EDT_SEQ,
  1312. COIL_CUT_SEQ,
  1313. ORD_THK,
  1314. ORD_WTH,
  1315. ORD_LEN,
  1316. ORD_WGT,
  1317. ORD_WGT_MIN,
  1318. ORD_WGT_MAX,
  1319. ORD_INDIA,
  1320. ORD_OUTDIA,
  1321. ORD_NO,
  1322. ORD_SEQ,
  1323. ORD_FL,
  1324. STATUS_CD)
  1325. VALUES
  1326. (REC_SPECMILLD.P_SLAB_EDT_SEQ,
  1327. REC_SPECMILLD.P_SLAB_CUT_SEQ,
  1328. REC_SPECMILLD.P_ORD_THK,
  1329. REC_SPECMILLD.P_ORD_WTH,
  1330. REC_SPECMILLD.P_ORD_LEN,
  1331. REC_SPECMILLD.P_ORD_WGT,
  1332. REC_SPECMILLD.P_ORD_UNIT_WGT_MIN,
  1333. REC_SPECMILLD.P_ORD_UNIT_WGT_MAX,
  1334. REC_SPECMILLD.P_ORD_INDIA,
  1335. REC_SPECMILLD.P_ORD_OUTDIA,
  1336. REC_SPECMILLD.P_ORD_NO,
  1337. REC_SPECMILLD.P_ORD_SEQ,
  1338. REC_SPECMILLD.P_ORD_FL,
  1339. 'A');
  1340. END LOOP;
  1341. COMM.IS_CUR_NULL(CUR_SPEC_MILL_D);
  1342. END;
  1343. /************************************************************************/
  1344. /* procedure CALLL_E_INIT_OUT_PARAM Author: SunJiawang */
  1345. /************************************************************************/
  1346. /* DESCRIPTION L2指示后返回要传送到进程处理的接口 */
  1347. /************************************************************************/
  1348. /* ParentProgram
  1349. /************************************************************************/
  1350. PROCEDURE CALLL_E_INIT_OUT_PARAM(P_TYPE OUT VARCHAR2,
  1351. P_ST OUT VARCHAR2,
  1352. P_EN OUT VARCHAR2) IS
  1353. BEGIN
  1354. SELECT MAX(ROLL_MANA_NO) INTO P_EN FROM TBF02_SPEC_ROLL;
  1355. P_TYPE := 'R';
  1356. P_ST := V_ROLL_MANA_NO;
  1357. END;
  1358. PROCEDURE HCR_EDIT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE,
  1359. P_ROLL_MANA_NO VARCHAR2,
  1360. P_POSITION VARCHAR2,
  1361. P_REG_ID VARCHAR2,
  1362. P_TYPE OUT VARCHAR2,
  1363. P_ST OUT VARCHAR2,
  1364. P_EN OUT VARCHAR2,
  1365. P_RTN_MSG OUT VARCHAR2) IS
  1366. BEGIN
  1367. COMM.INIT_RTN_MSG;
  1368. INIT_ROLL_MANA_NO(P_ROLL_MANA_NO, P_POSITION);
  1369. CHECK_ERROR(P_CHARGE_MANA_NO, P_ROLL_MANA_NO, P_POSITION);
  1370. COMM.INIT_USER(P_REG_ID);
  1371. ADUST_ROLL_MANA_NO;
  1372. INSERT_SPEC_ROLL(P_CHARGE_MANA_NO);
  1373. HCR_U_SPEC_CHARGE_MILL_FL(P_CHARGE_MANA_NO);
  1374. HCR_INSERT(P_CHARGE_MANA_NO);
  1375. CALLL_E_INIT_OUT_PARAM(P_TYPE, P_ST, P_EN);
  1376. EXCEPTION
  1377. WHEN COMM.PE THEN
  1378. P_RTN_MSG := COMM.REC_ERR.P_RTN_MSG;
  1379. WHEN OTHERS THEN
  1380. COMM.CALL_OTHER_EXCEPTION_DO(P_RTN_MSG);
  1381. END;
  1382. /************************************************************************/
  1383. /* procedure CHECK_RZGYBZ Author: SunJiawang */
  1384. /************************************************************************/
  1385. /* DESCRIPTION 检查热轧工艺标准 */
  1386. /************************************************************************/
  1387. /* EXCEPTION VE when:缺乏热轧工艺标准:炉次成分实绩
  1388. /************************************************************************/
  1389. PROCEDURE CHECK_RZGYBZ(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS
  1390. VE EXCEPTION;
  1391. LV_CUR_NULL_CNT INTEGER := 0; --游标行记录
  1392. V_ERR_BZ_INFO VARCHAR2(1000) := '';
  1393. V_ERR_MSG VARCHAR2(1000) := '';
  1394. CURSOR CUR_ERR_BZ IS
  1395. SELECT DISTINCT D.PRDNM_CD,
  1396. D.SPEC_ABBSYM,
  1397. D.SPEC_STL_GRD,
  1398. E.FAC_STL_GRD,
  1399. F.STL_GRD
  1400. FROM TBF01_SPEC_SLAB F,
  1401. TBH01_OPRN_STD B,
  1402. TBB01_ORD_PROD C,
  1403. (SELECT B.ORD_NO,
  1404. B.ORD_SEQ,
  1405. B.SPEC_ABBSYM,
  1406. B.SPEC_STL_GRD,
  1407. A.PRDNM_CD
  1408. FROM TBA01_ORD_COMM A, TBA01_ORD_LINE B
  1409. WHERE B.ORD_NO = A.ORD_NO) D,
  1410. TBB01_FAC_INGR E
  1411. WHERE F.ORD_NO = C.ORD_NO(+)
  1412. AND F.ORD_SEQ = C.ORD_SEQ(+)
  1413. AND F.ORD_NO = D.ORD_NO(+)
  1414. AND F.ORD_SEQ = D.ORD_SEQ(+)
  1415. AND D.PRDNM_CD = B.PRDNM_CD(+)
  1416. AND D.SPEC_ABBSYM = B.SPEC_ABBSYM(+)
  1417. AND D.SPEC_STL_GRD = B.STL_GRD(+)
  1418. AND F.STL_GRD = E.FAC_STL_GRD(+)
  1419. AND F.CHARGE_MANA_NO = P_CHARGE_MANA_NO
  1420. AND (B.STL_GRD IS NULL OR B.SPEC_ABBSYM IS NULL OR
  1421. E.FAC_STL_GRD IS NULL);
  1422. REC_ERR_BZ CUR_ERR_BZ%ROWTYPE;
  1423. BEGIN
  1424. OPEN CUR_ERR_BZ;
  1425. IF CUR_ERR_BZ %ISOPEN THEN
  1426. LOOP
  1427. FETCH CUR_ERR_BZ
  1428. INTO REC_ERR_BZ;
  1429. EXIT WHEN CUR_ERR_BZ %NOTFOUND;
  1430. IF REC_ERR_BZ.FAC_STL_GRD IS NULL THEN
  1431. V_ERR_BZ_INFO := REC_ERR_BZ.STL_GRD;
  1432. V_ERR_MSG := ' 缺少厂内牌号 :' || V_ERR_BZ_INFO;
  1433. COMM.REC_ERR. P_ERR_PARAM1 := 'FAC_STL_GRD';
  1434. ELSE
  1435. V_ERR_BZ_INFO := ' PRDNM_CD: ' || REC_ERR_BZ.PRDNM_CD ||
  1436. ' SPEC_ABBSYM: ' ||
  1437. REC_ERR_BZ.SPEC_ABBSYM ||
  1438. ' SPEC_STL_GRD: ' ||
  1439. REC_ERR_BZ.SPEC_STL_GRD;
  1440. V_ERR_MSG := '缺少热轧工艺标准:' || V_ERR_BZ_INFO;
  1441. COMM.REC_ERR. P_ERR_PARAM1 := 'SPEC_STL_GRD';
  1442. COMM.REC_ERR. P_ERR_PARAM2 := 'SPEC_ABBSYM';
  1443. END IF;
  1444. LV_CUR_NULL_CNT := LV_CUR_NULL_CNT + 1;
  1445. END LOOP;
  1446. CLOSE CUR_ERR_BZ;
  1447. IF LV_CUR_NULL_CNT > 0 THEN
  1448. RAISE VE;
  1449. END IF;
  1450. END IF;
  1451. EXCEPTION
  1452. WHEN VE THEN
  1453. COMM.REC_ERR.P_ERR_MSG := V_ERR_MSG;
  1454. COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.CHECK_RZGYBZ';
  1455. COMM.REC_ERR.P_OPERATE := 'R';
  1456. COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG);
  1457. END;
  1458. /************************************************************************/
  1459. /* procedure GET_COIL_NO Author: SunJiawang */
  1460. /************************************************************************/
  1461. /* DESCRIPTION 生成钢卷号 */
  1462. /************************************************************************/
  1463. FUNCTION GET_COIL_NO RETURN TBF02_SPEC_MILL.COIL_NO%TYPE IS
  1464. V_MAX_COIL_NO TBF02_SPEC_MILL.COIL_NO %TYPE := '';
  1465. V_COIL_NO TBF02_SPEC_MILL.COIL_NO%TYPE := '';
  1466. BEGIN
  1467. --INIT
  1468. SELECT TO_CHAR(SYSDATE, 'y') INTO V_CURYEAR FROM DUAL;
  1469. SELECT NVL(MAX(TO_NUMBER(SUBSTR(T.COIL_NO, 4, 6))), 0)
  1470. INTO V_MAX_COIL_NO
  1471. FROM TBF02_SPEC_MILL T
  1472. WHERE T.COIL_NO LIKE 'R' || V_CURYEAR || '%';
  1473. V_COIL_NO := 'R' || V_CURYEAR || '-' ||
  1474. LPAD(TO_CHAR(V_MAX_COIL_NO + 1), 6, '0') || 'A010';
  1475. RETURN V_COIL_NO;
  1476. END;
  1477. END UIF023100_TEST;
  1478. /