diff --git a/JSD-9435-需求确认书V1.0.docx b/JSD-9435-需求确认书V1.0.docx
new file mode 100644
index 0000000..fcec979
Binary files /dev/null and b/JSD-9435-需求确认书V1.0.docx differ
diff --git a/README.md b/README.md
index 1086f9d..7c591fe 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
# open-JSD-9435
-JSD-9435 OA推送
\ No newline at end of file
+JSD-9435 OA推送\
+免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\
+仅作为开发者学习参考使用!禁止用于任何商业用途!\
+为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。
\ No newline at end of file
diff --git a/lib/axis-1.4.jar b/lib/axis-1.4.jar
new file mode 100644
index 0000000..20b09a5
Binary files /dev/null and b/lib/axis-1.4.jar differ
diff --git a/lib/axis-jaxrpc-1.4.jar b/lib/axis-jaxrpc-1.4.jar
new file mode 100644
index 0000000..a2c13d9
Binary files /dev/null and b/lib/axis-jaxrpc-1.4.jar differ
diff --git a/lib/axis-saaj-1.4.jar b/lib/axis-saaj-1.4.jar
new file mode 100644
index 0000000..4ea696e
Binary files /dev/null and b/lib/axis-saaj-1.4.jar differ
diff --git a/lib/commons-discovery-0.2.jar b/lib/commons-discovery-0.2.jar
new file mode 100644
index 0000000..b885548
Binary files /dev/null and b/lib/commons-discovery-0.2.jar differ
diff --git a/lib/fastjson-1.2.4.jar b/lib/fastjson-1.2.4.jar
new file mode 100644
index 0000000..a857260
Binary files /dev/null and b/lib/fastjson-1.2.4.jar differ
diff --git a/lib/sqljdbc4.jar b/lib/sqljdbc4.jar
new file mode 100644
index 0000000..b26b1ec
Binary files /dev/null and b/lib/sqljdbc4.jar differ
diff --git a/lib/wsdl4j-1.4.jar b/lib/wsdl4j-1.4.jar
new file mode 100644
index 0000000..49cc2c6
Binary files /dev/null and b/lib/wsdl4j-1.4.jar differ
diff --git a/plugin.xml b/plugin.xml
new file mode 100644
index 0000000..a19cdb8
--- /dev/null
+++ b/plugin.xml
@@ -0,0 +1,24 @@
+
+ com.eco.plugin.xxxx.webservicets
+
+ yes
+ 1.0.14
+ 10.0
+ 2018-07-31
+ fr.open
+
+
+ com.eco.plugin.xxxx.webservicets
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/eco/plugin/xxxx/webservicets/bean/EmployFLOW.java b/src/main/java/com/eco/plugin/xxxx/webservicets/bean/EmployFLOW.java
new file mode 100644
index 0000000..6d4f2cd
--- /dev/null
+++ b/src/main/java/com/eco/plugin/xxxx/webservicets/bean/EmployFLOW.java
@@ -0,0 +1,184 @@
+package com.eco.plugin.xxxx.webservicets.bean;
+
+public class EmployFLOW {
+ private String FlowId;
+ private String FlowType;
+ private String Submitdate;
+ private String SubmitUser;
+ private String FlowNode1;
+ private String FlowNode2;
+ private String CompanyId;
+ private String BYZD2;
+ private String FlowName;
+ private String Type;
+ private String Grade;
+ private String FlowNode3;
+ private String DATATYPE; //报表类型
+ private String SBNF; //上报年份
+ private String SBLX; //上报类型
+ private String bt;
+ private String nd ;
+ private String year ;
+ private String nf;
+ private String role;
+
+ public String getRole() {
+ return role;
+ }
+
+ public void setRole(String role) {
+ this.role = role;
+ }
+
+ public String getBt() {
+ return bt;
+ }
+
+ public void setBt(String bt) {
+ this.bt = bt;
+ }
+
+ public String getNd() {
+ return nd;
+ }
+
+ public void setNd(String nd) {
+ this.nd = nd;
+ }
+
+ public String getYear() {
+ return year;
+ }
+
+ public void setYear(String year) {
+ this.year = year;
+ }
+
+ public String getNf() {
+ return nf;
+ }
+
+ public void setNf(String nf) {
+ this.nf = nf;
+ }
+
+ public String getSBNF() {
+ return SBNF;
+ }
+
+ public void setSBNF(String SBNF) {
+ this.SBNF = SBNF;
+ }
+
+ public String getSBLX() {
+ return SBLX;
+ }
+
+ public void setSBLX(String SBLX) {
+ this.SBLX = SBLX;
+ }
+
+ public String getFlowId() {
+ return FlowId;
+ }
+
+ public void setFlowId(String flowId) {
+ FlowId = flowId;
+ }
+
+ public String getFlowType() {
+ return FlowType;
+ }
+
+ public void setFlowType(String flowType) {
+ FlowType = flowType;
+ }
+
+ public String getSubmitdate() {
+ return Submitdate;
+ }
+
+ public void setSubmitdate(String submitdate) {
+ Submitdate = submitdate;
+ }
+
+ public String getSubmitUser() {
+ return SubmitUser;
+ }
+
+ public void setSubmitUser(String submitUser) {
+ SubmitUser = submitUser;
+ }
+
+ public String getFlowNode1() {
+ return FlowNode1;
+ }
+
+ public void setFlowNode1(String flowNode1) {
+ FlowNode1 = flowNode1;
+ }
+
+ public String getFlowNode2() {
+ return FlowNode2;
+ }
+
+ public void setFlowNode2(String flowNode2) {
+ FlowNode2 = flowNode2;
+ }
+
+ public String getCompanyId() {
+ return CompanyId;
+ }
+
+ public void setCompanyId(String companyId) {
+ CompanyId = companyId;
+ }
+
+ public String getBYZD2() {
+ return BYZD2;
+ }
+
+ public void setBYZD2(String BYZD2) {
+ this.BYZD2 = BYZD2;
+ }
+
+ public String getFlowName() {
+ return FlowName;
+ }
+
+ public void setFlowName(String flowName) {
+ FlowName = flowName;
+ }
+
+ public String getType() {
+ return Type;
+ }
+
+ public void setType(String type) {
+ Type = type;
+ }
+
+ public String getGrade() {
+ return Grade;
+ }
+
+ public void setGrade(String grade) {
+ Grade = grade;
+ }
+
+ public String getFlowNode3() {
+ return FlowNode3;
+ }
+
+ public void setFlowNode3(String flowNode3) {
+ FlowNode3 = flowNode3;
+ }
+
+ public String getDATATYPE() {
+ return DATATYPE;
+ }
+
+ public void setDATATYPE(String DATATYPE) {
+ this.DATATYPE = DATATYPE;
+ }
+}
diff --git a/src/main/java/com/eco/plugin/xxxx/webservicets/config/InitializeMonitor.java b/src/main/java/com/eco/plugin/xxxx/webservicets/config/InitializeMonitor.java
new file mode 100644
index 0000000..c291926
--- /dev/null
+++ b/src/main/java/com/eco/plugin/xxxx/webservicets/config/InitializeMonitor.java
@@ -0,0 +1,33 @@
+package com.eco.plugin.xxxx.webservicets.config;
+
+import com.eco.plugin.xxxx.webservicets.dsdd.dsdd.DSDDMsgFormula;
+import com.eco.plugin.xxxx.webservicets.dsdd.dsdd.TsBean;
+import com.eco.plugin.xxxx.webservicets.dsdd.dsdd.TsEntity;
+import com.eco.plugin.xxxx.webservicets.dsdd.dsdd.TsHandler;
+import com.fr.plugin.context.PluginContext;
+import com.fr.plugin.observer.inner.AbstractPluginLifecycleMonitor;
+import com.fr.schedule.extension.report.job.output.formula.FormulaBox;
+import com.fr.schedule.feature.ScheduleOutputActionEntityRegister;
+import com.fr.schedule.feature.output.OutputActionHandler;
+
+/**
+ * @author fr.open
+ * @version 10.0
+ * Created by fr.open on 2021-12-03
+ */
+public class InitializeMonitor extends AbstractPluginLifecycleMonitor {
+ @Override
+ public void afterRun(PluginContext pluginContext) {
+ OutputActionHandler.registerHandler(new TsHandler(), TsBean.class.getName());
+ ScheduleOutputActionEntityRegister.getInstance().addClass(TsEntity.class);
+ FormulaBox.KEY.register(new DSDDMsgFormula());
+
+ WinkSimpleConfig.getInstance();
+ }
+
+ @Override
+ public void beforeStop(PluginContext pluginContext) {
+ OutputActionHandler.removeOutputHandler(TsBean.class.getName());
+ ScheduleOutputActionEntityRegister.getInstance().removeClass(TsEntity.class);
+ }
+}
diff --git a/src/main/java/com/eco/plugin/xxxx/webservicets/config/WinkSimpleConfig.java b/src/main/java/com/eco/plugin/xxxx/webservicets/config/WinkSimpleConfig.java
new file mode 100644
index 0000000..2dc9654
--- /dev/null
+++ b/src/main/java/com/eco/plugin/xxxx/webservicets/config/WinkSimpleConfig.java
@@ -0,0 +1,178 @@
+package com.eco.plugin.xxxx.webservicets.config;
+
+import com.fr.config.*;
+import com.fr.config.holder.Conf;
+import com.fr.config.holder.factory.Holders;
+import com.fr.intelli.record.Focus;
+import com.fr.intelli.record.Original;
+import com.fr.record.analyzer.EnableMetrics;
+
+@Visualization(category = "代办配置")
+@EnableMetrics
+public class WinkSimpleConfig extends DefaultConfiguration {
+
+ private static volatile WinkSimpleConfig config = null;
+
+ @Focus(id="com.eco.plugin.xxxx.webservicets.config", text = "单点登录配置", source = Original.PLUGIN)
+ public static WinkSimpleConfig getInstance() {
+ if (config == null) {
+ config = ConfigContext.getConfigInstance(WinkSimpleConfig.class);
+ }
+ return config;
+ }
+
+ @Identifier(value = "tempname", name = "模板名称", description = "模板名称", status = Status.SHOW)
+ private Conf tempname = Holders.simple("");
+
+ @Identifier(value = "tburl", name = "填报地址", description = "填报地址", status = Status.SHOW)
+ private Conf tburl = Holders.simple("");
+
+ @Identifier(value = "shurl", name = "审核地址", description = "审核地址", status = Status.SHOW)
+ private Conf shurl = Holders.simple("");
+
+ @Identifier(value = "userWsdlUrl", name = "userWsdlUrl", description = "userWsdlUrl", status = Status.SHOW)
+ private Conf userWsdlUrl = Holders.simple("");
+
+ @Identifier(value = "userNamespace", name = "userNamespace", description = "userNamespace", status = Status.SHOW)
+ private Conf userNamespace = Holders.simple("");
+
+ @Identifier(value = "userMethod", name = "userMethod", description = "userMethod", status = Status.SHOW)
+ private Conf userMethod = Holders.simple("");
+
+ @Identifier(value = "userKey", name = "userKey", description = "userKey", status = Status.SHOW)
+ private Conf userKey = Holders.simple("");
+
+ @Identifier(value = "loginWsdlUrl", name = "loginWsdlUrl", description = "loginWsdlUrl", status = Status.SHOW)
+ private Conf loginWsdlUrl = Holders.simple("");
+
+ @Identifier(value = "loginNamespace", name = "loginNamespace", description = "loginNamespace", status = Status.SHOW)
+ private Conf loginNamespace = Holders.simple("");
+
+ @Identifier(value = "loginMethod", name = "loginMethod", description = "loginMethod", status = Status.SHOW)
+ private Conf loginMethod = Holders.simple("");
+
+ @Identifier(value = "OAWsdlUrl", name = "OAWsdlUrl", description = "OAWsdlUrl", status = Status.SHOW)
+ private Conf OAWsdlUrl = Holders.simple("");
+
+ @Identifier(value = "OANamespace", name = "OANamespace", description = "OANamespace", status = Status.SHOW)
+ private Conf OANamespace = Holders.simple("");
+
+ @Identifier(value = "OAMethod", name = "OAMethod", description = "OAMethod", status = Status.SHOW)
+ private Conf OAMethod = Holders.simple("");
+
+ public String getTempname() {
+ return tempname.get();
+ }
+
+ public void setTempname(String url) {
+ this.tempname.set(url);
+ }
+
+ public String getTburl() {
+ return tburl.get();
+ }
+
+ public void setTburl(String url) {
+ this.tburl.set(url);
+ }
+
+ public String getShurl() {
+ return shurl.get();
+ }
+
+ public void setShurl(String url) {
+ this.shurl.set(url);
+ }
+
+ public String getUserWsdlUrl() {
+ return userWsdlUrl.get();
+ }
+
+ public void setUserWsdlUrl(String url) {
+ this.userWsdlUrl.set(url);
+ }
+
+ public String getUserNamespace() {
+ return userNamespace.get();
+ }
+
+ public void setUserNamespace(String url) {
+ this.userNamespace.set(url);
+ }
+
+ public String getUserMethod() {
+ return userMethod.get();
+ }
+
+ public void setUserMethod(String url) {
+ this.userMethod.set(url);
+ }
+
+ public String getUserKey() {
+ return userKey.get();
+ }
+
+ public void setUserKey(String url) {
+ this.userKey.set(url);
+ }
+
+ public String getLoginWsdlUrl() {
+ return loginWsdlUrl.get();
+ }
+
+ public void setLoginWsdlUrl(String url) {
+ this.loginWsdlUrl.set(url);
+ }
+
+ public String getLoginNamespace() {
+ return loginNamespace.get();
+ }
+
+ public void setLoginNamespace(String url) {
+ this.loginNamespace.set(url);
+ }
+
+ public String getLoginMethod() {
+ return loginMethod.get();
+ }
+
+ public void setLoginMethod(String url) {
+ this.loginMethod.set(url);
+ }
+
+ public String getOAWsdlUrl() {
+ return OAWsdlUrl.get();
+ }
+
+ public void setOAWsdlUrl(String url) {
+ this.OAWsdlUrl.set(url);
+ }
+
+ public String getOANamespace() {
+ return OANamespace.get();
+ }
+
+ public void setOANamespace(String url) {
+ this.OANamespace.set(url);
+ }
+
+ public String getOAMethod() {
+ return OAMethod.get();
+ }
+
+ public void setOAMethod(String url) {
+ this.OAMethod.set(url);
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ WinkSimpleConfig cloned = (WinkSimpleConfig) super.clone();
+// cloned.text = (Conf) text.clone();
+// cloned.count = (Conf) count.clone();
+// cloned.price = (Conf) price.clone();
+// cloned.time = (Conf) time.clone();
+// cloned.student = (Conf) student.clone();
+ return cloned;
+ }
+
+}
diff --git a/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/db/DBAccessProvider.java b/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/db/DBAccessProvider.java
new file mode 100644
index 0000000..a8c14c2
--- /dev/null
+++ b/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/db/DBAccessProvider.java
@@ -0,0 +1,38 @@
+package com.eco.plugin.xxxx.webservicets.dsdd.db;
+
+import com.eco.plugin.xxxx.webservicets.dsdd.dsdd.TsEntity;
+import com.fr.decision.plugin.db.AbstractDecisionDBAccessProvider;
+import com.fr.stable.db.accessor.DBAccessor;
+import com.fr.stable.db.dao.BaseDAO;
+import com.fr.stable.db.dao.DAOProvider;
+
+public class DBAccessProvider extends AbstractDecisionDBAccessProvider {
+ private static DBAccessor dbAccessor = null;
+
+ public static DBAccessor getDbAccessor(){
+ return dbAccessor;
+ }
+
+
+ @Override
+ public DAOProvider[] registerDAO() {
+ return new DAOProvider[]{
+ new DAOProvider() {
+ @Override
+ public Class getEntityClass() {
+ return TsEntity.class;
+ }
+
+ @Override
+ public Class extends BaseDAO> getDAOClass() {
+ return Dao.class;
+ }
+ }
+ };
+ }
+
+ @Override
+ public void onDBAvailable(DBAccessor dbAccessor) {
+ this.dbAccessor = dbAccessor;
+ }
+}
diff --git a/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/db/Dao.java b/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/db/Dao.java
new file mode 100644
index 0000000..1618f4c
--- /dev/null
+++ b/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/db/Dao.java
@@ -0,0 +1,14 @@
+package com.eco.plugin.xxxx.webservicets.dsdd.db;
+
+import com.eco.plugin.xxxx.webservicets.dsdd.dsdd.TsEntity;
+import com.fr.stable.db.dao.BaseDAO;
+import com.fr.stable.db.session.DAOSession;
+
+/**
+ * Created by fr.open on 2021-12-03.
+ */
+public class Dao extends BaseDAO {
+ public Dao(DAOSession daoSession) {
+ super(daoSession);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/dsdd/DSDDMsgFormula.java b/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/dsdd/DSDDMsgFormula.java
new file mode 100644
index 0000000..4c4325a
--- /dev/null
+++ b/src/main/java/com/eco/plugin/xxxx/webservicets/dsdd/dsdd/DSDDMsgFormula.java
@@ -0,0 +1,21 @@
+package com.eco.plugin.xxxx.webservicets.dsdd.dsdd;
+
+import com.fr.main.workbook.ResultWorkBook;
+import com.fr.schedule.extension.report.provider.impl.AbstractReportOutputFormulaProvider;
+
+import java.util.List;
+import java.util.Map;
+
+public class DSDDMsgFormula extends AbstractReportOutputFormulaProvider {
+ public DSDDMsgFormula() {
+ }
+
+ public void dealWithFormulaParam(TsBean syncBean, ResultWorkBook resultWorkBook, List