Пример получения информации о задаче
Материал из BiTel WiKi
Версия от 15:31, 23 мая 2010; St vasco (Обсуждение | вклад)
import java.sql.*; import java.util.*; import java.text.SimpleDateFormat; import org.w3c.dom.Element; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import ru.bitel.bgbilling.plugins.crm.common.model.RegisterGroup; import ru.bitel.bgbilling.plugins.crm.common.model.RegisterTask; import bitel.billing.server.script.bean.event.*; import ru.bitel.bgbilling.plugins.crm.server.bean.event.RegisterTaskClosedEvent; import ru.bitel.bgbilling.plugins.crm.server.dao.RegisterGroupManager; import ru.bitel.bgbilling.plugins.crm.server.dao.RegisterTaskManager; import bitel.billing.common.CommonUtils; import bitel.billing.server.bill.bean.DataExtractor; import bitel.billing.server.script.bean.event.EventProcessor; import bitel.billing.server.util.MailMsg; import bitel.billing.server.admin.bean.UserManager; import bitel.billing.server.admin.bean.User; import bitel.billing.module.common.ListItem; import ru.bitel.bgbilling.plugins.crm.common.model.RegisterExecutor; import ru.bitel.bgbilling.plugins.crm.server.dao.RegisterExecutorManager; import bitel.billing.server.contract.bean.ContractParamUtils; import bitel.billing.plugin.BaseManager; import java.io.*; import java.net.*; import bitel.billing.common.TimeUtils; //Преобразование даты к нужному формату public String convertDateToString(Object date) { if( date == null ) return ""; SimpleDateFormat sdfDate = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); return sdfDate.format(date); } //получение задачи по событию public RegisterTask getTaskFromEvent(ActionAfterEvent event) { Element rootNode = event.getRootNode().getFirstChild(); int id = Integer.parseInt(rootNode.getAttribute("id")); taskManager = new RegisterTaskManager( con ); return taskManager.getTaskByID( id ); } //Получение списка исполнителей public List getTitleExecutors(RegisterTask task) { List listExecutors = new ArrayList(); query = "SELECT * FROM register_executor where id in (" + CommonUtils.listToString( task.getExecutors() ) + ")"; re = con.prepareStatement(query); ResultSet re = re.executeQuery(); while (re.next()) { listExecutors.add( re.getString(2) ); } return listExecutors; } //Получение списка почтовых ящиков исполнителей public List getEmailExecutors(List listExecutors) { List listEmails = new ArrayList(); for (String executor : listExecutors) { switch ( executor ) { case "Фамилия Имя Отчество": listEmails.add("name@post.ru"); break; default: } } return listEmails; } //Получение названия типа задачи public String getTitleTaskType(RegisterTask task) { query = "SELECT * FROM register_task_type where id = " + String.valueOf(task.getTypeID()); rtt = con.prepareStatement(query); ResultSet re = rtt.executeQuery(); while (re.next()) { return re.getString(2); } return "Unknow task"; } //Получение времени исполнения задачи по названию типа задачи в минутах public int getTimeExecuteByTitleTaskType(String titleTaskType) { //Время по умолчанию на задачу int timeExecute = 60; switch ( titleTaskType ) { case "Подключение простое": timeExecute = 90; break; default: } return timeExecute; } //Получение места выполнения задачи public String getAddressTask(ActionAfterEvent event) { int ADDR = 38; cpu = new ContractParamUtils ( con ); cid = event.getContractID(); capv = cpu.getAddressParam(cid,ADDR); if ( capv == null ) return "Unknow Address"; else return capv.getAddress(); } public String getUserNameByID(int userID) { String username = "unknow user"; userManager = new UserManager( con ); user = userManager.getUserByID(userID); if (user != null) username = user.getLogin() + ":" + user.getTitle(); return username; } //Получение идентификатора договора cid = event.getContractID(); task = getTaskFromEvent(event); //Время создания print( "CreateTime: " + convertDateToString( task.getCreateTime() ) ); print( "Create user: " + getUserNameByID( task.getCreateUserID() ) ); //Время открытия print( "OpenTime: " + convertDateToString( task.getOpenTime() ) ); print( "Open user: " + getUserNameByID( task.getOpenUserID() ) ); listExecutors = getTitleExecutors(task); listEmails = getEmailExecutors(listExecutors); print( "Исполнители: " + CommonUtils.listToString(listExecutors) ); print( "Email исполнителей: " + CommonUtils.listToString(listEmails) ); titleTaskType = getTitleTaskType(task); print( "Название задачи:" + titleTaskType); print( "Место выполнения задачи:" + getAddressTask(event) ); int timeExecute = getTimeExecuteByTitleTaskType(titleTaskType); print( "Время выполнения задачи (мин):" + String.valueOf( timeExecute ) ); //Дата выполнения print( "ExecuteDate: " + convertDateToString( task.getExecuteDate() ) ); start = TimeUtils.convertDateToCalendar( task.getExecuteDate() ); start.add(Calendar.MINUTE, timeExecute); print( "End of ExecuteDate: " + convertDateToString( start.getTime() ) ); //Срок выполнения print( "TargetDate: " + convertDateToString( task.getTargetDate() ) ); //Время последней модификации print( "LastmodTime: " + convertDateToString( task.getLastmodTime() ) ); print( "Lastmod user: " + getUserNameByID( task.getLastmodUserID() ) ); //Время закрытия print( "CloseTime: " + convertDateToString( task.getCloseTime() ) ); print( "Close user: " + getUserNameByID( task.getCloseUserID() ) ); print( "Комментарий: " + String.valueOf( task.getComment() ) ); print( "Статус задачи: " + task.getStringStatus() ); //Пример разбора статуса задачи String status = "Статус задачи: " ; switch ( task.getStatus() ) { case RegisterTask.STATUS_CLOSED: status = status + "закрыта"; break; case RegisterTask.STATUS_OPEN: status = status + "открыта"; break; case RegisterTask.STATUS_ACCEPTED: status = status + "принята"; break; }