Назад к вопросам
Middle
3
CREATE OR ALTER PROCEDURE dif.get_request_to_cancel_not_confirmed_delivery AS BEGIN SET NOCOUNT ON; declare @delivery_id bigint , @request_queue_id bigint , @request_id bigint , @contents varchar(max) select top 1 @delivery_id = od.delivery_id , @request_queue_id = null , @request_id = odr.request_id , @contents = cn.contents from opsapi.request rq join ops.contents cn on cn.contents_uid = rq.contents_uid join dif.ops_delivery_request odr on odr.request_id = rq.request_id join dif.ops_delivery od on od.delivery_id = odr.delivery_id where 1 = 1 and rq.state_code = 200 and rq.scheme_name = 'исх:опс.лк.отмена.слота.ффд' and od.state_code = 257 order by rq.request_id update opsapi.request set state_code = 202 , state_name = opsapi.get_state_name(202) , state_note = null , state_datetime = getdate() , updated_at = getdate() where request_id = @request_id select @request_queue_id request_queue_id, @request_id request_id, @contents contents END GO
Компании, где спрашивали
СБЕР Корус
Ответ от нейросети
sobes.tech AI
Процедура dif.get_request_to_cancel_not_confirmed_delivery выбирает первую подходящую заявку на отмену слота доставки с определённым состоянием, обновляет её статус и возвращает данные.
Она делает следующее:
- Ищет первую заявку (
request) с состоянием 200 и схемой 'исх:опс.лк.отмена.слота.ффд', у которой связанная доставка находится в состоянии 257. - Извлекает
delivery_id,request_idи содержимое заявки. - Обновляет состояние заявки на 202, обновляет время и очищает заметки.
- Возвращает
request_queue_id(null),request_idи содержимое.
Это типичная процедура для обработки очереди запросов с обновлением их статусов и выборкой данных для дальнейшей обработки.