diff --git a/plugin.xml b/plugin.xml
index 9f1760a..a47a5d3 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -2,7 +2,7 @@
com.fr.plugin.file.submit.oss
yes
- 2.3
+ 2.4
10.0
2018-11-02
author
diff --git a/src/main/java/com/fr/plugin/file/submit/oss/script/OssDownloadHyperlink.java b/src/main/java/com/fr/plugin/file/submit/oss/script/OssDownloadHyperlink.java
index 0651ee3..3712c78 100644
--- a/src/main/java/com/fr/plugin/file/submit/oss/script/OssDownloadHyperlink.java
+++ b/src/main/java/com/fr/plugin/file/submit/oss/script/OssDownloadHyperlink.java
@@ -3,6 +3,7 @@ package com.fr.plugin.file.submit.oss.script;
import com.fr.base.BaseFormula;
import com.fr.base.Parameter;
import com.fr.base.ParameterMapNameSpace;
+import com.fr.base.ResultFormula;
import com.fr.general.GeneralUtils;
import com.fr.general.xml.GeneralXMLTools;
import com.fr.js.Hyperlink;
@@ -25,6 +26,11 @@ import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
import com.fr.web.session.SessionIDInfo;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
public class OssDownloadHyperlink extends Hyperlink {
private String bucket;
@@ -65,12 +71,14 @@ public class OssDownloadHyperlink extends Hyperlink {
if (ArrayUtils.isEmpty(providers)) {
providers = ArrayUtils.add(providers, new Parameter(parameterName, variableValue.getValue()));
} else {
+ Map map = new HashMap();
for (ParameterProvider provider : providers) {
- if (AssistUtils.equals(provider.getValue(), parameterName)) {
- provider.setValue(variableValue.getValue());
- } else {
- providers = ArrayUtils.add(providers, new Parameter(parameterName, variableValue.getValue()));
- }
+ map.put(provider.getName(), provider);
+ }
+ if (map.containsKey(parameterName)) {
+ map.get(parameterName).setValue(variableValue.getValue());
+ } else {
+ providers = ArrayUtils.add(providers, new Parameter(parameterName, variableValue.getValue()));
}
}
setParameters(providers);
@@ -102,6 +110,9 @@ public class OssDownloadHyperlink extends Hyperlink {
Object value = provider.getValue();
if (value instanceof BaseFormula) {
result = ((BaseFormula) value).getResult();
+ if (result instanceof ResultFormula) {
+ result = ((ResultFormula)result).getResult();
+ }
break;
} else {
result = value;