package com.oa.service.impl;
import java.awt.peer.ListPeer;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.oa.dao.SuperDaoInte;
import com.oa.model.PerformanceExamine;
import com.oa.model.PerformanceParameters;
import com.oa.model.Person;
import com.oa.service.PerformanceExamineSerivce;
import com.sun.jndi.url.iiopname.iiopnameURLContextFactory;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.sun.org.apache.commons.digester.rss.Image;
import com.oa.model.ListPerformanceExamine;
@Component("performanceExamineService")
public class PerformanceExamineServiceImpl implements PerformanceExamineSerivce{
private SuperDaoInte superDao;
public List<PerformanceExamine> selectPerformanceExamine() {
return convertToPerformanceExamine(superDao.find("from PerformanceExamine a"));
}
private List<PerformanceExamine> convertToPerformanceExamine(List<Object> objects) {
List<PerformanceExamine> list = new ArrayList<PerformanceExamine>();
for(int i=0; i<objects.size(); i++) {
list.add((PerformanceExamine)objects.get(i));
}
return list;
}
private List<ListPerformanceExamine> convertToListPerformanceExamine(List<Object> objects) {
List<ListPerformanceExamine> list = new ArrayList<ListPerformanceExamine>();
for(int i=0; i<objects.size(); i++) {
list.add((ListPerformanceExamine)objects.get(i));
}
return list;
}
public SuperDaoInte getSuperDao() {
return superDao;
}
@Resource
public void setSuperDao(SuperDaoInte superDao) {
this.superDao = superDao;
}
public void updatePerformanceExamine(PerformanceExamine pement) {
superDao.update(pement);
}
public List<PerformanceExamine> selectPerformanceExamine(ListPerformanceExamine clazz) {
List<Object> pe = superDao.find("from PerformanceExamine pe where pe.lpe.name = '" + clazz.getName() + "'");
return convertToPerformanceExamine(pe);
}
public void deletePerformanceExamine(PerformanceExamine pe) {
System.out.println("pe isd is "+pe.getId());
superDao.getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery("delete from PerformanceExamine a where a.id = "+pe.getId()).executeUpdate();
}
public List<ListPerformanceExamine> getPerformanceExaminePages(int index, Class<ListPerformanceExamine> clazz,
String hql) {
List<ListPerformanceExamine> list = convertToListPerformanceExamine(superDao.getPage(index, clazz, hql));
return list;
}
public int getAllPerformanceExamines(Class<ListPerformanceExamine> clazz, String hql) {
int listPE = convertToListPerformanceExamine(superDao.getDistinctAllObject(clazz, hql)).size();
return listPE;
}
public List getAllParams() {
List<PerformanceParameters> list = convertToPerformanceParameters(superDao.find("from PerformanceParameters"));
return list;
}
public List getAllParams(Serializable Id) {
List<PerformanceExamine> listPE = convertToPerformanceExamine(superDao.find("from PerformanceExamine pe where pe.lpe = "+Id));
List list = new ArrayList();
for(int i=0; i<listPE.size(); i++) {
list.add(listPE.get(i).getParamId().getName());
}
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println( " remove duplicate " + list);
return list;
}
public List<PerformanceParameters> convertToPerformanceParameters(List<Object> objects) {
List<PerformanceParameters> list = new ArrayList<PerformanceParameters>();
for(int i=0; i<objects.size(); i++) {
list.add(((PerformanceParameters)objects.get(i)));
}
return list;
}
public List<Person> getAllPerson(Serializable peId) {
/*List<PerformanceExamine> pe = convertToPerformanceExamine(superDao.find("from PerformanceExamine pe where pe.lpe = "+peId));
Set set = new HashSet();
System.out.println(pe.size());
for(int i=0; i<pe.size(); i++) {
System.out.println(pe.get(i).getPersonId().getId());
set.add(pe.get(i).getPersonId().getId());
}*/
return convertToPerson(superDao.find("from Person p"));
}
public List<Person> convertToPerson(List<Object> objects) {
List<Person> list = new ArrayList<Person>();
for(int i=0; i<objects.size(); i++) {
list.add((Person)objects.get(i));
}
return list;
}
public void addPerformanceExamine(PerformanceExamine performanceExamine) {
// PerformanceExamine pe = new PerformanceExamine();
// ListPerformanceExamine lpe = (ListPerformanceExamine)superDao.check("from ListPerformanceExamine lpe where lpe.id = ?", new Object[]{id});
// System.out.println("i");
// performanceExamine.getLpe().setId(id);
superDao.add(performanceExamine);
}
public ListPerformanceExamine getLpe(Serializable peId) {
ListPerformanceExamine LPE = (ListPerformanceExamine)superDao.select(ListPerformanceExamine.class, peId);
return LPE;
}
public void deleteListPerformanceExamine(ListPerformanceExamine lpe) {
superDao.delete(lpe);
}
public Serializable addListPerformanceExamine(String name,
String instruction, String date, String recordUser) {
ListPerformanceExamine lpe = new ListPerformanceExamine();
lpe.setName(name);
lpe.setDate(date);
lpe.setInstruction(instruction);
lpe.setRecordUser(recordUser);
return superDao.add(lpe);
}
public ListPerformanceExamine select(Serializable peId) {
ListPerformanceExamine lpe = (ListPerformanceExamine)superDao.select(ListPerformanceExamine.class, peId);
return lpe;
}
public Map<Integer, Map<String, List>> getAllData(Integer peId) {
List<PerformanceExamine> pe = convertToPerformanceExamine(superDao.find("from PerformanceExamine pe where pe.lpe = "+peId));
Map<Integer, Map<String, List>> maps = new LinkedHashMap<Integer, Map<String,List>>();
List list = new ArrayList();
List listName = new ArrayList();
System.out.println(pe.size());
for(int i=0; i<pe.size(); i++) {
System.out.println(pe.get(i).getPersonId().getId());
list.add(pe.get(i).getPersonId().getId());
listName.add(pe.get(i).getPersonId().getName());
}
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println( " remove duplicate " + list);
Set setName = new HashSet();
List newListName = new ArrayList();
for (Iterator iter = listName.iterator(); iter.hasNext();) {
Object element = iter.next();
if (setName.add(element))
newListName.add(element);
}
listName.clear();
listName.addAll(newListName);
System.out.println( " remove duplicate name is " + listName);
Map<String, List> map = null;
for (int j=0; j<list.size(); j++) {
List lists = new ArrayList();
for(int i=0; i<pe.size(); i++) {
if(pe.get(i).getPersonId().getId()==list.get(j)) {
/* System.out.println("pe.get(i).getPersonId().getId() "+pe.get(i).getPersonId().getId());
System.out.println("list.get(j) "+list.get(j));*/
lists.add(pe.get(i).getScore());
}
}
map = new LinkedHashMap<String, List>();
// System.out.println("listName.get(j).toString() is "+listName.get(j).toString());
/* for(int n=0; n<lists.size(); n++) {
System.out.println("list(n is) "+lists.get(n));
}*/
map.put(listName.get(j).toString(), lists);
maps.put(Integer.valueOf(list.get(j).toString()),map);
}
System.out.println("ddddddddddddddddddddddddddd");
Iterator it=maps.entrySet().iterator();
System.out.println( maps.entrySet().size());
String key;
String value;
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
key=entry.getKey().toString();
value=entry.getValue().toString();
System.out.println(key+"===="+value);
}
return maps;
}
}