forum.bitel.ru http://forum.bitel.ru/ |
|
Не работает восстановление лимитов http://forum.bitel.ru/viewtopic.php?f=19&t=11806 |
Страница 1 из 1 |
Автор: | oldb0y [ 21 июл 2016, 10:29 ] |
Заголовок сообщения: | Не работает восстановление лимитов |
Здравствуйте. Не отрабатывает восстановление лимитов при выставлении лимита через API. Задача в планировщике стоит + запускал вручную. Далее код и изображение результата его выполнения. Вложение: Screenshot.png [ 8.58 КБ | Просмотров: 3686 ] Код: CLMT = Math.abs( Double.parseDouble( closesumma ) );
CLMT = CLMT + 2000000; CLMT = CLMT * -1; LMT = BigDecimal.valueOf( CLMT ); LimitManager lm = new LimitManager(con); ServerContext context = ServerContext.get(); List<LimitChangeTask> taskList = lm.getContractMoveTasks( CID ); for (LimitChangeTask task : taskList) { lm.deleteMoveTaskAndLog(task.getId(), task.getContractId(), task.getUserId()); } lm.updateContractLimit(User.USER_SERVER, LMT, CID, comment, String.valueOf( days ) ); context.publishAfterCommit(new SystemLimitChangedEvent( CID, LMT ) ); context.publishAfterCommit(new LimitChangedEvent( CID, LMT ) ); |
Автор: | oldb0y [ 21 июл 2016, 10:36 ] |
Заголовок сообщения: | Re: Не работает восстановление лимитов |
Блин! Вот этот метод удаляет задачу по воставлению лимита? (судя по названию) Код: lm.deleteMoveTaskAndLog(task.getId(), task.getContractId(), task.getUserId());
|
Автор: | oldb0y [ 22 июл 2016, 11:59 ] |
Заголовок сообщения: | Re: Не работает восстановление лимитов |
Изменил код Код: LimitManager lm = new LimitManager(con); ServerContext context = ServerContext.get(); List<LimitChangeTask> taskList = lm.getContractMoveTasks( CID ); for (LimitChangeTask task : taskList) { // lm.deleteMoveTaskAndLog(task.getId(), task.getContractId(), task.getUserId()); LimitChangeTask taskRestore=new LimitChangeTask(); taskRestore.setContractId( CID ); taskRestore.setDate( Calendar.getInstance() ); taskRestore.setUserId( User.USER_SERVER ); taskRestore.setSubSumm( task.getSubSumm() ); lm.addMoveTask( taskRestore ); } lm.updateContractLimit( User.USER_SERVER, LMT, CID, comment, String.valueOf( days ) ); context.publishAfterCommit( new SystemLimitChangedEvent( CID, LMT ) ); context.publishAfterCommit( new LimitChangedEvent( CID, LMT ) ); Но восстановление лимитов не происходит, что я упускаю? |
Автор: | oldb0y [ 22 июл 2016, 14:32 ] |
Заголовок сообщения: | Re: Не работает восстановление лимитов |
Разобрался... Но есть один вопрос, почему setSubSumm возвращает отрицательное значение? Код: double SLMT = 2000000; ... task.setSubSumm( BigDecimal.valueOf( SLMT ) ); Результат выполнения: -2000000 Карл?? |
Автор: | barguzin2 [ 22 июл 2016, 19:20 ] |
Заголовок сообщения: | Re: Не работает восстановление лимитов |
Карл, потому что понижение лимита нужно отрицательным делать. А вообще, используй просто lm.lowLimit(cid, summ, days) + кидание событий и будет тебе щщастье. Оно и лимит понижает (правда без коммента, но сумму положительную ставить) и задачу на восстановление добавляет. |
Автор: | oldb0y [ 25 июл 2016, 11:28 ] |
Заголовок сообщения: | Re: Не работает восстановление лимитов |
barguzin2 Спасибо. В 90% лимит отрицательный, но может быть и положительным (разрабы сами не исключают эту возможность). Отсюда и удивление на возврат функции. Минус я и сам могу приделать, а вот угадывать возвращаемые значения не очень хорошо... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |