Class ContractStatusDao

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.common.dao.AbstarctDaoConstant
ru.bitel.common.dao.AbstractDao<B>
ru.bitel.common.dao.AbstractIdDao<ContractStatus>
ru.bitel.bgbilling.kernel.contract.api.server.bean.ContractStatusDao
All Implemented Interfaces:
AutoCloseable
Direct Known Subclasses:
ContractStatusManager.ContractStatusManager4Script

public class ContractStatusDao extends ru.bitel.common.dao.AbstractIdDao<ContractStatus>
  • Nested Class Summary

    Nested classes/interfaces inherited from class ru.bitel.common.dao.AbstractDao

    ru.bitel.common.dao.AbstractDao.ResultSetIterator
  • Field Summary

    Fields inherited from class ru.bitel.common.dao.AbstractDao

    cacheFilter, cacheJoin, cacheOrderBy, cachePaged, cachePS, cacheWhat, con, getByIdPS, moduleId, orderByPattern, tableName

    Fields inherited from class ru.bitel.common.dao.AbstarctDaoConstant

    ERROR, fields, SQL_ALL, SQL_AND, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    changeStatus(ContractStatus newStatus, Integer userId)
    Вызов changeStatus( newStatus, userId, true )
    void
    changeStatus(ContractStatus newStatus, Integer userId, boolean processEvent)
    Смена статуса договора.
    protected void
    deleteStatus(ContractStatus status, int userId)
    Приватный метод , извне доступен только changeStatus Удаление записи о статусе договора.
    protected void
     
    protected ContractStatus
     
    getPeriodList(int contractId, int objectId, Set<Integer> statuses, Date startMonth, Date endMonth)
     
    getStatus(int contractId, int objectId, LocalDate date)
    Возвращает статус договора или объекта договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся null).
    getStatus(int contractId, LocalDate date)
     
    getStatusList(int contractId)
     
    getStatusList(int contractId, int objectId)
    Полный список статусов договора
    getStatusList(int contractId, int objectId, Date date)
    Список статусов договора с датой окончания пустой либо большей или равной параметру date
    getStatusList(int contractId, Date date)
     
    getStatusList(int contractId, Set<Integer> statuses, Date startMonth, Date endMonth)
     
    getStatusListAfterDate(int contractId, Calendar date)
    Список статусов договора с датой начала позже указанной даты
    static boolean
    Не выродился ли статус.
    list(int contractId, int objectId, LocalDate date)
    Список статусов договора с датой окончания пустой либо большей или равной параметру date или все статусы.
    list(int contractId, LocalDate date)
     
    protected void
     
    void
    searchContractStatus(SearchResult<ContractStatus> searchResult, int contractId, int objectId)
     
    void
    Установка действующего статуса объекта договора.
    void
    Установка действующего статуса договора.
    protected void
     
    protected void
    Приватный метод, извне доступен только changeStatus Вставка в базу записи о статусе договора либо изменение существующей записи.

    Methods inherited from class ru.bitel.common.dao.AbstractIdDao

    delete, get, getAndDelete, getAndUpdate, opt

    Methods inherited from class ru.bitel.common.dao.AbstractDao

    close, delete, deleteImpl, eq, get, getById, getImpl, getListFromRS, getPeriod, getQueryById, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, processException, setStatementParam, update

    Methods inherited from class ru.bitel.common.dao.AbstarctDaoConstant

    getSQLOrder

    Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

    error, error, error, getLogger, logError, logError

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ContractStatusDao

      public ContractStatusDao(Connection con)
  • Method Details

    • getFromRS

      protected ContractStatus getFromRS(ResultSet rs) throws SQLException, ru.bitel.bgbilling.common.BGException
      Specified by:
      getFromRS in class ru.bitel.common.dao.AbstractDao<ContractStatus>
      Throws:
      SQLException
      ru.bitel.bgbilling.common.BGException
    • updateImpl

      protected void updateImpl(ContractStatus status) throws Exception
      Specified by:
      updateImpl in class ru.bitel.common.dao.AbstractDao<ContractStatus>
      Throws:
      Exception
    • getStatus

      public ContractStatus getStatus(int contractId, LocalDate date) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatus

      public ContractStatus getStatus(int contractId, int objectId, LocalDate date) throws ru.bitel.bgbilling.common.BGException
      Возвращает статус договора или объекта договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся null).
      Parameters:
      contractId - код договора
      date - дата
      Returns:
      статус или null, если записи нет
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatusList

      public List<ContractStatus> getStatusList(int contractId, Date date) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatusList

      public List<ContractStatus> getStatusList(int contractId, int objectId, Date date) throws ru.bitel.bgbilling.common.BGException
      Список статусов договора с датой окончания пустой либо большей или равной параметру date
      Parameters:
      contractId - код договора
      date - дата
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatusList

      public List<ContractStatus> getStatusList(int contractId) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatusList

      public List<ContractStatus> getStatusList(int contractId, int objectId) throws ru.bitel.bgbilling.common.BGException
      Полный список статусов договора
      Parameters:
      contractId - код договора
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • searchContractStatus

      public void searchContractStatus(SearchResult<ContractStatus> searchResult, int contractId, int objectId) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • list

      public List<ContractStatus> list(int contractId, LocalDate date) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • list

      public List<ContractStatus> list(int contractId, int objectId, LocalDate date) throws ru.bitel.bgbilling.common.BGException
      Список статусов договора с датой окончания пустой либо большей или равной параметру date или все статусы.
      Parameters:
      contractId - код договора
      date - дата
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getStatusListAfterDate

      public List<ContractStatus> getStatusListAfterDate(int contractId, Calendar date) throws ru.bitel.bgbilling.common.BGException
      Список статусов договора с датой начала позже указанной даты
      Parameters:
      contractId - код договора
      date - дата
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • setContractStatus

      public void setContractStatus(ContractStatus status) throws ru.bitel.bgbilling.common.BGException
      Установка действующего статуса договора.
      Parameters:
      status - статус
      Throws:
      ru.bitel.bgbilling.common.BGException
    • setContractObjectStatus

      public void setContractObjectStatus(ContractStatus status) throws ru.bitel.bgbilling.common.BGException
      Установка действующего статуса объекта договора.
      Parameters:
      status - статус
      Throws:
      ru.bitel.bgbilling.common.BGException
    • isStatusPeriodValid

      public static boolean isStatusPeriodValid(ContractStatus status)
      Не выродился ли статус. Проверяет, что промежуток открытый или же есть оба конца, и левый меньше либо равен правому. Используется в многих местах, потому вынесено отдельно. Также проверяет, что начало промежутка не null, то есть промежуток ( +бесконечность, +бесконечность ), в такое тоже могло выродиться, если особенно действует алгоритм задания статусов.
      Parameters:
      status - тестируемый статус.
      Returns:
      true если период временной валидный.
    • changeStatus

      public void changeStatus(ContractStatus newStatus, Integer userId) throws Exception
      Вызов changeStatus( newStatus, userId, true )
      Parameters:
      newStatus -
      userId -
      Throws:
      Exception
    • changeStatus

      public void changeStatus(ContractStatus newStatus, Integer userId, boolean processEvent) throws Exception
      Смена статуса договора. При этом происходит корректное перекрытие существующих на моменты времени статусов, с тем, чтобы на каждый день была активна только одна запись о статусе.
      Parameters:
      newStatus - новый статус с периодом.
      userId - ид юзера. если будет null, то это эквивалентно 0. Если веб, то надо передать User.USER_CONTRACT.
      processEvent - проводить ли события. НЕ относится к событию задания логики перетирания, оно всегда вызовется.
      Throws:
      Exception
    • getStatusList

      public List<ContractStatus> getStatusList(int contractId, Set<Integer> statuses, Date startMonth, Date endMonth) throws SQLException
      Throws:
      SQLException
    • getPeriodList

      public List<Period> getPeriodList(int contractId, int objectId, Set<Integer> statuses, Date startMonth, Date endMonth) throws SQLException
      Throws:
      SQLException
    • doByPeriod

      protected void doByPeriod(ContractStatus status, Integer userId) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • saveLog

      protected void saveLog(ContractStatusLog log) throws Exception
      Throws:
      Exception
    • updateStatus

      protected void updateStatus(ContractStatus status, Integer userId) throws ru.bitel.bgbilling.common.BGException
      Приватный метод, извне доступен только changeStatus Вставка в базу записи о статусе договора либо изменение существующей записи. Просто вставка без проверок.
      Parameters:
      status -
      Throws:
      ru.bitel.bgbilling.common.BGException
      See Also:
    • deleteStatus

      protected void deleteStatus(ContractStatus status, int userId) throws ru.bitel.bgbilling.common.BGException
      Приватный метод , извне доступен только changeStatus Удаление записи о статусе договора.
      Parameters:
      id - код записи.
      Throws:
      ru.bitel.bgbilling.common.BGException