dd66daf043dfa80657d1529361aa7c103c977048.svn-base 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package xin.glue.ui.B.B02;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import com.posdata.glue.biz.activity.PosActivity;
  7. import com.posdata.glue.biz.constants.PosBizControlConstants;
  8. import com.posdata.glue.context.PosContext;
  9. import com.posdata.glue.dao.vo.PosRow;
  10. import com.posdata.glue.dao.vo.PosRowSet;
  11. /**
  12. *
  13. * @Description 获得不合格钢号信息{界面ID:UIB020050}
  14. * @author 梅贵平{meiguiping}
  15. * @date 2009-1-9 下午05:21:12
  16. * @JDK Version jdk1.4.2
  17. */
  18. public class FindErrorCharge extends PosActivity
  19. {
  20. public String runActivity(PosContext context)
  21. {
  22. PosRowSet rowset = context.getRowSet("ChemNM");//成分名
  23. PosRowSet rowset1 = context.getRowSet("ChargeInfo");//炉次号等信息
  24. PosRow row = null;
  25. PosRow row1 = null;
  26. List list = new ArrayList();
  27. String chem = "";//用于保存第一次成分查询时候查询出来的成分名
  28. String chem1 = "";//用于保存在查询炉次号信息时获的得成分名
  29. String charge = "start";//用于保存炉次号信息,因为一个炉次号(工序已定,不再考虑)只会对应一组成分
  30. String value = "";
  31. int w = 0;
  32. int num = 0;//用于存储hashmap的数量
  33. Map[] map = new HashMap[100];
  34. Object xxx = "";//用于存储row1.getAttribute("CHEM_VAL"),因为row1.getAttribute("CHEM_VAL")可能是null
  35. while(rowset.hasNext())
  36. {
  37. row = rowset.next();
  38. chem = row.getAttribute("CHEM_CD").toString();
  39. w++;
  40. while(rowset1.hasNext())
  41. {
  42. row1 = rowset1.next();
  43. if("start".equals(charge))//第一次进入
  44. {
  45. charge = row1.getAttribute("CHARGE_NO").toString();
  46. map[num]= new HashMap();
  47. list.add(map[num]);//防止炉次号只有一个的情况,所以需要在这里add一次
  48. }
  49. if(!charge.equals(row1.getAttribute("CHARGE_NO")))//在上一个炉次和下一个炉次的交接处有用
  50. {
  51. charge = row1.getAttribute("CHARGE_NO").toString();
  52. num++;//更换一个炉次时,需要变换一个hashmap来存储信息
  53. list.add(map[num]);//每次new一个hashmap后再add一次
  54. }
  55. xxx = row1.getAttribute("CHEM_VAL");
  56. chem1 = row1.getAttribute("CHEM_CD").toString();//成分名
  57. value = ((xxx==null)? "" : xxx).toString();//.toString();//成分值
  58. // map[num].put("CHEM_VAL"+w, "");//先保存空值,在下面条件为假时,改chem+w(即key)才会存在
  59. //成分相同并且炉次号和上一次的炉次号一样时候
  60. if(chem.equals(chem1) && charge.equals(row1.getAttribute("CHARGE_NO")))
  61. {
  62. map[num].put("CHEM_VAL"+w, value);
  63. // xxx = chem+w;
  64. }
  65. }//while(rowset1.hasNext()) end
  66. rowset1.reset();
  67. }
  68. context.put("ErrorCharge", list);
  69. return PosBizControlConstants.SUCCESS;
  70. }
  71. }