Index: grails-app/jobs/com/lemans/ds/marketingDescr/PartMarketingDescrJob.groovy =================================================================== diff -u --- grails-app/jobs/com/lemans/ds/marketingDescr/PartMarketingDescrJob.groovy (revision 0) +++ grails-app/jobs/com/lemans/ds/marketingDescr/PartMarketingDescrJob.groovy (revision 27219613cc0b77214268b8604917ed50a2feb8de) @@ -0,0 +1,41 @@ +package com.lemans.ds.marketingDescr + +import com.lemans.ds.flag.Flag +import com.lemans.services.LemansManager + +import java.sql.Timestamp + +class PartMarketingDescrJob extends LemansManager { + + private static final String FLAG_VALUE_INSERT = """INSERT INTO dbo.FlagValue (flagId, entityId, dateCreated, createdBy, lastUpdated, lastUpdatedBy) +VALUES(:flagId, :entityId, :now, :username, :now, :username)""" + + //6 am every day + static triggers = { + cron name: 'cronTrigger', startDelay: 10000, cronExpression: '0 6 * * *' + } + + def execute() { + Timestamp now = new Timestamp(new Date().time) + Integer flagId = Flag.findByFlagNameAndDateDeletedIsNull('Need Marketing Description Change')?.id + List partNumbers = sql().rows("""SELECT DISTINCT + p.partNumber + FROM dbo.vwPart p + WHERE + p.isActive = 1 + AND + p.partDescr = p.marketingDescr COLLATE Latin1_General_CS_AS + AND p.partNumber NOT IN ( + SELECT + vfv.entityId + FROM vwFlagValue vfv + WHERE + vfv.flagName = 'Need Marketing Description Change')""")*.partNumber + sql().withBatch(100, FLAG_VALUE_INSERT) { stmt -> + partNumbers?.each{ String it -> + stmt.addBatch([flagId: flagId, entityId: it?.toString(), username: 'INSIDE/HELPDESK', now: now]) + } + } + log.info('Job success') + } +} Index: grails-app/services/com/lemans/ds/solr/SolrQueryService.groovy =================================================================== diff -u -r45bc95cd7736b158e8ef1f6390dd07086d4d5ecd -r27219613cc0b77214268b8604917ed50a2feb8de --- grails-app/services/com/lemans/ds/solr/SolrQueryService.groovy (.../SolrQueryService.groovy) (revision 45bc95cd7736b158e8ef1f6390dd07086d4d5ecd) +++ grails-app/services/com/lemans/ds/solr/SolrQueryService.groovy (.../SolrQueryService.groovy) (revision 27219613cc0b77214268b8604917ed50a2feb8de) @@ -49,6 +49,7 @@ queueCountsForPartsWithoutFitment(payload, pool), queueCountsForPartsWithTentativeFitment(payload, pool), queueCountsForPartImagesToReview(payload, pool), + queueCountsForPartNeedMDChangeFlag(payload, pool), queueCountsForPartsNotStarted(payload, pool), queueCountsForPartsSomeInProgress(payload, pool), @@ -390,6 +391,20 @@ }, executor) } + private CompletableFuture queueCountsForPartNeedMDChangeFlag(QueuePayload payload, Executor executor) { + CompletableFuture.supplyAsync(new Supplier() { + @Override + Map get() { + QueuePayload queuePayload = copyWithQueueType(payload, QueueType.PARTS_NEED_MARKETING_DESCR_CHANGE) + SolrQuery query = new SolrQuery() + .addFilterQuery('(hasPartNeedMDChangeFlag:true)') + .addFilterQuery('(categoryId:[* TO *])') + QueryResponse queryResponse = dsQueueSolrClient.query(buildFacetQuery(query, queuePayload)) + buildResponse(queryResponse, queuePayload) + } + }, executor) + } + private CompletableFuture queueCountsForPartsNotStarted(QueuePayload payload, Executor executor) { CompletableFuture.supplyAsync(new Supplier() { @Override