rendered paste bodypackage ru.softded.kem;import java.util.ArrayList;import java.util.List;import java.util.logging.Logger;import javax.jdo.PersistenceManager;import javax.jdo.Query;import org.joda.time.DateTime;import org.joda.time.DateTimeZone;import ru.softded.kem.model.EmployeeModel;import ru.softded.kem.model.TaskModel;public class ProgressTime { List<TaskModel> taskList; public List<EmployeeModel> go(String type) { Integer t = Integer.parseInt(type); PersistenceManager pm = PMF.get().getPersistenceManager(); Query empQuery = pm.newQuery(EmployeeModel.class); empQuery.setFilter("type == 2"); List<EmployeeModel> empList = (List<EmployeeModel>) empQuery.execute(); taskList = (List<TaskModel>) pm.newQuery(TaskModel.class).execute(); for (EmployeeModel em : empList) { String name = em.getThName(); Long dateLong = getTime(em.getId()); if (dateLong == 0) continue; dateLong += getAverageTime(em.getId(), t); DateTime date = new DateTime(getTime(em.getId()), DateTimeZone.UTC); name += " " + date.getHourOfDay() + ":" + date.getMinuteOfHour(); em.setThName(name); Logger.getLogger("").info(date.toString()); } return empList; } private Long getTime(Long emp) { List<TaskModel> task = getTaskByEmployee(emp); Long summ = 0L; for (TaskModel t : task) { summ += getAverageTime(emp, t.getTaskType()); } return summ; } private List<TaskModel> getTaskByEmployee(Long emp) { List<TaskModel> list = new ArrayList<TaskModel>(); for (TaskModel t : taskList) { if (t.getEmployee() == emp) { list.add(t); } } return list; } private Long getAverageTime(Long employee, Integer type) { Long summ = 0L; int i = 0; for (TaskModel t : taskList) { if (t.getEmployee() == employee && t.getTaskType() == type) { if (t.getStartTime().getTime() != 1000000000 && t.getEndTime().getTime() != 1000000000) { i++; summ += t.getEndTime().getTime() - t.getStartTime().getTime(); } } } if (i > 0) { return summ/i; } else { return 0L; } }}