maia/.svn/pristine/15/15db258a71dff984bdf708c1277...

182 lines
6.5 KiB
Plaintext
Executable File

/*
*
*/
package com.fp.bpmlib.query.inbox;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.kie.api.task.model.Content;
import org.kie.api.task.model.Task;
import com.fp.base.persistence.util.helper.GeneralDescriptions;
import com.fp.bpmlib.task.client.HumanTaskClient;
import com.fp.bpmlib.task.client.TaskUtil;
import com.fp.common.helper.Constant;
import com.fp.dto.data.TransactionDTO;
import com.fp.dto.query.QueryRequest;
import com.fp.dto.rules.QueryRule;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.pgeneral.trans.TgeneTransaction;
import com.fp.persistence.pgeneral.trans.TgeneTransactionKey;
// TODO: Auto-generated Javadoc
/**
* Class TransactionList encargada de listar las transacciones para el buzón de la persona.
*
* @author gfiallos
*/
public class TransactionList extends QueryRule {
/** serialVersionUID. */
private static final long serialVersionUID = 1L;
/** El valor de htc. */
private HumanTaskClient htc = null;
/** El valor de request. */
private QueryRequest request;
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
/** El valor de trn. */
private final Map<String, Integer> trn = new HashMap<String, Integer>();
Map<String, Object> mtransaux = new HashMap<String, Object>();
/**
* Process.
*
* @param pQueryRequest the query request
* @return query request
* @throws Exception la exception
*/
@SuppressWarnings("unchecked")
@Override
public QueryRequest process(QueryRequest pQueryRequest) throws Exception {
htc = new HumanTaskClient();
try {
request = pQueryRequest;
if(request.get("codeS")==null)
{
this.addTransactionList(pQueryRequest.getLanguage());
}
else
{
this.addTransactionList(pQueryRequest.getLanguage(),request.get("codeS").toString());
}
Set<String> s = mtransaux.keySet();
for (String key : s) {
data.add((Map<String, Object>) mtransaux.get(key));
}
pQueryRequest.getResponse().put("transactions", data);
return pQueryRequest;
} finally {
htc.close();
}
}
/**
* Prepara la lista de Tareas.
*
* @throws Exception la exception
*/
@SuppressWarnings("unchecked")
private void addTransactionList(String language) throws Exception {
List<Object[]> t = htc.getUnfinishedTasksByUser(request.getUser());
for (Object[] obj : t) {
Task task = (Task) obj[0];
TaskUtil tu = new TaskUtil(task, htc);
TransactionDTO tr = tu.getTransaction();
Integer count = trn.get(tr.toString());
if (count == null) {
count = 1;
} else {
count++;
}
trn.put(tr.toString(), count);
Map<String, Object> mtran = (Map<String, Object>) mtransaux.get(tr.toString());
if (mtran == null) {
mtran = this.addTransactionData(tu);
mtransaux.put(tr.toString(), mtran);
}
mtran.put("c", count);
// Adiciona datos de una tarea.
TransactionTasks.addTask(mtran, tu, language);
}
}
@SuppressWarnings({ "unchecked", "unused", "rawtypes" })
private void addTransactionList(String language, String codSolicitud) throws Exception {
List<Object[]> t = htc.getUnfinishedTasksByUser(request.getUser());
for (Object[] obj : t) {
Task task = (Task) obj[0];
Content c = (Content) obj[1];
TaskUtil tu = new TaskUtil(task, htc);
((SaveRequest)(((Map)tu.getActualData().get("maia")).get("request"))).get("csolicitud");
TransactionDTO tr = tu.getTransaction();
if(tu.getActualData().get("maia") instanceof Map<?, ?>)
{
if(((Map)tu.getActualData().get("maia")).get("request") != null)
{
if((((Map)tu.getActualData().get("maia")).get("request")) instanceof SaveRequest)
{
Object csolicitud = ((SaveRequest)(((Map)tu.getActualData().get("maia")).get("request"))).get("csolicitud");
if(csolicitud!=null){
String codS = csolicitud.toString();
if(!codS.equals(codSolicitud))
{
continue;
}
}
}
}
}
Integer count = trn.get(tr.toString());
if (count == null) {
count = 1;
} else {
count++;
}
trn.put(tr.toString(), count);
Map<String, Object> mtran = (Map<String, Object>) mtransaux.get(tr.toString());
if (mtran == null) {
mtran = this.addTransactionData(tu);
mtransaux.put(tr.toString(), mtran);
}
mtran.put("c", count);
// Adiciona datos de una tarea.
TransactionTasks.addTask(mtran, tu, language);
}
}
private Map<String, Object> addTransactionData(TaskUtil tu) throws Exception {
Map<String, Object> rec = new HashMap<String, Object>();
TransactionDTO tr = tu.getTransaction();
rec.put("m", tr.getModule());
rec.put("t", tr.getTransaction());
rec.put("v", tr.getVersion());
rec.put("n", Constant.capitalize(GeneralDescriptions.getTransactiondesc(tr.getModule(), tr.getTransaction(), tr.getVersion())));
TgeneTransactionKey k = new TgeneTransactionKey(tr.getModule(), tr.getTransaction(), tr.getVersion());
TgeneTransaction t = TgeneTransaction.find(PersistenceHelper.getEntityManager(), k);
rec.put("p", t.getPage());
rec.put("name", t.getName());
rec.put("pjsf", t.getJsfpage());
rec.put("pjsfurl", t.getJsfpage() + "?m=" + tr.getModule() + "&t=" + tr.getTransaction() + "&v=" + tr.getVersion());
rec.put("q", t.getAutoquery());
rec.put("f", t.getSignature());
return rec;
}
}