package core.process; import core.user.User; import dao.DBManagement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ProcessManagement { public static Condition getCondition(User user) throws Exception { Map status = getStatus(user); return getCondition(user,status); } public static Condition getCondition(User user, Map status){ Condition condition = new Condition(); for(Map.Entry entry:status.entrySet()){ String[] s = entry.getKey().split("."); TempProcess tempProcess = (TempProcess) getProcess(s[1]); tempProcess.setGraduationDesignId(s[0]); tempProcess.setStatus(entry.getValue()); condition.add(tempProcess); } condition.add(getLastProcesses(user)); return condition; } private static List getLastProcesses(User user) { return null; } //Map public static Map getStatus(User user) throws Exception { Map status = new HashMap<>(); Map userTables = DBManagement.getUserStatusTables(user.getType()); String graduationDesignId = null; for(Map.Entry entry:userTables.entrySet()){ String[] ti = entry.getKey().split("\\."); String[] ts = entry.getValue().split("\\."); List ls = new ArrayList<>(); ls.add("id"); Map limits = new HashMap<>(); limits.put(ti[1],user.getId()); List resultLs = DBManagement.select(ls,ti[0],limits,0,1); if(resultLs.size()==0) continue; graduationDesignId = resultLs.get(0)[0]; ls = new ArrayList<>(); ls.add(ts[1]); limits = new HashMap<>(); limits.put("id",graduationDesignId); resultLs = DBManagement.select(ls,ts[0],limits,0,1); status.put(graduationDesignId+"."+ts[1],resultLs.get(0)[0]); } return status; } public static Process getProcess(String process){ switch (process){ case "finished_product_status": return new C_StudentUploadFinishedProduct(); default: return null; } } }