I have two java methods that are refarray_vac1() and refernece() which give two different lists namely
List<Vacc1_Decline> st_jsp=new ArrayList<Vacc1_Decline>();
List<Vacc1_Decline> ref_jsp=new ArrayList<Vacc1_Decline>();
having different values in it.The values in the list are coming from a sql query .The number of fields are same in both list. the sql query retrieve value from database corresponding to beam_current .The only difference between the list is due to the values supplied in beam_current at different time period.
The beam_current is very close to multiples of ten i.e. 10.01,20.03 etc.But sometimes beam_current value can be skipped in st_jsp i.e it may start from 19.99,30,60 , in such case there is skip of value corresponding to 10 and 50,So when this happen I want that 0 should be written to that particular beam_current and to all other fields in that particular row.For this there has to be some comparison between both the list beam_current field.
How to do this??The code for above is-
public List<Vacc1_Decline> refarray_vac1(String fdate,String ldate) throws SQLException, ParseException {
st_jsp.clear();
List<Double> slist_user = new ArrayList<Double>(user_current_map.keySet());
String s_user = StringUtils.join(slist_user, ',');
try
{
con = getConnection();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String vs1= " WITH cte AS (SELECT b.logtime,b.beam_current,b.beam_energy,"+
" case when a.st1_vs1_bag1_onoff=0 then c.st1_vs1_bag1_rb ELSE 0 END as st1_vs1_bag1_rb,"+
" CASE when a.st1_vs1_bag2_onoff=0 then c.st1_vs1_bag2_rb else '0' END as st1_vs1_bag2_rb,"+
" CASE when a.st1_vs1_bag3_onoff=0 then c.st1_vs1_bag3_rb else '0' END as st1_vs1_bag3_rb,"+
" CASE when a.st1_vs1_bag4_onoff=0 then c.st1_vs1_bag4_rb else '0' END as st1_vs1_bag4_rb,"+
" CASE when a.st1_vs1_bag5_onoff=0 then c.st1_vs1_bag5_rb else '0' END as st1_vs1_bag5_rb,"+
" CASE when a.st1_vs1_bag6_onoff=0 then c.st1_vs1_bag6_rb else '0' END as st1_vs1_bag6_rb,"+
" CASE when a.st1_vs1_bag7_onoff=0 then c.st1_vs1_bag7_rb else '0' END as st1_vs1_bag7_rb,"+
" CASE when a.st1_vs1_bag8_onoff=0 then c.st1_vs1_bag8_rb else '0' END as st1_vs1_bag8_rb,"+
" Row_number() OVER(partition BY b.beam_current ORDER BY b.logtime) rn "+
"FROM INDUS2_BDS.dbo.DCCT b INNER JOIN(INDUS2_VACUUM.dbo.main_vacuum_analog c inner join INDUS2_VACUUM.dbo.main_vacuum_status a on c.logtime=a.logtime)"+
"ON a.LOGTIME = b.LOGTIME"+
" WHERE b.logtime BETWEEN '"+fdate+"' AND '"+ldate+"'"+
" AND b.beam_current in("+s_user+"))"+
" Select logtime,beam_current,beam_energy,st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb,st1_vs1_bag4_rb,st1_vs1_bag5_rb,st1_vs1_bag6_rb,st1_vs1_bag7_rb,st1_vs1_bag8_rb"+
" from cte where rn=1 order by logtime";
stmt.executeQuery(vs1);
rs = stmt.getResultSet();
while (rs.next()) {
Vacc1_Decline ref = new Vacc1_Decline();
ref.setLogtime(rs.getString(1));
ref.setBeam_current(rs.getString(2));
ref.setBeam_energy(rs.getString(3));
ref.setSt1_vs1_bag1_rb(rs.getString(4));
ref.setSt1_vs1_bag2_rb(rs.getString(5));
ref.setSt1_vs1_bag3_rb(rs.getString(6));
ref.setSt1_vs1_bag4_rb(rs.getString(7));
ref.setSt1_vs1_bag5_rb(rs.getString(8));
ref.setSt1_vs1_bag6_rb(rs.getString(9));
ref.setSt1_vs1_bag7_rb(rs.getString(10));
ref.setSt1_vs1_bag8_rb(rs.getString(11));
st_jsp.add(ref);
}
}
catch( Exception e )
{
System.out.println("\nException in refarray_vac1 "+e);
}
return st_jsp;
}
public List<Vacc1_Decline> refernece(String name) throws SQLException, ParseException {
ref_jsp.clear();
String first=name.substring(1, 19);
String last =name.substring(24,42);
List<Double> slist = new ArrayList<Double>(map1.keySet());
String s = StringUtils.join(slist, ',');
System.out.println("comma separated string reference "+s);
try
{
con = getConnection();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String vs2="WITH cte AS (SELECT b.logtime,b.beam_current,b.beam_energy,"+
" case when a.st1_vs1_bag1_onoff=0 then c.st1_vs1_bag1_rb ELSE 0 END as st1_vs1_bag1_rb,"+
" CASE when a.st1_vs1_bag2_onoff=0 then c.st1_vs1_bag2_rb else '0' END as st1_vs1_bag2_rb,"+
" CASE when a.st1_vs1_bag3_onoff=0 then c.st1_vs1_bag3_rb else '0' END as st1_vs1_bag3_rb,"+
" CASE when a.st1_vs1_bag4_onoff=0 then c.st1_vs1_bag4_rb else '0' END as st1_vs1_bag4_rb,"+
" CASE when a.st1_vs1_bag5_onoff=0 then c.st1_vs1_bag5_rb else '0' END as st1_vs1_bag5_rb,"+
" CASE when a.st1_vs1_bag6_onoff=0 then c.st1_vs1_bag6_rb else '0' END as st1_vs1_bag6_rb,"+
" CASE when a.st1_vs1_bag7_onoff=0 then c.st1_vs1_bag7_rb else '0' END as st1_vs1_bag7_rb,"+
" CASE when a.st1_vs1_bag8_onoff=0 then c.st1_vs1_bag8_rb else '0' END as st1_vs1_bag8_rb,"+
" Row_number() OVER(partition BY b.beam_current ORDER BY b.logtime) rn "+
" FROM INDUS2_BDS.dbo.DCCT b INNER JOIN(INDUS2_VACUUM.dbo.main_vacuum_analog c inner join INDUS2_VACUUM.dbo.main_vacuum_status a on c.logtime=a.logtime)"+
"ON a.LOGTIME = b.LOGTIME"+
" WHERE b.logtime BETWEEN '"+first+"' and '"+last+"'"+
" AND b.beam_current in("+s+"))"+
" Select logtime,beam_current,beam_energy,st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb,st1_vs1_bag4_rb,st1_vs1_bag5_rb,st1_vs1_bag6_rb,st1_vs1_bag7_rb,st1_vs1_bag8_rb"+
" from cte where rn=1 order by logtime";
System.out.println("refernce from map and dropdown is " +vs2);
stmt.executeQuery(vs2);
rs = stmt.getResultSet();
while(rs.next())
{
Vacc1_Decline ref = new Vacc1_Decline();
ref.setLogtime(rs.getString(1));
ref.setBeam_current(rs.getString(2));
ref.setBeam_energy(rs.getString(3));
ref.setSt1_vs1_bag1_rb(rs.getString(4));
ref.setSt1_vs1_bag2_rb(rs.getString(5));
ref.setSt1_vs1_bag3_rb(rs.getString(6));
ref.setSt1_vs1_bag4_rb(rs.getString(7));
ref.setSt1_vs1_bag5_rb(rs.getString(8));
ref.setSt1_vs1_bag6_rb(rs.getString(9));
ref.setSt1_vs1_bag7_rb(rs.getString(10));
ref.setSt1_vs1_bag8_rb(rs.getString(11));
ref_jsp.add(ref);
}
}
catch( Exception e )
{
System.out.println("\nException in reference "+e);
}
return ref_jsp;
}