package com.lemans.common import com.lemans.services.LemansService import grails.transaction.Transactional import java.sql.Clob /** * CommonService provides miscellaneous query operations that are common, * i.e. looking up reference data, etc. * */ @Transactional(readOnly = true) class CommonService extends LemansService { /** * Finds a SubComCode by code. * * @param criteria * * @return Map containing SubComCode info */ Map findSubComCode(Map criteria) { dqx(criteria).executeOneFrom('dbo.vwSubComCode', ['subComCode = :subComCode']).results[0] } /** * Finds SubComCodes, currently All. * * @param criteria * * @return List containing subComCodes */ List findSubComCodes(Map criteria) { criteria.sorting = criteria.sorting ?: 'subComCode+ASC' dqx(criteria).executeFrom('dbo.vwSubComCode', []).results } String transformClob(Clob data) { return data?.characterStream?.text } Map transformClob(Map data) { data.collectEntries { k, v -> if(v instanceof Clob) { [k, transformClob(v)] } else { [k, v] } } } List transformClob(List data) { data.collect{transformClob(it)} } }