package xin.glue.nui.G.G02; import java.math.BigDecimal; import xin.glue.ui.G.G01.XTBGCOMM; import xin.glue.ui.G.G01.XTBGCreateMaterial; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; import com.posdata.glue.msg.PosMessage; /* * author:wangxiaoyan * Date:08-10-25 * desc:接收转炉实绩的电文信息 更新转炉实绩表 TBG02_BOF_RESULT以后 相应的修改炼钢公共表 TBG02_CHARGE_COMM * 如果当前炉次信息在炉次公共表中已经存在的话,只需更新炉次的工序信息,进程信息,重量, * 如果当前炉次信息在炉次公共表中不存在的话,还需要通过炉次号 查询 炉次参数表 获取炉次参数信息 插入一条新记录 */ public class XinSaveBofProcChargecomm extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = getDao("mesdao"); PosParameter param ; PosRowSet rowset; PosRow row; XTBGCOMM xtbgcom = new XTBGCOMM(dao); XTBGCreateMaterial xtbcm = new XTBGCreateMaterial(dao); try{ PosMessage message = context.getMessage(); // 从电文中获取的数据项 String chargeNo = (String)message.get("CHARGE_NO"); String planChargeNo = (String)message.get("PLAN_CHARGE_NO"); String bofNo = (String)message.get("BOF_NO"); BigDecimal tappingWgt = (BigDecimal)message.get("TAPPING_WGT"); String tappingEndDtime = (String)message.get("TAPPING_END_DTIME"); // 从炉次参数表 TBF01_SPEC_CHARGE 查询出来的数据项 用于插入 炉次参数表 String lineProcCd = ""; String prodnmCd = ""; String stlGrd = ""; String hcrClf = ""; String castManaNo = ""; String SLAB_RT = ""; BigDecimal castChargeSeq = null; BigDecimal castEdtChargeCnt = null; //chargeNo = chargeNo+"A"; PosParameter param0 = new PosParameter(); PosParameter param1 = new PosParameter(); PosParameter param2 = new PosParameter(); int chLth = chargeNo.trim().length(); if (chLth < 10 ) { logger.logInfo("XinSaveBofRawMaterialResult CHARGE_NO ERROR !!!!-->"+chargeNo ); return PosBizControlConstants.SUCCESS; } // 通过电文中接收的炉次号查询炼钢参数表 TBF01_SPEC_CHARGE 取得的数据项 ,修改炼钢公共表 TBG02_CHARGE_COMM param2.setWhereClauseParameter(0, planChargeNo); PosRowSet rowset2 = this.getDao("mesdao").find("NIG020210_02.select", param2); if(rowset2.hasNext()) { PosRow row2 = rowset2.next(); lineProcCd = (String)row2.getAttribute("LINE_PROC_CD"); prodnmCd = (String)row2.getAttribute("PRODNM_CD"); stlGrd = (String)row2.getAttribute("STL_GRD"); hcrClf = (String)row2.getAttribute("HCR_CLF"); castManaNo = (String)row2.getAttribute("CAST_MANA_NO"); castChargeSeq = (BigDecimal)row2.getAttribute("CAST_CHARGE_SEQ"); castEdtChargeCnt = (BigDecimal)row2.getAttribute("CAST_EDT_CHARGE_CNT"); SLAB_RT = (String)row2.getAttribute("SLAB_RT"); //检查炉次,板坯记录是否存在 String sql = "select * from tbg02_charge_comm where CHARGE_NO = ?"; param = new PosParameter(); param.setWhereClauseParameter(0, chargeNo); rowset = this.getDao("mesdao").findByQueryStatement(sql,param); if(!rowset.hasNext()){ xtbcm.CreateCharge("3"+chargeNo.substring(1, 10)); xtbcm.CreateSlab("3"+chargeNo.substring(1, 10)); } param0.setWhereClauseParameter(0, chargeNo); PosRowSet rowset0 = this.getDao("mesdao").find("NIG020210_03.select", param0); if(rowset0.hasNext()) { PosRow rowsetROW = rowset0.next(); String currProgCd = (String)rowsetROW.getAttribute("CUR_PROG_CD"); String befProgCd = (String)rowsetROW.getAttribute("BEF_PROG_CD"); String CHARGE_STAT = (String)rowsetROW.getAttribute("CHARGE_STAT"); if (CHARGE_STAT != null && CHARGE_STAT.equals("2")) { if (currProgCd == null) { currProgCd = "JBF"; befProgCd = "JBB"; } // 如果是修改转炉实绩的话 作业进程就不会变 else if ( !(currProgCd.equals("JCF") || currProgCd.equals("JLF") || currProgCd.equals("JRF") || currProgCd.equals("JJB"))) { currProgCd = "JBF"; befProgCd = "JBB"; } } param1.setWhereClauseParameter(0,bofNo); param1.setWhereClauseParameter(1,currProgCd); param1.setWhereClauseParameter(2,tappingWgt); param1.setWhereClauseParameter(3,tappingEndDtime); param1.setWhereClauseParameter(4,befProgCd); param1.setWhereClauseParameter(5,tappingWgt); param1.setWhereClauseParameter(6,SLAB_RT); param1.setWhereClauseParameter(7,chargeNo); this.getDao("mesdao").update("NIG020210_02.update",param1); } // 如果当前炉次信息在炉次公共表中不存在的话,还需要通过炉次号 查询 炉次参数表 获取炉次参数信息 插入一条新记录 /*else { param1.setValueParamter(0, chargeNo); param1.setValueParamter(1, planChargeNo); param1.setValueParamter(2, lineProcCd); param1.setValueParamter(3, prodnmCd); param1.setValueParamter(4, stlGrd); param1.setValueParamter(5, hcrClf); param1.setValueParamter(6, castManaNo); param1.setValueParamter(7, castChargeSeq); param1.setValueParamter(8, castEdtChargeCnt); param1.setValueParamter(9, bofNo); param1.setValueParamter(10, tappingWgt); param1.setValueParamter(11, tappingEndDtime); param1.setValueParamter(12, tappingWgt); param1.setValueParamter(13, SLAB_RT); this.getDao("mesdao").insert("NIG020210_02.insert",param1); } */ } }catch(Exception ex){ logger.logDebug("--------------------->" + ex); logger.logError("--------------------->" + ex); } // 如果当前炉次信息在炉次公共表中已经存在的话,只需更新炉次的工序信息,进程信息,重量, return PosBizControlConstants.SUCCESS; } }