f559052ffa5357402cad02bade4f9f8400fe86ee.svn-base 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package xin.glue.nui.G.G02;
  2. import java.math.BigDecimal;
  3. import xin.glue.ui.G.G01.XTBGCOMM;
  4. import xin.glue.ui.G.G01.XTBGCreateMaterial;
  5. import com.posdata.glue.biz.activity.PosActivity;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.PosGenericDao;
  9. import com.posdata.glue.dao.vo.PosParameter;
  10. import com.posdata.glue.dao.vo.PosRow;
  11. import com.posdata.glue.dao.vo.PosRowSet;
  12. import com.posdata.glue.msg.PosMessage;
  13. /*
  14. * author:wangxiaoyan
  15. * Date:08-10-25
  16. * desc:接收转炉实绩的电文信息 更新转炉实绩表 TBG02_BOF_RESULT以后 相应的修改炼钢公共表 TBG02_CHARGE_COMM
  17. * 如果当前炉次信息在炉次公共表中已经存在的话,只需更新炉次的工序信息,进程信息,重量,
  18. * 如果当前炉次信息在炉次公共表中不存在的话,还需要通过炉次号 查询 炉次参数表 获取炉次参数信息 插入一条新记录
  19. */
  20. public class XinSaveBofProcChargecomm extends PosActivity
  21. {
  22. public String runActivity(PosContext context)
  23. {
  24. PosGenericDao dao = getDao("mesdao");
  25. PosParameter param ;
  26. PosRowSet rowset;
  27. PosRow row;
  28. XTBGCOMM xtbgcom = new XTBGCOMM(dao);
  29. XTBGCreateMaterial xtbcm = new XTBGCreateMaterial(dao);
  30. try{
  31. PosMessage message = context.getMessage();
  32. // 从电文中获取的数据项
  33. String chargeNo = (String)message.get("CHARGE_NO");
  34. String planChargeNo = (String)message.get("PLAN_CHARGE_NO");
  35. String bofNo = (String)message.get("BOF_NO");
  36. BigDecimal tappingWgt = (BigDecimal)message.get("TAPPING_WGT");
  37. String tappingEndDtime = (String)message.get("TAPPING_END_DTIME");
  38. // 从炉次参数表 TBF01_SPEC_CHARGE 查询出来的数据项 用于插入 炉次参数表
  39. String lineProcCd = "";
  40. String prodnmCd = "";
  41. String stlGrd = "";
  42. String hcrClf = "";
  43. String castManaNo = "";
  44. String SLAB_RT = "";
  45. BigDecimal castChargeSeq = null;
  46. BigDecimal castEdtChargeCnt = null;
  47. //chargeNo = chargeNo+"A";
  48. PosParameter param0 = new PosParameter();
  49. PosParameter param1 = new PosParameter();
  50. PosParameter param2 = new PosParameter();
  51. int chLth = chargeNo.trim().length();
  52. if (chLth < 10 ) {
  53. logger.logInfo("XinSaveBofRawMaterialResult CHARGE_NO ERROR !!!!-->"+chargeNo );
  54. return PosBizControlConstants.SUCCESS;
  55. }
  56. // 通过电文中接收的炉次号查询炼钢参数表 TBF01_SPEC_CHARGE 取得的数据项 ,修改炼钢公共表 TBG02_CHARGE_COMM
  57. param2.setWhereClauseParameter(0, planChargeNo);
  58. PosRowSet rowset2 = this.getDao("mesdao").find("NIG020210_02.select", param2);
  59. if(rowset2.hasNext())
  60. {
  61. PosRow row2 = rowset2.next();
  62. lineProcCd = (String)row2.getAttribute("LINE_PROC_CD");
  63. prodnmCd = (String)row2.getAttribute("PRODNM_CD");
  64. stlGrd = (String)row2.getAttribute("STL_GRD");
  65. hcrClf = (String)row2.getAttribute("HCR_CLF");
  66. castManaNo = (String)row2.getAttribute("CAST_MANA_NO");
  67. castChargeSeq = (BigDecimal)row2.getAttribute("CAST_CHARGE_SEQ");
  68. castEdtChargeCnt = (BigDecimal)row2.getAttribute("CAST_EDT_CHARGE_CNT");
  69. SLAB_RT = (String)row2.getAttribute("SLAB_RT");
  70. //检查炉次,板坯记录是否存在
  71. String sql = "select * from tbg02_charge_comm where CHARGE_NO = ?";
  72. param = new PosParameter();
  73. param.setWhereClauseParameter(0, chargeNo);
  74. rowset = this.getDao("mesdao").findByQueryStatement(sql,param);
  75. if(!rowset.hasNext()){
  76. xtbcm.CreateCharge("3"+chargeNo.substring(1, 10));
  77. xtbcm.CreateSlab("3"+chargeNo.substring(1, 10));
  78. }
  79. param0.setWhereClauseParameter(0, chargeNo);
  80. PosRowSet rowset0 = this.getDao("mesdao").find("NIG020210_03.select", param0);
  81. if(rowset0.hasNext())
  82. {
  83. PosRow rowsetROW = rowset0.next();
  84. String currProgCd = (String)rowsetROW.getAttribute("CUR_PROG_CD");
  85. String befProgCd = (String)rowsetROW.getAttribute("BEF_PROG_CD");
  86. String CHARGE_STAT = (String)rowsetROW.getAttribute("CHARGE_STAT");
  87. if (CHARGE_STAT != null && CHARGE_STAT.equals("2")) {
  88. if (currProgCd == null) {
  89. currProgCd = "JBF";
  90. befProgCd = "JBB";
  91. }
  92. // 如果是修改转炉实绩的话 作业进程就不会变
  93. else if ( !(currProgCd.equals("JCF") || currProgCd.equals("JLF") || currProgCd.equals("JRF") || currProgCd.equals("JJB"))) {
  94. currProgCd = "JBF";
  95. befProgCd = "JBB";
  96. }
  97. }
  98. param1.setWhereClauseParameter(0,bofNo);
  99. param1.setWhereClauseParameter(1,currProgCd);
  100. param1.setWhereClauseParameter(2,tappingWgt);
  101. param1.setWhereClauseParameter(3,tappingEndDtime);
  102. param1.setWhereClauseParameter(4,befProgCd);
  103. param1.setWhereClauseParameter(5,tappingWgt);
  104. param1.setWhereClauseParameter(6,SLAB_RT);
  105. param1.setWhereClauseParameter(7,chargeNo);
  106. this.getDao("mesdao").update("NIG020210_02.update",param1);
  107. }
  108. // 如果当前炉次信息在炉次公共表中不存在的话,还需要通过炉次号 查询 炉次参数表 获取炉次参数信息 插入一条新记录
  109. /*else
  110. {
  111. param1.setValueParamter(0, chargeNo);
  112. param1.setValueParamter(1, planChargeNo);
  113. param1.setValueParamter(2, lineProcCd);
  114. param1.setValueParamter(3, prodnmCd);
  115. param1.setValueParamter(4, stlGrd);
  116. param1.setValueParamter(5, hcrClf);
  117. param1.setValueParamter(6, castManaNo);
  118. param1.setValueParamter(7, castChargeSeq);
  119. param1.setValueParamter(8, castEdtChargeCnt);
  120. param1.setValueParamter(9, bofNo);
  121. param1.setValueParamter(10, tappingWgt);
  122. param1.setValueParamter(11, tappingEndDtime);
  123. param1.setValueParamter(12, tappingWgt);
  124. param1.setValueParamter(13, SLAB_RT);
  125. this.getDao("mesdao").insert("NIG020210_02.insert",param1);
  126. }
  127. */
  128. }
  129. }catch(Exception ex){
  130. logger.logDebug("--------------------->" + ex);
  131. logger.logError("--------------------->" + ex);
  132. }
  133. // 如果当前炉次信息在炉次公共表中已经存在的话,只需更新炉次的工序信息,进程信息,重量,
  134. return PosBizControlConstants.SUCCESS;
  135. }
  136. }