package com.fr.plugin.demo.data.transfer; import com.fanruan.api.log.LogKit; import com.fanruan.api.runtime.ResourceKit; import com.fanruan.api.util.GeneralKit; import com.fr.decision.fun.impl.AbstractDataTransferProcessProvider; import com.fr.intelli.record.Focus; import com.fr.intelli.record.Original; import com.fr.record.analyzer.EnableMetrics; import com.fr.third.fasterxml.jackson.databind.ObjectMapper; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * @author lidongy * @version 10.0 * Created by lidongy on 2021/3/31 */ @EnableMetrics public class DemoTransferProcess extends AbstractDataTransferProcessProvider { private static final String EXPORT_TEMP_DIR = "export_temp_dir"; private static final String IMPORT_TEMP_DIR = "import_temp_dir"; @Override @Focus(id = "com.fr.plugin.demo.data.transfer.process", text = "", source = Original.PLUGIN) public void afterBuildExportData(Map> allResource) { printAllResource(allResource); ResourceKit.write(GeneralKit.pathJoin(EXPORT_TEMP_DIR, "extra.txt"), "resource"); } @Override public void afterImport(Map> allResource) { printAllResource(allResource); ByteArrayOutputStream outputStream = null; InputStream inputStream = null; try { inputStream = ResourceKit.read(GeneralKit.pathJoin(IMPORT_TEMP_DIR, EXPORT_TEMP_DIR, "extra.txt")); outputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = -1; while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } } catch (IOException e) { LogKit.error(e, e.getMessage()); } finally { try { if (outputStream != null) { outputStream.close(); } if (inputStream != null) { inputStream.close(); } } catch (Exception e) { LogKit.error(e, e.getMessage()); } } LogKit.info("读到了资源为" + outputStream.toString()); } private void printAllResource(Map> allResource) { try { Iterator>> it = allResource.entrySet().iterator(); while (it.hasNext()) { Map.Entry> entry = it.next(); LogKit.info("导出数据类型:" + entry.getKey()); LogKit.info("id集合:" + new ObjectMapper().writeValueAsString(entry.getValue())); } } catch (Exception e) { LogKit.error(e, e.getMessage()); } } }