- Отгружено
- 8 ноября 2026 г. в 08:35 UTC
- Автор
- Kamo
- Завершение
- d100d86
Номера заказов на работу были COUNT(jobs)+1, так что два задания, поднятых одновременно, могли разделить один, и задания, поднятые из платного заказа (ServiceFulfillmentPolicy), вообще не получили номера. ServiceJobNumbers теперь mints WO-00001… под PESSIMISTIC_WRITE блокировки на org's строка commerce_document_counter (DocumentType.SERVICE_JOB, серия год 0 — текущий серии), посеянные один раз из самого высокого WO- номера, который уже имеет орг. Оба создают пути используют его; createJob является @RetryOnDbConflict для Yugabyte's 40001 на спорном counter. ux_service_job_org_number (org_id, job_number) - резервный блок, применяемый hand NONCONCURRENTLY после того, как нулевые числа были заполнены. Задание больше не перемещается в Invoiced при изменении статуса: Invoiced означает счет-фактура существует, и только создание одного (InvoicingService) помещает туда задание. CommerceInvoicePayment (commerce_invoice_payments, применяется вручную) записывает каждое платежа по счету-фактуре CommerceInvoice, поэтому его столбцы AMOUNT_PAID / PAID / PARTIALLY_PAID CommerceInvoiceRepository получает заблокированное по строкам чтение и заблокированное по строкам по-заказчику finder; ServiceJobRepository получает claimForInvoicing.
