Init_25_SupplierInfo.groovy 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import com.dderp.business.dao.SupplierDao
  2. import com.dderp.common.api.NoSqlKeysService
  3. import com.dderp.common.datas.ESKeys
  4. import com.dderp.common.entity.supply.SupplierInfo
  5. import com.dySweetFishPlugin.elasticsearch.ESClient
  6. import com.sweetfish.convert.json.JsonConvert
  7. import com.sweetfish.source.PageFlipper
  8. import com.sweetfish.util.Utility
  9. import org.apache.logging.log4j.Logger
  10. import org.elasticsearch.action.bulk.BulkRequestBuilder
  11. import org.elasticsearch.action.bulk.BulkResponse
  12. import org.elasticsearch.action.index.IndexRequestBuilder
  13. import org.elasticsearch.common.xcontent.XContentType
  14. import org.rex.RMap
  15. static def createRunnable(ESClient esClient, NoSqlKeysService keysService, SupplierDao supplierDao,
  16. JsonConvert jsonConvert, Logger logger,
  17. String dataSourceId, long supplierCode) {
  18. RMap params = new RMap();
  19. return {
  20. esClient.createIndex(keysService.getESKey(ESKeys.ES_ERP_SUPPLIER_INFO_INDEX, supplierCode), ESKeys.INDEX_CONFIG,
  21. Utility.ofMap(ESKeys.ES_ERP_SUPPLIER_INFO_TYPE, "supplierinfo.json"));
  22. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  23. List<SupplierInfo> supplierInfoList = supplierDao.querySupplierInfo(params, p, dataSourceId, supplierCode);
  24. if (!supplierInfoList.isEmpty()) {
  25. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk();
  26. supplierInfoList.forEach((x) -> {
  27. IndexRequestBuilder indexRequest = esClient.getClient()
  28. .prepareIndex(keysService.getESKey(ESKeys.ES_ERP_SUPPLIER_INFO_INDEX, supplierCode), ESKeys.ES_ERP_SUPPLIER_INFO_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("索引供应商档案共" + supplierInfoList.size() + "条记录");
  38. }
  39. }
  40. });
  41. } as Runnable
  42. }
  43. //groovy最后一个表达式的值为返回
  44. createRunnable(esClient, keysService, supplierDao, jsonConvert, logger, dataSourceId, supplierCode)