package xin.glue.ui.B.B02; 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; /** * * @Description 炉次号成分现况查询{界面ID:UIB020020} * @author 梅贵平{meiguiping} * @date 2009-1-5 下午01:29:42 * @JDK Version jdk1.4.2 */ public class FindChargeIngrAim extends PosActivity { public String runActivity(PosContext context) { ///readyo MutilConditionFind mcf = new MutilConditionFind(); PosGenericDao dao = this.getDao("mesdao"); PosParameter param = null; PosRowSet rowset = null; ///get request data String[]P_CHARGENO = (String[])context.get("CHARGENO");//炉次号 String[]P_SEQ = (String[])context.get("SEQ");//次数 String[]P_StartTime = (String[])context.get("StartTime");//开始时间 String[]P_EndTime = (String[])context.get("EndTime");//结束时间 String[]P_SQL = (String[])context.get("SQL"); ///select chem_cd from tbb02_work_ingr where.......... StringBuffer bufferSql = mcf.getQuerySql("UIB020021_01.SELECT"); int j = 0; param = new PosParameter(); bufferSql.append("\n"+P_SQL[0]+"\n"); if(!"%".equals(P_CHARGENO[0]))//若炉次号不为空 { bufferSql.append("\n"+mcf.getQuerySql("UIB020021_CHARGENO").toString()); param.setWhereClauseParameter(j++, P_CHARGENO[0]); } if(!"".equals(P_SEQ[0]))//若此数不为空 { bufferSql.append("\n"+mcf.getQuerySql("UIB020021_SEQ").toString()); param.setWhereClauseParameter(j++, P_SEQ[0]); } bufferSql.append(" ORDER BY SI.COMP_YN , SI.DISPLAY_SEQ "); rowset = dao.findByQueryStatement(bufferSql.toString() , param);//满足条件的成分查询 context.put("ChemNM", rowset);//返回成分 if(rowset.count()<=0)//若查询无成分,则直接返回,不进行下面操作 return PosBizControlConstants.SUCCESS; ///炉次号成分现况查询 int count = rowset.count(); String mid = mcf.getQuerySql("UIB020021_02.MID").toString(); String temp = ""; j = 1;//用于循环部分 StringBuffer sb = new StringBuffer(2000); PosRow row = null; while(rowset.hasNext()) { row = rowset.next(); temp = mid.replaceAll("[{]+[0]+[}]+", row.getAttribute("CHEM_CD").toString()); temp = temp.replaceAll("[{]+[1]+[}]+", new Integer(j++).toString()); sb.append(temp); } bufferSql = new StringBuffer(9000); bufferSql = mcf.getQuerySql("UIB020021_02.START").append("\n").append(sb).append("\n").append(mcf.getQuerySql("UIB020021_02.END")); param = new PosParameter(); j = 0; bufferSql.append("\n"+P_SQL[0]+"\n"); if(!"%".equals(P_CHARGENO[0]))//若炉次号不为空 { bufferSql.append("\n"+mcf.getQuerySql("UIB020021_CHARGENO").toString()); param.setWhereClauseParameter(j++, P_CHARGENO[0]); } if(!"".equals(P_SEQ[0]))//若此数不为空 { bufferSql.append("\n"+mcf.getQuerySql("UIB020021_SEQ").toString()); param.setWhereClauseParameter(j++, P_SEQ[0]); } if(!"".equals(P_StartTime[0]))//判定时间 { bufferSql.append("\n"+mcf.getQuerySql("UIB020021_TIME").toString()); param.setWhereClauseParameter(j++, P_StartTime[0]); param.setWhereClauseParameter(j++, P_EndTime[0]); } // if(!"".equals(P_EndTime[0]))//结束时间 // { // bufferSql.append("\n"+mcf.getQuerySql("UIB020020_ENDTIME").toString()); // param.setWhereClauseParameter(j++, P_EndTime[0]); // } rowset = dao.findByQueryStatement(bufferSql.append("\n").append(mcf.getQuerySql("UIB020021_02.GROUPBY")).toString() , param);//炉次号成分查询 context.put("ChargeIngr", rowset); return PosBizControlConstants.SUCCESS; } }