commit cf1bb1d7f0b51954458a376732264b0112259555
Author: 黄正国 <438926402@qq.com>
Date: Mon Nov 17 10:14:17 2025 +0800
2025-01-08稻花香主数据平台初始化
diff --git a/v5/apps-customize/pom.xml b/v5/apps-customize/pom.xml
new file mode 100644
index 0000000..05e2716
--- /dev/null
+++ b/v5/apps-customize/pom.xml
@@ -0,0 +1,61 @@
+
+
+
+
+ com.seeyon
+ apps-root
+ 5371630367615140082-standard-V8.1SP2-release_20220812-SNAPSHOT
+
+
+ 4.0.0
+
+ apps-customize
+ ${apps.version}
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 8
+ 8
+
+
+
+
+
+
+
+
+
+
+
+ open.seeyon.3rd
+ hutool
+ 5.5.7
+ system
+ ${basedir}/src/main/webapp/WEB-INF/lib/hutool-all-5.5.7.jar
+
+
+ open.seeyon.3rd
+ seeyon-extend
+ 3.0
+ system
+ ${basedir}/src/main/webapp/WEB-INF/lib/seeyon-extend-v3.0.jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/QrCodeFormPluginApi.java b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/QrCodeFormPluginApi.java
new file mode 100644
index 0000000..14c7768
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/QrCodeFormPluginApi.java
@@ -0,0 +1,45 @@
+package com.seeyon.apps.qrCodeForm;
+
+import com.seeyon.apps.common.plugin.api.APluginInfoApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.qrCodeForm.constant.QrCodeFormConstants;
+
+/**
+ * 功能描述:
+ *
+ *
+ *
+ *
+ * @Author: FanGaowei
+ * @Date: 2022/8/11
+ */
+public class QrCodeFormPluginApi extends APluginInfoApi {
+
+ @Override
+ public String getPluginId() {
+ return QrCodeFormConstants.getPluginId();
+ }
+
+ @Override
+ public String getCreateUser() {
+ return "致威互联";
+ }
+
+ @Override
+ public String getDescription() {
+ return "微信扫码制单";
+ }
+
+ @Override
+ public ConfigVo getDefaultConfig() {
+ ConfigVo configVo = new ConfigVo();
+ for (QrCodeFormConstants value : QrCodeFormConstants.values()) {
+ if(value != QrCodeFormConstants.plugin) {
+ configVo.getDevParams().put(value.name(), value.getDefaultValue());
+ configVo.getProdParams().put(value.name(), value.getDefaultValue());
+ configVo.getParamMap().put(value.name(), value.getDescription());
+ }
+ }
+ return configVo;
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/QrCodeFormPluginInitializer.java b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/QrCodeFormPluginInitializer.java
new file mode 100644
index 0000000..82d52b3
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/QrCodeFormPluginInitializer.java
@@ -0,0 +1,22 @@
+package com.seeyon.apps.qrCodeForm;
+
+import cn.hutool.log.Log;
+import com.seeyon.apps.qrCodeForm.util.InitQrCodeFormUitl;
+import com.seeyon.ctp.common.AbstractSystemInitializer;
+import com.seeyon.ctp.common.exceptions.BusinessException;
+
+public class QrCodeFormPluginInitializer extends AbstractSystemInitializer {
+ private static Log log = Log.get(QrCodeFormPluginInitializer.class);
+
+ public QrCodeFormPluginInitializer() {
+ }
+
+ public void destroy() {
+ log.info("◆二维码扫码填单插件销毁成功!");
+ }
+
+ public void initialize() {
+ InitQrCodeFormUitl.initMenu();
+ log.info("◆二维码扫码填单插件初始化成功!");
+ }
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/Constants.java b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/Constants.java
new file mode 100644
index 0000000..d065422
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/Constants.java
@@ -0,0 +1,15 @@
+package com.seeyon.apps.qrCodeForm.constant;
+
+import com.seeyon.ctp.common.AppContext;
+
+public class Constants {
+
+ //模拟移动端登录认证方式
+ public static final String _REDIRECTURI = "/qrCodeForm.do?method=newMain&html=";
+ //流程表单跳转地址
+ public static final String FLOW_URL = "/seeyon/m3/apps/v5/collaboration/html/newCollaboration.html?qc=ext&templateId=";
+ //无流程表单跳转地址
+ public static final String UNFLOW_URL = "/seeyon/m3/apps/v5/cap4/htmls/native/form/index.html?";
+
+
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/QrCodeFormConstants.java b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/QrCodeFormConstants.java
new file mode 100644
index 0000000..7415d9c
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/QrCodeFormConstants.java
@@ -0,0 +1,32 @@
+package com.seeyon.apps.qrCodeForm.constant;
+
+public enum QrCodeFormConstants {
+
+ plugin("qrCodeForm","插件ID"),
+ oaAddress("https://oa.dhx.com.cn", "OA地址"),
+ qwAppId("", "企微APPID"),
+ restId("qrcode", "rest账号"),
+ restPwd("f39f8102-1c7f-423c-8e6c-57e1d19b9a6f", "rest密码"),
+ qrcode_loginname("hr", "发起人账号");
+
+ QrCodeFormConstants(String defaultValue, String description) {
+ this.defaultValue = defaultValue;
+ this.description = description;
+ }
+
+ private String defaultValue;
+ private String description;
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public static String getPluginId() {
+ return plugin.defaultValue;
+ }
+
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/SupportTypeEnum.java b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/SupportTypeEnum.java
new file mode 100644
index 0000000..6051998
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/constant/SupportTypeEnum.java
@@ -0,0 +1,31 @@
+package com.seeyon.apps.qrCodeForm.constant;
+
+import com.seeyon.ctp.common.code.EnumsCode;
+import com.seeyon.ctp.common.i18n.ResourceUtil;
+
+public enum SupportTypeEnum implements EnumsCode {
+ ALL(0, "全部"),
+ FLOW(1, "仅支持流程表单"),
+ UNFLOW(2, "仅支持无流程表单");
+
+ private int key;
+ private String text;
+
+ private SupportTypeEnum(int key, String text) {
+ this.key = key;
+ this.text = text;
+ }
+
+ public String getValue() {
+ return String.valueOf(this.key);
+ }
+
+ public int getKey() {
+ return this.key;
+ }
+
+ public String getText() {
+ return ResourceUtil.getString(this.text);
+ }
+
+}
diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/controller/QrCodeFormController.java b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/controller/QrCodeFormController.java
new file mode 100644
index 0000000..29a9b70
--- /dev/null
+++ b/v5/apps-customize/src/main/java/com/seeyon/apps/qrCodeForm/controller/QrCodeFormController.java
@@ -0,0 +1,113 @@
+package com.seeyon.apps.qrCodeForm.controller;
+
+import cn.hutool.log.Log;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.qrCodeForm.constant.QrCodeFormConstants;
+import com.seeyon.apps.qrCodeForm.manager.QrCodeFormManager;
+import com.seeyon.apps.qrCodeForm.util.LoginUtil;
+import com.seeyon.apps.weixin.util.SecurityCertUtil;
+import com.seeyon.apps.weixin.util.WeixinUtil;
+import com.seeyon.ctp.common.SystemEnvironment;
+import com.seeyon.ctp.common.constants.ProductEditionEnum;
+import com.seeyon.ctp.common.controller.BaseController;
+import com.seeyon.ctp.common.flag.SysFlag;
+import com.seeyon.ctp.common.formula.FormulaUtil;
+import com.seeyon.ctp.common.log.CtpLogFactory;
+import com.seeyon.ctp.organization.bo.V3xOrgMember;
+import com.seeyon.ctp.organization.manager.OrgManager;
+import com.seeyon.ctp.util.Strings;
+import com.seeyon.ctp.util.annotation.Inject;
+
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class QrCodeFormController extends BaseController {
+ private static Log log = Log.get(QrCodeFormController.class);
+ @Inject
+ private QrCodeFormManager qrCodeFormManager;
+ @Inject
+ private OrgManager orgManager;
+ @Inject
+ private ICstConfigApi cstConfigApi;
+
+ public ModelAndView index(HttpServletRequest request, HttpServletResponse response) {
+ log.info("访问二维码生成页面!");
+ ModelAndView mav = new ModelAndView("plugin/qrCodeForm/qrCodeFormIndex");
+ Map map = new HashMap();
+ map.put("bizType", "1");
+ map.put("type", "owner-authed-biz");
+ map.put("businessType", 0);
+ map.put("activeTab", "mineapp");
+ List