package xin.glue.nui.G.G02; import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import xin.glue.ui.common.PosDateFormat; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.biz.control.PosBizControlIF; import com.posdata.glue.biz.control.PosBizProvider; import com.posdata.glue.component.PosConstants; import com.posdata.glue.context.PosContext; 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.PosMESMessageImpl; import com.posdata.glue.msg.PosMessage; /* * author:wangxiaoyan * Date:08-10-28 * desc:接收LF炉实绩的电文信息 更新LF炉实绩表 TBG02_LF_RESULT */ public class XinSaveRHResult extends PosActivity { public String runActivity(PosContext context) { PosMessage message = context.getMessage(); // 从电文中获取的数据项 String chargeNo = (String) message.get("CHARGE_NO"); // 1 炉次号 String planChargeNo = (String) message.get("PLAN_CHARGE_NO"); // 2 // 炉次计划号 String rhNo = (String) message.get("RH_NO"); // 3 RH NO String rhTreatCnt = (String) message.get("RH_TREAT_CNT"); // 4 RH 处理次数 BigDecimal arrvWgt = (BigDecimal) message.get("ARRV_WGT"); // 5 到达总重量 BigDecimal rhTreatWgt = (BigDecimal) message.get("RH_TREAT_WGT"); String bbYn = (String) message.get("BB_YN"); // 7 气泡有无 BigDecimal steamUseWgt = (BigDecimal) message.get("STEAM_USE_WGT"); // 8 // steam // 使用量 BigDecimal arWgt = (BigDecimal) message.get("AR_WGT"); // 9 Ar 用量 BigDecimal o2Wgt = (BigDecimal) message.get("O2_WGT"); // 10O2 用量 BigDecimal n2Wgt = (BigDecimal) message.get("N2_WGT"); BigDecimal treatBefO2Wgt = (BigDecimal) message.get("TREAT_BEF_O2_WGT"); // 12处理前钢水含氧量 BigDecimal treatAftO2Wgt = (BigDecimal) message.get("TREAT_AFT_O2_WGT"); // 13处理后钢水含氧量 BigDecimal treatBefN2Wgt = (BigDecimal) message.get("TREAT_BEF_N2_WGT"); // 14处理前钢水含氮量 BigDecimal treatAftN2Wgt = (BigDecimal) message.get("TREAT_AFT_N2_WGT"); // 15处理后钢水含氮量 BigDecimal treatBefHWgt = (BigDecimal) message.get("TREAT_BEF_H_WGT"); // 16处理前钢水含氢量 BigDecimal treatAftHWgt = (BigDecimal) message.get("TREAT_AFT_H_WGT"); // 17处理后钢水含氢气量 BigDecimal warmmatlUseWgt = (BigDecimal) message .get("WARMMATL_USE_WGT"); // 18保温剂使用量 BigDecimal chaffUseWgt = (BigDecimal) message.get("CHAFF_USE_WGT"); BigDecimal rhTreatHour = (BigDecimal) message.get("RH_TREAT_HOUR"); // 20RH // 处理时间 BigDecimal vaccTreatHour = (BigDecimal) message.get("VACC_TREAT_HOUR"); // 21真空处理时间 BigDecimal alPutAftCirgasHour = (BigDecimal) message .get("AL_PUT_AFT_CIRGAS_HOUR"); // 22Al 投入后回流时间 BigDecimal arPutHour = (BigDecimal) message.get("AR_PUT_HOUR"); // 23氩气加入时间 BigDecimal n2PutHour = (BigDecimal) message.get("N2_PUT_HOUR"); // 24氮气加入时间 String ldArrvDtime = (String) message.get("LD_ARRV_DTIME"); String ldRiseStaDtime = (String) message.get("LD_RISE_STA_DTIME"); // 26Ladle上升开始时刻 String rhTreatStaDtime = (String) message.get("RH_TREAT_STA_DTIME"); // 27RH // 处理开始时刻 String rhTreatEndDtime = (String) message.get("RH_TREAT_END_DTIME"); // 28H // 处理完成时刻 String ldDownDtime = (String) message.get("LD_DOWN_DTIME"); // 29Ladle // 下降时刻 String ldDepDtime = (String) message.get("LD_DEP_DTIME"); BigDecimal lstVaccDegre = (BigDecimal) message.get("LST_VACC_DEGRE"); // 31最小真空度 BigDecimal rhArrvTemp = (BigDecimal) message.get("RH_ARRV_TEMP"); // 32RH // 到达温度 BigDecimal rhStaTemp = (BigDecimal) message.get("RH_STA_TEMP"); BigDecimal rhEndTemp = (BigDecimal) message.get("RH_END_TEMP"); // 34RH // 处理完成 // 温度 BigDecimal rhDepTemp = (BigDecimal) message.get("RH_DEP_TEMP"); // 35RH // 出发温度 String powd1UseName = (String) message.get("POWD1_USE_NAME"); // 36powder1名 BigDecimal powd1UseWgt = (BigDecimal) message.get("POWD1_USE_WGT"); // 37powder1用量 String powd2UseName = (String) message.get("POWD2_USE_NAME"); // 38powder2名 BigDecimal powd2UseWgt = (BigDecimal) message.get("POWD2_USE_WGT"); // 39powder2用量 int chLth = chargeNo.trim().length(); if (chLth < 10 ) { logger.logError("XinSaveRHResult CHARGE_NO ERROR !!!!-->"+chargeNo ); return PosBizControlConstants.SUCCESS; } String sShift = null; if (rhTreatEndDtime == null || rhTreatEndDtime.equals("")) { DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); rhTreatEndDtime = formatter.format(new Date()); } sShift = PosDateFormat.getShift(rhTreatEndDtime); PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, rhTreatEndDtime.substring(0, 6)); paramA.setWhereClauseParameter(1, rhTreatEndDtime.substring(6, 8)); paramA.setWhereClauseParameter(2, sShift); paramA.setWhereClauseParameter(3, "S"); PosRowSet groupVO = this.getDao("mesdao").find( "NIG020210_SHIFT.select", paramA); String sGroup = null; if (groupVO.hasNext()) { PosRow groupROW = groupVO.next(); sGroup = (String) groupROW.getAttribute("GR_GROUP_CD"); } PosParameter param0 = new PosParameter(); PosParameter param1 = new PosParameter(); PosParameter param2 = new PosParameter(); // 用电文接收的数据项修改 RH炉实绩表 tbg02_rh_result param0.setWhereClauseParameter(0, chargeNo); PosRowSet rowset0 = this.getDao("mesdao").find("NIG020310_01.select", param0); if (rowset0.hasNext()) { param1.setWhereClauseParameter(0, planChargeNo); // 1 计划炉次号 param1.setWhereClauseParameter(1, rhNo); // 2 RH NO param1.setWhereClauseParameter(2, rhTreatCnt); // 3 RH 处理次数 param1.setWhereClauseParameter(3, arrvWgt); // 4 到达总重量 param1.setWhereClauseParameter(4, rhTreatWgt); // 5 RH处理后重量 param1.setWhereClauseParameter(5, bbYn); // 6 气泡有无 param1.setWhereClauseParameter(6, steamUseWgt); // 7 steam 使用量 param1.setWhereClauseParameter(7, arWgt); // 8 Ar 用量 param1.setWhereClauseParameter(8, o2Wgt); // 9 O2 用量 param1.setWhereClauseParameter(9, n2Wgt); // 10N2 用量 param1.setWhereClauseParameter(10, treatBefO2Wgt); // 11处理前钢水含氧量 param1.setWhereClauseParameter(11, treatAftO2Wgt); // 12处理后钢水含氧量 param1.setWhereClauseParameter(12, treatBefN2Wgt); // 13处理前钢水含氮量 param1.setWhereClauseParameter(13, treatAftN2Wgt); // 14处理后钢水含氮量 param1.setWhereClauseParameter(14, treatBefHWgt); // 15处理前钢水含氢量 param1.setWhereClauseParameter(15, treatAftHWgt); // 16处理后钢水含氢气量 param1.setWhereClauseParameter(16, warmmatlUseWgt); // 17保温剂使用量 param1.setWhereClauseParameter(17, chaffUseWgt); // 18谷皮使用量 param1.setWhereClauseParameter(18, rhTreatHour); // 19RH 处理时间 param1.setWhereClauseParameter(19, vaccTreatHour); // 20真空处理时间 param1.setWhereClauseParameter(20, alPutAftCirgasHour); // 21Al // 投入后回流时间 param1.setWhereClauseParameter(21, arPutHour); // 22氩气加入时间 param1.setWhereClauseParameter(22, n2PutHour); // 23氮气加入时间 param1.setWhereClauseParameter(23, ldArrvDtime); // 24Ladle 到达时间 param1.setWhereClauseParameter(24, ldRiseStaDtime); // 25Ladle上升开始时刻 param1.setWhereClauseParameter(25, rhTreatStaDtime); // 26RH // 处理开始时刻 param1.setWhereClauseParameter(26, rhTreatEndDtime); // 27H // 处理完成时刻 param1.setWhereClauseParameter(27, ldDownDtime); // 28Ladle 下降时刻 param1.setWhereClauseParameter(28, ldDepDtime); // 29Ladle 离开时刻 param1.setWhereClauseParameter(29, lstVaccDegre); // 30最小真空度 param1.setWhereClauseParameter(30, rhArrvTemp); // 31RH 到达温度 param1.setWhereClauseParameter(31, rhStaTemp); // 32RH 处理开始温度 param1.setWhereClauseParameter(32, rhEndTemp); // 33RH 处理完成 温度 param1.setWhereClauseParameter(33, rhDepTemp); // 34RH 出发温度 param1.setWhereClauseParameter(34, powd1UseName); // 35powder1名 param1.setWhereClauseParameter(35, powd1UseWgt); // 36powder1用量 param1.setWhereClauseParameter(36, powd2UseName); // 37powder2名 param1.setWhereClauseParameter(37, powd2UseWgt); // 38powder2用量 param1.setWhereClauseParameter(38, rhTreatEndDtime.substring(0, 8)); // 38powder2用量 param1.setWhereClauseParameter(39, sShift); // 38powder2用量 param1.setWhereClauseParameter(40, sGroup); // 38powder2用量 param1.setWhereClauseParameter(41, chargeNo); // 39炉次号 this.getDao("mesdao").update("NIG020310_01.update", param1); } else { param1.setValueParamter(0, chargeNo); // 1 炉次号 param1.setValueParamter(1, planChargeNo); // 2 计划炉次号 param1.setValueParamter(2, rhNo); // 3 RH NO param1.setValueParamter(3, rhTreatCnt); // 4 RH 处理次数 param1.setValueParamter(4, arrvWgt); // 5 到达总重量 param1.setValueParamter(5, rhTreatWgt); // 6 RH处理后重量 param1.setValueParamter(6, bbYn); // 7 气泡有无 param1.setValueParamter(7, steamUseWgt); // 8 steam 使用量 param1.setValueParamter(8, arWgt); // 9 Ar 用量 param1.setValueParamter(9, o2Wgt); // 10O2 用量 param1.setValueParamter(10, n2Wgt); // 11N2 用量 param1.setValueParamter(11, treatBefO2Wgt); // 12处理前钢水含氧量 param1.setValueParamter(12, treatAftO2Wgt); // 13处理后钢水含氧量 param1.setValueParamter(13, treatBefN2Wgt); // 14处理前钢水含氮量 param1.setValueParamter(14, treatAftN2Wgt); // 15处理后钢水含氮量 param1.setValueParamter(15, treatBefHWgt); // 16处理前钢水含氢量 param1.setValueParamter(16, treatAftHWgt); // 17处理后钢水含氢气量 param1.setValueParamter(17, warmmatlUseWgt); // 18保温剂使用量 param1.setValueParamter(18, chaffUseWgt); // 19谷皮使用量 param1.setValueParamter(19, rhTreatHour); // 20RH 处理时间 param1.setValueParamter(20, vaccTreatHour); // 21真空处理时间 param1.setValueParamter(21, alPutAftCirgasHour); // 22Al 投入后回流时间 param1.setValueParamter(22, arPutHour); // 23氩气加入时间 param1.setValueParamter(23, n2PutHour); // 24氮气加入时间 param1.setValueParamter(24, ldArrvDtime); // 25Ladle 到达时间 param1.setValueParamter(25, ldRiseStaDtime); // 26Ladle上升开始时刻 param1.setValueParamter(26, rhTreatStaDtime); // 27RH 处理开始时刻 param1.setValueParamter(27, rhTreatEndDtime); // 28H 处理完成时刻 param1.setValueParamter(28, ldDownDtime); // 29Ladle 下降时刻 param1.setValueParamter(29, ldDepDtime); // 30Ladle 离开时刻 param1.setValueParamter(30, lstVaccDegre); // 31最小真空度 param1.setValueParamter(31, rhArrvTemp); // 32RH 到达温度 param1.setValueParamter(32, rhStaTemp); // 33RH 处理开始温度 param1.setValueParamter(33, rhEndTemp); // 34RH 处理完成 温度 param1.setValueParamter(34, rhDepTemp); // 35RH 出发温度 param1.setValueParamter(35, powd1UseName); // 36powder1名 param1.setValueParamter(36, powd1UseWgt); // 37powder1用量 param1.setValueParamter(37, powd2UseName); // 38powder2名 param1.setValueParamter(38, powd2UseWgt); // 39powder2用量 param1.setValueParamter(39, rhTreatEndDtime.substring(0, 8)); // 38powder2用量 param1.setValueParamter(40, sShift); // 38powder2用量 param1.setValueParamter(41, sGroup); // 38powder2用量 this.getDao("mesdao").insert("NIG020310_01.insert", param1); String BefProg = null; String ChargeStat = null; String PlanhargeNo = null; param2.setWhereClauseParameter(0, chargeNo); PosRowSet chargeVO = this.getDao("mesdao").find( "NIG020210_03.select", param2); if (chargeVO.hasNext()) { PosRow chargeROW = chargeVO.next(); BefProg = (String) chargeROW.getAttribute("CUR_PROG_CD"); ChargeStat = (String) chargeROW.getAttribute("CHARGE_STAT"); PlanhargeNo = (String)chargeROW.getAttribute("PLAN_CHARGE_NO"); } if (ChargeStat != null && ChargeStat.equals("2") && PlanhargeNo != null) { PosParameter param5 = new PosParameter(); String sProgCd = "JRF"; param5.setValueParamter(0, sProgCd); param5.setValueParamter(1, "B"); param5.setValueParamter(2, PlanhargeNo); this.getDao("mesdao").update("NIG020200_SPEC_PROG.update",param5); SendProg_NIE012070(planChargeNo, BefProg, rhTreatWgt); SendProg_NIE012080(); } } return PosBizControlConstants.SUCCESS; } public PosContext SendProg_NIE012070(String ChargeNo, String BefProg, BigDecimal wgt) { logger.logDebug("XinSaveRhResult SendProg_NIE012070 "); PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); String TcId = "NIE012070"; message.setTCID(TcId); message.setObject("MSG_ID", TcId); message.setObject("BEF_ORD_NO", null); message.setObject("BEF_ORD_SEQ", null); message.setObject("ORD_NO", null); message.setObject("ORD_SEQ", null); message.setObject("BEF_PROG_CD", BefProg); message.setObject("PROG_CD", "JRF"); message.setObject("MAT_TYPE", "CH"); message.setObject("MAT_NO", ChargeNo); message.setObject("WGT", wgt); message.setObject("PGMID", "XinSaveRhResult"); message.setObject("REG_ID", "LEVEL2"); context.setMessage(message); this.processComponent(PosConstants.CREATE_MESSAGE, context); String transactionCode = context.getMessage().getTC(); logger.logDebug("XinSaveRhResult---> transactionCode:(" + transactionCode + ")"); message.setTCID(TcId); String serviceName = "NIE012070"; String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX); context.setMessage(message); PosBizControlIF controller = PosBizProvider.getController(); controller.doSubController(context, false); logger.logDebug("XinSaveRhResult---> NIE012070 TC SendProgress end"); return null; } public PosContext SendProg_NIE012080() { logger.logDebug("XinSaveRhResult SendProg_NIE012080 "); PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); String TcId = "NIE012080"; message.setTCID(TcId); message.setObject("MSG_ID", TcId); message.setObject("AA", null); context.setMessage(message); this.processComponent(PosConstants.CREATE_MESSAGE, context); String transactionCode = context.getMessage().getTC(); logger.logDebug("XinSaveChargeProc---> transactionCode:(" + transactionCode + ")"); message.setTCID(TcId); String serviceName = "NIE012080"; String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, serviceName + SERVICE_POSTFIX); context.setMessage(message); PosBizControlIF controller = PosBizProvider.getController(); controller.doSubController(context, false); logger.logDebug("XinSaveChargeProc---> NIE012080 TC SendProgress end"); return null; } }