diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b2ae619
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+/base/shkd-base-common/build.gradle
+/base/shkd-base-helper/build.gradle
+/fi/fi/shkd-fi-fi-business/build.gradle
+/fi/fi/shkd-fi-fi-common/build.gradle
+/fi/fi/shkd-fi-fi-mservice/build.gradle
+/fi/fi/shkd-fi-fi-plugin/build.gradle
+/fi/fi/shkd-fi-fi-report/build.gradle
+/fi/fi/shkd-fi-fi-webapi/build.gradle
+/shkd-cosmic-debug/build.gradle
+/build.gradle
diff --git a/.gradle/7.6.3/checksums/checksums.lock b/.gradle/7.6.3/checksums/checksums.lock
new file mode 100644
index 0000000..20e4196
Binary files /dev/null and b/.gradle/7.6.3/checksums/checksums.lock differ
diff --git a/.gradle/7.6.3/dependencies-accessors/dependencies-accessors.lock b/.gradle/7.6.3/dependencies-accessors/dependencies-accessors.lock
new file mode 100644
index 0000000..c130803
Binary files /dev/null and b/.gradle/7.6.3/dependencies-accessors/dependencies-accessors.lock differ
diff --git a/.gradle/7.6.3/dependencies-accessors/gc.properties b/.gradle/7.6.3/dependencies-accessors/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/7.6.3/executionHistory/executionHistory.bin b/.gradle/7.6.3/executionHistory/executionHistory.bin
new file mode 100644
index 0000000..72ea121
Binary files /dev/null and b/.gradle/7.6.3/executionHistory/executionHistory.bin differ
diff --git a/.gradle/7.6.3/executionHistory/executionHistory.lock b/.gradle/7.6.3/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..1beac53
Binary files /dev/null and b/.gradle/7.6.3/executionHistory/executionHistory.lock differ
diff --git a/.gradle/7.6.3/fileChanges/last-build.bin b/.gradle/7.6.3/fileChanges/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/.gradle/7.6.3/fileChanges/last-build.bin differ
diff --git a/.gradle/7.6.3/fileHashes/fileHashes.bin b/.gradle/7.6.3/fileHashes/fileHashes.bin
new file mode 100644
index 0000000..056f383
Binary files /dev/null and b/.gradle/7.6.3/fileHashes/fileHashes.bin differ
diff --git a/.gradle/7.6.3/fileHashes/fileHashes.lock b/.gradle/7.6.3/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..cb44812
Binary files /dev/null and b/.gradle/7.6.3/fileHashes/fileHashes.lock differ
diff --git a/.gradle/7.6.3/fileHashes/resourceHashesCache.bin b/.gradle/7.6.3/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000..ce9b382
Binary files /dev/null and b/.gradle/7.6.3/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/7.6.3/gc.properties b/.gradle/7.6.3/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000..7601481
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..786b4b8
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Wed Aug 14 14:47:57 CST 2024
+gradle.version=7.6.3
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000..4bd3fbe
Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
new file mode 100644
index 0000000..667503c
Binary files /dev/null and b/.gradle/file-system.probe differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..4b182d0
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+shkd-cosmic
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..61a9130
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..c60cc7e
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..ab157bc
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..ebc85ba
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..2266f6b
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/config.gradle b/config.gradle
new file mode 100644
index 0000000..33161c7
--- /dev/null
+++ b/config.gradle
@@ -0,0 +1,45 @@
+/**
+ * This is a kingdee cosmic template project that is automatically generated by the Kingdee cosmic development assistant plugin.
+ * If there are any issues during the use process, you can provide feedback to the kingdee developer community website.
+ * Website: https://developer.kingdee.com/developer?productLineId=29
+ * Author: liebin.zheng
+ * Generate Date: 2024-08-14 14:47:09
+ */
+def cosmic_libs_path = System.getProperty('cosmic_libs_path')
+def cosmic_home = null
+
+if(cosmic_libs_path == null){
+ //println "NO 'cosmic_libs_path' property was setted in gradle.properties. "
+ //println "Try to find the 'cosmic_home' property in gradle.properties."
+ cosmic_home = System.getProperty('cosmic_home')
+}
+
+if(cosmic_home == null){
+ //println "NO 'cosmic_home' property was setted in gradle.properties. "
+ //println "Try to find the 'COSMIC_HOME' property in System environment."
+ cosmic_home = System.getenv('COSMIC_HOME')
+}
+
+if(cosmic_home != null){
+ cosmic_libs_path = "${cosmic_home}/mservice-cosmic/lib"
+
+}
+
+if(cosmic_libs_path == null){
+ throw new RuntimeException("Neither 'COSMIC_LIBS_PATH' was setted in System environment, nor 'cosmic_libs_path' property was setted in gradle.properties.")
+}
+
+
+println "The 'cosmic_libs_path' is: '${cosmic_libs_path}'."
+
+ext {
+
+ path = [
+ trd : "${cosmic_libs_path}/trd",
+ bos : "${cosmic_libs_path}/bos",
+ biz : "${cosmic_libs_path}/biz",
+ cus : "${cosmic_libs_path}/cus",
+ outputdir : "${cosmic_libs_path}/outputdir"
+ ]
+
+}
\ No newline at end of file
diff --git a/cosmic.properties b/cosmic.properties
new file mode 100644
index 0000000..0e7ff37
--- /dev/null
+++ b/cosmic.properties
@@ -0,0 +1,2 @@
+#Wed Aug 14 14:47:09 CST 2024
+MCServerURL=http://isctest.dobechina.com:8090/appstore/dev_env/
\ No newline at end of file
diff --git a/docs/images/code1.png b/docs/images/code1.png
new file mode 100644
index 0000000..cf0923a
Binary files /dev/null and b/docs/images/code1.png differ
diff --git a/docs/images/cosmic-studio-qrcode.png b/docs/images/cosmic-studio-qrcode.png
new file mode 100644
index 0000000..cc9d383
Binary files /dev/null and b/docs/images/cosmic-studio-qrcode.png differ
diff --git a/docs/images/eclipse-gradle.png b/docs/images/eclipse-gradle.png
new file mode 100644
index 0000000..d7005be
Binary files /dev/null and b/docs/images/eclipse-gradle.png differ
diff --git a/docs/images/idea-gradle.png b/docs/images/idea-gradle.png
new file mode 100644
index 0000000..b02be5d
Binary files /dev/null and b/docs/images/idea-gradle.png differ
diff --git a/fi/fi/shkd-fi-fi-common/build/classes/java/main/shkd/fi/fi/common/AppflgConstant.class b/fi/fi/shkd-fi-fi-common/build/classes/java/main/shkd/fi/fi/common/AppflgConstant.class
deleted file mode 100644
index e83ee4f..0000000
Binary files a/fi/fi/shkd-fi-fi-common/build/classes/java/main/shkd/fi/fi/common/AppflgConstant.class and /dev/null differ
diff --git a/fi/fi/shkd-fi-fi-plugin/build/classes/java/main/shkd/repc/recon/opplugin/TestOPPlugin.class b/fi/fi/shkd-fi-fi-plugin/build/classes/java/main/shkd/repc/recon/opplugin/TestOPPlugin.class
deleted file mode 100644
index 397987c..0000000
Binary files a/fi/fi/shkd-fi-fi-plugin/build/classes/java/main/shkd/repc/recon/opplugin/TestOPPlugin.class and /dev/null differ
diff --git a/fi/fi/shkd-fi-fi-plugin/build/classes/java/main/shkd/repc/recon/workflowplugin/WorkflowAutGetLinkPlugin.class b/fi/fi/shkd-fi-fi-plugin/build/classes/java/main/shkd/repc/recon/workflowplugin/WorkflowAutGetLinkPlugin.class
deleted file mode 100644
index ad0d2f5..0000000
Binary files a/fi/fi/shkd-fi-fi-plugin/build/classes/java/main/shkd/repc/recon/workflowplugin/WorkflowAutGetLinkPlugin.class and /dev/null differ
diff --git a/filestorage/dobe/2008012388581769216/202408/4aacfff132914c4ca3662fc17a203498/ISC供应链数字化变革项目(接口集成)定制化需求规格说明书-V1.3(2).docx b/filestorage/dobe/2008012388581769216/202408/4aacfff132914c4ca3662fc17a203498/ISC供应链数字化变革项目(接口集成)定制化需求规格说明书-V1.3(2).docx
new file mode 100644
index 0000000..20629b7
Binary files /dev/null and b/filestorage/dobe/2008012388581769216/202408/4aacfff132914c4ca3662fc17a203498/ISC供应链数字化变革项目(接口集成)定制化需求规格说明书-V1.3(2).docx differ
diff --git a/filestorage/dobe/2008012388581769216/202408/f663dbca384d41dbaa82d31e32dfd1f8/ISC供应链数字化变革项目(接口集成)定制化需求规格说明书-V1.4.docx b/filestorage/dobe/2008012388581769216/202408/f663dbca384d41dbaa82d31e32dfd1f8/ISC供应链数字化变革项目(接口集成)定制化需求规格说明书-V1.4.docx
new file mode 100644
index 0000000..1c21939
Binary files /dev/null and b/filestorage/dobe/2008012388581769216/202408/f663dbca384d41dbaa82d31e32dfd1f8/ISC供应链数字化变革项目(接口集成)定制化需求规格说明书-V1.4.docx differ
diff --git a/filestorage/dobe/2008012388581769216/202408/iscb/isc_solution_center_m/2026853838559928320/images/logo.jpg b/filestorage/dobe/2008012388581769216/202408/iscb/isc_solution_center_m/2026853838559928320/images/logo.jpg
new file mode 100644
index 0000000..42eb117
Binary files /dev/null and b/filestorage/dobe/2008012388581769216/202408/iscb/isc_solution_center_m/2026853838559928320/images/logo.jpg differ
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..2f280ea
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,26 @@
+### ----------------------------
+### This is a kingdee cosmic template project that is automatically generated by the Kingdee cosmic development assistant plugin.
+### If there are any issues during the use process, you can provide feedback to the kingdee developer community website.
+### Website: https://developer.kingdee.com/developer?productLineId=29
+### Author: liebin.zheng
+### Generate Date: 2024-08-14 14:47:09
+### ----------------------------
+systemProp.kddt_version=2.1.6
+systemProp.template_type=multi
+systemProp.groupId=shkd.cosmic
+systemProp.artifactId=shkd-cosmic
+systemProp.version=1.0.0
+systemProp.jdk.version=1.8
+systemProp.developer_flag=shkd
+systemProp.project_dir=E:/db_workspace/zb_comic6
+systemProp.cosmic_home=E:/db_workspace
+#systemProp.cosmic_home=E:/zy_workspace
+#systemProp.cosmic_libs_path=E:/zy_workspace/mservice-cosmic/lib
+#systemProp.cosmic_static_path=E:/zy_workspace/static-file-service
+#systemProp.res_url=http://isctest.dobechina.com:8090/appstore/dev_env/
+#systemProp.zk_url=47.116.215.7:2181
+#systemProp.mc_url=http://isctest.dobechina.com:8090/mc
+org.gradle.parallel=true
+org.gradle.daemon=true
+org.gradle.caching=true
+org.gradle.jvmargs=-Xms256m -Xmx1024m -XX:MaxMetaspaceSize=128m
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..cc58b84
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..6681bd7
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.6.3-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..c10d582
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,240 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx1024m" "-Xms256m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..5448cec
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,91 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx1024m" "-Xms256m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..9c59c78
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,150 @@
+# 金蝶云苍穹Gradle模板使用说明
+
+## 1.启动服务
+
+### 1) DebugApplication中设置好环境必要的参数
+
+- setClusterNumber: 集群编码
+- setTenantNumber: 租户编码
+- setMcServerUrl: 设置MC服务地址
+- setCosmicWepPort: 设置苍穹服务端口
+- setConfigUrl: 设置zk服务地址及用户密码
+- setFsServerUrl: 设置文件服务地址
+- setImageServerUrl: 设置图像服务地址
+
+
+例:
+
+```java
+cosmic.setClusterNumber("cosmic");
+cosmic.setTenantNumber("sample");
+cosmic.setMcServerUrl("http://127.0.0.1:8090");
+cosmic.setCosmicWepPort(8080)
+cosmic.setConfigUrl("127.0.0.1:2182?user=zk&password=xxxxxx");
+cosmic.setFsServerUrl("127.0.0.1", 8100);
+cosmic.setImageServerUrl("127.0.0.1", 8100);
+```
+
+
+### 2) 启动服务
+
+```java
+kd.cosmic.DebugApplication
+```
+首次运行,请检查项目默认的JDK,确保为1.8版本,否则会提示启动异常。
+
+
+### 3) 登录
+启动完毕后打开:http://127.0.0.1:8080/ierp
+
+注意:此处的端口为setCosmicWepPort所配置的具体端口数值
+
+
+## 2.更新环境
+菜单操作路径:苍穹开发助手-->更新环境
+
+将从MC服务器上更新最新包:cosmic.zip、webapp.zip,解压到统一的苍穹资源目录下,可通过系统环境变量"COSMIC_HOME"或项目中gradle.properties的"systemProp.cosmic_home"配置项指定。
+
+默认的web静态资源目录为:System.getenv("COSMIC_HOME") + "/static-file-service",也可通过以下代码修改:
+
+```java
+cosmic.setWebResPath("xxx/static-file-service")
+```
+
+注意:更新版本时请先停止在正在跑或调试的工程,避免文件占用无法覆盖。
+
+## 3.工程打包与部署
+
+工程打包有多种方式,可通过Idea或Eclipse中Gradle命令界面build菜单下的"buildJar"任务,也可以打开CMD终端使用"gradle buildJar"命令方式实现。
+
+```cmd
+cd your_project_dir
+gradle buildJar
+```
+
+Jar包部署有多种方式,可通过Idea或Eclipse中Gradle命令界面build菜单下的"deployJar"任务,也可以打开CMD终端使用"gradle deployJar"命令方式实现。
+
+```cmd
+cd your_project_dir
+gradle deployJar
+```
+
+推荐开发工具自带的Gradle构建菜单进行工程的构建、清理及部署等任务。
+
+Idea Gradle工具菜单如下图:
+
+ ![idea-gradle](docs/images/idea-gradle.png)
+
+
+Eclipse Gradle工具菜单如下图:
+
+ ![idea-gradle](docs/images/eclipse-gradle.png)
+
+
+
+## 6.金蝶代码扫描
+右键项目工程目录,在右侧菜单中,点击“金蝶代码分析/金蝶代码扫描”功能,即可实现对该工程代码的静态代码扫描。
+
+ ![code1](docs/images/code1.png)
+
+
+## 5.插件选项
+菜单操作路径:File->Settings->苍穹开发助手
+
+
+## 6.搜索工具窗
+菜单操作路径:View->Tool Windows->苍穹开发助手
+
+若当前为苍穹工程(工程根目录下有cosmic.properties文件),苍穹开发助手自行显示,停靠在右上角。
+
+提供文档检索功能。
+
+
+## 7.菜单-登录开发者门户
+未登录:苍穹开发助手(工具窗)-社区文章-可搜索“开发者社区”文档
+登录后:苍穹开发助手(工具窗)-社区文章-可搜索“开发者社区+开发者门户”文档
+
+## 8.常见问题
+8.1. 忘记ZK账号密码,可通过从MC服务查看的环境变量configUrl,或可通过SQL在MC数据库实例中查询,参考如下SQL
+
+```sql
+select t.furl, t.fusername, t.fpassword from t_mc_zookeeper t ;
+```
+
+## 9.相关文档
+
+ 1、苍穹开发者工具下载与安装
+ https://developer.kingdee.com/article/418778103486608384
+
+ 2、金蝶云·苍穹开发环境搭建
+ https://developer.kingdee.com/article/418816210550117376
+
+ 3、金蝶云·苍穹开发者助手插件安装
+ https://developer.kingdee.com/article/476393455359492608
+
+ 4、金蝶云·苍穹代码规范扫描介绍
+ https://developer.kingdee.com/article/476783839013202176
+
+ 5、新版苍穹开发助手如何导入本地已有的项目或工程模块
+ https://developer.kingdee.com/article/517721581637036032
+
+ 6、苍穹开发助手Debug工程启动报zookeeper认证错误-NoAuth
+ https://developer.kingdee.com/article/517758258006900992
+
+ 7、苍穹debug工程启动或编译报GC错误: Out fo Memory或GC overhead limit
+ https://developer.kingdee.com/article/519826723685411072
+
+ 8、启动苍穹本地debug服务的控制台日志卡在CuratorFrameworkImpl这一行
+ https://developer.kingdee.com/article/519891614198842112
+
+ 9、IDEA启动命令行过长解决办法
+ https://vip.kingdee.com/article/357806944599232512
+
+
+## 🤝 联系我们
+
+请使用云之家扫描以下二维码。
+
+### 苍穹开发者工具交流反馈群
+ ![qrcode](docs/images/cosmic-studio-qrcode.png)
+
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..fa5a00c
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,36 @@
+/**
+ * This is a kingdee cosmic template project that is automatically generated by the Kingdee cosmic development assistant plugin.
+ * If there are any issues during the use process, you can provide feedback to the kingdee developer community website.
+ * Website: https://developer.kingdee.com/developer?productLineId=29
+ * Author: liebin.zheng
+ * Generate Date: 2024-08-14 14:47:09
+ */
+rootProject.name = System.getProperty('artifactId')
+
+include(
+ 'shkd-cosmic-debug',
+ ':shkd-base-common',
+ ':shkd-base-helper',
+
+ ':shkd-fi-fi-common',
+ ':shkd-fi-fi-business',
+ ':shkd-fi-fi-plugin',
+ ':shkd-fi-fi-report',
+ ':shkd-fi-fi-mservice',
+ ':shkd-fi-fi-webapi',
+)
+
+// -------------- 引入苍穹调试工程模块 --------------
+//project(':shkd-cosmic-debug').projectDir = new File('shkd-cosmic-debug')
+
+// -------------- 引入公共基础模块 --------------
+project(':shkd-base-common').projectDir = new File('base/shkd-base-common')
+project(':shkd-base-helper').projectDir = new File('base/shkd-base-helper')
+
+// -------------- 引入fi云-fi应用模块 --------------
+project(':shkd-fi-fi-common').projectDir = new File('fi/fi/shkd-fi-fi-common')
+project(':shkd-fi-fi-business').projectDir = new File('fi/fi/shkd-fi-fi-business')
+project(':shkd-fi-fi-plugin').projectDir = new File('fi/fi/shkd-fi-fi-plugin')
+project(':shkd-fi-fi-report').projectDir = new File('fi/fi/shkd-fi-fi-report')
+project(':shkd-fi-fi-mservice').projectDir = new File('fi/fi/shkd-fi-fi-mservice')
+project(':shkd-fi-fi-webapi').projectDir = new File('fi/fi/shkd-fi-fi-webapi')
diff --git a/shkd-cosmic-debug/src/main/java/shkd/cosmic/debug/DebugApplication.java b/shkd-cosmic-debug/src/main/java/shkd/cosmic/debug/DebugApplication.java
new file mode 100644
index 0000000..590de49
--- /dev/null
+++ b/shkd-cosmic-debug/src/main/java/shkd/cosmic/debug/DebugApplication.java
@@ -0,0 +1,47 @@
+/**
+ * This is a kingdee cosmic template project that is automatically generated by the Kingdee cosmic development assistant plugin.
+ * If there are any issues during the use process, you can provide feedback to the kingdee developer community website.
+ * Website: https://developer.kingdee.com/developer?productLineId=29
+ * Author: liebin.zheng
+ * Generate Date: 2024-08-14 14:47:09
+ */
+package shkd.cosmic.debug;
+
+import kd.cosmic.debug.tools.CosmicLauncher;
+
+/**
+ * 启动本地应用程序(微服务节点)
+ */
+public class DebugApplication {
+
+
+
+ public static void main(String[] args) {
+
+// Thread.currentThread().setContextClassLoader(new KDSecurityClassLoader(Thread.currentThread().getContextClassLoader()));
+
+ CosmicLauncher cosmic = new CosmicLauncher(false);
+
+ cosmic.setClusterNumber("dobe-test");
+ cosmic.setTenantNumber("dobe");
+
+// cosmic.setConfigUrl("127.0.0.1:2181?user=zk&password=xxx");
+ cosmic.setConfigUrl("47.116.215.7:2181?user=zookeeper&password=d@f*g:SGVsbG8==8q/SEAJkuojaiHbRywl6vDSJydRN8FDo+zV87UbTdomOa2RwYXNzd29yZA==");
+
+// cosmic.setMcServerUrl("http://127.0.0.1:8090");
+ cosmic.setMcServerUrl("http://47.116.215.7:8090/mc");
+// cosmic.setMcServerUrl("http://isctest.dobechina.com:8090/mc");
+
+ cosmic.setWebResPath("E:/zy_workspace/static-file-service");
+
+// cosmic.setFsServerUrl("127.0.0.1", 8100);
+// cosmic.setImageServerUrl("127.0.0.1", 8100);
+ cosmic.set("lightweightdeploy","true");//轻量级
+ //自定义本地苍穹调试服务的端口
+ cosmic.setCosmicWepPort(8881);
+// cosmic.setDubboConfig(false, true, true);
+ cosmic.start();
+
+
+ }
+}
\ No newline at end of file
diff --git a/shkd-cosmic-debug/src/main/resources/logback-kafka.xml b/shkd-cosmic-debug/src/main/resources/logback-kafka.xml
new file mode 100644
index 0000000..a1d88fc
--- /dev/null
+++ b/shkd-cosmic-debug/src/main/resources/logback-kafka.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${LOG_PATTERN}
+
+
+
+
+ {{clusterName}}-log
+ {{log.kafka.ip_port}}
+ none
+ false
+ org.apache.kafka.common.serialization.StringSerializer
+ org.apache.kafka.common.serialization.StringSerializer
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/shkd-cosmic-debug/src/main/resources/logback.xml b/shkd-cosmic-debug/src/main/resources/logback.xml
new file mode 100644
index 0000000..4f9545f
--- /dev/null
+++ b/shkd-cosmic-debug/src/main/resources/logback.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${LOG_PATTERN}
+
+
+
+
+
+ ${LOG_PATTERN}
+
+ ${LOG_DIR}/cosmic_out.log
+
+ false
+ ${LOG_DIR}/cosmic_out_%d{yyyyMMdd}_%i.log
+ 10MB
+ 7
+ 0
+
+
+
+
+
+
+
+
+
\ No newline at end of file