package xin.glue.nui.G.G02; import java.math.BigDecimal; 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.vo.PosParameter; import com.posdata.glue.dao.vo.PosRowSet; import com.posdata.glue.msg.PosMessage; /* * author:wangxiaoyan * Date:08-10-28 * desc:把RH炉中所投入的铁合金,辅原料实绩从转炉LEVEL2开始接收录入到铁合金辅原料实绩 table中 */ public class XinSaveRHRawMaterialResult extends PosActivity { public String runActivity(PosContext context) { PosMessage message = context.getMessage(); // 从电文中获取的数据项 String chargeNo = (String)message.get("CHARGE_NO"); //炉次号 String matCd = (String)message.get("MAT_CD"); //铁合金辅原料代码 BigDecimal matWgt = (BigDecimal)message.get("MAT_WGT"); //铁合金辅原料重量 PosParameter param0 = new PosParameter(); PosParameter param1 = new PosParameter(); PosParameter param2 = new PosParameter(); int chLth = chargeNo.trim().length(); if (chLth < 10 ) { logger.logInfo("XinSaveRHRawMaterialResult CHARGE_NO ERROR !!!!-->"+chargeNo ); return PosBizControlConstants.SUCCESS; } // 通过电文中的炉次号来判断 炼钢公共表中是否有此条记录 没有则不能进行操作 param0.setWhereClauseParameter(0, chargeNo); PosRowSet rowset0 = this.getDao("mesdao").find("NIG020330_01.select",param0); if(rowset0.hasNext()) { param1.setWhereClauseParameter(0, chargeNo); param1.setWhereClauseParameter(1, matCd); // 判断此条记录是否存在 从而确定插入或删除操作 PosRowSet rowset1 = this.getDao("mesdao").find("NIG020330_02.select", param1); if(rowset1.hasNext()) { param2.setWhereClauseParameter(0, matWgt); param2.setWhereClauseParameter(1, chargeNo); param2.setWhereClauseParameter(2, matCd); this.getDao("mesdao").update("NIG020330_01.update", param2); } else { param2.setValueParamter(0, chargeNo); param2.setValueParamter(1, matCd); param2.setValueParamter(2, matWgt); this.getDao("mesdao").insert("NIG020330_01.insert", param2); } } return PosBizControlConstants.SUCCESS; } }