Class ContractStatusDao
java.lang.Object
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
-
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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
doByPeriod
(ContractStatus status, Integer userId) protected ContractStatus
getPeriodList
(int contractId, int objectId, Set<Integer> statuses, Date startMonth, Date endMonth) Возвращает статус договора или объекта договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся null).getStatusList
(int contractId) getStatusList
(int contractId, int objectId) Полный список статусов договораgetStatusList
(int contractId, int objectId, Date date) Список статусов договора с датой окончания пустой либо большей или равной параметру dategetStatusList
(int contractId, Date date) getStatusList
(int contractId, Set<Integer> statuses, Date startMonth, Date endMonth) getStatusListAfterDate
(int contractId, Calendar date) Список статусов договора с датой начала позже указанной датыstatic boolean
isStatusPeriodValid
(ContractStatus status) Не выродился ли статус.Список статусов договора с датой окончания пустой либо большей или равной параметру date или все статусы.protected void
saveLog
(ContractStatusLog log) void
searchContractStatus
(SearchResult<ContractStatus> searchResult, int contractId, int objectId) void
Установка действующего статуса объекта договора.void
setContractStatus
(ContractStatus status) Установка действующего статуса договора.protected void
updateImpl
(ContractStatus status) protected void
updateStatus
(ContractStatus status, Integer userId) Приватный метод, извне доступен только 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
getLogger, getSQLOrder
-
Constructor Details
-
ContractStatusDao
-
-
Method Details
-
getFromRS
protected ContractStatus getFromRS(ResultSet rs) throws SQLException, ru.bitel.bgbilling.common.BGException - Specified by:
getFromRS
in classru.bitel.common.dao.AbstractDao<ContractStatus>
- Throws:
SQLException
ru.bitel.bgbilling.common.BGException
-
updateImpl
- Specified by:
updateImpl
in classru.bitel.common.dao.AbstractDao<ContractStatus>
- Throws:
ru.bitel.bgbilling.common.BGException
-
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
Установка действующего статуса договора.- 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
Не выродился ли статус. Проверяет, что промежуток открытый или же есть оба конца, и левый меньше либо равен правому. Используется в многих местах, потому вынесено отдельно. Также проверяет, что начало промежутка не null, то есть промежуток ( +бесконечность, +бесконечность ), в такое тоже могло выродиться, если особенно действует алгоритм задания статусов.- Parameters:
status
- тестируемый статус.- Returns:
- true если период временной валидный.
-
changeStatus
public void changeStatus(ContractStatus newStatus, Integer userId) throws ru.bitel.bgbilling.common.BGException Вызов changeStatus( newStatus, userId, true )- Parameters:
newStatus
-userId
-- Throws:
ru.bitel.bgbilling.common.BGException
-
changeStatus
public void changeStatus(ContractStatus newStatus, Integer userId, boolean processEvent) throws ru.bitel.bgbilling.common.BGException Смена статуса договора. При этом происходит корректное перекрытие существующих на моменты времени статусов, с тем, чтобы на каждый день была активна только одна запись о статусе.- Parameters:
newStatus
- новый статус с периодом.userId
- ид юзера. если будет null, то это эквивалентно 0. Если веб, то надо передать User.USER_CONTRACT.processEvent
- проводить ли события. НЕ относится к событию задания логики перетирания, оно всегда вызовется.- Throws:
ru.bitel.bgbilling.common.BGException
-
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
- Throws:
ru.bitel.bgbilling.common.BGException
-
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:
status
- статусuserId
- id пользователя выполняющего действие- Throws:
ru.bitel.bgbilling.common.BGException
-