c12099c6e77ab5b25e277b48e4be7a725be2943b.svn-base 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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.vo.PosParameter;
  7. import com.posdata.glue.dao.vo.PosRow;
  8. import com.posdata.glue.dao.vo.PosRowSet;
  9. public class FindModFacSteel extends PosActivity {
  10. public String runActivity(PosContext context) {
  11. // TODO Auto-generated method stub
  12. PosGenericDao dao = this.getDao("mesdao");
  13. String[] FSTLGRD = (String[])context.get("STL_GRD");//厂内钢号
  14. PosRowSet rowset = null;//存储最终查询结果
  15. PosRowSet prs = null; //存储临时查询结果
  16. String first = "";//“保存select的开头信息”
  17. String end = "";//保存select的结尾信息
  18. String mid = "";//保存select的中间信息
  19. String sql0 = "";//厂内信息
  20. StringBuffer sql = new StringBuffer();
  21. String qMark = FSTLGRD[0].toUpperCase();// 大写厂内钢号
  22. PosParameter param = null;
  23. if(!"".equals(FSTLGRD[0]))
  24. {
  25. first="select 'false' CHK, MOD_STL_GRD ";
  26. 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 ";
  27. sql0 = getSql();
  28. param = new PosParameter();
  29. //qMark = FSTLGRD[0].toUpperCase();
  30. param.setWhereClauseParameter(0, qMark);
  31. prs= dao.find("UIB020050_01.SELECT", param);
  32. }
  33. int i = 1;
  34. PosRow row = null;
  35. if(prs.count() > 0)
  36. {
  37. while(prs.hasNext())
  38. {
  39. row = prs.next();
  40. mid = sql0.replaceAll("[{]+[0]+[}]+", row.getAttribute("UPPER(CHEM_CD)").toString());
  41. mid = mid.replaceAll("[{]+[1]+[}]+", new Integer(i++).toString());
  42. sql = sql.append(mid);
  43. }
  44. }
  45. if(sql.length() > 0)
  46. {
  47. //param = new PosParameter();
  48. //param.setWhereClauseParameter(0, qMark);
  49. rowset = dao.findByQueryStatement(first+sql+end);
  50. context.put("ListResult_1" , rowset);
  51. }
  52. return PosBizControlConstants.SUCCESS;
  53. }
  54. public String getSql()//厂内成分
  55. {
  56. String sql = ", TO_CHAR(MAX(CASE WHEN upper(CHEM_CD) = '{0}' THEN CHEM_MIN END) ,'0.0000') MIN{1} "+
  57. ", TO_CHAR(MAX(CASE WHEN upper(CHEM_CD) = '{0}' THEN CHEM_MAX END) , '0.0000') MAX{1} , '{0}' CHEM_CD{1} ";
  58. return sql;
  59. }
  60. }