b48dff89e0be01dfd4f4ed9ea50085c4b3484190.svn-base 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package xin.glue.ui.D.D01;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;
  5. import com.posdata.glue.biz.activity.PosActivity;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.vo.PosRow;
  9. import com.posdata.glue.dao.vo.PosRowSet;
  10. /**
  11. * 根据不同条件查询板坏设计结果,用于组合板坏
  12. *
  13. * @author 王黎
  14. * @date 2008-8-22
  15. */
  16. public class FindSlabDnResultBySum extends PosActivity
  17. {
  18. public String runActivity(PosContext context)
  19. {
  20. // 获取查询条件钢号、通过工序、排列标准、最大板坏宽度、最小板坏宽度、排列顺序
  21. String[] COIL_WGT = (String[])context.get("COIL_WGT");
  22. String[] PROC_PATH = (String[])context.get("PROC_PATH");
  23. String[] ARRAY_NORM = (String[])context.get("ARRAY_NORM");
  24. String[] SLAB_WTH_MIN = (String[])context.get("SLAB_WTH_MIN");
  25. String[] SLAB_WTH_MAX = (String[])context.get("SLAB_WTH_MAX");
  26. String[] slabAssRes = (String[])context.get("slabAssRes");
  27. String[] ASC = (String[])context.get("ASC");
  28. StringBuffer querySql = new StringBuffer(200);
  29. //增加特殊要求 10.15 wxy
  30. querySql.append("SELECT 'false' AS CHK,DECODE(K.DSN_KIND, '1', 'Y', 'N') AS INGR_YN, T.* FROM TBD01_SLABDN_RST T ");
  31. querySql.append(",(SELECT DISTINCT ORD_NO, ORD_SEQ, DSN_KIND FROM TBB01_ORD_INGR WHERE DSN_KIND = '1') K ");
  32. //根据参数的有无返回对应的数据
  33. String COIL_WGT_PAR = ((COIL_WGT != null && !"all".equals(COIL_WGT[0])) ? COIL_WGT[0] : "%").toString();
  34. String PROC_PATH_PAR = ((PROC_PATH != null && !"all".equals(PROC_PATH[0])) ? PROC_PATH[0] : "%").toString();
  35. boolean SLAB_WTH_MIN_NOTNULL = (SLAB_WTH_MIN != null && !"".equals(SLAB_WTH_MIN[0]) && SLAB_WTH_MIN[0] != null);
  36. boolean SLAB_WTH_MAX_NOTNULL = (SLAB_WTH_MAX != null && !"".equals(SLAB_WTH_MAX[0]) && SLAB_WTH_MAX[0] != null);
  37. querySql.append(" WHERE T.ORD_NO = K.ORD_NO(+) AND T.ORD_SEQ = K.ORD_SEQ(+) AND FAC_STL_GRD LIKE '"+ COIL_WGT_PAR + "' AND PROC_PATH LIKE '%" + PROC_PATH_PAR + "%'");
  38. //组合查询条件
  39. //根据板坏宽度的最大最小值是否为空组合查询条件
  40. if(SLAB_WTH_MIN_NOTNULL && SLAB_WTH_MAX_NOTNULL)
  41. {
  42. querySql.append( " AND SLAB_WTH > '" + SLAB_WTH_MIN[0] + "' AND SLAB_WTH <= '" +SLAB_WTH_MAX[0] + "'");
  43. }
  44. else if(SLAB_WTH_MIN_NOTNULL && !SLAB_WTH_MAX_NOTNULL)
  45. {
  46. querySql.append(" AND SLAB_WTH > '" + SLAB_WTH_MIN[0] + "'");
  47. }
  48. else if(!SLAB_WTH_MIN_NOTNULL && SLAB_WTH_MAX_NOTNULL)
  49. {
  50. querySql.append(" AND SLAB_WTH <= '" +SLAB_WTH_MAX[0] + "'");
  51. }
  52. //如果slabAssRes为ture,则查询安批组合的结果信息
  53. if(slabAssRes != null && "true".equals(slabAssRes[0]))
  54. {
  55. querySql.append(" AND COMB_YN = 'Y'");
  56. }
  57. else
  58. {
  59. querySql.append(" AND SLAB_LEN >= 4500 AND SLAB_LEN <= 5300 AND COMB_YN = 'N'");
  60. }
  61. if(ARRAY_NORM != null)
  62. {
  63. querySql.append(" order by T." + ARRAY_NORM[0]);
  64. }
  65. if(ASC != null && !"true".equals(ASC[0]))
  66. {
  67. querySql.append(" desc");
  68. }
  69. // 获取DAO
  70. PosRowSet rowSet = getDao("mesdao").findByQueryStatement(querySql.toString());
  71. //如果查询的是组合板坏,则需要把组成该组合板坏的单板坏一起查询出来
  72. if(slabAssRes != null && "true".equals(slabAssRes[0]))
  73. {
  74. List list = new ArrayList();
  75. PosRow row = null;
  76. PosRow row2 = null;
  77. Map map = null;
  78. Map map2 = null;
  79. String DSN_SLAB_NO = "";
  80. String slabAssResSql = "";
  81. PosRowSet rowSet2 = null;
  82. while(rowSet.hasNext())
  83. {
  84. row = rowSet.next();
  85. map = row.getAttributes();
  86. DSN_SLAB_NO = (String)map.get("DSN_SLAB_NO");
  87. slabAssResSql = "SELECT 'false' AS CHK, S.* FROM TBD01_SLABDN_RST S WHERE P_DSN_SLAB_NO = '"+ DSN_SLAB_NO + "'";
  88. rowSet2 = getDao("mesdao").findByQueryStatement(slabAssResSql);
  89. list.add(map);
  90. while(rowSet2.hasNext())
  91. {
  92. row2 = rowSet2.next();
  93. map2 = row2.getAttributes();
  94. list.add(map2);
  95. }
  96. }
  97. context.put("EmpListResult", list);
  98. }
  99. else
  100. {
  101. context.put("EmpListResult", rowSet);
  102. }
  103. return PosBizControlConstants.SUCCESS;
  104. }
  105. }