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; public class FindModFacSteel extends PosActivity { public String runActivity(PosContext context) { // TODO Auto-generated method stub PosGenericDao dao = this.getDao("mesdao"); String[] FSTLGRD = (String[])context.get("STL_GRD");//厂内钢号 PosRowSet rowset = null;//存储最终查询结果 PosRowSet prs = null; //存储临时查询结果 String first = "";//“保存select的开头信息” String end = "";//保存select的结尾信息 String mid = "";//保存select的中间信息 String sql0 = "";//厂内信息 StringBuffer sql = new StringBuffer(); String qMark = FSTLGRD[0].toUpperCase();// 大写厂内钢号 PosParameter param = null; if(!"".equals(FSTLGRD[0])) { first="select 'false' CHK, MOD_STL_GRD "; end =" FROM TBB01_FAC_INGR B, TBB01_MOD_STL A where upper(A.MOD_STL_GRD)=upper(B.FAC_STL_GRD) AND upper(A.FAC_STL_GRD)='"+qMark+"' group by MOD_STL_GRD "; sql0 = getSql(); param = new PosParameter(); //qMark = FSTLGRD[0].toUpperCase(); param.setWhereClauseParameter(0, qMark); prs= dao.find("UIB020050_01.SELECT", param); } int i = 1; PosRow row = null; if(prs.count() > 0) { while(prs.hasNext()) { row = prs.next(); mid = sql0.replaceAll("[{]+[0]+[}]+", row.getAttribute("UPPER(CHEM_CD)").toString()); mid = mid.replaceAll("[{]+[1]+[}]+", new Integer(i++).toString()); sql = sql.append(mid); } } if(sql.length() > 0) { //param = new PosParameter(); //param.setWhereClauseParameter(0, qMark); rowset = dao.findByQueryStatement(first+sql+end); context.put("ListResult_1" , rowset); } return PosBizControlConstants.SUCCESS; } public String getSql()//厂内成分 { String sql = ", TO_CHAR(MAX(CASE WHEN upper(CHEM_CD) = '{0}' THEN CHEM_MIN END) ,'0.0000') MIN{1} "+ ", TO_CHAR(MAX(CASE WHEN upper(CHEM_CD) = '{0}' THEN CHEM_MAX END) , '0.0000') MAX{1} , '{0}' CHEM_CD{1} "; return sql; } }