| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package xin.glue.ui.B.B02;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- 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.vo.PosRow;
- import com.posdata.glue.dao.vo.PosRowSet;
- /**
- *
- * @Description 获得不合格钢号信息{界面ID:UIB020050}
- * @author 梅贵平{meiguiping}
- * @date 2009-1-9 下午05:21:12
- * @JDK Version jdk1.4.2
- */
- public class FindErrorCharge extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- PosRowSet rowset = context.getRowSet("ChemNM");//成分名
- PosRowSet rowset1 = context.getRowSet("ChargeInfo");//炉次号等信息
-
- PosRow row = null;
- PosRow row1 = null;
-
- List list = new ArrayList();
- String chem = "";//用于保存第一次成分查询时候查询出来的成分名
- String chem1 = "";//用于保存在查询炉次号信息时获的得成分名
- String charge = "start";//用于保存炉次号信息,因为一个炉次号(工序已定,不再考虑)只会对应一组成分
- String value = "";
- int w = 0;
- int num = 0;//用于存储hashmap的数量
- Map[] map = new HashMap[100];
- Object xxx = "";//用于存储row1.getAttribute("CHEM_VAL"),因为row1.getAttribute("CHEM_VAL")可能是null
- while(rowset.hasNext())
- {
- row = rowset.next();
- chem = row.getAttribute("CHEM_CD").toString();
- w++;
- while(rowset1.hasNext())
- {
- row1 = rowset1.next();
- if("start".equals(charge))//第一次进入
- {
- charge = row1.getAttribute("CHARGE_NO").toString();
- map[num]= new HashMap();
- list.add(map[num]);//防止炉次号只有一个的情况,所以需要在这里add一次
- }
- if(!charge.equals(row1.getAttribute("CHARGE_NO")))//在上一个炉次和下一个炉次的交接处有用
- {
- charge = row1.getAttribute("CHARGE_NO").toString();
- num++;//更换一个炉次时,需要变换一个hashmap来存储信息
- list.add(map[num]);//每次new一个hashmap后再add一次
- }
- xxx = row1.getAttribute("CHEM_VAL");
- chem1 = row1.getAttribute("CHEM_CD").toString();//成分名
- value = ((xxx==null)? "" : xxx).toString();//.toString();//成分值
- // map[num].put("CHEM_VAL"+w, "");//先保存空值,在下面条件为假时,改chem+w(即key)才会存在
- //成分相同并且炉次号和上一次的炉次号一样时候
- if(chem.equals(chem1) && charge.equals(row1.getAttribute("CHARGE_NO")))
- {
- map[num].put("CHEM_VAL"+w, value);
- // xxx = chem+w;
- }
- }//while(rowset1.hasNext()) end
- rowset1.reset();
- }
- context.put("ErrorCharge", list);
- return PosBizControlConstants.SUCCESS;
- }
- }
|