package xin.glue.ui.G.G01; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Iterator; 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; public class XTBGCOMM { private static PosGenericDao dao; private PosParameter param; private PosRowSet rowset; private PosRow row; public XTBGCOMM(PosGenericDao dao){ this.dao = dao; } //检查是否有记录 static public boolean chekRecord(PosGenericDao dao,String parameters,String strSql) { PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, parameters); PosRowSet rowSet = dao.findByQueryStatement(strSql,param); if(rowSet.hasNext())return true; else return false; } static public boolean chekRecord(String parameters,String strSql) { PosParameter param = new PosParameter(); param.setWhereClauseParameter(0, parameters); PosRowSet rowSet = dao.findByQueryStatement(strSql,param); if(rowSet.hasNext())return true; else return false; } static public boolean chekRecord(PosGenericDao dao,ArrayList paramlist,String strSql) { PosParameter param = new PosParameter(); int n = 0; for(Iterator i=paramlist.iterator();i.hasNext();n++){ param.setWhereClauseParameter(n, i.next()); } PosRowSet rowSet = dao.find(strSql,param); if(rowSet.hasNext())return true; else return false; } //修改炉次计划信息的进程与状态 public void specChargeProcUpt(String materialNo,String materialStat,String procCd){ //spec_charge param = new PosParameter(); param.setWhereClauseParameter(0, procCd); param.setWhereClauseParameter(1, materialStat); param.setWhereClauseParameter(2, materialNo); dao.update("XTBGCOMM_SPEC_CHARGE_PROC_UPT_01", param); //charge_idx param = new PosParameter(); param.setWhereClauseParameter(0, materialStat); param.setWhereClauseParameter(1, materialNo); dao.update("XTBGCOMM_SPEC_CHARGE_PROC_UPT_02", param); } //修改板坯计划信息的进程与状态 public void specSlabProcUpt(String materialNo,String materialStat){ //SPEC_SLAB param = new PosParameter(); param.setWhereClauseParameter(0, materialStat); param.setWhereClauseParameter(1, materialNo); dao.update("XTBGCOMM_SPEC_SLAB_PROC_UPT_01", param); //SLAB_D param = new PosParameter(); param.setWhereClauseParameter(0, materialStat); param.setWhereClauseParameter(1, materialNo); dao.update("XTBGCOMM_SPEC_SLAB_PROC_UPT_02", param); } //修改炉次的进程与状态 public void chargeProcUpt(String materialNo,String materialStat,String procCd,String regPgmId){ //charge_comm param = new PosParameter(); param.setWhereClauseParameter(0, materialStat); param.setWhereClauseParameter(1, procCd); param.setWhereClauseParameter(2, regPgmId); param.setWhereClauseParameter(3, materialNo); dao.update("XTBGCOMM_CHARGE_PROC_UPT_01", param); //charge_comm_d param = new PosParameter(); param.setWhereClauseParameter(0, materialStat); param.setWhereClauseParameter(1, procCd); param.setWhereClauseParameter(2, regPgmId); param.setWhereClauseParameter(3, materialNo); dao.update("XTBGCOMM_CHARGE_PROC_UPT_02", param); } //修改板坯进程与状态 public void slabProcUpt(String materialNo,String materialStat,String procCd,String regPgmId){ //slab_comm param = new PosParameter(); param.setWhereClauseParameter(0, materialStat); param.setWhereClauseParameter(1, procCd); param.setWhereClauseParameter(2, regPgmId); param.setWhereClauseParameter(3, materialNo); dao.update("XTBGCOMM_SLAB_PROC_UPT_01", param); } public void steelEventUpt( String chargeNo // ,String procCd // ,String eventCd // ,BigDecimal treatTemp ,BigDecimal eventQty ,String treatDtime // ,String chargeStat // ,String stlGrd // ,BigDecimal castEdtChargeCnt ,BigDecimal castChargeSeq ){ ArrayList paramlist = new ArrayList(); paramlist.add(chargeNo); paramlist.add(procCd); paramlist.add(eventCd); dao.update("NIG020200_BOF_STAT_DTIME.update"); // 通过电文信息中的 炉次号 工序号 机号 查询 炼钢进程信息表 BG03_STLMAKE_PROG // 如果没有返回记录 则当前炼钢进程刚发生 在炼钢进程信息表中增加一条记录,否则修改记录 if(XTBGCOMM.chekRecord(dao, paramlist, "NIG020200_SMS_PROG.select")){ // steel making progress table update param = new PosParameter(); param.setWhereClauseParameter(0, treatTemp); param.setWhereClauseParameter(1, eventQty); param.setWhereClauseParameter(2, treatDtime); param.setWhereClauseParameter(3, chargeStat); param.setWhereClauseParameter(4, chargeNo); param.setWhereClauseParameter(5, procCd); param.setWhereClauseParameter(6, eventCd ); dao.update("NIG020200_STLMAKE_PROG.update", param); }else{ // steel making progress table update param = new PosParameter(); param.setValueParamter(0, chargeNo); param.setValueParamter(1, procCd); param.setValueParamter(2, eventCd); param.setValueParamter(3, treatTemp); param.setValueParamter(4, eventQty); param.setValueParamter(5, treatDtime); param.setValueParamter(6, chargeStat); dao.insert("NIG020200_STLMAKE_PROG.insert", param); // Steel making tracking table update // in tbg03_sms_tracking table each charge only has one eventCd,so before updating shoud set null param = new PosParameter(); param.setWhereClauseParameter(0, chargeNo); param.setWhereClauseParameter(1, eventCd); rowset = dao.find("NIG020200_SMS_TRACK.select", param); while(rowset.hasNext()) { row = rowset.next(); String treatCd = (String)row.getAttribute("TREAT_CD"); param = new PosParameter(); param.setWhereClauseParameter(0, treatCd); dao.update("NIG020200_TRACK_SAME.update", param); } //// Steel making tracking table update param = new PosParameter(); param.setValueParamter(0, eventCd); param.setValueParamter(1, chargeNo); param.setValueParamter(2, stlGrd); param.setValueParamter(3, castEdtChargeCnt); param.setValueParamter(4, castChargeSeq); param.setValueParamter(5, treatDtime); param.setValueParamter(6, treatTemp); param.setValueParamter(7, eventQty); param.setValueParamter(8, procCd); dao.update("NIG020200_SMS_TRACK.update", param); } } }