All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertigo.planning.agenda.dao.TrancheHoraireDAO Maven / Gradle / Ivy

The newest version!
/*
 * vertigo - application development platform
 *
 * Copyright (C) 2013-2024, Vertigo.io, [email protected]
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.vertigo.planning.agenda.dao;

import javax.inject.Inject;

import io.vertigo.core.lang.Generated;
import io.vertigo.core.node.Node;
import io.vertigo.datamodel.task.definitions.TaskDefinition;
import io.vertigo.datamodel.task.model.Task;
import io.vertigo.datamodel.task.model.TaskBuilder;
import io.vertigo.datastore.entitystore.EntityStoreManager;
import io.vertigo.datastore.impl.dao.DAO;
import io.vertigo.datastore.impl.dao.StoreServices;
import io.vertigo.datamodel.smarttype.SmartTypeManager;
import io.vertigo.datamodel.task.TaskManager;
import io.vertigo.planning.agenda.domain.TrancheHoraire;

/**
 * This class is automatically generated.
 * DO NOT EDIT THIS FILE DIRECTLY.
 */
@Generated
public final class TrancheHoraireDAO extends DAO implements StoreServices {

	/**
	 * Contructeur.
	 * @param entityStoreManager Manager de persistance
	 * @param taskManager Manager de Task
	 * @param smartTypeManager SmartTypeManager
	 */
	@Inject
	public TrancheHoraireDAO(final EntityStoreManager entityStoreManager, final TaskManager taskManager, final SmartTypeManager smartTypeManager) {
		super(TrancheHoraire.class, entityStoreManager, taskManager, smartTypeManager);
	}


	/**
	 * Creates a taskBuilder.
	 * @param name  the name of the task
	 * @return the builder 
	 */
	private static TaskBuilder createTaskBuilder(final String name) {
		final TaskDefinition taskDefinition = Node.getNode().getDefinitionSpace().resolve(name, TaskDefinition.class);
		return Task.builder(taskDefinition);
	}

	/**
	 * Execute la tache TkBatchInsertTrancheHoraire.
	 * @param dto DtList de TrancheHoraire
	*/
	@io.vertigo.datamodel.task.proxy.TaskAnnotation(
			name = "TkBatchInsertTrancheHoraire",
			request = """
			insert into TRANCHE_HORAIRE (TRH_ID, AGE_ID, DATE_LOCALE, INSTANT_PUBLICATION, MINUTES_DEBUT, MINUTES_FIN, NB_GUICHET, PLH_ID) 
            values (nextval('SEQ_TRANCHE_HORAIRE'),  
                #dto.ageId#,  
                #dto.dateLocale#,  
                #dto.instantPublication#,  
                #dto.minutesDebut#,  
                #dto.minutesFin#, 
                #dto.nbGuichet#,  
                #dto.plhId#);""",
			taskEngineClass = io.vertigo.basics.task.TaskEngineProcBatch.class)
	public void batchInsertTrancheHoraire(@io.vertigo.datamodel.task.proxy.TaskInput(name = "dto", smartType = "STyDtTrancheHoraire") final io.vertigo.datamodel.data.model.DtList dto) {
		final Task task = createTaskBuilder("TkBatchInsertTrancheHoraire")
				.addValue("dto", dto)
				.build();
		getTaskManager().execute(task);
	}

	/**
	 * Execute la tache TkGetTrancheHorairesDisponibleByAgeIds.
	 * @param ageIds List de Long
	 * @param startDate LocalDate
	 * @param endDate LocalDate
	 * @param now Instant
	 * @param displayDayMin LocalDate
	 * @param displayMinutesMin Integer
	 * @return DtList de TrancheHoraire trancheHoraires
	*/
	@io.vertigo.datamodel.task.proxy.TaskAnnotation(
			name = "TkGetTrancheHorairesDisponibleByAgeIds",
			request = """
			SELECT trh.*
           FROM tranche_horaire trh
           WHERE trh.age_id in ( #ageIds.rownum# )
           AND trh.date_locale BETWEEN #startDate# AND #endDate#
           AND trh.date_locale >= #displayDayMin#
           AND (trh.date_locale > #displayDayMin# OR trh.minutes_Debut > #displayMinutesMin#)
           AND trh.instant_Publication <= #now#
           AND EXISTS (
               SELECT 1 FROM creneau cre 
               WHERE cre.trh_id = trh.trh_id
               AND cre.rec_id is null)
           order by trh.date_locale, trh.minutes_Debut;""",
			taskEngineClass = io.vertigo.basics.task.TaskEngineSelect.class)
	@io.vertigo.datamodel.task.proxy.TaskOutput(smartType = "STyDtTrancheHoraire", name = "trancheHoraires")
	public io.vertigo.datamodel.data.model.DtList getTrancheHorairesDisponibleByAgeIds(@io.vertigo.datamodel.task.proxy.TaskInput(name = "ageIds", smartType = "STyPId") final java.util.List ageIds, @io.vertigo.datamodel.task.proxy.TaskInput(name = "startDate", smartType = "STyPLocalDate") final java.time.LocalDate startDate, @io.vertigo.datamodel.task.proxy.TaskInput(name = "endDate", smartType = "STyPLocalDate") final java.time.LocalDate endDate, @io.vertigo.datamodel.task.proxy.TaskInput(name = "now", smartType = "STyPInstant") final java.time.Instant now, @io.vertigo.datamodel.task.proxy.TaskInput(name = "displayDayMin", smartType = "STyPLocalDate") final java.time.LocalDate displayDayMin, @io.vertigo.datamodel.task.proxy.TaskInput(name = "displayMinutesMin", smartType = "STyPHeureMinute") final Integer displayMinutesMin) {
		final Task task = createTaskBuilder("TkGetTrancheHorairesDisponibleByAgeIds")
				.addValue("ageIds", ageIds)
				.addValue("startDate", startDate)
				.addValue("endDate", endDate)
				.addValue("now", now)
				.addValue("displayDayMin", displayDayMin)
				.addValue("displayMinutesMin", displayMinutesMin)
				.build();
		return getTaskManager()
				.execute(task)
				.getResult();
	}

	/**
	 * Execute la tache TkGetTrancheHorairesFermeesByAgeIds.
	 * @param ageIds List de Long
	 * @param startDate LocalDate
	 * @param endDate LocalDate
	 * @return DtList de TrancheHoraire trancheHoraires
	*/
	@io.vertigo.datamodel.task.proxy.TaskAnnotation(
			name = "TkGetTrancheHorairesFermeesByAgeIds",
			request = """
			SELECT trh.*
           FROM tranche_horaire trh
           WHERE trh.age_id in ( #ageIds.rownum# )
           AND trh.date_locale BETWEEN #startDate# AND #endDate#
           AND trh.nb_guichet = 0
           order by trh.date_locale, trh.minutes_Debut;""",
			taskEngineClass = io.vertigo.basics.task.TaskEngineSelect.class)
	@io.vertigo.datamodel.task.proxy.TaskOutput(smartType = "STyDtTrancheHoraire", name = "trancheHoraires")
	public io.vertigo.datamodel.data.model.DtList getTrancheHorairesFermeesByAgeIds(@io.vertigo.datamodel.task.proxy.TaskInput(name = "ageIds", smartType = "STyPId") final java.util.List ageIds, @io.vertigo.datamodel.task.proxy.TaskInput(name = "startDate", smartType = "STyPLocalDate") final java.time.LocalDate startDate, @io.vertigo.datamodel.task.proxy.TaskInput(name = "endDate", smartType = "STyPLocalDate") final java.time.LocalDate endDate) {
		final Task task = createTaskBuilder("TkGetTrancheHorairesFermeesByAgeIds")
				.addValue("ageIds", ageIds)
				.addValue("startDate", startDate)
				.addValue("endDate", endDate)
				.build();
		return getTaskManager()
				.execute(task)
				.getResult();
	}

	/**
	 * Execute la tache TkSelectFreeTrancheHorairesByAgeId.
	 * @param ageId Long
	 * @param startDate LocalDate
	 * @param endDate LocalDate
	 * @param now Instant
	 * @return DtList de TrancheHoraire trancheHoraires
	*/
	@io.vertigo.datamodel.task.proxy.TaskAnnotation(
			name = "TkSelectFreeTrancheHorairesByAgeId",
			request = """
			SELECT trh.*
           FROM tranche_horaire trh
           WHERE trh.age_id = #ageId#
           AND trh.date_locale BETWEEN #startDate# AND #endDate#
           AND trh.instant_Publication <= #now#
           AND EXISTS (
               SELECT 1 FROM creneau cre 
               WHERE cre.trh_id = trh.trh_id
               AND cre.rec_id is null)""",
			taskEngineClass = io.vertigo.basics.task.TaskEngineSelect.class)
	@io.vertigo.datamodel.task.proxy.TaskOutput(smartType = "STyDtTrancheHoraire", name = "trancheHoraires")
	public io.vertigo.datamodel.data.model.DtList selectFreeTrancheHorairesByAgeId(@io.vertigo.datamodel.task.proxy.TaskInput(name = "ageId", smartType = "STyPId") final Long ageId, @io.vertigo.datamodel.task.proxy.TaskInput(name = "startDate", smartType = "STyPLocalDate") final java.time.LocalDate startDate, @io.vertigo.datamodel.task.proxy.TaskInput(name = "endDate", smartType = "STyPLocalDate") final java.time.LocalDate endDate, @io.vertigo.datamodel.task.proxy.TaskInput(name = "now", smartType = "STyPInstant") final java.time.Instant now) {
		final Task task = createTaskBuilder("TkSelectFreeTrancheHorairesByAgeId")
				.addValue("ageId", ageId)
				.addValue("startDate", startDate)
				.addValue("endDate", endDate)
				.addValue("now", now)
				.build();
		return getTaskManager()
				.execute(task)
				.getResult();
	}

	/**
	 * Execute la tache TkSynchroGetTrancheHorairesByAgeIds.
	 * @param ageIds List de Long
	 * @param now Instant
	 * @return DtList de TrancheHoraire trancheHoraires
	*/
	@io.vertigo.datamodel.task.proxy.TaskAnnotation(
			name = "TkSynchroGetTrancheHorairesByAgeIds",
			request = """
			select * from (
            select 
                trh.trh_id,
                trh.age_id,
                trh.date_locale,
                trh.minutes_debut,
                trh.minutes_fin,
                trh.instant_publication,
                sum( case when cre.rec_id is null then 1 else 0 end) as nb_guichet
                from creneau cre
                join tranche_horaire trh on cre.trh_id = trh.trh_id
                where trh.age_id in ( #ageIds.rownum# )     
                AND trh.date_locale >= #now#::Date
                AND trh.instant_publication <= #now#
                group by trh.trh_id, trh.date_locale, trh.minutes_debut
                order by trh.date_locale, trh.minutes_debut
         ) as dispo
         where dispo.nb_guichet > 0""",
			taskEngineClass = io.vertigo.basics.task.TaskEngineSelect.class)
	@io.vertigo.datamodel.task.proxy.TaskOutput(smartType = "STyDtTrancheHoraire", name = "trancheHoraires")
	public io.vertigo.datamodel.data.model.DtList synchroGetTrancheHorairesByAgeIds(@io.vertigo.datamodel.task.proxy.TaskInput(name = "ageIds", smartType = "STyPId") final java.util.List ageIds, @io.vertigo.datamodel.task.proxy.TaskInput(name = "now", smartType = "STyPInstant") final java.time.Instant now) {
		final Task task = createTaskBuilder("TkSynchroGetTrancheHorairesByAgeIds")
				.addValue("ageIds", ageIds)
				.addValue("now", now)
				.build();
		return getTaskManager()
				.execute(task)
				.getResult();
	}

	/**
	 * Execute la tache TkSynchroGetTrancheHorairesByAgeIdsAndDates.
	 * @param ageIds List de Long
	 * @param localDates List de LocalDate
	 * @param now Instant
	 * @return DtList de TrancheHoraire trancheHoraires
	*/
	@io.vertigo.datamodel.task.proxy.TaskAnnotation(
			name = "TkSynchroGetTrancheHorairesByAgeIdsAndDates",
			request = """
			select * from (
            select 
                trh.trh_id,
                trh.age_id,
                trh.date_locale,
                trh.minutes_debut,
                trh.instant_publication,
                sum( case when cre.rec_id is null then 1 else 0 end) as nb_guichet
                from creneau cre
                join tranche_horaire trh on cre.trh_id = trh.trh_id
                where trh.age_id in ( #ageIds.rownum# ) 
                AND trh.date_locale in (#localDates.rownum#)
                AND trh.instant_publication <= #now#
                group by trh.trh_id, trh.date_locale, trh.minutes_debut
                order by trh.date_locale, trh.minutes_debut
         ) as dispo
         where dispo.nb_guichet > 0""",
			taskEngineClass = io.vertigo.basics.task.TaskEngineSelect.class)
	@io.vertigo.datamodel.task.proxy.TaskOutput(smartType = "STyDtTrancheHoraire", name = "trancheHoraires")
	public io.vertigo.datamodel.data.model.DtList synchroGetTrancheHorairesByAgeIdsAndDates(@io.vertigo.datamodel.task.proxy.TaskInput(name = "ageIds", smartType = "STyPId") final java.util.List ageIds, @io.vertigo.datamodel.task.proxy.TaskInput(name = "localDates", smartType = "STyPLocalDate") final java.util.List localDates, @io.vertigo.datamodel.task.proxy.TaskInput(name = "now", smartType = "STyPInstant") final java.time.Instant now) {
		final Task task = createTaskBuilder("TkSynchroGetTrancheHorairesByAgeIdsAndDates")
				.addValue("ageIds", ageIds)
				.addValue("localDates", localDates)
				.addValue("now", now)
				.build();
		return getTaskManager()
				.execute(task)
				.getResult();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy