Añado los fuentes de java

This commit is contained in:
2025-06-09 13:37:06 +02:00
parent d6c990e5d5
commit a97a6350ee
226 changed files with 57246 additions and 0 deletions
@@ -0,0 +1,323 @@
/**
* @(#)
*/
package com.tarisan.control;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import com.tarisan.data.RespuestaChipcard;
import com.tarisan.excepcion.ExcepcionTarisan;
import com.tarisan.log.LogTarisan;
import com.tarisan.log.NivelLog;
import com.tarisan.util.Utilidades;
public class PersistenciaRespuestaChipcard
{
public RespuestaChipcard parsearRespuesta(String response)
{
RespuestaChipcard resul = new RespuestaChipcard();
if(response != null)
{
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 14: "+response);
String campo = "";
if(response.contains("<Error errcode"))
{
resul.set_error(true);
campo = response.substring(response.indexOf("<Error errcode"));
campo = response.substring(response.indexOf(">")+1, response.indexOf("</Error>"));
resul.set_mensaje(campo);
}
else
{
resul.set_error(false);
campo = response.substring(response.indexOf("<Tarjeta><num>"), response.indexOf("</num><ver>"));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 18");
resul.set_tarjeta(campo);
campo = "";
campo = response.substring(response.indexOf("<Aut><response>"), response.indexOf("</response><desc>"));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 22");
resul.set_respuesta(campo);
campo = "";
campo = response.substring(response.indexOf("</response><desc>"), response.indexOf("</desc><AutID>"));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 26");
resul.set_mensaje(campo);
campo = "";
resul.set_talon_chipcard(Integer.parseInt(response.substring(response.indexOf("<numref>")+8, response.indexOf("</numref>"))));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 30");
campo = "";
resul.set_terminal(Integer.parseInt(response.substring(response.indexOf("<term>")+6, response.indexOf("</term>"))));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 33");
campo = "";
resul.set_especialidad(Integer.parseInt(response.substring(response.indexOf("<Espec>")+7, response.indexOf("</Espec>"))));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 53");
campo = "";
resul.set_acto(Integer.parseInt(response.substring(response.indexOf("<acto>")+6, response.indexOf("</acto>"))));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 56");
campo = "";
// <timestamp>2013-11-27-09.14.45.100121</timestamp>
String tiempo = response.substring(response.indexOf("<timestamp>")+11, response.indexOf("</timestamp>"));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 61. tiempo: "+tiempo);
Calendar cal = Calendar.getInstance();
int anio = 0;
int mes = 0;
int dia = 0;
int hora=0;
int min=0;
int sec=0;
//cal.set(year, month, date, hourOfDay, minute, second);
anio = Integer.valueOf(tiempo.substring(0, 4));
LogTarisan.logger.log(NivelLog.DEBUG, "año "+anio);
mes = Integer.valueOf(tiempo.substring(5,7));
LogTarisan.logger.log(NivelLog.DEBUG, "Mes "+mes);
dia = Integer.valueOf(tiempo.substring(8,10));
LogTarisan.logger.log(NivelLog.DEBUG, "Dia "+dia);
hora = Integer.valueOf(tiempo.substring(11, 13));
LogTarisan.logger.log(NivelLog.DEBUG, "hora "+hora);
min = Integer.valueOf(tiempo.substring(14, 16));
LogTarisan.logger.log(NivelLog.DEBUG, "min "+min);
sec = Integer.valueOf(tiempo.substring(17, 19));
LogTarisan.logger.log(NivelLog.DEBUG, "sec "+sec);
cal.clear();
cal.set(Calendar.DAY_OF_MONTH, dia);
cal.set(Calendar.MONTH, mes);
cal.set(Calendar.YEAR, anio);
cal.set(Calendar.HOUR_OF_DAY, hora);
cal.set(Calendar.MINUTE, min);
cal.set(Calendar.SECOND, sec);
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 83");
resul.set_fecha_hora(new Date(cal.getTimeInMillis()));
LogTarisan.logger.log(NivelLog.DEBUG, "Llega 85");
resul.set_xml(response);
}
}
return resul;
}
public Integer obtenerSecuencia()
{
Integer sec = 0;
String consulta = "select PETICION_CHIPCARD.NEXTVAL from dual";
Connection conexion = null;
try {
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, consulta);
if(rs.next())
sec = rs.getInt("NEXTVAL");
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion TARISAN en obtenerSecuencia");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion SQL en obtenerSecuencia");
}
try {
conexion.close();
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
}
return sec;
}
public boolean insertar_peticiones(int medico, int especialidad, int acto, String tarjeta, Calendar cal, Integer secuencia)
{
boolean resul = false;
StringBuffer strSql = new StringBuffer();
Object[] aValores = new Object[6];
strSql.append("INSERT INTO CHIPCARD_PETICIONES (MEDICO, ESPECIALIDAD, ACTO, TARJETA_CHIPCARD, FECHA_HORA, SECUENCIA) VALUES (?, ?, ?, '?', TO_DATE('?', 'dd/mm/yyyy hh24:mi:ss'), ?)");
aValores[0] = Integer.valueOf(medico);
aValores[1] = Integer.valueOf(especialidad);
aValores[2] = Integer.valueOf(acto);
aValores[3] = new String(tarjeta);
aValores[5] = Integer.valueOf(secuencia);
String segundos = "";
if(cal.get(Calendar.SECOND)<10)
segundos = "0"+cal.get(Calendar.SECOND);
else
segundos = Integer.toString(cal.get(Calendar.SECOND));
aValores[4] = new String(cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR)+" "+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+segundos);
Connection conexion = null;
try
{
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, aValores, null));
resul = ParametrosConfiguracion.dataStore.insertar(Utilidades.obtenerSentenciaSQL(strSql, aValores, null), conexion);
}catch (ExcepcionTarisan e1) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al generar la sentencia sql. "+strSql.toString()+aValores);
}
try {
conexion.close();
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
}
return resul;
}
/**
* Recibe el objeto respuesta chipcard y lo inserta en la tabla Chipcard_movimientos.
* @param res
* @return
*/
public boolean insertar_movimientos(RespuestaChipcard res, Integer secuencia)
{
boolean resul = false;
//INSERTAR EN CHIPCARD_MOVIMIENTOS PARA TENER EN BBDD LOS MOVIMIENTOS DE CHIPCARD
/*
* TARJETA VARCHAR2(24 BYTE),
RESPUESTA VARCHAR2(255 BYTE),
MENSAJE VARCHAR2(255 BYTE),
AUTORIZACION NUMBER(10) NOT NULL,
TERMINAL VARCHAR2(10 BYTE)
*/
StringBuffer strSql = new StringBuffer();
Object[] aValores = new Object[10];
strSql.append("INSERT INTO CHIPCARD_MOVIMIENTOS (TARJETA, RESPUESTA, MENSAJE, AUTORIZACION, TERMINAL, ESPECIALIDAD, ACTO, FECHA_HORA, XMLCOMPLETO, SECUENCIA) VALUES ('?', '?', '?', ?, '?', ?, ?, to_date('?', 'dd/mm/yyyy hh24:mi:ss'), '?', ?)");
aValores[0] = new String(res.get_tarjeta().substring(14));
aValores[1] = new String(res.get_respuesta().substring(15));
aValores[2] = new String(res.get_mensaje().substring(17));
aValores[3] = Integer.valueOf(res.get_talon_chipcard());
aValores[4] = Integer.valueOf(res.get_terminal());
aValores[5] = Integer.valueOf(res.get_especialidad());
aValores[6] = Integer.valueOf(res.get_acto());
aValores[9] = Integer.valueOf(secuencia);
Calendar cal = Calendar.getInstance();
cal.setTime(res.get_fecha_hora());
String segundos = "";
if(cal.get(Calendar.SECOND)<10)
segundos = "0"+cal.get(Calendar.SECOND);
else
segundos = Integer.toString(cal.get(Calendar.SECOND));
aValores[7] = new String(cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR)+" "+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+segundos);
aValores[8] = new String(res.get_xml());
try {
LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, aValores, null));
} catch (ExcepcionTarisan e1) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al generar la sentencia sql. "+strSql.toString()+aValores);
}
Connection conexion = null;
try {
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
//resul = ParametrosConfiguracion.dataStore.insertar(strSql.toString(), aValores, conexion);
resul = ParametrosConfiguracion.dataStore.insertar(Utilidades.obtenerSentenciaSQL(strSql, aValores, null), conexion);
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Excepcion en chipcard_movimientos la respuesta: "+res.get_talon_chipcard()+", el error: "+e.toString());
}
try {
conexion.close();
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
}
return resul;
}
public boolean talon_duplicado(Integer autoriz, int medico)
{
boolean resultado = false;
StringBuffer strSql = new StringBuffer();
Object[] aCondiciones = new Object[2];
strSql.append("select count(talon_chipcard) cuantos from tamovext where talon_chipcard = ? and medico <> ?");
aCondiciones[0]=autoriz;
aCondiciones[0]=medico;
Connection conexion = null;
try{
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
if(rs.next())
{
int cuanto = rs.getInt("CUANTOS");
if(cuanto > 0)
resultado = true;
}
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion en talon_duplicado");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion en talon_duplicado");
}
try {
conexion.close();
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
}
return resultado;
}
/**
* Hemos detectado que si hay dos peticiones exáctamente al mismo tiempo las respuestas se alternan y da un error a pesar de que la respuesta haya sido autorizada.
* para asegurarnos buscamos la secuencia de la petición en la tabla de respuestas y "recomprobamos" el resultado
* @param secuencia
* @return
*/
public boolean obtener_resultado_secuencia(Integer secuencia)
{
boolean resul = false;
String sql = "SELECT RESPUESTA FROM CHIPCARD_MOVIMIENTOS WHERE SECUENCIA = "+secuencia;
Connection conexion = null;
try
{
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
if(rs.next())
{
String respuesta = rs.getString("RESPUESTA");
if(respuesta.contains(ParametrosConfiguracion.chipcard_oper_auto))
resul = true;
}
}catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al obtener resultado por secuencia");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion sql al obtener resultado por secuencia");
}
try {
conexion.close();
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
}
LogTarisan.logger.log(NivelLog.DEBUG, "Se encuentra la secuencia "+secuencia+"? "+resul);
return resul;
}
public String obtener_respuesta_secuencia(Integer secuencia)
{
String resul = "";
String sql = "SELECT XMLCOMPLETO FROM CHIPCARD_MOVIMIENTOS WHERE SECUENCIA = "+secuencia;
Connection conexion = null;
try
{
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
if(rs.next())
{
resul = rs.getString("XMLCOMPLETO");
}
}catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al obtener resultado por secuencia");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion sql al obtener resultado por secuencia");
}
try {
conexion.close();
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
}
LogTarisan.logger.log(NivelLog.DEBUG, "Se encuentra la secuencia "+secuencia+"? "+resul);
return resul;
}
}