| buildWillSaveProductAttributeItems(List, List) |  | 0% |  | 0% | 23 | 23 | 53 | 53 | 1 | 1 |
| checkImportProductSpecItems(List) |  | 0% |  | 0% | 15 | 15 | 32 | 32 | 1 | 1 |
| addProductVersion(ProductAttributeFormDto) |  | 0% |  | 0% | 6 | 6 | 36 | 36 | 1 | 1 |
| saveProductAttributeDetailInfo(ProductAttributeFormDto) |  | 0% |  | 0% | 7 | 7 | 27 | 27 | 1 | 1 |
| activateProductAttributeDetailInfo(ProductAttributeFormDto) |  | 0% |  | 0% | 3 | 3 | 26 | 26 | 1 | 1 |
| getDoActionProductAttributeInfos(ProductAttributeFormDto, String) |  | 0% |  | 0% | 5 | 5 | 16 | 16 | 1 | 1 |
| handleProductVersionStatus(List, String) |  | 0% |  | 0% | 6 | 6 | 16 | 16 | 1 | 1 |
| getAllAddedProductVersionsOfProducts(List) |  | 0% |  | 0% | 3 | 3 | 14 | 14 | 1 | 1 |
| getProcessRrnOfProducts(List) |  | 0% |  | 0% | 6 | 6 | 13 | 13 | 1 | 1 |
| checkAndBuildQueryProductAttributeForm(ProductAttributeFormDto) |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 1 | 1 |
| checkIfHasUnfrozenTimeLimit(List, String, Integer, Long) |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 1 | 1 |
| freezeProductAttributeDetailInfo(ProductAttributeFormDto) |  | 0% |  | 0% | 3 | 3 | 11 | 11 | 1 | 1 |
| unfreezeProductAttributeDetailInfo(ProductAttributeFormDto) |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
| lambda$checkIfProductAttributeCanDoActivate$3(StringBuilder, ProductAttributeItem) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| lambda$checkIfProductAttributeCanDoFreeze$1(StringBuilder, ProductAttributeItem) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| queryProductAttributeItems(ProductAttributeFormDto) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| getDoActionProductAttributeItems(List) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| lambda$checkIfProductAttributeCanDoUnfreeze$2(ProductAttributeItem) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| checkIfProcessSpecStatusIsActive(Long, Integer) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| checkIfProductAttributeCanDoFreeze(List) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| checkIfProductAttributeCanDoActivate(List) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| lambda$checkIfHasUnfrozenTimeLimit$7(Long, Long, TimeLimitSetup) |  | 0% |  | 0% | 4 | 4 | 2 | 2 | 1 | 1 |
| getDoActionProductAttributeInfoList(long, int, long, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$queryProductAttributeItems$0(ProductAttributeItemDto, ProductAttributeItemDto) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getDoActionProductAttributeInfoList(long, int, long, List, String) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| lambda$getDoActionProductAttributeInfoList$6(String, ProductAttributeInfo) |  | 0% |  | 0% | 4 | 4 | 3 | 3 | 1 | 1 |
| lambda$getDoActionProductAttributeInfoList$5(String, ProductAttributeInfo) |  | 0% |  | 0% | 4 | 4 | 3 | 3 | 1 | 1 |
| updateStatusOfProductAttribute(TransactionLog, Ecn, List, List, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| activateProduct(TransactionLog, Long, Integer, List) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$getDoActionProductAttributeInfoList$4(long, int, long, Integer) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| queryProductAttributeHistories(ProductAttributeHistoryQueryDto) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| checkIfProductAttributeCanDoUnfreeze(List) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| ProductAttributeServiceImpl() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |