piece_rates CRUD (operatsiya × org-node)
Tavsif
Qabul mezonlari (DoD)
3 / 3 bajarildi
-
Bir operatsiya, bir org-node uchun ikkinchi POST 409 yoki mavjudni yangilaydi (loyihaviy tanlov hujjatlangan)
qa-ep-02-t05-s04 · 1 о аввал
-
Bir kasb ikki operatsiyada — ikkalasi mustaqil `amount` qabul qiladi (test: turli qiymat)
qa-ep-02-t05-s04 · 1 о аввал
-
`bonus_rate` NULL qoldirilishi mumkin (majburiy emas)
qa-ep-02-t05-s04 · 1 о аввал
O'zgargan fayllar
9 ta
-
modified
src/test/java/uz/erpbom/products/controller/PieceRateControllerIntegrationTest.java -
modified
src/main/java/uz/erpbom/products/service/PieceRateService.java -
modified
src/main/java/uz/erpbom/products/repository/PieceRateRepository.java -
modified
src/main/java/uz/erpbom/products/mapper/PieceRateMapper.java -
modified
src/main/java/uz/erpbom/products/entity/PieceRate.java -
modified
src/main/java/uz/erpbom/products/dto/PieceRateUpdateRequest.java -
modified
src/main/java/uz/erpbom/products/dto/PieceRateResponse.java -
modified
src/main/java/uz/erpbom/products/dto/PieceRateCreateRequest.java -
modified
src/main/java/uz/erpbom/products/controller/PieceRateController.java
Izoh qoldirish
Tarix
18 yozuv
-
✎
finalize-ep-02 yangiladi
Yangilandi: commit_sha
-
⇄
qa-ep-02-t05-s04 statusni o'zgartirdi Review → Bajarildi
-
💬
qa-ep-02-t05-s04 izoh qoldirdi
QA o'tdi. Test: mvn -Dtest=PieceRateControllerIntegrationTest -> 16/16 yashil (flock ostida, tor doirada). Mezonlar mustaqil tekshirildi: AC1056 (409 DUPLICATE_PIECE_RATE) - mutatsiya: create() ni upsertga o'zgartirdim -> creatingDuplicateOperationOrganizationCombinationReturns409 haqiqatan yiqildi (409 kutib 201 oldi), qaytardim, 16/16 yashil tasdiqlandi. AC1057 (bir kasb ikki operatsiyada mustaqil amount) - sameProfessionTwoOperationsAcceptIndependentAmounts turli amount/id bilan tekshiradi. AC1058 (bonus_rate NULL) - DTO da @NotNull yo'q, creatingWithoutBonusRateLeavesItNull o'tadi. MAXSUS TEKSHIRUV: (a) theta-join scoping - mutatsiya: findByIdAndProductVariantId dan rv.productVariantId shartini olib tashladim -> updatingRateThroughAnotherVariantReturns404 haqiqatan yiqildi (200 qaytardi), qaytardim, 16/16 yashil. Scoping ishlaydi va test uni ushlaydi. (b) OrganizationService.existsById() - EP-02-T05-S01 (selling_prices) da allaqachon yaratilgan, javadocida piece_rates ni chaqiruvchi sifatida nomlaydi (mavjud infratuzilma). Kontrakt 404 tavsifi so'zma-so'z organization_id ni sabab sifatida ko'rsatadi, creatingWithUnknownOrganizationReturns404 tasdiqlaydi (message=organization topilmadi:id=...). (c) wage_type=piece_rate validatsiyasi qasddan qoldirilgan - professions jadvali/entitisi repoda umuman yo'q (V10 migratsiya kommentida ATAYLAB FK yo'q deyilgan, EP-02-T01-S03dan beri izchil qaror); openapi createPieceRate javob ro'yxatida 409 INVALID_OPERATION_PROFESSION YO'Q (faqat RecipeOperationInput/variant-yaratish endpointida bor) - kod kontraktga mos, spec bo'shlig'i emas. Qo'shimcha: numeric(18,2), UNIQUE(variant_operation_id,organization_id), snake_case JSON, @Transactional (list readOnly, create/update yozuv), soft-delete N/A (DELETE endpoint yo'q), tenant_id/schema o'zgarishi yo'q - hammasi tasdiqlandi. ESLATMA: PieceRateRepository.java bir vaqtda boshqa parallel task (EP-02-T04-S04) tomonidan ham tahrirlanmoqda (findByVariantOperationId/existsByVariantOperationId qo'shilmoqda) - bu ishga aloqasi yo'q, tegilmadi.
-
✓
qa-ep-02-t05-s04 qabul mezonini belgiladi
✓ `bonus_rate` NULL qoldirilishi mumkin (majburiy emas)
-
✓
qa-ep-02-t05-s04 qabul mezonini belgiladi
✓ Bir kasb ikki operatsiyada — ikkalasi mustaqil `amount` qabul qiladi (test: turli qiymat)
-
✓
qa-ep-02-t05-s04 qabul mezonini belgiladi
✓ Bir operatsiya, bir org-node uchun ikkinchi POST 409 yoki mavjudni yangilaydi (loyihaviy tanlov hujjatlangan)
-
⇄
coder-ep-02-t05-s04 statusni o'zgartirdi Ishlanyapti → Review
-
✓
coder-ep-02-t05-s04 qabul mezonini belgiladi
✓ `bonus_rate` NULL qoldirilishi mumkin (majburiy emas)
-
✓
coder-ep-02-t05-s04 qabul mezonini belgiladi
✓ Bir kasb ikki operatsiyada — ikkalasi mustaqil `amount` qabul qiladi (test: turli qiymat)
-
✓
coder-ep-02-t05-s04 qabul mezonini belgiladi
✓ Bir operatsiya, bir org-node uchun ikkinchi POST 409 yoki mavjudni yangilaydi (loyihaviy tanlov hujjatlangan)
-
✎
coder-ep-02-t05-s04 yangiladi
Yangilandi: branch, commit_sha
-
📄
coder-ep-02-t05-s04 fayllarni qayd etdi
9 ta fayl qayd etildi
-
⇄
coder-ep-02-t05-s04 statusni o'zgartirdi Backlog → Ishlanyapti
Agent ishni boshladi
-
⚑
coder-ep-02-t05-s04 ishga oldi
-
🔗
pm-agent bog'liqlik qo'shdi
→ EP-02-T04-S02
-
✎
pm-agent yangiladi
Yangilandi: estimate_hours
-
🔗
pm-agent bog'liqlik qo'shdi
→ EP-02-T04-S02
-
✦
pm-agent yaratdi
piece_rates CRUD (operatsiya × org-node)
Ma'lumot
- Agent
- coder-ep-02-t05-s04
- Olingan
- 1 о аввал
- Boshlandi
- 19.08.2026 05:00
- Tugadi
- 19.08.2026 05:34
- Baho
- 5 soat
- Spec
- erp/docs/modules/02_products.md#2.14
- Branch
- feat/EP-02-erpbom-backend
- Commit
- 4b90a3e35337
Bog'liqliklar
Bundan oldin tugashi kerak
Agent uchun
Bu ishni AI agent quyidagicha oladi:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-02-T05-S04/claim \ -H "X-Agent: backend-dev-1"
Tugatgach:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-02-T05-S04/status \
-H "X-Agent: backend-dev-1" \
-H "Content-Type: application/json" \
-d '{"status":"review","note":"..."}'