71 lines
3.1 KiB
Plaintext
Executable File
71 lines
3.1 KiB
Plaintext
Executable File
package com.fp.general.helper;
|
|
|
|
import com.fp.dto.Response;
|
|
import com.fp.dto.query.QueryRequest;
|
|
import com.fp.dto.rules.QueryRule;
|
|
import com.fp.persistence.commondb.HqlStatement;
|
|
import com.fp.persistence.commondb.PersistenceHelper;
|
|
import com.fp.persistence.pgeneral.gene.TgeneUserSolicitudeNumber;
|
|
import com.fp.persistence.pgeneral.safe.TsafeUser;
|
|
|
|
/**
|
|
* Clase que entrega la secuencia de solicitud a utilizar por usuario.
|
|
*
|
|
* @author Jorge Vaca
|
|
* @version 2.1
|
|
*/
|
|
public class SolicitudeNumber extends QueryRule {
|
|
|
|
/**
|
|
* Metodo que entrega el numero de solicitud, para el usuario.
|
|
*
|
|
* @param pQueryRequest Datos del request.
|
|
* @throws Exception
|
|
*/
|
|
@Override
|
|
public QueryRequest process(QueryRequest pQueryRequest) throws Exception {
|
|
Response response = pQueryRequest.getResponse();
|
|
try {
|
|
TgeneUserSolicitudeNumber solicitudnumber = this.getTgeneUserSolicitudeNumber(pQueryRequest.getUser());
|
|
if (pQueryRequest.getInternalUserCode() == null) {
|
|
TsafeUser user = com.fp.base.persistence.util.db.DataHelper.getInstance().getTsafeUser(pQueryRequest.getUser());
|
|
pQueryRequest.setInternalUserCode(user.getInternalcode());
|
|
}
|
|
String sol = pQueryRequest.getInternalUserCode() + solicitudnumber.getSolicitudnumber();
|
|
response.put("solicitudenumber", sol);
|
|
solicitudnumber = PersistenceHelper.getEntityManager().merge(solicitudnumber);
|
|
|
|
return pQueryRequest;
|
|
} catch (Exception e) {
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Metodo que entrega la secuencia de solicitud a utilizar, esta se define por usuario.<br>
|
|
* Si no existe un registro en la tabla crea uno, si existe suma 1 a la secuencia de la solicitud.
|
|
*
|
|
* @param pUserCode Codigo de usuario a obtener el numero de solicitud.
|
|
* @return TgeneUserSolicitudeNumber
|
|
* @throws Exception
|
|
*/
|
|
protected TgeneUserSolicitudeNumber getTgeneUserSolicitudeNumber(String pUserCode) throws Exception {
|
|
TgeneUserSolicitudeNumber tgeneUserSolicitudeNumber = null;
|
|
HqlStatement hql = new HqlStatement(SolicitudeNumber.HQL);
|
|
hql.setString("usercode", pUserCode);
|
|
tgeneUserSolicitudeNumber = (TgeneUserSolicitudeNumber) hql.getObject();
|
|
if (tgeneUserSolicitudeNumber == null) {
|
|
tgeneUserSolicitudeNumber = new TgeneUserSolicitudeNumber();
|
|
tgeneUserSolicitudeNumber.setPk(pUserCode);
|
|
tgeneUserSolicitudeNumber.setSolicitudnumber("0");
|
|
}
|
|
Integer sec = Integer.valueOf(tgeneUserSolicitudeNumber.getSolicitudnumber());
|
|
sec++;
|
|
tgeneUserSolicitudeNumber.setSolicitudnumber(sec.toString());
|
|
return tgeneUserSolicitudeNumber;
|
|
}
|
|
|
|
/** Sentencia que obtiene un registro de TgeneUserSolicitudeNumber con la secuencia de solicitud por usuario. */
|
|
private static final String HQL = "from com.fp.persistence.pgeneral.gene.TgeneUserSolicitudeNumber t " + " where t.pk = :usercode ";
|
|
}
|