Index: src/main/groovy/com/lemans/pricecalc/services/vendor/VendorService.groovy =================================================================== diff -u -rf2b14737bb03de125ab166bcce3d704409c89e95 -r481cf8aa9f348847e73259f3a25e2ad57f33a469 --- src/main/groovy/com/lemans/pricecalc/services/vendor/VendorService.groovy (.../VendorService.groovy) (revision f2b14737bb03de125ab166bcce3d704409c89e95) +++ src/main/groovy/com/lemans/pricecalc/services/vendor/VendorService.groovy (.../VendorService.groovy) (revision 481cf8aa9f348847e73259f3a25e2ad57f33a469) @@ -17,21 +17,21 @@ @Autowired CatalogVendorRepository catalogVendorRepository - private static final String VENDOR_QUERY = """ ( + private static final String VENDOR_QUERY = """ SELECT DISTINCT cv.catalogId, cv.vendorId, cv.vendorName, cv.vendorDueDate, - cv.revisionDeadlineDate, - cv.buyerGlobalId, - cv.buyerManagerGlobalId, - cv.managerName AS manager, - cv.buyerName AS buyer + cv.revisionDeadlineDate FROM CalcPro.[vwcatalogVendor] cv WITH(NOLOCK) -) +INNER JOIN + CalcPro.vwCatalogPart cp WITH(NOLOCK) + ON cp.vendorId = cv.vendorId + AND cp.catalogId = cv.catalogId + """ private static final String VENDOR_COUNT_QUERY = """ @@ -104,7 +104,7 @@ Map findVendors(Map criteria) { criteria.sorting = criteria.sorting ?: 'vendorId+ASC' - Map data = dqx(criteria).executeFrom(VENDOR_QUERY, clauses(criteria)) + Map data = dqx(criteria).execute(VENDOR_QUERY, clauses(criteria)) CompletableFuture augmentTask = CompletableFuture.runAsync ({ -> augmentFirstSection(data.results, criteria) }) CompletableFuture vendorMetaDataTask = CompletableFuture.runAsync ({ -> vendorMetaData(data.results, criteria) }) CompletableFuture buyerManagerTask = CompletableFuture.runAsync ({ -> buyerManager(data.results, criteria) }) @@ -115,8 +115,8 @@ private void buyerManager(List vendors, Map criteria) { if (vendors && criteria.catalogId) { String query = BUYER_MANAGER_QUERY + """ WHERE vp.catalogId = '${criteria.catalogId}' and vp.vendorId IN (${vendors?.collect { "'${it?.vendorId}'" }?.join(',')}) """ - if (criteria.manager) { query += " and (vp.buyerManagerName LIKE '%${criteria.manager}%' or vp.buyerManagerGlobalId = '${criteria.manager}') " } - if (criteria.buyer) { query += " and (vp.buyerName LIKE '%${criteria.buyer}%' or vp.buyerGlobalId = '${criteria.buyer}') " } + //if (criteria.manager) { query += " and (vp.buyerManagerName LIKE '%${criteria.manager}%' or vp.buyerManagerGlobalId = '${criteria.manager}') " } + //if (criteria.buyer) { query += " and (vp.buyerName LIKE '%${criteria.buyer}%' or vp.buyerGlobalId = '${criteria.buyer}') " } Map buyerManagerData = sql().rows(query).groupBy { it.vendorId } vendors.each { vendor -> @@ -233,15 +233,15 @@ List clauses(Map criteria) { List clauses = [] - if (criteria.catalogId) { clauses << 'catalogId = :catalogId' } - if (criteria.vendorId) { clauses << 'vendorId = :vendorId' } - if (criteria._is_pc_buyer_) { clauses << 'buyerGlobalId = :username' } - if (criteria._is_pc_manager_) { clauses << '(buyerManagerGlobalId = :username OR buyerGlobalId = :username)' } - if (criteria.vendorName) { clauses << "vendorName LIKE '%${criteria.vendorName}%'" } - if (criteria.manager) { clauses << "(manager LIKE '%${criteria.manager}%' or buyerManagerGlobalId = :manager)" } - if (criteria.buyer) { clauses << "(buyer LIKE '%${criteria.buyer}%' or buyerGlobalId = :buyer)" } - if (criteria.vendorDueDate) { clauses << "vendorDueDate >= '${criteria.vendorDueDate.start}' AND vendorDueDate <= '${criteria.vendorDueDate.end}'"} - if (criteria.revisionDeadlineDate) { clauses << "revisionDeadlineDate >= '${criteria.revisionDeadlineDate.start}' AND revisionDeadlineDate <= '${criteria.revisionDeadlineDate.end}'"} + if (criteria.catalogId) { clauses << 'cp.catalogId = :catalogId' } + if (criteria.vendorId) { clauses << 'cp.vendorId = :vendorId' } + if (criteria._is_pc_buyer_) { clauses << 'cp.buyerGlobalId = :username' } + if (criteria._is_pc_manager_) { clauses << '(cp.buyerManagerGlobalId = :username OR cp.buyerGlobalId = :username)' } + if (criteria.vendorName) { clauses << "cp.vendorName LIKE '%${criteria.vendorName}%'" } + if (criteria.manager) { clauses << "(cp.buyerManagerGlobalId LIKE '%${criteria.manager}%' or cp.buyerManagerGlobalId = :manager)" } + if (criteria.buyer) { clauses << "(cp.buyerGlobalId LIKE '%${criteria.buyer}%' or cp.buyerGlobalId = :buyer)" } + if (criteria.vendorDueDate) { clauses << "cv.vendorDueDate >= '${criteria.vendorDueDate.start}' AND cv.vendorDueDate <= '${criteria.vendorDueDate.end}'"} + if (criteria.revisionDeadlineDate) { clauses << "cv.revisionDeadlineDate >= '${criteria.revisionDeadlineDate.start}' AND cv.revisionDeadlineDate <= '${criteria.revisionDeadlineDate.end}'"} clauses }