| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- 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.PosJdbcDao;
- import com.posdata.glue.dao.manager.PosQueryDefinition;
- import com.posdata.glue.dao.manager.PosQueryManager;
- import com.posdata.glue.dao.vo.PosParameter;
- import com.posdata.glue.dao.vo.PosRow;
- import com.posdata.glue.dao.vo.PosRowSet;
- /**
- *
- * @Description 复样,某检验项目做多次,读取REWORK中记录{界面ID:UIB020120}
- * @author 梅贵平{meiguiping}
- * @date 2008-12-30 下午07:25:57
- * @JDK Version jdk1.4.2
- */
- public class FindRELotQltyAchievement extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- PosGenericDao dao = this.getDao("mesdao");
- PosParameter param = null;
- PosRowSet prs = null;
-
- ///get request data
- String[] SMP = (String[])context.get("SMP");//试样号
- // String[] SEQ = (String[])context.get("SEQ");//序号
- String[] startTime = (String[])context.get("startTime");
- String[] endTime = (String[])context.get("endTime");
- String[] PORGCD = (String[])context.get("PORGCD");//试样进程代码
-
- ///get qlty_cd from rework
- param = new PosParameter();
- param.setWhereClauseParameter(0, SMP[0]+"%");
- prs = dao.find("UIB020120_04.SELECT" , param);
- context.put("Grid2QltyNM", prs);
-
- ///get the wanted sql
- StringBuffer sBuffer = new StringBuffer(10000);
- if( prs.count()==0) return PosBizControlConstants.SUCCESS;
-
- if(prs != null && prs.count() > 0)
- {
- int count = prs.count();//获得材质项目的个数
- PosRow row = null;
- int i= 1;
- String start = getManagerSql("UIB020120_03START.SELECT").toString();
- String mid = getManagerSql("UIB020120_0202MID.SELECT").toString();
- String end = getManagerSql("UIB020120_03END.SELECT").toString();
- String sql = "";//用于replace后的存储
- StringBuffer sb = new StringBuffer(8000);//sb.append(sql)
- while(prs.hasNext())
- {
- row = prs.next();
- sql = mid.replaceAll("[{]+[0]+[}]+", row.getAttribute("QLTY_CD").toString());//将{0}处替换为查询出来的材质项目
- sql = sql.replaceAll("[{]+[1]+[}]+", new Integer(i++).toString());
- sb.append(sql);
- }
- StringBuffer ss01 = getManagerSql("UIB020120_03.SELECT");
- sql = start+"\n"+sb.toString()+"\n"+end;//TBB02_WORK_QLTY部分生成
- //无查询条件的最终SQL生成,自然连接方式的SQL
- sBuffer.append(ss01+" ( "+sql+ " ) Y WHERE X.SMP_NO = Y.SMP_NO");
- }
-
- param = new PosParameter();
- int j = 0;
- if(!"".equals(SMP[0]))//若试样号不为空
- {
- sBuffer.append("\n AND x.SMP_NO LIKE ?");
- param.setWhereClauseParameter(j++, SMP[0]+"%");
- }
- if(!"0000".equals(startTime[0]) && !"9999".equals(endTime[0]))//若检验时间不为空
- {
- sBuffer.append("\n AND x.SMP_WORK_DTIME BETWEEN ? AND ?");
- param.setWhereClauseParameter(j++, startTime[0]);
- param.setWhereClauseParameter(j++, endTime[0]);
- }
-
- if("".equals(PORGCD[0]))//试样进程代码
- {
- sBuffer.append("\n AND ( X.SMP_PROG_CD = 'C' OR X.SMP_PROG_CD = 'D' OR X.SMP_PROG_CD = 'E')");
- }
- else if("C".equals(PORGCD[0]))//检验待机
- {
- sBuffer.append("\n AND X.SMP_PROG_CD = 'C'");
- }
- else if("D".equals(PORGCD[0]))//判定待机
- {
- sBuffer.append("\n AND X.SMP_PROG_CD = 'D'");
- }
- else if("E".equals(PORGCD[0]))//判定完成
- {
- sBuffer.append("\n AND X.SMP_PROG_CD = 'E'");
- }
-
- ///exec finded
- PosRowSet rowset = dao.findByQueryStatement(sBuffer.toString() , param);
- context.put("RELotAchievementResult", rowset);
-
- return PosBizControlConstants.SUCCESS;
- }
- public StringBuffer getManagerSql(String id)
- {
- PosJdbcDao dao = (PosJdbcDao)this.getDao("mesdao");
- PosQueryManager ppt = dao.getQueryManager();
- PosQueryDefinition x = ppt.getQueryDefinition(id);
- return new StringBuffer(x.getQueryStatement());
- }
- }
|