Init_26_WorkProcess.groovy 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import Ignore_ExecPageFlipper as ExecPageFlipper
  2. import com.dderp.business.dao.ProductDao
  3. import com.dderp.common.api.NoSqlKeysService
  4. import com.dderp.common.datas.ESKeys
  5. import com.dderp.common.entity.product.WorkProcess
  6. import com.dySweetFishPlugin.elasticsearch.ESClient
  7. import com.sweetfish.convert.json.JsonConvert
  8. import com.sweetfish.source.PageFlipper
  9. import com.sweetfish.util.Utility
  10. import org.apache.logging.log4j.Logger
  11. import org.elasticsearch.action.bulk.BulkRequestBuilder
  12. import org.elasticsearch.action.bulk.BulkResponse
  13. import org.elasticsearch.action.index.IndexRequestBuilder
  14. import org.elasticsearch.common.xcontent.XContentType
  15. import org.rex.RMap
  16. static def createRunnable(ESClient esClient, NoSqlKeysService keysService, ProductDao productDao, JsonConvert jsonConvert, Logger logger, String dataSourceId, long supplierCode) {
  17. return {
  18. esClient.createIndex(keysService.getESKey(ESKeys.ES_ERP_WORK_PROCESS_INDEX, supplierCode),
  19. ESKeys.INDEX_CONFIG,
  20. Utility.ofMap(ESKeys.ES_ERP_WORK_PROCESS_TYPE, "workprocess.json"))
  21. RMap params = new RMap()
  22. ExecPageFlipper.execute(300, { PageFlipper p ->
  23. List<WorkProcess> workProcessList = productDao.selectWorkProcess(params, p, dataSourceId, supplierCode)
  24. if (!workProcessList.isEmpty()) {
  25. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
  26. workProcessList.each { x ->
  27. IndexRequestBuilder indexRequest = esClient.getClient()
  28. .prepareIndex(keysService.getESKey(ESKeys.ES_ERP_WORK_PROCESS_INDEX, supplierCode), ESKeys.ES_ERP_WORK_PROCESS_TYPE)
  29. .setId(String.valueOf(x.getId()))
  30. .setSource(jsonConvert.convertTo(x), XContentType.JSON)
  31. bulkRequest.add(indexRequest)
  32. }
  33. BulkResponse bulkResponse = bulkRequest.execute().actionGet()
  34. if (bulkResponse.hasFailures()) {
  35. logger.error("索引工艺档案出错:" + bulkResponse.buildFailureMessage())
  36. } else {
  37. logger.info("索引工艺档案,共" + workProcessList.size() + "条记录")
  38. }
  39. }
  40. })
  41. } as Runnable
  42. }
  43. //groovy最后一个表达式的值为返回
  44. createRunnable(esClient, keysService, productDao, jsonConvert, logger, dataSourceId, supplierCode)