import Ignore_ExecPageFlipper as ExecPageFlipper import com.yinjie.heating.business.dao.HeatingDocDao import com.yinjie.heating.common.api.NoSqlKeysService import com.yinjie.heating.common.datas.RedisKeys import com.yinjie.heating.common.entity.heating.HeatingApp import com.yinjie.heating.common.entity.heating.HeatingAppInvoker import com.yinjie.heating.common.tool.ERPUtils import com.dySweetFishPlugin.redis.RedisService import com.sweetfish.convert.json.JsonConvert import com.sweetfish.source.PageFlipper import org.rex.RMap static def createRunnable(RedisService redisService, NoSqlKeysService keysService, HeatingDocDao heatingDocDao, JsonConvert jsonConvert, String dataSourceId, long supplierCode) { return { redisService.del(keysService.getRedisKey(RedisKeys.KEY_HEATING_APP, supplierCode)) RMap dictTypeParams = ERPUtils.ofRMap("voidFlag", -1) ExecPageFlipper.execute(500, { PageFlipper p -> List heatingApps = heatingDocDao.selectAllHeatingApp(dictTypeParams, dataSourceId, supplierCode, p) List ids = heatingApps.collect { it.id } RMap params = new RMap<>() params.put("ids", ids) List invokerList = heatingDocDao.selectAllHeatingAppInvoker(params, dataSourceId, supplierCode) heatingApps.each { it.invokerList.addAll(invokerList.findAll { x -> x.idApp == it.id }) } Map heatingAppMap = heatingApps.collectEntries { [String.valueOf(it.getId()), jsonConvert.convertTo(it)] } if (!heatingAppMap.isEmpty()) { redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_HEATING_APP, supplierCode), heatingAppMap) } }) } as Runnable } //groovy最后一个表达式的值为返回 createRunnable(redisService, keysService, heatingDocDao, jsonConvert, dataSourceId, supplierCode)