Index: grails-app/controllers/com/lemans/ds/solr/DsSolrQueueController.groovy =================================================================== diff -u -r55db5e4c02a90d0a762873468b5ce9ddc29e4172 -rf9a47eacbacba622dfb2b5de0648bcdfa998c8cf --- grails-app/controllers/com/lemans/ds/solr/DsSolrQueueController.groovy (.../DsSolrQueueController.groovy) (revision 55db5e4c02a90d0a762873468b5ce9ddc29e4172) +++ grails-app/controllers/com/lemans/ds/solr/DsSolrQueueController.groovy (.../DsSolrQueueController.groovy) (revision f9a47eacbacba622dfb2b5de0648bcdfa998c8cf) @@ -122,6 +122,11 @@ PARTS_NEED_MARKETING_DESCR_CHANGE('Parts Need Marketing Description Change', QueueMode.PART), + QC_PART_PENDING_APPROVAL('QC Pending Approval', QueueMode.PART), + QC_PART_REJECTED('QC Rejected', QueueMode.PART), + QC_PENDING_FUTURE_PARTS('QC Pending Future Parts', QueueMode.PART), + QC_PENDING_LIVE_PARTS('QC Pending Live Parts', QueueMode.PART), + PART_ATTR_RESEARCH_VALUE_NONE('None', QueueMode.PART), PART_ATTR_RESEARCH_VALUE_LEVEL1('Level 1', QueueMode.PART), PART_ATTR_RESEARCH_VALUE_LEVEL2('Level 2', QueueMode.PART), Index: grails-app/services/com/lemans/ds/solr/SolrQueryService.groovy =================================================================== diff -u -r9ec9e1b45d1e7143fb17d0ec4840a1e46b7f3f16 -rf9a47eacbacba622dfb2b5de0648bcdfa998c8cf --- grails-app/services/com/lemans/ds/solr/SolrQueryService.groovy (.../SolrQueryService.groovy) (revision 9ec9e1b45d1e7143fb17d0ec4840a1e46b7f3f16) +++ grails-app/services/com/lemans/ds/solr/SolrQueryService.groovy (.../SolrQueryService.groovy) (revision f9a47eacbacba622dfb2b5de0648bcdfa998c8cf) @@ -124,7 +124,11 @@ queueCountsForPartImagesToReview(payload, pool), queueCountsForPartNeedMDChangeFlag(payload, pool), partsFacetedByUser(payload, pool), - queueCountsForPartsWithComCodesNotAssociatedToCategory(payload, pool) + queueCountsForPartsWithComCodesNotAssociatedToCategory(payload, pool), + queueCountsForQcPartPendingApproval(payload, pool), + queueCountsForQcPartRejected(payload, pool), + queueCountsForQcPendingFutureParts(payload, pool), + queueCountsForQcPendingLiveParts(payload, pool) ] List queueCounts = futures.stream().map { CompletableFuture future -> future.join() }.collect(Collectors.toList()) injectPastWeekCounts(queueCounts) @@ -184,6 +188,60 @@ }, executor) } + private CompletableFuture queueCountsForQcPartPendingApproval(QueuePayload payload, Executor executor) { + CompletableFuture.supplyAsync(new Supplier() { + @Override + Map get() { + QueuePayload queuePayload = copyWithQueueType(payload, QueueType.QC_PART_PENDING_APPROVAL) + SolrQuery query = new SolrQuery() + .addFilterQuery('(qcStatusCode:13001)') + QueryResponse queryResponse = dsQueueSolrClient.query(buildFacetQuery(query, queuePayload)) + buildResponse(queryResponse, queuePayload) + } + }, executor) + } + + private CompletableFuture queueCountsForQcPartRejected(QueuePayload payload, Executor executor) { + CompletableFuture.supplyAsync(new Supplier() { + @Override + Map get() { + QueuePayload queuePayload = copyWithQueueType(payload, QueueType.QC_PART_REJECTED) + SolrQuery query = new SolrQuery() + .addFilterQuery('(qcStatusCode:13003)') + QueryResponse queryResponse = dsQueueSolrClient.query(buildFacetQuery(query, queuePayload)) + buildResponse(queryResponse, queuePayload) + } + }, executor) + } + + private CompletableFuture queueCountsForQcPendingFutureParts(QueuePayload payload, Executor executor) { + CompletableFuture.supplyAsync(new Supplier() { + @Override + Map get() { + QueuePayload queuePayload = copyWithQueueType(payload, QueueType.QC_PENDING_FUTURE_PARTS) + SolrQuery query = new SolrQuery() + .addFilterQuery('(qcStatusCode:13001)') + .addFilterQuery('(derivedPartStatusId:9006)') + QueryResponse queryResponse = dsQueueSolrClient.query(buildFacetQuery(query, queuePayload)) + buildResponse(queryResponse, queuePayload) + } + }, executor) + } + + private CompletableFuture queueCountsForQcPendingLiveParts(QueuePayload payload, Executor executor) { + CompletableFuture.supplyAsync(new Supplier() { + @Override + Map get() { + QueuePayload queuePayload = copyWithQueueType(payload, QueueType.QC_PENDING_LIVE_PARTS) + SolrQuery query = new SolrQuery() + .addFilterQuery('(qcStatusCode:13001)') + .addFilterQuery('(-derivedPartStatusId:9006)') + QueryResponse queryResponse = dsQueueSolrClient.query(buildFacetQuery(query, queuePayload)) + buildResponse(queryResponse, queuePayload) + } + }, executor) + } + private CompletableFuture categoryFacetsForProducts(QueuePayload payload, Executor executor) { CompletableFuture.supplyAsync(new Supplier() { @Override