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-27 * desc:把转炉LEVEL2中所发生的SCRAP装炉实绩电文接收过来录入到主.辅原料实绩表中 TBG03_MAINRAW */ public class XinSaveScrapChargeResult extends PosActivity { public String runActivity(PosContext context) { PosMessage message = context.getMessage(); // 从电文中获取的数据项 String chargeNo = (String)message.get("CHARGE_NO"); String scrapCd = (String)message.get("SCRAP_CD"); BigDecimal scrapWgt = (BigDecimal)message.get("SCRAP_WGT"); int chLth = chargeNo.trim().length(); if (chLth < 10 ) { logger.logInfo("XinSaveScrapChargeResult CHARGE_NO ERROR !!!!-->"+chargeNo ); return PosBizControlConstants.SUCCESS; } PosParameter param0 = new PosParameter(); PosParameter param1 = new PosParameter(); PosParameter param2 = new PosParameter(); // 通过电文中的炉次号来判断 炼钢公共表中是否有此条记录 没有则不能进行操作 param0.setWhereClauseParameter(0, chargeNo); PosRowSet rowset0 = this.getDao("mesdao").find("NIG020220_01.select",param0); if(rowset0.hasNext()) { param1.setWhereClauseParameter(0, chargeNo); param1.setWhereClauseParameter(1, scrapCd); // 判断此条记录是否存在 从而确定插入或删除操作 PosRowSet rowset1 = this.getDao("mesdao").find("NIG020220_02.select", param1); if(rowset1.hasNext()) { param2.setWhereClauseParameter(0, scrapWgt); param2.setWhereClauseParameter(1, chargeNo); param2.setWhereClauseParameter(2, scrapCd); this.getDao("mesdao").update("NIG020220_01.update", param2); } else { param2.setValueParamter(0, chargeNo); param2.setValueParamter(1, scrapCd); param2.setValueParamter(2, scrapWgt); this.getDao("mesdao").insert("NIG020220_01.insert", param2); } } return PosBizControlConstants.SUCCESS; } }