Class ContractStatusDao
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstractDaoConstant
ru.bitel.bgbilling.common.dao.AbstractDao<ContractStatus>
ru.bitel.bgbilling.common.dao.AbstractIdDao<ContractStatus>
ru.bitel.bgbilling.kernel.contract.api.server.dao.ContractStatusDao
- Direct Known Subclasses:
ContractStatusManager.ContractStatusManager4Script
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class ru.bitel.bgbilling.common.dao.AbstractDao
ru.bitel.bgbilling.common.dao.AbstractDao.ListParams -
Field Summary
FieldsFields inherited from class ru.bitel.bgbilling.common.dao.AbstractDao
orderByPatternFields inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant
con, ERROR, fields, moduleId, SQL_ALL, SQL_AND, 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_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE, tableName -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidchangeStatus(ContractStatus newStatus, Integer userId) Вызов changeStatus( newStatus, userId, true )voidchangeStatus(ContractStatus newStatus, Integer userId, boolean processEvent) Смена статуса договора.booleandeleteContractObjectStatus(int contractId, int objectId) protected voiddeleteStatus(ContractStatus status, int userId) Приватный метод , извне доступен только changeStatus Удаление записи о статусе договора.protected voiddoByPeriod(ContractStatus status, Integer userId) getContractStatusListMap(Date date) protected ContractStatusgetPeriodList(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 booleanisStatusPeriodValid(ContractStatus status) Не выродился ли статус.Список статусов договора с датой окончания пустой либо большей или равной параметру date или все статусы.protected voidsaveLog(ContractStatusLog log) voidsearchContractStatus(SearchResult<ContractStatus> searchResult, int contractId, int objectId) voidУстановка действующего статуса объекта договора.voidsetContractStatus(ContractStatus status) Установка действующего статуса договора.protected voidupdateImpl(ContractStatus status) protected voidupdateStatus(ContractStatus status, Integer userId) Приватный метод, извне доступен только changeStatus Вставка в базу записи о статусе договора либо изменение существующей записи.Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractIdDao
delete, executeUpdate, get, getAndDelete, getAndUpdate, loadData, opt, prepareStatement, sqlCommand, sqlCommandAndTable, sqlInsertValues, sqlQuery, sqlUpdateSet, sqlWhereIdMethods inherited from class ru.bitel.bgbilling.common.dao.AbstractDao
deleteImpl, dropTemporaryTable, eq, get, getById, getImpl, getListFromRS, getPeriod, getQueryById, getQueryWithFilter, getSQLOrder, list, list, list, listCountImplPS, listImpl, listImplPS, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, queryPeriod, setPageRecordCount, updateMethods inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant
getPlaceholders, getSQLOrder, getSQLOrderFields, getTableName, psSetDate, psSetDateOrNull, psSetInt, psSetIntOrNull, psSetPeriod, psSetString, psSetStringOrNull, psSetTimestampOrNull, queryAndIn, setStatementParam, sqlDelete, sqlDeleteBatch, sqlInsert, sqlInsertBatch, sqlInsertGetId, sqlInsertGetLongId, sqlInsertOnDuplicateKeyUpdate, sqlInsertSelect, sqlInsertUpdateById, sqlSelectCountAsInt, sqlUpdate, sqlUpdateBatchMethods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, getLogger, logError, logError, warn
-
Field Details
-
TABLE_CONTRACT_STATUS
- See Also:
-
-
Constructor Details
-
ContractStatusDao
-
-
Method Details
-
getFromRS
- Specified by:
getFromRSin classru.bitel.bgbilling.common.dao.AbstractDao<ContractStatus>- Throws:
SQLException
-
updateImpl
- Specified by:
updateImplin classru.bitel.bgbilling.common.dao.AbstractDao<ContractStatus>- Throws:
SQLException
-
getStatus
- Throws:
SQLException
-
getStatus
Возвращает статус договора или объекта договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся null).- Parameters:
contractId- код договораobjectId-date- дата- Returns:
- статус или null, если записи нет
- Throws:
SQLException
-
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- код договораobjectId-date- дата- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getContractStatusListMap
- Throws:
SQLException
-
getStatusList
- Throws:
SQLException
-
getStatusList
Полный список статусов договора- Parameters:
contractId- код договораobjectId-- Returns:
- Throws:
SQLException
-
searchContractStatus
public void searchContractStatus(SearchResult<ContractStatus> searchResult, int contractId, int objectId) throws SQLException - Throws:
SQLException
-
list
- Throws:
SQLException
-
list
Список статусов договора с датой окончания пустой либо большей или равной параметру date или все статусы.- Parameters:
contractId- код договораobjectId-date- дата- Returns:
- Throws:
SQLException
-
getStatusListAfterDate
public List<ContractStatus> getStatusListAfterDate(int contractId, Calendar date) throws SQLException Список статусов договора с датой начала позже указанной даты- Parameters:
contractId- код договораdate- дата- Returns:
- Throws:
SQLException
-
setContractStatus
Установка действующего статуса договора.- Parameters:
status- статус- Throws:
SQLException
-
setContractObjectStatus
Установка действующего статуса объекта договора.- Parameters:
status- статус- Throws:
SQLException
-
isStatusPeriodValid
Не выродился ли статус. Проверяет, что промежуток открытый или же есть оба конца, и левый меньше либо равен правому. Используется в многих местах, потому вынесено отдельно. Также проверяет, что начало промежутка не null, то есть промежуток ( +бесконечность, +бесконечность ), в такое тоже могло выродиться, если особенно действует алгоритм задания статусов.- Parameters:
status- тестируемый статус.- Returns:
- true если период временной валидный.
-
changeStatus
Вызов 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
- Throws:
SQLException
-
saveLog
- Throws:
Exception
-
updateStatus
Приватный метод, извне доступен только changeStatus Вставка в базу записи о статусе договора либо изменение существующей записи. Просто вставка без проверок.- Parameters:
status-userId-- Throws:
SQLException- See Also:
-
deleteContractObjectStatus
- Throws:
SQLException
-
deleteStatus
Приватный метод , извне доступен только changeStatus Удаление записи о статусе договора.- Parameters:
status-userId- код записи.- Throws:
SQLException
-