/** * Archive a result * * @param taskData task data of this result * @param data the result data * @param quality the quality of the result * @param advocatingWorkers the advocating workers of this result */ public void archiveResult( TaskData taskData, ByteArray data, double quality, Set<WorkerID> advocatingWorkers) { PathManager pathManager = PathManager.jobOwner(taskData.getJobName()); File location = new File(pathManager.getCanonicalResultFilePath(taskData.getTaskMeta().getTaskName())); resultMap.put( taskData.taskID(), new CanonicalResult(data, quality, advocatingWorkers, location)); }
// According to userid and assignmentid, pasrse the teamrecord data group by user public List<UserTicketTrackingData> parseUserData(List<TaskData> taskdatas) throws SQLException { Map<String, UserTicketTrackingData> userid_map = new HashMap<String, UserTicketTrackingData>(); for (TaskData user_assignmetid_taskData : taskdatas) { String userid = user_assignmetid_taskData.ticketinfos.get(0).assignee; String timesheetid = trackingTicketScriptDao.findtimeSheetId(userid, startDate, endDate); String rmlogin = user_assignmetid_taskData.getRmlogin(); if (!userid_map.containsKey(userid)) { UserTicketTrackingData userdata = new UserTicketTrackingData(); userdata.setUserId(userid); userdata.setTimesheetId(timesheetid); userdata.setRmlogin(rmlogin); // userdata.taskdatas.add(user_assignmetid_taskData); userid_map.put(userid, userdata); } UserTicketTrackingData userdata = userid_map.get(userid); userdata.getTaskdatas().add(user_assignmetid_taskData); } List<UserTicketTrackingData> list = new ArrayList<UserTicketTrackingData>(userid_map.values()); return list; }
@Override protected TaskData doInBackground(TaskData... params) { // Wait for previous thread (if any) to finish before continuing try { if ((oldInstance != null) && (oldInstance.getStatus() != AsyncTask.Status.FINISHED)) oldInstance.get(); } catch (Exception e) { Log.e( TAG, "doInBackground - Got exception while waiting for thread to finish: " + e.getMessage()); } switch (type) { case TASK_TYPE_LOAD_DECK: return doInBackgroundLoadDeck(params); case TASK_TYPE_LOAD_DECK_AND_UPDATE_CARDS: TaskData taskData = doInBackgroundLoadDeck(params); if (taskData.integer == AnkiDroid.DECK_LOADED) { taskData.deck.updateAllCards(); taskData.card = taskData.deck.getCurrentCard(); } return taskData; case TASK_TYPE_ANSWER_CARD: return doInBackgroundAnswerCard(params); case TASK_TYPE_SUSPEND_CARD: return doInBackgroundSuspendCard(params); case TASK_TYPE_UPDATE_FACT: return doInBackgroundUpdateFact(params); default: return null; } }
// According to userid, pasrse the teamrecord data group by user and assignmentid public List<TaskData> parseTaskData(List<TeamRecord> records) throws SQLException { Map<String, TaskData> ticket_map = new HashMap<String, TaskData>(); for (TeamRecord rcd : records) { // If this line's rmlogin is not in the database, we need to delete this line if (!rmLoginNames.contains(rcd.getRmlogin())) { // need to add a log continue; } // to find userid according rmlogin, rmlogin is the remedy's name // useridtd is String array, useridtd[0] is userId, useridtd[1] is // timesheetid, useridtd[2] is staffid String[] strs = trackingTicketScriptDao.findUserId(rcd.getRmlogin(), startDate, endDate); String uid = strs[0]; String tid = strs[1]; String sid = strs[2]; String assignmentid = trackingTicketScriptDao.findassignmentId(rcd.getTask()); // distinguish the data by assignmentid and id, to confirm each task's ticket_id if (!ticket_map.containsKey(assignmentid + ":" + uid)) { TaskData taskdata = new TaskData(); taskdata.setAssignmentid(assignmentid); ticket_map.put(assignmentid + ":" + uid, taskdata); } TaskData taskdata = ticket_map.get(assignmentid + ":" + uid); taskdata.setRmlogin(rcd.getRmlogin()); TicketInfo ticketinfo = new TicketInfo(); ticketinfo.setDescription(rcd.getTask()); ticketinfo.setAssignee(uid); ticketinfo.setTicket_id(rcd.getTicketNumber()); String ticket_id = new Integer(trackingTicketScriptDao.getticket_id(rcd.getTicketNumber())).toString(); // gain the TicketInfo data information from excel ticketinfo.setId(ticket_id); ticketinfo.setFunctionPoint(rcd.getFp()); ticketinfo.setEstimation(rcd.getEst()); ticketinfo.setProgress(rcd.getProgress()); ticketinfo.setInternalCommentsCount(rcd.getInternal_Comments()); ticketinfo.setWmCommentsCount(rcd.getWm_Comments()); ticketinfo.setInternalReviewEffort(rcd.getInternal_Review_Effort()); ticketinfo.setInternalReworkEffort(rcd.getInternal_Rework_Effort()); ticketinfo.setExternalReworkEffort(rcd.getExternal_Rework_Effort()); ticketinfo.setTransactionCount(rcd.getTransaction()); ticketinfo.setUpdateBy(sid); // gain the TicketLog data information from excel TicketLog ticketLog = new TicketLog(); ticketLog.setAssignmentId(trackingTicketScriptDao.findassignmentId(rcd.getTask())); ticketLog.setHourSpends(rcd.getDays()); ticketLog.setTimesheetId(tid); ticketLog.setAssigneeId(sid); ticketLog.setTicketId(ticket_id); ticketLog.setComment(rcd.getComment()); taskdata.ticketinfos.add(ticketinfo); taskdata.ticketLogs.add(ticketLog); taskdata.setWrong_log(rcd.getWrong_log()); } List<TaskData> list = new ArrayList<TaskData>(ticket_map.values()); return list; }
@Override public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { TaskData task = listAdapter.getItem(position); task.expanded = !task.expanded; listAdapter.notifyDataSetChanged(); }