maia_modificado/.svn/pristine/92/9278f50d6cb41c2398320842a0c...

170 lines
7.0 KiB
Plaintext
Executable File

package com.fp.bpmlib.query.monitor;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Map;
import javax.persistence.Query;
import org.apache.log4j.Logger;
import com.fp.dto.json.Serializer;
import com.fp.dto.save.SaveRequest;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.commondb.exception.CommondbException;
import com.fp.persistence.commondb.helper.FormatDates;
import com.fp.persistence.pbpm.gene.TbpmActivities;
import com.fp.persistence.pbpm.gene.TbpmActivitiesKey;
import com.fp.simple.dto.TaskInfo;
/**
*
* @author GBC
*
*/
public class FlowActivitySave {
/**
* Logger
*/
private static final Logger LOG = Logger.getLogger(FlowActivitySave.class);
/**
* JPQL TAREA_SUMMARY
*/
private static final String TAREA_SUMMARY = "select t from BAMTaskSummaryImpl t where t.taskId = :idtarea";
/*
* Nombre Nulo Tipo
------------------ -------- -------------
JOURNALID NOT NULL VARCHAR2(50) --maia
ACTIVITYNAME NOT NULL VARCHAR2(100) --taskdata
SEQUENCE NOT NULL NUMBER(5) --Id de la tarea
USERCODE VARCHAR2(20) -- taskdata usuario responsable //update para actualizar el usuario
GROUPCODE VARCHAR2(30) -- //grupo de la tarea taskinfo
COMPANYCODE NUMBER(10) -- maia***no se encontro
ACTION VARCHAR2(50) --vacio
ADITIONALDATA CLOB --taskinfo //actualizar al completar la tarea
COMPLETED TIMESTAMP(6) -- se actualiza al completar la tarea
CREATED TIMESTAMP(6) -- taskdata
EXPECTEDTIME NUMBER -- taskinfo
TASKJOURNALID VARCHAR2(50) -- revisar en el taskcomplete
RESPONSE VARCHAR2(50) -- taskcomplete
RULECODE VARCHAR2(30)
RULECODEDEFAULT VARCHAR2(30)
STARTED TIMESTAMP(6)-- actualizar en el start
TASKID NUMBER --en el metodo del handles
MODULE VARCHAR2(50) -- taskinfo
TRANSACTION NUMBER --taskinfo
VERSION NUMBER --taskinfo
INTERNALCODE VARCHAR2(50) -- usar el PID
PACKAGENAME VARCHAR2(120)
PACKAGENAMEDEFAULT VARCHAR2(120)
*/
/**
* Manage activity.
*
* @param pTaskInfo the task info
* @param pActivityname the activityname
* @param pSequence the sequence
* @throws Exception la exception
*/
public static void crearActivity(Map<String, Object> mparam, TaskInfo taskInfo, long idTarea, java.util.Date onCreated) throws Exception {
//(mparam.get("journalid"), pActivityname, pSequence);
SaveRequest saveRequest = (SaveRequest) mparam.get("request");
TbpmActivitiesKey k = new TbpmActivitiesKey(saveRequest.getJournalId(), taskInfo.getTname(),new Integer(mparam.get("PID").toString()));
TbpmActivities act = new TbpmActivities();
act.setPk(k);
if (taskInfo.getAditionalData() != null) {
Serializer ser = new Serializer((Serializable) taskInfo.getAditionalData());
act.setAditionaldata(ser.toJSON());
}
act.setGroupcode(taskInfo.getGroupId());
act.setUsercode(taskInfo.getUserId());
//act.setCompanycode(mparam.get(key));
act.setCreated(new Timestamp(onCreated.getTime()));
act.setExpectedtime(taskInfo.getExpectedTime());
act.setTaskjournalid(taskInfo.getJournalId());
act.setTaskid(idTarea);
act.setRulecode(taskInfo.getRuleCode());
act.setRulecodedefault(taskInfo.getRuleCodeDefault());
act.setInternalcode(mparam.get("PID").toString());
act.setVersion(taskInfo.getVersion().longValue());
act.setModule(taskInfo.getModule());
act.setTransaction(taskInfo.getTransaction().longValue());
PersistenceHelper.saveOrUpdate(act);
}
/***
* Metodo que actualiza la informacion cuando esta es asignada a un usuario
* @param idTarea
* @param userCode
* @throws CommondbException
* @throws Exception
*/
public static void actualizarActividadClaim(long idTarea, String userCode) throws CommondbException, Exception{
Query q = PersistenceHelper.getEntityManager().createQuery("from TbpmActivities p where p.taskid=:idTarea");
q.setParameter("idTarea", idTarea);
TbpmActivities act = (TbpmActivities) q.getSingleResult();
act.setUsercode(userCode);
PersistenceHelper.saveOrUpdate(act);
}
/***
* Metodo que actualiza la informacion cuando esta es seleccionada por el usuario
* @param idTarea
* @throws CommondbException
* @throws Exception
*/
public static void actualizarActividadStart(long idTarea) throws CommondbException, Exception{
Query q = PersistenceHelper.getEntityManager().createQuery("from TbpmActivities p where p.taskid=:idTarea");
q.setParameter("idTarea", idTarea);
TbpmActivities act = (TbpmActivities) q.getSingleResult();
act.setStarted(FormatDates.getInstance().getDataBaseTimestamp());
// act.setTaskjournalid(taskInfo.getJournalId());
PersistenceHelper.saveOrUpdate(act);
}
/***
* Metodo que actualiza la informacion de la tarea cuando esta es completada.
* @param idTarea
* @param taskInfo
* @throws CommondbException
* @throws Exception
*/
public static void actualizarActividadComplete(long idTarea, TaskInfo taskInfo) throws CommondbException, Exception{
Query q = PersistenceHelper.getEntityManager().createQuery("from TbpmActivities p where p.taskid=:idTarea");
q.setParameter("idTarea", idTarea);
TbpmActivities act = (TbpmActivities) q.getSingleResult();
act.setCompleted(FormatDates.getInstance().getDataBaseTimestamp());
act.setTaskjournalid(taskInfo.getJournalId());
act.setResponse(taskInfo.getResponse());
PersistenceHelper.saveOrUpdate(act);
}
/**
* Metodo q actualiza el usuario cuando esta tarea es reasignada
* @param idTarea
* @param userCode
* @throws CommondbException
* @throws Exception
*/
public static void actualizarActividadDelegate(long idTarea, String userCode) throws CommondbException, Exception{
Query q = PersistenceHelper.getEntityManager().createQuery("from TbpmActivities p where p.taskid=:idTarea");
q.setParameter("idTarea", idTarea);
TbpmActivities act = (TbpmActivities) q.getSingleResult();
act.setUsercode(userCode);
PersistenceHelper.saveOrUpdate(act);
}
}