From e4cafdc0f9d91c5bff79ff39a16a05794bbfb9c6 Mon Sep 17 00:00:00 2001 From: richie Date: Mon, 14 Oct 2019 14:26:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=E5=A1=AB=E6=8A=A5=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/finekit-10.0.jar | Bin 240280 -> 245441 bytes plugin.xml | 6 ++- .../lazy/sheet/LazySheetActorBridge.java | 6 ++- ...heetActor.java => LazySheetViewActor.java} | 4 +- ...ava => LazySheetWorkBookViewExecutor.java} | 9 ++-- .../fun/LazySheetWorkBookWriteExecutor.java | 46 ++++++++++++++++++ .../lazy/sheet/fun/LazySheetWriteActor.java | 32 ++++++++++++ 7 files changed, 92 insertions(+), 11 deletions(-) rename src/main/java/com/fr/plugin/lazy/sheet/fun/{LazySheetActor.java => LazySheetViewActor.java} (84%) rename src/main/java/com/fr/plugin/lazy/sheet/fun/{LazySheetWorkBookExecutor.java => LazySheetWorkBookViewExecutor.java} (81%) create mode 100644 src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookWriteExecutor.java create mode 100644 src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWriteActor.java diff --git a/lib/finekit-10.0.jar b/lib/finekit-10.0.jar index 3e35e75aef09a08e00229d155e589fd76cf2207a..7ae6882dd2ae36deddd990d1a48296d4557e807c 100644 GIT binary patch delta 21792 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 E2eDR;fB*mh diff --git a/plugin.xml b/plugin.xml index 636baa9..7ebfefd 100644 --- a/plugin.xml +++ b/plugin.xml @@ -3,12 +3,13 @@ com.fr.plugin.report.lazysheet yes - 3.0 + 3.1 10.0 2015-08-09 solution.richie [2019-10-12]适配10.0版本以及完全依赖FineKit。
[2016-04-11]增加插件API兼容性检测
]]>
@@ -21,5 +22,6 @@ - + + \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/lazy/sheet/LazySheetActorBridge.java b/src/main/java/com/fr/plugin/lazy/sheet/LazySheetActorBridge.java index bc81a41..3c58529 100644 --- a/src/main/java/com/fr/plugin/lazy/sheet/LazySheetActorBridge.java +++ b/src/main/java/com/fr/plugin/lazy/sheet/LazySheetActorBridge.java @@ -1,6 +1,7 @@ package com.fr.plugin.lazy.sheet; -import com.fr.plugin.lazy.sheet.fun.LazySheetActor; +import com.fr.plugin.lazy.sheet.fun.LazySheetViewActor; +import com.fr.plugin.lazy.sheet.fun.LazySheetWriteActor; import com.fr.report.fun.impl.AbstractActorProvider; import com.fr.report.stable.fun.Actor; @@ -17,7 +18,8 @@ public class LazySheetActorBridge extends AbstractActorProvider { @Override public Actor[] createActor() { return new Actor[]{ - new LazySheetActor() + new LazySheetViewActor(), + new LazySheetWriteActor() }; } } \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetActor.java b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetViewActor.java similarity index 84% rename from src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetActor.java rename to src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetViewActor.java index f4d810c..7715c63 100644 --- a/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetActor.java +++ b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetViewActor.java @@ -12,7 +12,7 @@ import java.util.Map; * Created by richie on 15/7/17. */ @EnableMetrics -public class LazySheetActor extends BaseViewActor { +public class LazySheetViewActor extends BaseViewActor { @Override @Focus(id = LazyConstants.PLUGIN_ID, text = "Plugin-Lazy_Load_Sheet") @@ -25,6 +25,6 @@ public class LazySheetActor extends BaseViewActor { } private ResultWorkBook lazyExecute(TemplateWorkBook workBook, Map parameterMap, int sheetIndex) { - return new LazySheetWorkBookExecutor(workBook, parameterMap, sheetIndex).execute(); + return new LazySheetWorkBookViewExecutor(workBook, parameterMap, sheetIndex).execute(); } } \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookExecutor.java b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookViewExecutor.java similarity index 81% rename from src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookExecutor.java rename to src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookViewExecutor.java index 472308d..0637328 100644 --- a/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookExecutor.java +++ b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookViewExecutor.java @@ -11,24 +11,23 @@ import java.util.Map; /** * Created by richie on 15/7/17. */ -public class LazySheetWorkBookExecutor extends ViewWorkBookExecutor { +public class LazySheetWorkBookViewExecutor extends ViewWorkBookExecutor { private int sheetIndex; - public LazySheetWorkBookExecutor(TemplateWorkBook workBook, Map parameterMap, int sheetIndex) { + public LazySheetWorkBookViewExecutor(TemplateWorkBook workBook, Map parameterMap, int sheetIndex) { super(workBook, parameterMap); this.sheetIndex = sheetIndex; } @Override public Actor getExeType() { - return new LazySheetActor(); + return new LazySheetViewActor(); } - protected void _execute() { + public void executeOnce() { // 先按顺序来,其实这里就一个个塞进去,然后在这里面开始统一分步计算 TemplateReport report; for (int i = 0, len = this.nameListMap.size(); i < len; i++) { - report = (TemplateReport) this.nameListMap.getByIndex(i); Actor actor = getExeType(); if (i == sheetIndex) { diff --git a/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookWriteExecutor.java b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookWriteExecutor.java new file mode 100644 index 0000000..8542c1f --- /dev/null +++ b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWorkBookWriteExecutor.java @@ -0,0 +1,46 @@ +package com.fr.plugin.lazy.sheet.fun; + +import com.fanruan.api.report.executor.WriteWorkBookExecutor; +import com.fr.main.TemplateWorkBook; +import com.fr.report.report.ResultReport; +import com.fr.report.report.TemplateReport; +import com.fr.report.stable.fun.Actor; + +import java.util.Map; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/10/14 + */ +public class LazySheetWorkBookWriteExecutor extends WriteWorkBookExecutor { + + private int sheetIndex; + + public LazySheetWorkBookWriteExecutor(TemplateWorkBook templateWorkBook, Map map, int sheetIndex) { + super(templateWorkBook, map); + this.sheetIndex = sheetIndex; + } + + @Override + public Actor getExeType() { + return new LazySheetWriteActor(); + } + + @Override + public void executeOnce() { + TemplateReport report; + for (int i = 0, len = this.nameListMap.size(); i < len; i++) { + report = (TemplateReport) this.nameListMap.getByIndex(i); + Actor actor = getExeType(); + if (i == sheetIndex) { + ResultReport resultReport = report.execute(parameterMap, actor); + if (null != resultReport) { + this.listForResultReport.set(i, resultReport); + } + } else { + this.listForResultReport.set(i, ResultReport.EMPTY); + } + } + } +} diff --git a/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWriteActor.java b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWriteActor.java new file mode 100644 index 0000000..1388450 --- /dev/null +++ b/src/main/java/com/fr/plugin/lazy/sheet/fun/LazySheetWriteActor.java @@ -0,0 +1,32 @@ +package com.fr.plugin.lazy.sheet.fun; + +import com.fanruan.api.report.write.BaseWriteActor; +import com.fr.intelli.record.Focus; +import com.fr.main.TemplateWorkBook; +import com.fr.main.workbook.ResultWorkBook; +import com.fr.record.analyzer.EnableMetrics; + +import java.util.Map; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019/10/14 + */ +@EnableMetrics +public class LazySheetWriteActor extends BaseWriteActor { + + @Override + @Focus(id = LazyConstants.PLUGIN_ID, text = "Plugin-Lazy_Load_Sheet") + public ResultWorkBook run(TemplateWorkBook workBook, Map parameterMap, int sheetIndex) { + if (parameterMap.containsKey("__lazy__")) { + return lazyExecute(workBook, parameterMap, sheetIndex); + } else { + return super.executeWorkBook(workBook, parameterMap, sheetIndex); + } + } + + private ResultWorkBook lazyExecute(TemplateWorkBook workBook, Map parameterMap, int sheetIndex) { + return new LazySheetWorkBookWriteExecutor(workBook, parameterMap, sheetIndex).execute(); + } +}