3ed0819bc0663541283db45b6efe2f352aa1b1f8.svn-base 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644
  1. package xin.glue.nui.H.H02;
  2. import java.math.BigDecimal;
  3. import java.sql.CallableStatement;
  4. import java.sql.SQLException;
  5. import java.text.DateFormat;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import xin.glue.ui.common.PosDateFormat;
  9. import xin.glue.ui.common.ProduceFactory;
  10. import com.posdata.glue.PosException;
  11. import com.posdata.glue.biz.activity.PosActivity;
  12. import com.posdata.glue.biz.constants.PosBizControlConstants;
  13. import com.posdata.glue.biz.control.PosBizControlIF;
  14. import com.posdata.glue.biz.control.PosBizProvider;
  15. import com.posdata.glue.component.PosConstants;
  16. import com.posdata.glue.context.PosContext;
  17. import com.posdata.glue.dao.vo.PosParameter;
  18. import com.posdata.glue.dao.vo.PosRow;
  19. import com.posdata.glue.dao.vo.PosRowSet;
  20. import com.posdata.glue.msg.PosMESMessageImpl;
  21. import com.posdata.glue.msg.PosMessage;
  22. /*
  23. * author:王小炎
  24. * date:2008-10-13
  25. * desc:接收加热炉LEVEL2中所发生的加热炉出炉实绩录入到板坯装炉出炉实绩TABLE中
  26. */
  27. public class XinSaveRhfExtract extends PosActivity
  28. {
  29. public String runActivity(PosContext context)
  30. {
  31. // 获取从二级接收过来的数据
  32. String slabNo = (String)context.get("slabNo");
  33. String coilNo = (String)context.get("coilNo");
  34. String devno = (String)context.get("devno");
  35. String infurHour = (String)context.get("infurHour");
  36. String extractDtime = (String)context.get("extractDtime");
  37. String extractAvgTemp = (String)context.get("extractAvgTemp");
  38. String rehttemp1 = (String)context.get("rehttemp1");
  39. String rehttime1 = (String)context.get("rehttime1");
  40. String rehttemp2 = (String)context.get("rehttemp2");
  41. String rehttime2 = (String)context.get("rehttime2");
  42. String eqHtInfurHour = (String)context.get("eqHtInfurHour");
  43. String eqHtTemp = (String)context.get("eqHtTemp");
  44. String sShift = null;
  45. //这里在XinInitRhfOut中已经把真实钢卷号转换成流水号,所以这里不需要再次转换
  46. if ( extractDtime.equals("") || extractDtime == null ) {
  47. DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
  48. extractDtime = formatter.format(new Date());
  49. }
  50. // 这里的班次的时间段就由基础表维护。可能存在2班或者3班的情况,那么就是有值的就进行判断没有的就是没有设定的。
  51. PosParameter paramSA = new PosParameter();
  52. PosParameter paramSB = new PosParameter();
  53. PosParameter paramSC = new PosParameter();
  54. //这里获取三个班次相应的时间
  55. String sqlA = "SELECT to_number(A.SM_EFNM) SM_EFNM,to_number(A.SM_ESNM) SM_ESNM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'H07001' AND A.SM_CD = '1'";
  56. String sqlB = "SELECT to_number(A.SM_EFNM) SM_EFNM,to_number(A.SM_ESNM) SM_ESNM,A.SHRXM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'H07001' AND A.SM_CD = '2'";
  57. String sqlC = "SELECT to_number(A.SM_EFNM) SM_EFNM,to_number(A.SM_ESNM) SM_ESNM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'H07001' AND A.SM_CD = '3'";
  58. PosRowSet ShiftA = getDao("mesdao").findByQueryStatement(sqlA, paramSA);
  59. PosRowSet ShiftB = getDao("mesdao").findByQueryStatement(sqlB, paramSB);
  60. PosRowSet ShiftC = getDao("mesdao").findByQueryStatement(sqlC, paramSC);
  61. BigDecimal SM_EFNMA = null;
  62. BigDecimal SM_ESNMA = null;
  63. BigDecimal SM_EFNMB = null;
  64. BigDecimal SM_ESNMB = null;
  65. //这里是中班是否超过0点指标。如果超过0点就判断早班和晚班的情况,其它为中班。如果不超过0点就判断早班和中班的情况,其它为晚班
  66. String SHRXM = null;
  67. BigDecimal SM_EFNMC = null;
  68. BigDecimal SM_ESNMC = null;
  69. if(ShiftA.hasNext()){
  70. PosRow ShiftAA = ShiftA.next();
  71. SM_EFNMA = (BigDecimal) ShiftAA.getAttribute("SM_EFNM");
  72. SM_ESNMA = (BigDecimal) ShiftAA.getAttribute("SM_ESNM");
  73. }
  74. if(ShiftB.hasNext()){
  75. PosRow ShiftBB = ShiftB.next();
  76. SM_EFNMB = (BigDecimal) ShiftBB.getAttribute("SM_EFNM");
  77. SM_ESNMB = (BigDecimal) ShiftBB.getAttribute("SM_ESNM");
  78. SHRXM = (String) ShiftBB.getAttribute("SHRXM");
  79. }
  80. if(ShiftC.hasNext()){
  81. PosRow ShiftCC = ShiftC.next();
  82. SM_EFNMC = (BigDecimal) ShiftCC.getAttribute("SM_EFNM");
  83. SM_ESNMC = (BigDecimal) ShiftCC.getAttribute("SM_ESNM");
  84. }
  85. int SM_EFNMAA;
  86. int SM_ESNMAA;
  87. int SM_EFNMBB;
  88. int SM_ESNMBB;
  89. int SM_EFNMCC;
  90. int SM_ESNMCC;
  91. int hhmi = Integer.parseInt(extractDtime.substring(8, 12));
  92. if(SM_EFNMA == null){
  93. SM_EFNMAA = 0;
  94. }else{
  95. SM_EFNMAA = SM_EFNMA.intValue();
  96. }
  97. if(SM_ESNMA == null){
  98. SM_ESNMAA = 0;
  99. }else{
  100. SM_ESNMAA = SM_ESNMA.intValue();
  101. }
  102. if(SM_EFNMB == null){
  103. SM_EFNMBB = 0;
  104. }else{
  105. SM_EFNMBB = SM_EFNMB.intValue();
  106. }
  107. if(SM_ESNMB == null){
  108. SM_ESNMBB = 0;
  109. }else{
  110. SM_ESNMBB = SM_ESNMB.intValue();
  111. }
  112. if(SM_EFNMC == null){
  113. SM_EFNMCC = 0;
  114. }else{
  115. SM_EFNMCC = SM_EFNMC.intValue();
  116. }
  117. if(SM_ESNMC == null){
  118. SM_ESNMCC = 0;
  119. }else{
  120. SM_ESNMCC = SM_ESNMC.intValue();
  121. }
  122. //如果出现中班输入为空的情况,说明是三班两倒。就一定会存在早班和晚班,那么只要判断早班即可
  123. if(SM_EFNMB == null || SM_ESNMB == null){
  124. if(hhmi > SM_EFNMAA && hhmi < SM_ESNMAA){
  125. //早班,这里只要判断符合不符合早班的情况即可
  126. sShift = "1";
  127. }else{
  128. sShift = "3";
  129. }
  130. }else{
  131. if(null != SHRXM && SHRXM.equals("Y")){
  132. //如果标志为Y,说明中班的结束时间超过0点,这时判断早班和晚班的情况。
  133. if(hhmi > SM_EFNMAA && hhmi < SM_ESNMAA){
  134. sShift = "1";
  135. }else if(hhmi > SM_EFNMCC && hhmi < SM_ESNMCC){
  136. sShift = "3";
  137. }else{
  138. sShift = "2";
  139. }
  140. }else{
  141. //如果标志不为Y,说明中班的结束时间没有超过0点,这时判断早班和中班的情况。
  142. if(hhmi > SM_EFNMAA && hhmi < SM_ESNMAA){
  143. sShift = "1";
  144. }else if(hhmi > SM_EFNMBB && hhmi < SM_ESNMBB){
  145. sShift = "2";
  146. }else{
  147. sShift = "3";
  148. }
  149. }
  150. }
  151. // PosDateFormat dateFormat = new PosDateFormat();
  152. // sShift = dateFormat.getShiftT(extractDtime);
  153. //这里需要用到天数前移一天和后退一天的共用方法,因为对三班和两班而言中班和晚班都可能存在跨天的情况。跨天后取班组时就要把时间前移
  154. PosDateFormat dateFormat = new PosDateFormat();
  155. // sShift = dateFormat.getShiftT(dc_off_dtime);
  156. // 这里需要获取昨天和明天的时间
  157. String ZDate = null;
  158. String MDate = null;
  159. // 当前时间加一天
  160. MDate = dateFormat.AddDateFunc(extractDtime,1);
  161. //当前时间减一天
  162. ZDate = dateFormat.AddDateFunc(extractDtime,-1);
  163. String sGroup = null;
  164. //判断,跨天的班组需要前移时间,这样才能对得上班组
  165. if(SM_EFNMB == null || SM_ESNMB == null){
  166. //两班的情况,这里需要对时间进行前移。把产量计算的昨天晚班的产量
  167. if(null != sShift && sShift.equals("3")){
  168. //这里还需要判断,当前时间是大于晚班开始时间小于2400还是大于0000小于结束时间
  169. if(hhmi >= SM_EFNMCC && hhmi <= 2400){
  170. PosParameter paramA = new PosParameter();
  171. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  172. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  173. paramA.setWhereClauseParameter(2, sShift);
  174. paramA.setWhereClauseParameter(3, "H");
  175. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  176. if (groupVO.hasNext()){
  177. PosRow groupROW = groupVO.next();
  178. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  179. }
  180. logger.logDebug(" 两班早班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  181. }else if(hhmi >= 0000 && hhmi <= SM_ESNMCC){
  182. PosParameter paramA = new PosParameter();
  183. paramA.setWhereClauseParameter(0, ZDate.substring(0,6));
  184. paramA.setWhereClauseParameter(1, ZDate.substring(6,8));
  185. paramA.setWhereClauseParameter(2, sShift);
  186. paramA.setWhereClauseParameter(3, "H");
  187. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  188. if (groupVO.hasNext()){
  189. PosRow groupROW = groupVO.next();
  190. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  191. }
  192. logger.logDebug(" 两班晚班当前的班次班组!! "+sShift+":"+sGroup+"出炉前移时间:"+ZDate);
  193. }
  194. }else if(null != sShift && sShift.equals("1")){
  195. PosParameter paramA = new PosParameter();
  196. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  197. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  198. paramA.setWhereClauseParameter(2, sShift);
  199. paramA.setWhereClauseParameter(3, "H");
  200. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  201. if (groupVO.hasNext()){
  202. PosRow groupROW = groupVO.next();
  203. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  204. }
  205. logger.logDebug(" 两班早班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  206. }else{
  207. //不存在
  208. logger.logDebug(" 两班班次班组不存在的情况!! ");
  209. }
  210. }else{
  211. //三班的情况
  212. if(null != SHRXM && SHRXM.equals("Y")){
  213. if(null != sShift && sShift.equals("1")){
  214. PosParameter paramA = new PosParameter();
  215. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  216. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  217. paramA.setWhereClauseParameter(2, sShift);
  218. paramA.setWhereClauseParameter(3, "H");
  219. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  220. if (groupVO.hasNext()){
  221. PosRow groupROW = groupVO.next();
  222. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  223. }
  224. logger.logDebug(" 三班早班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  225. }else if(null != sShift && sShift.equals("2")){
  226. if(hhmi >= SM_EFNMBB && hhmi <= 2400){
  227. PosParameter paramA = new PosParameter();
  228. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  229. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  230. paramA.setWhereClauseParameter(2, sShift);
  231. paramA.setWhereClauseParameter(3, "H");
  232. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  233. if (groupVO.hasNext()){
  234. PosRow groupROW = groupVO.next();
  235. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  236. }
  237. logger.logDebug(" 三班中班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  238. }else if(hhmi >= 0000 && hhmi <= SM_ESNMBB){
  239. PosParameter paramA = new PosParameter();
  240. paramA.setWhereClauseParameter(0, ZDate.substring(0,6));
  241. paramA.setWhereClauseParameter(1, ZDate.substring(6,8));
  242. paramA.setWhereClauseParameter(2, sShift);
  243. paramA.setWhereClauseParameter(3, "H");
  244. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  245. if (groupVO.hasNext()){
  246. PosRow groupROW = groupVO.next();
  247. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  248. }
  249. logger.logDebug(" 三班中班当前的班次班组!! "+sShift+":"+sGroup+"出炉前移时间:"+ZDate);
  250. }
  251. }else if(null != sShift && sShift.equals("3")){
  252. //中班超过0点,晚班就是当天的凌晨开始的
  253. PosParameter paramA = new PosParameter();
  254. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  255. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  256. paramA.setWhereClauseParameter(2, sShift);
  257. paramA.setWhereClauseParameter(3, "H");
  258. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  259. if (groupVO.hasNext()){
  260. PosRow groupROW = groupVO.next();
  261. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  262. }
  263. logger.logDebug(" 三班晚班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  264. }
  265. }else{
  266. if(null != sShift && sShift.equals("1")){
  267. PosParameter paramA = new PosParameter();
  268. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  269. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  270. paramA.setWhereClauseParameter(2, sShift);
  271. paramA.setWhereClauseParameter(3, "H");
  272. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  273. if (groupVO.hasNext()){
  274. PosRow groupROW = groupVO.next();
  275. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  276. }
  277. logger.logDebug(" 三班早班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  278. }else if(null != sShift && sShift.equals("2")){
  279. PosParameter paramA = new PosParameter();
  280. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  281. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  282. paramA.setWhereClauseParameter(2, sShift);
  283. paramA.setWhereClauseParameter(3, "H");
  284. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  285. if (groupVO.hasNext()){
  286. PosRow groupROW = groupVO.next();
  287. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  288. }
  289. logger.logDebug(" 三班中班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  290. }else if(null != sShift && sShift.equals("3")){
  291. if(hhmi >= 0000 && hhmi <= SM_ESNMCC){
  292. PosParameter paramA = new PosParameter();
  293. paramA.setWhereClauseParameter(0, extractDtime.substring(0,6));
  294. paramA.setWhereClauseParameter(1, extractDtime.substring(6,8));
  295. paramA.setWhereClauseParameter(2, sShift);
  296. paramA.setWhereClauseParameter(3, "H");
  297. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  298. if (groupVO.hasNext()){
  299. PosRow groupROW = groupVO.next();
  300. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  301. }
  302. logger.logDebug(" 三班晚班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+extractDtime);
  303. }else if(hhmi >= SM_EFNMCC && hhmi <= 2400){
  304. PosParameter paramA = new PosParameter();
  305. paramA.setWhereClauseParameter(0, MDate.substring(0,6));
  306. paramA.setWhereClauseParameter(1, MDate.substring(6,8));
  307. paramA.setWhereClauseParameter(2, sShift);
  308. paramA.setWhereClauseParameter(3, "H");
  309. PosRowSet groupVO = this.getDao("mesdao").find("NIG020210_SHIFT.select", paramA);
  310. if (groupVO.hasNext()){
  311. PosRow groupROW = groupVO.next();
  312. sGroup = (String)groupROW.getAttribute("GR_GROUP_CD");
  313. }
  314. logger.logDebug(" 三班晚班当前的班次班组!! "+sShift+":"+sGroup+"出炉时间:"+MDate);
  315. }
  316. }
  317. }
  318. }
  319. Number SlabWgt = null;
  320. String BefProgCd = null;
  321. String OrdNo = null;
  322. String OrdSeq = null;
  323. PosParameter param6 = new PosParameter();
  324. param6.setWhereClauseParameter(0,slabNo);
  325. PosRowSet rowset5 = getDao("mesdao").find("UIH020020_05.select", param6);
  326. if(rowset5.hasNext())
  327. {
  328. PosRow row1 = rowset5.next();
  329. SlabWgt = (Number)row1.getAttribute("SLAB_WGT");
  330. OrdNo = (String)row1.getAttribute("ORD_NO");
  331. OrdSeq = (String)row1.getAttribute("ORD_SEQ");
  332. BefProgCd = "RBB";
  333. /*
  334. * 以板坯号为条件查询加热炉装炉出口实绩table TBH02_REHEATFUR,如果有记录则加热炉装炉出口实绩table update处理
  335. * 否则加热炉装炉出口实绩table insert处理
  336. */
  337. PosParameter param = new PosParameter();
  338. PosParameter param1 = new PosParameter();
  339. param.setWhereClauseParameter(0, slabNo);
  340. param.setWhereClauseParameter(1, coilNo);
  341. //用板坯号和钢卷号做为联合主键,可以处理板坯在缺号处理后再次出炉或者入炉的情况
  342. //这里通过RHF_STAT判断是否调用品质,没有出炉前为1。出炉以后就为2
  343. PosRowSet rowset = this.getDao("mesdao").find("NIH020020_01.select", param);
  344. //加热炉状态
  345. String RHF_STAT = null;
  346. if(rowset.hasNext()){
  347. PosRow row = rowset.next();
  348. RHF_STAT = (String) row.getAttribute("RHF_STAT");
  349. logger.logDebug("PosSAveOutHeatFurnace-后台U--> 加热炉状态:"+RHF_STAT);
  350. //通过上面的查询判断入出实际表中是否有值,这里钢卷号不为空所以不改变SQL
  351. param1.setWhereClauseParameter(0, coilNo);
  352. param1.setWhereClauseParameter(1, devno);
  353. param1.setWhereClauseParameter(2, infurHour);
  354. param1.setWhereClauseParameter(3, extractDtime);
  355. param1.setWhereClauseParameter(4, extractAvgTemp);
  356. param1.setWhereClauseParameter(5, rehttemp1);
  357. param1.setWhereClauseParameter(6, rehttime1);
  358. param1.setWhereClauseParameter(7, rehttemp2);
  359. param1.setWhereClauseParameter(8, rehttime2);
  360. param1.setWhereClauseParameter(9, eqHtInfurHour);
  361. param1.setWhereClauseParameter(10, eqHtTemp);
  362. param1.setWhereClauseParameter(11, sShift);
  363. param1.setWhereClauseParameter(12, sGroup);
  364. param1.setWhereClauseParameter(13, slabNo);
  365. param1.setWhereClauseParameter(14, coilNo);
  366. this.getDao("mesdao").update("NIH020020_01.update", param1);
  367. }else{
  368. PosRow row = rowset.next();
  369. RHF_STAT = (String) row.getAttribute("RHF_STAT");
  370. logger.logDebug("PosSAveOutHeatFurnace-后台I--> 加热炉状态:"+RHF_STAT);
  371. param1.setValueParamter(0, slabNo);
  372. param1.setValueParamter(1, coilNo);
  373. param1.setValueParamter(2, devno);
  374. param1.setValueParamter(3, infurHour);
  375. param1.setValueParamter(4, extractDtime);
  376. param1.setValueParamter(5, extractAvgTemp);
  377. param1.setValueParamter(6, rehttemp1);
  378. param1.setValueParamter(7, rehttime1);
  379. param1.setValueParamter(8, rehttemp2);
  380. param1.setValueParamter(9, rehttime2);
  381. param1.setValueParamter(10, eqHtInfurHour);
  382. param1.setValueParamter(11, eqHtTemp);
  383. param1.setValueParamter(12, sShift);
  384. param1.setValueParamter(13, sGroup);
  385. this.getDao("mesdao").insert("NIH020020_01.insert", param1);
  386. }
  387. PosParameter param2 = new PosParameter();
  388. param2.setWhereClauseParameter(0, "NIH020020");
  389. param2.setWhereClauseParameter(1, slabNo);
  390. //加热炉出炉,改变板坯公共表中的板坯状态
  391. getDao("mesdao").update("UIH020020_03.update", param2);
  392. String RegId = "RHF LEVEL2";
  393. //判断加热炉状态,并且决定是否调用品质
  394. if(RHF_STAT.equals("1")){
  395. //MODIFY BY WXY 20111121
  396. //SendProg_NIE012070( slabNo ,BefProgCd,OrdNo,OrdSeq,SlabWgt,RegId );
  397. //SendProg_NIE012080();
  398. //Sampling Direction making call
  399. /*
  400. logger.logInfo("PosSAveOutHeatFurnace---> NIB027010 TC sql call" );
  401. CallableStatement PlRtn = getDao("mesdao").getCallableStatement("NIH020020_NIB027010");
  402. logger.logInfo("PosSAveOutHeatFurnace---> NIB027010 TC try" );
  403. try {
  404. if(PlRtn != null) {
  405. PlRtn.setString(1,coilNo);
  406. //新增加一个字段,为了废弃的时候使用
  407. PlRtn.setString(2,"");
  408. PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR);
  409. PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR);
  410. PlRtn.execute();
  411. String sRetCode = PlRtn.getString(3);
  412. String sRetMsg = PlRtn.getString(4);
  413. logger.logInfo("PosSAveOutHeatFurnace---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg);
  414. } else {
  415. logger.logInfo("PosSAveOutHeatFurnace---> NIB027010 PlRtn2:"+PlRtn );
  416. }
  417. } catch (SQLException e) {
  418. throw new PosException(e.getMessage());
  419. }finally
  420. {
  421. if (PlRtn != null)
  422. {
  423. try
  424. {
  425. PlRtn.close();
  426. }
  427. catch (SQLException e)
  428. {
  429. logger.logWarn(e.getMessage(), e);
  430. logger.logInfo("PosSAveOutHeatFurnace---> NIB027010 SQLException:"+e );
  431. }
  432. }
  433. }
  434. */
  435. }else{
  436. //不在入炉状态的板坯,不能调用品质的存储过程
  437. logger.logDebug("PosSAveOutHeatFurnace-后台---> 多次出炉的情况,不调用品质和进程 :"+RHF_STAT);
  438. }
  439. } else {
  440. logger.logDebug("PosSAveOutHeatFurnace--->Slab No is Not Cutting SLAB_NO:"+slabNo );
  441. }
  442. return PosBizControlConstants.SUCCESS;
  443. }
  444. public void SendProg_NIE012070(String SlabNo,String BefProg,String OrdNo,String OrdSeq,Number wgt,String RegId )
  445. {
  446. // BigDecimal wgt = new BigDecimal();
  447. PosContext context = new PosContext();
  448. PosMessage message = new PosMESMessageImpl();
  449. String TcId = "NIE012070";
  450. message.setTCID(TcId);
  451. message.setObject("MSG_ID",TcId);
  452. message.setObject("BEF_ORD_NO",null);
  453. message.setObject("BEF_ORD_SEQ",null);
  454. message.setObject("ORD_NO",OrdNo);
  455. message.setObject("ORD_SEQ",OrdSeq);
  456. message.setObject("BEF_PROG_CD",BefProg);
  457. message.setObject("PROG_CD","RCB");
  458. message.setObject("MAT_TYPE","TM");
  459. message.setObject("MAT_NO",SlabNo);
  460. message.setObject("WGT", wgt );
  461. message.setObject("PGMID","NIH020020");
  462. message.setObject("REG_ID",RegId);
  463. context.setMessage(message);
  464. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  465. String transactionCode = context.getMessage().getTC();
  466. message.setTCID(TcId);
  467. String serviceName = "NIE012070";
  468. String SERVICE_POSTFIX = "-service";
  469. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  470. context.setMessage(message);
  471. PosBizControlIF controller = PosBizProvider.getController();
  472. controller.doSubController(context,false);
  473. logger.logDebug("PosSAveOutHeatFurnace---> NIE012070 TC SendProgress end" );
  474. }
  475. public void SendProg_NIE012080()
  476. {
  477. PosContext context = new PosContext();
  478. PosMessage message = new PosMESMessageImpl();
  479. String TcId = "NIE012080";
  480. message.setTCID(TcId);
  481. message.setObject("MSG_ID",TcId);
  482. message.setObject("AA",null);
  483. context.setMessage(message);
  484. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  485. String transactionCode = context.getMessage().getTC();
  486. message.setTCID(TcId);
  487. String serviceName = "NIE012080";
  488. String SERVICE_POSTFIX = "-service";
  489. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  490. context.setMessage(message);
  491. PosBizControlIF controller = PosBizProvider.getController();
  492. controller.doSubController(context,false);
  493. }
  494. }