Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package io.mosip.kernel.masterdata.repository;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import io.mosip.kernel.core.dataaccess.spi.repository.BaseRepository;
import io.mosip.kernel.masterdata.entity.Holiday;
/**
* Repository class for Holiday data
*
* @author Abhishek Kumar
* @author Sidhant Agarwal
* @since 1.0.0
*/
@Repository
public interface HolidayRepository extends BaseRepository {
/**
* Get all the holidays for a specific id
*
* @param id holiday id input from user
* @return list of holidays for a particular id
*/
@Query("FROM Holiday where holidayId=?1 and (isDeleted = false or isDeleted is null) and isActive = true")
List findAllById(int id);
/**
* Fetch all the non deleted holidays
*
* @return list of {@link Holiday}
*/
@Query("FROM Holiday WHERE (isDeleted = false or isDeleted is null) and isActive = true")
List findAllNonDeletedHoliday();
/**
* Get all the holidays for a specific location code
*
* @param locationCode - location code Eg: IND
* @param langCode - language code Eg:ENG
* @param year - Eg:1971
* @return list of holidays
*/
@Query(value = "select id, location_code, holiday_date, holiday_name, holiday_desc, lang_code, is_active, cr_by, cr_dtimes, upd_by, upd_dtimes, is_deleted, del_dtimes from master.loc_holiday WHERE location_code = ?1 and lang_code = ?2 and extract(year from holiday_date) = ?3 and (is_deleted = false or is_deleted is null) and is_active = true", nativeQuery = true)
List findAllByLocationCodeYearAndLangCode(String locationCode, String langCode, int year);
/**
* Get specific holiday by holiday id and language code
*
* @param holidayId input from user
* @param langCode input from user
* @return list of holidays for the particular holiday id and language code
*/
@Query("FROM Holiday where holidayId=?1 and langCode = ?2 and (isDeleted = false or isDeleted is null) and isActive = true")
List findHolidayByIdAndHolidayIdLangCode(int holidayId, String langCode);
/**
* Method to get the list of holiday by name,date and location code
*
* @param holidayName name of the holiday to be search
* @param holidayDate date of the holiday to be search
* @param locationCode location code of the holiday to be search
* @return list of holidays
*/
@Query("FROM Holiday WHERE holidayName = ?1 AND holidayDate = ?2 AND locationCode = ?3 AND (isDeleted is null or isDeleted=false) AND isActive = true")
List findHolidayByHolidayIdAndByIsDeletedFalseOrIsDeletedNull(String holidayName, LocalDate holidayDate,
String locationCode);
/**
* Fetch the holiday by id and location code
*
* @param id id of the holiday
* @param locationCode location code of the holiday
* @return {@link Holiday}
*/
@Query("FROM Holiday where holidayId=?1 and locationCode = ?2 and (isDeleted = false or isDeleted is null) and isActive = true")
Holiday findHolidayByIdAndHolidayIdLocationCode(int id, String locationCode);
/**
* Method to delete the holiday
*
* @param deletedTime input for deleted timeStamp
* @param holidayName name of the holiday to be deleted
* @param holidayDate date of the holiday to be deleted
* @param locationCode location of the holiday to be deleted
* @return no. of rows deleted
*/
@Modifying
@Transactional
@Query("UPDATE Holiday SET isDeleted=true ,deletedDateTime =?1 WHERE holidayName = ?2 AND holidayDate = ?3 AND locationCode = ?4 AND (isDeleted = false OR isDeleted IS NULL)")
int deleteHolidays(LocalDateTime deletedTime, String holidayName, LocalDate holidayDate, String locationCode);
/**
* Fetch the holiday by id and location code
*
* @param id id of the holiday
* @param locationCode location code of the holiday
* @return {@link Holiday}
*/
@Query("FROM Holiday where locationCode = ?1 and (isDeleted = false or isDeleted is null) and isActive = true")
List findHolidayByHolidayIdLocationCode(String locationCode);
/**
* Fetch the holiday by id and location code
*
* @param id id of the holiday
* @param locationCode location code of the holiday
* @return {@link Holiday}
*/
@Query("FROM Holiday where locationCode = ?1 and langCode=?2 and (isDeleted = false or isDeleted is null) and isActive = true")
List findHolidayByLocationCode(String locationCode, String langCode);
@Query(value = "select holiday_date from master.loc_holiday WHERE location_code = ?1 and lang_code = ?2", nativeQuery = true)
List findHolidayByLocationCode1(String locationCode, String langCode);
@Query(value = "SELECT * FROM loc_holiday where lang_code=?2 and location_code IN (SELECT code FROM location where hierarchy_level <=?1 and lang_code=?2)", nativeQuery = true)
List findHoildayByLocationCodeAndLangCode(int level, String langCode);
@Query(value = "FROM Holiday where holidayDate = ?1 and holidayName=?2 and(isDeleted = false or isDeleted is null) ")
List findHolidayByHolidayDateHolidayName(LocalDate holidayDate,String holidayName);
@Query(value = "FROM Holiday where holidayName=?1 and holidayDate = ?2 and location_code = ?3 and lang_code=?4 and (isDeleted = false or isDeleted is null) ")
Holiday findHolidayByHolidayNameHolidayDateLocationCodeLangCode(String holidayName, LocalDate holidayDate,
String locationCode, String langCode);
}