Commit 2c7ca7d5 by Billy Larru

ok - agregando cambios

parent 1e776281
......@@ -17,5 +17,4 @@ public interface SalidasDAO {
public JSONArray obtenerHorariosSalida() throws Exception;
public JSONArray obtenerAsistencias(String horaProgramada) throws Exception;
public JSONObject actualizarSalida(String horaSalida) throws Exception;
public JSONObject asignarHorarioSalida() throws Exception;
}
......@@ -16,10 +16,11 @@ public class Main {
private static final Logger log = LogManager.getLogger(Main.class);
public static void main(String[] args){
setLogLevel(Level.TRACE);
setLogLevel(Level.TRACE);//DESARROLLO
// setLogLevel(Level.INFO);//PRODUCCION
log.info("Inicializando programa [Salidas Automaticas]...");
Date horaInicio = Metodos.getHoraEjecucion("12:00");
Date horaInicio = Metodos.getHoraEjecucion("11:30");
int periodo = 86400000;//El codigo se ejecutará cada 24h, 86400000 representa 24h en milisegundos
TimerTask task = new ProgramarSalidasTask();
......
......@@ -40,15 +40,16 @@ public class SalidasMysqlDAO implements SalidasDAO {
+ "FROM"
+ " asistencia a "
+ "INNER JOIN personal p ON a.codper = p.codper "
+ "INNER JOIN salidas_update su ON p.codcargo = su.codcargo "
// + "INNER JOIN salidas_update su ON p.codcargo = su.codcargo "
+ "WHERE "
+ "estado in (1, 2, 5) "//Que sean asistencias 1=Asistio, 2=No marco y 5=Tardanza
+ "AND p.codtipo!=3 "//Que registren asistencia
+ "AND a.fecha_asis=? "
+ "AND p.retirado = 0 "
+ "AND p.horaing = su.horaLV "
+ "AND p.mining = su.minutoLV "
+ "AND p.horaingsabado = su.sabadoLV "
+ "AND p.miningsabado = su.sabadoS "
// + "AND p.horaing = su.horaLV "
// + "AND p.mining = su.minutoLV "
// + "AND p.horaingsabado = su.sabadoLV "
// + "AND p.miningsabado = su.sabadoS "
+ "AND NOT p.codlocal IN ('L035', 'L053', 'L038') "//Que no sea profesores por horas, pronoe belisario y grupo MH
+ "AND NOT p.pronoe = 1 "//Que no sea pronoe
+ "AND NOT p.codcargo IN (71, 13, 96, 41) "//Que no sea policia ni de cafeteria ni vigilante ni interna psicologa
......@@ -62,10 +63,10 @@ public class SalidasMysqlDAO implements SalidasDAO {
query = query.replaceAll("\\{campo_salida\\}", "tabla.salidaS");
}
JSONArray parametros = new JSONArray();
parametros.put(getFechaHoy());
JSONArray parametrosQuery = new JSONArray();
parametrosQuery.put(getFechaHoy());
jsonArray = EstandarDAO.getInstance().consultar(cn, query, parametros);
jsonArray = EstandarDAO.getInstance().consultar(cn, query, parametrosQuery);
return jsonArray;
}
......@@ -131,6 +132,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
+ "AND NOT ( (WEEKDAY(asistencia.fecha_asis) + 1)=6 and personal.codcargo in ({cod_cargo_primaria}) ) " //Que no sean de primaria los sabados
+ "AND asistencia.estado in (1, 2, 5) "//Que sean asistio, tardanza y no marco
// + "AND personal.tmp_id not in (99998, 9998, 99999, 9888) "//Que esten en planilla
+ "AND personal.codtipo!=3 "//Que si registren asistencia
+ "AND personal.retirado=0) as tabla "
+ "where tabla.salida!=''";
......@@ -247,32 +249,5 @@ public class SalidasMysqlDAO implements SalidasDAO {
return aleatorio;
}
@Override
public JSONObject asignarHorarioSalida() throws Exception {
Connection cn = MysqlDAOFactory.obtenerConexion("nuevo");
String query = "update personal p, "
+ " ("
+ " SELECT p.codper, su.salidaLV, su.salidaS FROM personal p INNER JOIN salidas_update su ON p.codcargo=su.codcargo "
+ " WHERE retirado=0 AND p.horaing=su.horaLV and p.mining=su.minutoLV "
+ " and p.horaingsabado=su.sabadoLV AND p.miningsabado=su.sabadoS and NOT p.codlocal in('L035','L053','L038') "
+ " AND NOT pronoe=1 "
+ " AND not p.codcargo in (71, 13, 96, 41) "//Que no sea policia, cafeteria, vigilante ni interna psicologa
// + " AND p.tmp_id not in (99998, 9998, 99999, 9888) "//Que esten en planilla
+ " AND p.codtipo!=3 "//Que si registren asistencia
+ " and horaing < 19 and (nullif(p.salidaLV,'') is null and nullif(p.salidaS, '') is null) "
+ " ) as tbl "
+ "SET p.salidaLV=tbl.salidaLV, "
+ " p.salidaS=tbl.salidaS "
+ "where tbl.codper=p.codper";
JSONObject resultado = EstandarDAO.getInstance().ejecutar(cn, query);
return resultado;
}
public static void main(String[] args) {
}
}
}
\ No newline at end of file
......@@ -36,13 +36,6 @@ public class ActualizarSalidaTask extends TimerTask {
services.actualizarSalidas(horaSalida);
log.info("Se generaron salidas");
JSONObject objSalidaAsignada = services.asignarHorarioSalida();
if (objSalidaAsignada.getInt("msg") > 0) {
log.info("Se asignaron horarios de salida correctamente, filas afectadas=" + objSalidaAsignada.getInt("msg"));
} else {
log.info("No hubo horarios de salida que asignar");
}
log.trace("Matando timer");
timer.cancel();
......
......@@ -22,25 +22,26 @@ import salidasautomaticas.util.Metodos;
* @author sistem19user
*/
public class ProgramarSalidasTask extends TimerTask {
private static final Logger log = LogManager.getLogger(ProgramarSalidasTask.class);
private static SalidasServices service = new SalidasServices();
@Override
public void run() {
try {
// JSONArray listaHorarios = service.obtenerHorariosSalida();
JSONArray listaHorarios = new JSONArray();
String[] arraySalidas = {"15:26", "14:46", "14:50", "17:00", "17:30", "18:00"};
String[] arraySalidas = {"16:13", "14:46", "14:50", "17:00", "17:30", "18:00"};
for (String salida : arraySalidas) {
listaHorarios.put(new JSONObject().put("salida", salida));
}
Timer timer;
TimerTask task;
log.info("horario leido= "+listaHorarios);
for(Iterator it = listaHorarios.iterator(); it.hasNext();) {
log.info("horario leido= " + listaHorarios);
for (Iterator it = listaHorarios.iterator(); it.hasNext();) {
JSONObject obj = (JSONObject) it.next();
String horaSalida = obj.getString("salida");
......
......@@ -38,15 +38,4 @@ public class SalidasServices {
}
return valor;
}
public JSONObject asignarHorarioSalida(){
JSONObject valor = new JSONObject();
try {
valor = salidadao.asignarHorarioSalida();
} catch (Exception e) {
log.error("error", e);
}
return valor;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment