Init_24_OutAssistInfo.groovy 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import com.dderp.business.dao.OutAssistDao
  2. import com.dderp.common.api.NoSqlKeysService
  3. import com.dderp.common.datas.ESKeys
  4. import com.dderp.common.entity.outassist.OutAssistInfo
  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. import java.time.Instant
  16. static def createRunnable(ESClient esClient, NoSqlKeysService keysService, OutAssistDao outAssistDao,
  17. JsonConvert jsonConvert, Logger logger,
  18. String dataSourceId, long supplierCode) {
  19. RMap params = new RMap();
  20. return {
  21. esClient.createIndex(keysService.getESKey(ESKeys.ES_ERP_OUTASSIST_INFO_INDEX, supplierCode), ESKeys.INDEX_CONFIG,
  22. Utility.ofMap(ESKeys.ES_ERP_OUTASSIST_INFO_TYPE, "outassistinfo.json"));
  23. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  24. List<OutAssistInfo> outAssistInfoList = outAssistDao.queryOutAssistInfo(params, p, dataSourceId, supplierCode);
  25. if (!outAssistInfoList.isEmpty()) {
  26. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk();
  27. outAssistInfoList.forEach((x) -> {
  28. if (x.getCreateTime() != null) {
  29. x.setCreateTimeLong(x.getCreateTime().getTime());
  30. } else {
  31. x.setCreateTimeLong(Date.from(Instant.now()).getTime());
  32. }
  33. if (x.getUpdateTime() != null) {
  34. x.setUpdateTimeLong(x.getUpdateTime().getTime());
  35. } else {
  36. x.setUpdateTimeLong(Date.from(Instant.now()).getTime());
  37. }
  38. IndexRequestBuilder indexRequest = esClient.getClient()
  39. .prepareIndex(keysService.getESKey(ESKeys.ES_ERP_OUTASSIST_INFO_INDEX, supplierCode), ESKeys.ES_ERP_OUTASSIST_INFO_TYPE)
  40. .setId(String.valueOf(x.getId()))
  41. .setSource(jsonConvert.convertTo(x), XContentType.JSON);
  42. bulkRequest.add(indexRequest);
  43. });
  44. BulkResponse bulkResponse = bulkRequest.execute().actionGet();
  45. if (bulkResponse.hasFailures()) {
  46. logger.error("索引外协档案:" + bulkResponse.buildFailureMessage());
  47. } else {
  48. logger.info("索引外协档案共" + outAssistInfoList.size() + "条记录");
  49. }
  50. }
  51. });
  52. } as Runnable
  53. }
  54. //groovy最后一个表达式的值为返回
  55. createRunnable(esClient, keysService, outAssistDao, jsonConvert, logger, dataSourceId, supplierCode)