Пример получения информации о задаче

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: « <source lang="java"> import java.sql.*; import java.util.*; import java.text.SimpleDateFormat; import org.w3c.dom.Element; import org.w3c.dom.Document; import o…»)
 

Текущая версия на 15:31, 23 мая 2010

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;
}
Личные инструменты