16e50475be8b23af8e332b90b95bbd837659a3ba.svn-base 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package xin.glue.ui.B.B02;
  2. import com.posdata.glue.biz.activity.PosActivity;
  3. import com.posdata.glue.biz.constants.PosBizControlConstants;
  4. import com.posdata.glue.context.PosContext;
  5. import com.posdata.glue.dao.PosGenericDao;
  6. import com.posdata.glue.dao.PosJdbcDao;
  7. import com.posdata.glue.dao.manager.PosQueryDefinition;
  8. import com.posdata.glue.dao.manager.PosQueryManager;
  9. import com.posdata.glue.dao.vo.PosParameter;
  10. import com.posdata.glue.dao.vo.PosRow;
  11. import com.posdata.glue.dao.vo.PosRowSet;
  12. /**
  13. *
  14. * @Description 复样,某检验项目做多次,读取REWORK中记录{界面ID:UIB020120}
  15. * @author 梅贵平{meiguiping}
  16. * @date 2008-12-30 下午07:25:57
  17. * @JDK Version jdk1.4.2
  18. */
  19. public class FindRELotQltyAchievement extends PosActivity
  20. {
  21. public String runActivity(PosContext context)
  22. {
  23. PosGenericDao dao = this.getDao("mesdao");
  24. PosParameter param = null;
  25. PosRowSet prs = null;
  26. ///get request data
  27. String[] SMP = (String[])context.get("SMP");//试样号
  28. // String[] SEQ = (String[])context.get("SEQ");//序号
  29. String[] startTime = (String[])context.get("startTime");
  30. String[] endTime = (String[])context.get("endTime");
  31. String[] PORGCD = (String[])context.get("PORGCD");//试样进程代码
  32. ///get qlty_cd from rework
  33. param = new PosParameter();
  34. param.setWhereClauseParameter(0, SMP[0]+"%");
  35. prs = dao.find("UIB020120_04.SELECT" , param);
  36. context.put("Grid2QltyNM", prs);
  37. ///get the wanted sql
  38. StringBuffer sBuffer = new StringBuffer(10000);
  39. if( prs.count()==0) return PosBizControlConstants.SUCCESS;
  40. if(prs != null && prs.count() > 0)
  41. {
  42. int count = prs.count();//获得材质项目的个数
  43. PosRow row = null;
  44. int i= 1;
  45. String start = getManagerSql("UIB020120_03START.SELECT").toString();
  46. String mid = getManagerSql("UIB020120_0202MID.SELECT").toString();
  47. String end = getManagerSql("UIB020120_03END.SELECT").toString();
  48. String sql = "";//用于replace后的存储
  49. StringBuffer sb = new StringBuffer(8000);//sb.append(sql)
  50. while(prs.hasNext())
  51. {
  52. row = prs.next();
  53. sql = mid.replaceAll("[{]+[0]+[}]+", row.getAttribute("QLTY_CD").toString());//将{0}处替换为查询出来的材质项目
  54. sql = sql.replaceAll("[{]+[1]+[}]+", new Integer(i++).toString());
  55. sb.append(sql);
  56. }
  57. StringBuffer ss01 = getManagerSql("UIB020120_03.SELECT");
  58. sql = start+"\n"+sb.toString()+"\n"+end;//TBB02_WORK_QLTY部分生成
  59. //无查询条件的最终SQL生成,自然连接方式的SQL
  60. sBuffer.append(ss01+" ( "+sql+ " ) Y WHERE X.SMP_NO = Y.SMP_NO");
  61. }
  62. param = new PosParameter();
  63. int j = 0;
  64. if(!"".equals(SMP[0]))//若试样号不为空
  65. {
  66. sBuffer.append("\n AND x.SMP_NO LIKE ?");
  67. param.setWhereClauseParameter(j++, SMP[0]+"%");
  68. }
  69. if(!"0000".equals(startTime[0]) && !"9999".equals(endTime[0]))//若检验时间不为空
  70. {
  71. sBuffer.append("\n AND x.SMP_WORK_DTIME BETWEEN ? AND ?");
  72. param.setWhereClauseParameter(j++, startTime[0]);
  73. param.setWhereClauseParameter(j++, endTime[0]);
  74. }
  75. if("".equals(PORGCD[0]))//试样进程代码
  76. {
  77. sBuffer.append("\n AND ( X.SMP_PROG_CD = 'C' OR X.SMP_PROG_CD = 'D' OR X.SMP_PROG_CD = 'E')");
  78. }
  79. else if("C".equals(PORGCD[0]))//检验待机
  80. {
  81. sBuffer.append("\n AND X.SMP_PROG_CD = 'C'");
  82. }
  83. else if("D".equals(PORGCD[0]))//判定待机
  84. {
  85. sBuffer.append("\n AND X.SMP_PROG_CD = 'D'");
  86. }
  87. else if("E".equals(PORGCD[0]))//判定完成
  88. {
  89. sBuffer.append("\n AND X.SMP_PROG_CD = 'E'");
  90. }
  91. ///exec finded
  92. PosRowSet rowset = dao.findByQueryStatement(sBuffer.toString() , param);
  93. context.put("RELotAchievementResult", rowset);
  94. return PosBizControlConstants.SUCCESS;
  95. }
  96. public StringBuffer getManagerSql(String id)
  97. {
  98. PosJdbcDao dao = (PosJdbcDao)this.getDao("mesdao");
  99. PosQueryManager ppt = dao.getQueryManager();
  100. PosQueryDefinition x = ppt.getQueryDefinition(id);
  101. return new StringBuffer(x.getQueryStatement());
  102. }
  103. }