Время, затраченное пользователями на задачу.
Скрипт используется в поле типа текст с включенной опцией HTML-вид. Скрипт возвращает таблицу с временем, которое потратил на задачу каждый пользователь.
package scripts.task_custom_field_value; import com.trackstudio.exception.GranException; import com.trackstudio.external.TaskUDFValueScript; import com.trackstudio.secured.SecuredMessageBean; import com.trackstudio.secured.SecuredTaskBean; import java.util.HashMap; import java.util.Map; public class TextUdf implements TaskUDFValueScript{ /* Метод, возвращающий таблицу на основе HashMap с данными о затраченном времени*/ public String createtable(HashMap<String ,Long> map) { String table = "<table>"; for(Map.Entry entry:map.entrySet()) { table = table + "<tr><td>" + entry.getKey().toString() + "</td><td>" + entry.getValue().toString() + "</td></tr>"; } table = table + "</table>"; return table; } public Object calculate(SecuredTaskBean task) throws GranException{ HashMap<String, Long> hrs = new HashMap<String, Long>(); if(task.getMessageCount()!=0) { for(SecuredMessageBean message:task.getMessages()) { String username = message.getSubmitter().getName(); if(!hrs.containsKey(username)) { if(message.getHrs()==null) hrs.put(username, 0l); else hrs.put(username, message.getHrs()/3600); } else { if(message.getHrs()!=null) { Long value = hrs.get(username)/3600 + message.getHrs()/3600; hrs.put(username, value); } } } return createtable(hrs); } else return null; } }