chore: сохранение текущих изменений (deploy local-bundle/local-jar, request-service, slots UI markedObjectIds)

Безопасный коммит незакоммиченной работы перед реализацией бронирования слотов.
Вне коммита оставлены: package-lock.json (пустой, мусор), requests.json (scratch-данные).
This commit is contained in:
Дмитрий Соловьев
2026-06-11 14:00:12 +03:00
parent 6689351ef0
commit 345529cde0
36 changed files with 1674 additions and 37 deletions
@@ -67,7 +67,10 @@ data class CreateRequestDto(
*/
@field:DecimalMin(value = "0", inclusive = false)
@field:DecimalMax("100")
val coverageRequiredPercent: Double = 100.0,
// Nullable с дефолтом: под Jackson 3 (MVC) FAIL_ON_NULL_FOR_PRIMITIVES включён по умолчанию,
// и явный null от клиента падал бы на примитиве Double. Опциональное поле с дефолтом трактуем
// null как «взять дефолт» — при маппинге в сущность коалесим к 100.0.
val coverageRequiredPercent: Double? = 100.0,
/** Параметры оптической съемки. */
@field:Valid
@@ -81,7 +81,7 @@ class RequestService(
remainingArea = geometryArea,
// Порог завершения по покрытию приходит из API (по умолчанию 100%); это прогресс съёмки,
// в отличие от importance — важности заявки для карты приоритетов ячеек.
coverageRequiredPercent = request.coverageRequiredPercent,
coverageRequiredPercent = request.coverageRequiredPercent ?: 100.0,
importance = importance,
beginDateTime = request.beginDateTime,
endDateTime = request.endDateTime,
@@ -112,6 +112,23 @@ class RequestServiceTest {
assertEquals(80.0, persistedRequests.single().coverageRequiredPercent)
}
@Test
fun `create request coalesces null coverage required percent to default`() {
val persistedRequests = mutableListOf<RequestEntity>()
doReturn(false)
.`when`(requestRepository)
.existsById(REQUEST_ID)
doAnswer { invocation ->
persistedRequests += invocation.getArgument<RequestEntity>(0)
null
}.`when`(entityManager).persist(any(RequestEntity::class.java))
// Явный null (клиент прислал coverageRequiredPercent: null) трактуем как «взять дефолт».
service.createRequest(createRequestDto(coverageRequiredPercent = null))
assertEquals(100.0, persistedRequests.single().coverageRequiredPercent)
}
@Test
fun `get request by id returns name and importance`() {
val request = existingRequest()
@@ -296,7 +313,7 @@ class RequestServiceTest {
verify(requestCellRepository).deleteByRequestId(REQUEST_ID)
}
private fun createRequestDto(coverageRequiredPercent: Double = 100.0): CreateRequestDto {
private fun createRequestDto(coverageRequiredPercent: Double? = 100.0): CreateRequestDto {
return CreateRequestDto(
id = REQUEST_ID,
name = REQUEST_NAME,