723a5b3ddbfdccc54b22d36febb760c20b816e33.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. package xin.glue.ui.H.H02;
  2. import com.posdata.glue.biz.activity.PosActivity;
  3. import com.posdata.glue.biz.constants.PosBizControlConstants;
  4. import com.posdata.glue.biz.control.PosBizControlIF;
  5. import com.posdata.glue.biz.control.PosBizProvider;
  6. import com.posdata.glue.component.PosConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.vo.PosParameter;
  9. import com.posdata.glue.dao.vo.PosRow;
  10. import com.posdata.glue.dao.vo.PosRowSet;
  11. import com.posdata.glue.msg.PosMESMessageImpl;
  12. import com.posdata.glue.msg.PosMessage;
  13. /*
  14. * desc:加热炉装炉操作,修改,插入
  15. * author:王小炎
  16. * date:2008-10-7
  17. */
  18. public class PosSaveInHeatFurnace extends PosActivity
  19. {
  20. public String runActivity(PosContext context)
  21. {
  22. // 从页面获取参数数据,供更新页面使用
  23. String[] slabNo = (String[])context.get("SLAB_NO");
  24. String[] CoilNo = (String[])context.get("COIL_NO");
  25. String[] devNo = (String[])context.get("DEVNO");
  26. String[] WkShift = (String[])context.get("WK_SHIFT1");
  27. String[] WkGroup = (String[])context.get("WK_GROUP1");
  28. String[] RegId = (String[])context.get("WK_EMP_NO1");
  29. String[] charingDtime = (String[])context.get("CHARING_DTIME");
  30. String[] chrgingBefWgt = (String[])context.get("CHRGING_BEF_WGT");
  31. String[] chrgingBefTemp = (String[])context.get("CHRGING_BEF_TEMP");
  32. Number SlabWgt = null;
  33. String BefProgCd = null;
  34. String OrdNo = null;
  35. String OrdSeq = null;
  36. String MsgChk = null;
  37. logger.logInfo("PosSaveInHeatFurnace slabNo[0] 1:("+slabNo[0]+")"+CoilNo[0]);
  38. //这里需要加控制,没有进行上料操作的。不能补录入炉实绩
  39. PosParameter param33 = new PosParameter();
  40. param33.setWhereClauseParameter(0, slabNo[0] );
  41. param33.setWhereClauseParameter(1, CoilNo[0] );
  42. PosRowSet coilVo = getDao("mesdao").find("UIH020020_06.select", param33);
  43. String OLD_SAMPL_NO = null;
  44. if(coilVo.hasNext()){
  45. PosRow coilRow = coilVo.next();
  46. OLD_SAMPL_NO = (String) coilRow.getAttribute("OLD_SAMPL_NO");
  47. if(null == OLD_SAMPL_NO){
  48. //如果不存在卷号,不能补录入炉实际
  49. // 如果卷号为空的话,给出提示,不能进行取消操作。
  50. logger.logInfo("PosSaveInHeatFurnace 没有获取到真实钢卷号信息! "+slabNo[0]+"流水号"+CoilNo[0]+"真实钢卷号 :"+OLD_SAMPL_NO);
  51. String vOLD_SAMPL_NO = "OLD_SAMPL_NO";
  52. context.put("rs", vOLD_SAMPL_NO);
  53. }else{
  54. //装入炉内位置,0是长板坯、1是西、2是东
  55. String[] ROW_NUM = (String[])context.get("ROW_NUM");
  56. if(ROW_NUM[0].equals("") || ROW_NUM[0] == null){
  57. ROW_NUM[0] = "1";
  58. }
  59. PosParameter param3 = new PosParameter();
  60. param3.setWhereClauseParameter(0, slabNo[0] );
  61. param3.setWhereClauseParameter(1, CoilNo[0] );
  62. PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param3);
  63. if (specMillVo.hasNext()) {
  64. PosRow specMillROW = specMillVo.next();
  65. Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ");
  66. String STATUS_CD = (String)specMillROW.getAttribute("STATUS_CD");
  67. //这里判断一次钢卷号与板坯号是否配对,如果输入的板坯号与钢卷号不是在轧制计划中配对的。给出错误提示
  68. String Coil_No_Spec = (String)specMillROW.getAttribute("COIL_NO");
  69. if(Coil_No_Spec.equals(CoilNo[0]) && Coil_No_Spec != null){
  70. logger.logInfo("PosSaveInHeatFurnace STATUS_CD 1:("+STATUS_CD+")");
  71. if(STATUS_CD != null && (STATUS_CD.equals("A") || STATUS_CD.equals("B")) ) {
  72. logger.logInfo("PosSaveInHeatFurnace STATUS_CD 2:("+STATUS_CD+")");
  73. PosParameter param4 = new PosParameter();
  74. param4.setWhereClauseParameter(0, "B" );
  75. param4.setWhereClauseParameter(1, slabNo[0] );
  76. param4.setWhereClauseParameter(2, CoilNo[0] );
  77. getDao("mesdao").update("NIH020020_SPEC_MILL.update", param4);
  78. PosParameter param5 = new PosParameter();
  79. param5.setWhereClauseParameter(0, "B" );
  80. param5.setWhereClauseParameter(1, SLAB_EDT_SEQ );
  81. getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param5);
  82. PosParameter param7 = new PosParameter();
  83. param7.setWhereClauseParameter(0, "B" );
  84. param7.setWhereClauseParameter(1, SLAB_EDT_SEQ );
  85. getDao("mesdao").update("NIH020020_MILL_IDX.update", param7);
  86. PosParameter param6 = new PosParameter();
  87. param6.setWhereClauseParameter(0,slabNo[0] );
  88. PosRowSet rowset5 = getDao("mesdao").find("UIH020020_05.select", param6);
  89. while(rowset5.hasNext())
  90. {
  91. PosRow row1 = rowset5.next();
  92. SlabWgt = (Number)row1.getAttribute("SLAB_WGT");
  93. BefProgCd = (String)row1.getAttribute("CUR_PROG_CD");
  94. OrdNo = (String)row1.getAttribute("ORD_NO");
  95. OrdSeq = (String)row1.getAttribute("ORD_SEQ");
  96. }
  97. PosParameter param1 = new PosParameter();
  98. PosParameter param2 = new PosParameter();
  99. //更新tbg02_slab_comm表 ,这里可能会出现空值异常需要相应的处理
  100. String sql1 = "select * from tbg02_slab_comm where slab_no = ? and slab_stat = '2' ";
  101. param2.setWhereClauseParameter(0, slabNo[0]);
  102. PosRowSet rowset1 = getDao("mesdao").findByQueryStatement(sql1, param2);
  103. //如果这块板坯在公共表中不存在,说明板坯号对应不上实物。因此抛出异常
  104. if(rowset1.hasNext()){
  105. //查询结果如果已经有值,则进行修改操作,否则插入
  106. String sql = "select * from TBH02_REHEATFUR where slab_no = ? and coil_no = ? ";
  107. PosParameter param0 = new PosParameter();
  108. param0.setWhereClauseParameter(0,slabNo[0] );
  109. param0.setWhereClauseParameter(1,CoilNo[0] );
  110. PosRowSet rowset0 = getDao("mesdao").findByQueryStatement(sql, param0);
  111. //这里为了处理板坯回炉的情况,用板坯号和钢卷号做为联合主键
  112. if(rowset0.hasNext()){
  113. param1.setWhereClauseParameter(0,charingDtime[0]);
  114. param1.setWhereClauseParameter(1,chrgingBefWgt[0]);
  115. param1.setWhereClauseParameter(2,chrgingBefTemp[0]);
  116. param1.setWhereClauseParameter(3,WkShift[0]);
  117. param1.setWhereClauseParameter(4,WkGroup[0]);
  118. param1.setWhereClauseParameter(5,RegId[0]);
  119. param1.setWhereClauseParameter(6,ROW_NUM[0]);
  120. param1.setWhereClauseParameter(7,slabNo[0]);
  121. param1.setWhereClauseParameter(8,CoilNo[0]);
  122. int updateResult = getDao("mesdao").update("UIH020020_01.update", param1);
  123. }else{
  124. param1.setValueParamter(0,slabNo[0]);
  125. param1.setValueParamter(1, devNo[0]);
  126. param1.setValueParamter(2, CoilNo[0]);
  127. param1.setValueParamter(3,charingDtime[0]);
  128. param1.setValueParamter(4,chrgingBefWgt[0]);
  129. param1.setValueParamter(5,chrgingBefTemp[0]);
  130. param1.setValueParamter(6,WkShift[0]);
  131. param1.setValueParamter(7,WkGroup[0]);
  132. param1.setValueParamter(8,RegId[0]);
  133. param1.setValueParamter(9,ROW_NUM[0]);
  134. getDao("mesdao").insert("UIH020020_01.insert",param1);
  135. }
  136. //TBG02_SLAB_COMM UPDATE CUR_PROG_CD = 'RBB'
  137. PosParameter param8 = new PosParameter();
  138. param8.setWhereClauseParameter(0, slabNo[0] );
  139. getDao("mesdao").update("UIH020020_02.update", param8);
  140. //RHF ENTRY slab is cleared in Roller table address
  141. PosParameter param9 = new PosParameter();
  142. param9.setWhereClauseParameter(0, slabNo[0] );
  143. PosRowSet rollerVo = getDao("mesdao").find("NIH020010_ROLLER.select", param9);
  144. while(rollerVo.hasNext()) {
  145. PosRow rollerROW = rollerVo.next();
  146. String YardAddr = (String)rollerROW.getAttribute("YARD_ADDR");
  147. PosParameter paramD = new PosParameter();
  148. paramD.setWhereClauseParameter(0, YardAddr );
  149. getDao("mesdao").update("NIH020010_ROLLER.update", paramD);
  150. }
  151. //SendProg_NIE012070( slabNo[0] ,BefProgCd,OrdNo,OrdSeq,SlabWgt,RegId[0] );
  152. //SendProg_NIE012080();
  153. } else {
  154. //板坯不存在tbg02_slab_comm表中的时候,抛出异常告诉前台知道
  155. logger.logDebug("PosSaveInHeatFurnace 输入的板坯号在板坯公共表 tbg02_slab_comm 中不存在! ");
  156. String vtemp="PosSaveInHeatFurnace";
  157. context.put("rs", vtemp);
  158. }
  159. } else {
  160. logger.logInfo("PosSaveInHeatFurnace Failed TBF02_SPEC_MILL STATUS_CD:("+STATUS_CD+")");
  161. MsgChk = "N";
  162. }
  163. }else{
  164. logger.logInfo("PosSaveInHeatFurnace Coil_No_Spec 1:("+Coil_No_Spec+")::::"+CoilNo[0]);
  165. //这里出现的异常情况是板坯号与钢卷号不匹配
  166. String vtemp="InHeatFurnacePart";
  167. context.put("rs", vtemp);
  168. }
  169. }else{
  170. logger.logInfo("PosSaveInHeatFurnace Failed ");
  171. MsgChk = "NOT";
  172. }
  173. }
  174. }else{
  175. // 如果卷号为空的话,给出提示,不能进行取消操作。
  176. logger.logInfo("PosSaveInHeatFurnace 没有获取到真实钢卷号信息! "+slabNo[0]+"流水号"+CoilNo[0]+"真实钢卷号 :"+OLD_SAMPL_NO);
  177. String vOLD_SAMPL_NO = "OLD_SAMPL_NO";
  178. context.put("rs", vOLD_SAMPL_NO);
  179. }
  180. context.put("MsgChk",MsgChk);
  181. return PosBizControlConstants.SUCCESS;
  182. }
  183. public void SendProg_NIE012070(String SlabNo,String BefProg,String OrdNo,String OrdSeq,Number wgt,String RegId )
  184. {
  185. // BigDecimal wgt = new BigDecimal();
  186. PosContext context = new PosContext();
  187. PosMessage message = new PosMESMessageImpl();
  188. String TcId = "NIE012070";
  189. message.setTCID(TcId);
  190. message.setObject("MSG_ID",TcId);
  191. message.setObject("BEF_ORD_NO",OrdNo);
  192. message.setObject("BEF_ORD_SEQ",OrdSeq);
  193. message.setObject("ORD_NO",OrdNo);
  194. message.setObject("ORD_SEQ",OrdSeq);
  195. message.setObject("BEF_PROG_CD",BefProg);
  196. message.setObject("PROG_CD","RAB");
  197. message.setObject("MAT_TYPE","TM");
  198. message.setObject("MAT_NO",SlabNo);
  199. message.setObject("WGT", wgt );
  200. message.setObject("PGMID","PosSaveInHeatFur");
  201. message.setObject("REG_ID",RegId);
  202. context.setMessage(message);
  203. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  204. String transactionCode = context.getMessage().getTC();
  205. logger.logInfo("PosSAveOutHeatFurnace---> transactionCode:("+transactionCode+")" );
  206. message.setTCID(TcId);
  207. String serviceName = "NIE012070";
  208. String SERVICE_POSTFIX = "-service";
  209. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  210. context.setMessage(message);
  211. PosBizControlIF controller = PosBizProvider.getController();
  212. controller.doSubController(context,false);
  213. logger.logInfo("PosSAveOutHeatFurnace---> NIE012070 TC SendProgress end" );
  214. }
  215. public void SendProg_NIE012080()
  216. {
  217. PosContext context = new PosContext();
  218. PosMessage message = new PosMESMessageImpl();
  219. String TcId = "NIE012080";
  220. message.setTCID(TcId);
  221. message.setObject("MSG_ID",TcId);
  222. message.setObject("AA",null);
  223. context.setMessage(message);
  224. this.processComponent(PosConstants.CREATE_MESSAGE, context);
  225. String transactionCode = context.getMessage().getTC();
  226. message.setTCID(TcId);
  227. String serviceName = "NIE012080";
  228. String SERVICE_POSTFIX = "-service";
  229. context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX);
  230. context.setMessage(message);
  231. PosBizControlIF controller = PosBizProvider.getController();
  232. controller.doSubController(context,false);
  233. }
  234. }