Commit 82994579affdddc0321dec92b39c4dd7aa5ecd14
1 parent
23379372
2024.04.26
Showing
10 changed files
with
388 additions
and
150 deletions
Show diff stats
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | # "License"); you may not use this file except in compliance | 8 | # "License"); you may not use this file except in compliance |
| 9 | # with the License. You may obtain a copy of the License at | 9 | # with the License. You may obtain a copy of the License at |
| 10 | # | 10 | # |
| 11 | -# https://www.apache.org/licenses/LICENSE-2.0 | 11 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 12 | # | 12 | # |
| 13 | # Unless required by applicable law or agreed to in writing, | 13 | # Unless required by applicable law or agreed to in writing, |
| 14 | # software distributed under the License is distributed on an | 14 | # software distributed under the License is distributed on an |
| @@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
| 19 | # ---------------------------------------------------------------------------- | 19 | # ---------------------------------------------------------------------------- |
| 20 | 20 | ||
| 21 | # ---------------------------------------------------------------------------- | 21 | # ---------------------------------------------------------------------------- |
| 22 | -# Apache Maven Wrapper startup batch script, version 3.2.0 | 22 | +# Maven Start Up Batch script |
| 23 | # | 23 | # |
| 24 | # Required ENV vars: | 24 | # Required ENV vars: |
| 25 | # ------------------ | 25 | # ------------------ |
| @@ -27,6 +27,7 @@ | @@ -27,6 +27,7 @@ | ||
| 27 | # | 27 | # |
| 28 | # Optional ENV vars | 28 | # Optional ENV vars |
| 29 | # ----------------- | 29 | # ----------------- |
| 30 | +# M2_HOME - location of maven2's installed home dir | ||
| 30 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven | 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven |
| 31 | # e.g. to debug Maven itself, use | 32 | # e.g. to debug Maven itself, use |
| 32 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
| @@ -35,10 +36,6 @@ | @@ -35,10 +36,6 @@ | ||
| 35 | 36 | ||
| 36 | if [ -z "$MAVEN_SKIP_RC" ] ; then | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then |
| 37 | 38 | ||
| 38 | - if [ -f /usr/local/etc/mavenrc ] ; then | ||
| 39 | - . /usr/local/etc/mavenrc | ||
| 40 | - fi | ||
| 41 | - | ||
| 42 | if [ -f /etc/mavenrc ] ; then | 39 | if [ -f /etc/mavenrc ] ; then |
| 43 | . /etc/mavenrc | 40 | . /etc/mavenrc |
| 44 | fi | 41 | fi |
| @@ -53,7 +50,7 @@ fi | @@ -53,7 +50,7 @@ fi | ||
| 53 | cygwin=false; | 50 | cygwin=false; |
| 54 | darwin=false; | 51 | darwin=false; |
| 55 | mingw=false | 52 | mingw=false |
| 56 | -case "$(uname)" in | 53 | +case "`uname`" in |
| 57 | CYGWIN*) cygwin=true ;; | 54 | CYGWIN*) cygwin=true ;; |
| 58 | MINGW*) mingw=true;; | 55 | MINGW*) mingw=true;; |
| 59 | Darwin*) darwin=true | 56 | Darwin*) darwin=true |
| @@ -61,9 +58,9 @@ case "$(uname)" in | @@ -61,9 +58,9 @@ case "$(uname)" in | ||
| 61 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html | 58 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html |
| 62 | if [ -z "$JAVA_HOME" ]; then | 59 | if [ -z "$JAVA_HOME" ]; then |
| 63 | if [ -x "/usr/libexec/java_home" ]; then | 60 | if [ -x "/usr/libexec/java_home" ]; then |
| 64 | - JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME | 61 | + export JAVA_HOME="`/usr/libexec/java_home`" |
| 65 | else | 62 | else |
| 66 | - JAVA_HOME="/Library/Java/Home"; export JAVA_HOME | 63 | + export JAVA_HOME="/Library/Java/Home" |
| 67 | fi | 64 | fi |
| 68 | fi | 65 | fi |
| 69 | ;; | 66 | ;; |
| @@ -71,38 +68,68 @@ esac | @@ -71,38 +68,68 @@ esac | ||
| 71 | 68 | ||
| 72 | if [ -z "$JAVA_HOME" ] ; then | 69 | if [ -z "$JAVA_HOME" ] ; then |
| 73 | if [ -r /etc/gentoo-release ] ; then | 70 | if [ -r /etc/gentoo-release ] ; then |
| 74 | - JAVA_HOME=$(java-config --jre-home) | 71 | + JAVA_HOME=`java-config --jre-home` |
| 75 | fi | 72 | fi |
| 76 | fi | 73 | fi |
| 77 | 74 | ||
| 75 | +if [ -z "$M2_HOME" ] ; then | ||
| 76 | + ## resolve links - $0 may be a link to maven's home | ||
| 77 | + PRG="$0" | ||
| 78 | + | ||
| 79 | + # need this for relative symlinks | ||
| 80 | + while [ -h "$PRG" ] ; do | ||
| 81 | + ls=`ls -ld "$PRG"` | ||
| 82 | + link=`expr "$ls" : '.*-> \(.*\)$'` | ||
| 83 | + if expr "$link" : '/.*' > /dev/null; then | ||
| 84 | + PRG="$link" | ||
| 85 | + else | ||
| 86 | + PRG="`dirname "$PRG"`/$link" | ||
| 87 | + fi | ||
| 88 | + done | ||
| 89 | + | ||
| 90 | + saveddir=`pwd` | ||
| 91 | + | ||
| 92 | + M2_HOME=`dirname "$PRG"`/.. | ||
| 93 | + | ||
| 94 | + # make it fully qualified | ||
| 95 | + M2_HOME=`cd "$M2_HOME" && pwd` | ||
| 96 | + | ||
| 97 | + cd "$saveddir" | ||
| 98 | + # echo Using m2 at $M2_HOME | ||
| 99 | +fi | ||
| 100 | + | ||
| 78 | # For Cygwin, ensure paths are in UNIX format before anything is touched | 101 | # For Cygwin, ensure paths are in UNIX format before anything is touched |
| 79 | if $cygwin ; then | 102 | if $cygwin ; then |
| 103 | + [ -n "$M2_HOME" ] && | ||
| 104 | + M2_HOME=`cygpath --unix "$M2_HOME"` | ||
| 80 | [ -n "$JAVA_HOME" ] && | 105 | [ -n "$JAVA_HOME" ] && |
| 81 | - JAVA_HOME=$(cygpath --unix "$JAVA_HOME") | 106 | + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
| 82 | [ -n "$CLASSPATH" ] && | 107 | [ -n "$CLASSPATH" ] && |
| 83 | - CLASSPATH=$(cygpath --path --unix "$CLASSPATH") | 108 | + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` |
| 84 | fi | 109 | fi |
| 85 | 110 | ||
| 86 | # For Mingw, ensure paths are in UNIX format before anything is touched | 111 | # For Mingw, ensure paths are in UNIX format before anything is touched |
| 87 | if $mingw ; then | 112 | if $mingw ; then |
| 88 | - [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && | ||
| 89 | - JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" | 113 | + [ -n "$M2_HOME" ] && |
| 114 | + M2_HOME="`(cd "$M2_HOME"; pwd)`" | ||
| 115 | + [ -n "$JAVA_HOME" ] && | ||
| 116 | + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" | ||
| 90 | fi | 117 | fi |
| 91 | 118 | ||
| 92 | if [ -z "$JAVA_HOME" ]; then | 119 | if [ -z "$JAVA_HOME" ]; then |
| 93 | - javaExecutable="$(which javac)" | ||
| 94 | - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then | 120 | + javaExecutable="`which javac`" |
| 121 | + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then | ||
| 95 | # readlink(1) is not available as standard on Solaris 10. | 122 | # readlink(1) is not available as standard on Solaris 10. |
| 96 | - readLink=$(which readlink) | ||
| 97 | - if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then | 123 | + readLink=`which readlink` |
| 124 | + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then | ||
| 98 | if $darwin ; then | 125 | if $darwin ; then |
| 99 | - javaHome="$(dirname "\"$javaExecutable\"")" | ||
| 100 | - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" | 126 | + javaHome="`dirname \"$javaExecutable\"`" |
| 127 | + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" | ||
| 101 | else | 128 | else |
| 102 | - javaExecutable="$(readlink -f "\"$javaExecutable\"")" | 129 | + javaExecutable="`readlink -f \"$javaExecutable\"`" |
| 103 | fi | 130 | fi |
| 104 | - javaHome="$(dirname "\"$javaExecutable\"")" | ||
| 105 | - javaHome=$(expr "$javaHome" : '\(.*\)/bin') | 131 | + javaHome="`dirname \"$javaExecutable\"`" |
| 132 | + javaHome=`expr "$javaHome" : '\(.*\)/bin'` | ||
| 106 | JAVA_HOME="$javaHome" | 133 | JAVA_HOME="$javaHome" |
| 107 | export JAVA_HOME | 134 | export JAVA_HOME |
| 108 | fi | 135 | fi |
| @@ -118,7 +145,7 @@ if [ -z "$JAVACMD" ] ; then | @@ -118,7 +145,7 @@ if [ -z "$JAVACMD" ] ; then | ||
| 118 | JAVACMD="$JAVA_HOME/bin/java" | 145 | JAVACMD="$JAVA_HOME/bin/java" |
| 119 | fi | 146 | fi |
| 120 | else | 147 | else |
| 121 | - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" | 148 | + JAVACMD="`which java`" |
| 122 | fi | 149 | fi |
| 123 | fi | 150 | fi |
| 124 | 151 | ||
| @@ -132,9 +159,12 @@ if [ -z "$JAVA_HOME" ] ; then | @@ -132,9 +159,12 @@ if [ -z "$JAVA_HOME" ] ; then | ||
| 132 | echo "Warning: JAVA_HOME environment variable is not set." | 159 | echo "Warning: JAVA_HOME environment variable is not set." |
| 133 | fi | 160 | fi |
| 134 | 161 | ||
| 162 | +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher | ||
| 163 | + | ||
| 135 | # traverses directory structure from process work directory to filesystem root | 164 | # traverses directory structure from process work directory to filesystem root |
| 136 | # first directory with .mvn subdirectory is considered project base directory | 165 | # first directory with .mvn subdirectory is considered project base directory |
| 137 | find_maven_basedir() { | 166 | find_maven_basedir() { |
| 167 | + | ||
| 138 | if [ -z "$1" ] | 168 | if [ -z "$1" ] |
| 139 | then | 169 | then |
| 140 | echo "Path not specified to find_maven_basedir" | 170 | echo "Path not specified to find_maven_basedir" |
| @@ -150,99 +180,96 @@ find_maven_basedir() { | @@ -150,99 +180,96 @@ find_maven_basedir() { | ||
| 150 | fi | 180 | fi |
| 151 | # workaround for JBEAP-8937 (on Solaris 10/Sparc) | 181 | # workaround for JBEAP-8937 (on Solaris 10/Sparc) |
| 152 | if [ -d "${wdir}" ]; then | 182 | if [ -d "${wdir}" ]; then |
| 153 | - wdir=$(cd "$wdir/.." || exit 1; pwd) | 183 | + wdir=`cd "$wdir/.."; pwd` |
| 154 | fi | 184 | fi |
| 155 | # end of workaround | 185 | # end of workaround |
| 156 | done | 186 | done |
| 157 | - printf '%s' "$(cd "$basedir" || exit 1; pwd)" | 187 | + echo "${basedir}" |
| 158 | } | 188 | } |
| 159 | 189 | ||
| 160 | # concatenates all lines of a file | 190 | # concatenates all lines of a file |
| 161 | concat_lines() { | 191 | concat_lines() { |
| 162 | if [ -f "$1" ]; then | 192 | if [ -f "$1" ]; then |
| 163 | - # Remove \r in case we run on Windows within Git Bash | ||
| 164 | - # and check out the repository with auto CRLF management | ||
| 165 | - # enabled. Otherwise, we may read lines that are delimited with | ||
| 166 | - # \r\n and produce $'-Xarg\r' rather than -Xarg due to word | ||
| 167 | - # splitting rules. | ||
| 168 | - tr -s '\r\n' ' ' < "$1" | ||
| 169 | - fi | ||
| 170 | -} | ||
| 171 | - | ||
| 172 | -log() { | ||
| 173 | - if [ "$MVNW_VERBOSE" = true ]; then | ||
| 174 | - printf '%s\n' "$1" | 193 | + echo "$(tr -s '\n' ' ' < "$1")" |
| 175 | fi | 194 | fi |
| 176 | } | 195 | } |
| 177 | 196 | ||
| 178 | -BASE_DIR=$(find_maven_basedir "$(dirname "$0")") | 197 | +BASE_DIR=`find_maven_basedir "$(pwd)"` |
| 179 | if [ -z "$BASE_DIR" ]; then | 198 | if [ -z "$BASE_DIR" ]; then |
| 180 | exit 1; | 199 | exit 1; |
| 181 | fi | 200 | fi |
| 182 | 201 | ||
| 183 | -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR | ||
| 184 | -log "$MAVEN_PROJECTBASEDIR" | ||
| 185 | - | ||
| 186 | ########################################################################################## | 202 | ########################################################################################## |
| 187 | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | 203 | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central |
| 188 | # This allows using the maven wrapper in projects that prohibit checking in binary data. | 204 | # This allows using the maven wrapper in projects that prohibit checking in binary data. |
| 189 | ########################################################################################## | 205 | ########################################################################################## |
| 190 | -wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" | ||
| 191 | -if [ -r "$wrapperJarPath" ]; then | ||
| 192 | - log "Found $wrapperJarPath" | 206 | +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then |
| 207 | + if [ "$MVNW_VERBOSE" = true ]; then | ||
| 208 | + echo "Found .mvn/wrapper/maven-wrapper.jar" | ||
| 209 | + fi | ||
| 193 | else | 210 | else |
| 194 | - log "Couldn't find $wrapperJarPath, downloading it ..." | ||
| 195 | - | 211 | + if [ "$MVNW_VERBOSE" = true ]; then |
| 212 | + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." | ||
| 213 | + fi | ||
| 196 | if [ -n "$MVNW_REPOURL" ]; then | 214 | if [ -n "$MVNW_REPOURL" ]; then |
| 197 | - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" | 215 | + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" |
| 198 | else | 216 | else |
| 199 | - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" | 217 | + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" |
| 200 | fi | 218 | fi |
| 201 | - while IFS="=" read -r key value; do | ||
| 202 | - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) | ||
| 203 | - safeValue=$(echo "$value" | tr -d '\r') | ||
| 204 | - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; | 219 | + while IFS="=" read key value; do |
| 220 | + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; | ||
| 205 | esac | 221 | esac |
| 206 | - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" | ||
| 207 | - log "Downloading from: $wrapperUrl" | ||
| 208 | - | 222 | + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" |
| 223 | + if [ "$MVNW_VERBOSE" = true ]; then | ||
| 224 | + echo "Downloading from: $jarUrl" | ||
| 225 | + fi | ||
| 226 | + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" | ||
| 209 | if $cygwin; then | 227 | if $cygwin; then |
| 210 | - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") | 228 | + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` |
| 211 | fi | 229 | fi |
| 212 | 230 | ||
| 213 | if command -v wget > /dev/null; then | 231 | if command -v wget > /dev/null; then |
| 214 | - log "Found wget ... using wget" | ||
| 215 | - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" | 232 | + if [ "$MVNW_VERBOSE" = true ]; then |
| 233 | + echo "Found wget ... using wget" | ||
| 234 | + fi | ||
| 216 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then | 235 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then |
| 217 | - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" | 236 | + wget "$jarUrl" -O "$wrapperJarPath" |
| 218 | else | 237 | else |
| 219 | - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" | 238 | + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" |
| 220 | fi | 239 | fi |
| 221 | elif command -v curl > /dev/null; then | 240 | elif command -v curl > /dev/null; then |
| 222 | - log "Found curl ... using curl" | ||
| 223 | - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" | 241 | + if [ "$MVNW_VERBOSE" = true ]; then |
| 242 | + echo "Found curl ... using curl" | ||
| 243 | + fi | ||
| 224 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then | 244 | if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then |
| 225 | - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" | 245 | + curl -o "$wrapperJarPath" "$jarUrl" -f |
| 226 | else | 246 | else |
| 227 | - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" | 247 | + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f |
| 228 | fi | 248 | fi |
| 249 | + | ||
| 229 | else | 250 | else |
| 230 | - log "Falling back to using Java to download" | ||
| 231 | - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" | ||
| 232 | - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" | 251 | + if [ "$MVNW_VERBOSE" = true ]; then |
| 252 | + echo "Falling back to using Java to download" | ||
| 253 | + fi | ||
| 254 | + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" | ||
| 233 | # For Cygwin, switch paths to Windows format before running javac | 255 | # For Cygwin, switch paths to Windows format before running javac |
| 234 | if $cygwin; then | 256 | if $cygwin; then |
| 235 | - javaSource=$(cygpath --path --windows "$javaSource") | ||
| 236 | - javaClass=$(cygpath --path --windows "$javaClass") | 257 | + javaClass=`cygpath --path --windows "$javaClass"` |
| 237 | fi | 258 | fi |
| 238 | - if [ -e "$javaSource" ]; then | ||
| 239 | - if [ ! -e "$javaClass" ]; then | ||
| 240 | - log " - Compiling MavenWrapperDownloader.java ..." | ||
| 241 | - ("$JAVA_HOME/bin/javac" "$javaSource") | 259 | + if [ -e "$javaClass" ]; then |
| 260 | + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | ||
| 261 | + if [ "$MVNW_VERBOSE" = true ]; then | ||
| 262 | + echo " - Compiling MavenWrapperDownloader.java ..." | ||
| 263 | + fi | ||
| 264 | + # Compiling the Java class | ||
| 265 | + ("$JAVA_HOME/bin/javac" "$javaClass") | ||
| 242 | fi | 266 | fi |
| 243 | - if [ -e "$javaClass" ]; then | ||
| 244 | - log " - Running MavenWrapperDownloader.java ..." | ||
| 245 | - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" | 267 | + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then |
| 268 | + # Running the downloader | ||
| 269 | + if [ "$MVNW_VERBOSE" = true ]; then | ||
| 270 | + echo " - Running MavenWrapperDownloader.java ..." | ||
| 271 | + fi | ||
| 272 | + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") | ||
| 246 | fi | 273 | fi |
| 247 | fi | 274 | fi |
| 248 | fi | 275 | fi |
| @@ -251,58 +278,33 @@ fi | @@ -251,58 +278,33 @@ fi | ||
| 251 | # End of extension | 278 | # End of extension |
| 252 | ########################################################################################## | 279 | ########################################################################################## |
| 253 | 280 | ||
| 254 | -# If specified, validate the SHA-256 sum of the Maven wrapper jar file | ||
| 255 | -wrapperSha256Sum="" | ||
| 256 | -while IFS="=" read -r key value; do | ||
| 257 | - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; | ||
| 258 | - esac | ||
| 259 | -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" | ||
| 260 | -if [ -n "$wrapperSha256Sum" ]; then | ||
| 261 | - wrapperSha256Result=false | ||
| 262 | - if command -v sha256sum > /dev/null; then | ||
| 263 | - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then | ||
| 264 | - wrapperSha256Result=true | ||
| 265 | - fi | ||
| 266 | - elif command -v shasum > /dev/null; then | ||
| 267 | - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then | ||
| 268 | - wrapperSha256Result=true | ||
| 269 | - fi | ||
| 270 | - else | ||
| 271 | - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." | ||
| 272 | - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." | ||
| 273 | - exit 1 | ||
| 274 | - fi | ||
| 275 | - if [ $wrapperSha256Result = false ]; then | ||
| 276 | - echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 | ||
| 277 | - echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 | ||
| 278 | - echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 | ||
| 279 | - exit 1 | ||
| 280 | - fi | 281 | +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} |
| 282 | +if [ "$MVNW_VERBOSE" = true ]; then | ||
| 283 | + echo $MAVEN_PROJECTBASEDIR | ||
| 281 | fi | 284 | fi |
| 282 | - | ||
| 283 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" | 285 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" |
| 284 | 286 | ||
| 285 | # For Cygwin, switch paths to Windows format before running java | 287 | # For Cygwin, switch paths to Windows format before running java |
| 286 | if $cygwin; then | 288 | if $cygwin; then |
| 289 | + [ -n "$M2_HOME" ] && | ||
| 290 | + M2_HOME=`cygpath --path --windows "$M2_HOME"` | ||
| 287 | [ -n "$JAVA_HOME" ] && | 291 | [ -n "$JAVA_HOME" ] && |
| 288 | - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") | 292 | + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` |
| 289 | [ -n "$CLASSPATH" ] && | 293 | [ -n "$CLASSPATH" ] && |
| 290 | - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") | 294 | + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` |
| 291 | [ -n "$MAVEN_PROJECTBASEDIR" ] && | 295 | [ -n "$MAVEN_PROJECTBASEDIR" ] && |
| 292 | - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") | 296 | + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` |
| 293 | fi | 297 | fi |
| 294 | 298 | ||
| 295 | # Provide a "standardized" way to retrieve the CLI args that will | 299 | # Provide a "standardized" way to retrieve the CLI args that will |
| 296 | # work with both Windows and non-Windows executions. | 300 | # work with both Windows and non-Windows executions. |
| 297 | -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" | 301 | +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" |
| 298 | export MAVEN_CMD_LINE_ARGS | 302 | export MAVEN_CMD_LINE_ARGS |
| 299 | 303 | ||
| 300 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | 304 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain |
| 301 | 305 | ||
| 302 | -# shellcheck disable=SC2086 # safe args | ||
| 303 | exec "$JAVACMD" \ | 306 | exec "$JAVACMD" \ |
| 304 | $MAVEN_OPTS \ | 307 | $MAVEN_OPTS \ |
| 305 | - $MAVEN_DEBUG_OPTS \ | ||
| 306 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ | 308 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ |
| 307 | - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ | 309 | + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ |
| 308 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" | 310 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
src/main/java/com/batch/config/MatchingExtraProcessorAuto.java
| @@ -42,12 +42,14 @@ public class MatchingExtraProcessorAuto { | @@ -42,12 +42,14 @@ public class MatchingExtraProcessorAuto { | ||
| 42 | String sAccnutYm = (String) paramRec.get("accnut_ym"); | 42 | String sAccnutYm = (String) paramRec.get("accnut_ym"); |
| 43 | String sCprCode = (String) paramRec.get("cpr_code"); | 43 | String sCprCode = (String) paramRec.get("cpr_code"); |
| 44 | String sPartCpr = (String) paramRec.get("partn_cpr"); | 44 | String sPartCpr = (String) paramRec.get("partn_cpr"); |
| 45 | + String sDelngCrncy = (String) paramRec.get("delng_crncy"); | ||
| 45 | String sConds = (String) paramRec.get("conds"); | 46 | String sConds = (String) paramRec.get("conds"); |
| 46 | 47 | ||
| 47 | //작업시작 | 48 | //작업시작 |
| 48 | Map<String, Object> mParam = new HashMap<String, Object>(); | 49 | Map<String, Object> mParam = new HashMap<String, Object>(); |
| 49 | mParam.put("sysSe", sSysSe); | 50 | mParam.put("sysSe", sSysSe); |
| 50 | mParam.put("accnutYm", sAccnutYm); | 51 | mParam.put("accnutYm", sAccnutYm); |
| 52 | + mParam.put("delngCurncy", sDelngCrncy); | ||
| 51 | mParam.put("conds", sConds); | 53 | mParam.put("conds", sConds); |
| 52 | 54 | ||
| 53 | //---------------------------------------------------------------------------- | 55 | //---------------------------------------------------------------------------- |
src/main/java/com/batch/controller/JobController.java
| @@ -8,6 +8,7 @@ import java.util.Map; | @@ -8,6 +8,7 @@ import java.util.Map; | ||
| 8 | import java.util.UUID; | 8 | import java.util.UUID; |
| 9 | 9 | ||
| 10 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 11 | +import org.springframework.beans.factory.annotation.Value; | ||
| 11 | import org.springframework.web.bind.annotation.GetMapping; | 12 | import org.springframework.web.bind.annotation.GetMapping; |
| 12 | import org.springframework.web.bind.annotation.PathVariable; | 13 | import org.springframework.web.bind.annotation.PathVariable; |
| 13 | import org.springframework.web.bind.annotation.PostMapping; | 14 | import org.springframework.web.bind.annotation.PostMapping; |
| @@ -20,6 +21,7 @@ import com.batch.config.MatchingSetup.Matching; | @@ -20,6 +21,7 @@ import com.batch.config.MatchingSetup.Matching; | ||
| 20 | import com.batch.mapper.primary.MatchingInnerDelingMapper; | 21 | import com.batch.mapper.primary.MatchingInnerDelingMapper; |
| 21 | import com.batch.service.JobService; | 22 | import com.batch.service.JobService; |
| 22 | import com.batch.util.FileUtil; | 23 | import com.batch.util.FileUtil; |
| 24 | +import com.batch.util.JsonUtil; | ||
| 23 | import com.google.gson.JsonObject; | 25 | import com.google.gson.JsonObject; |
| 24 | 26 | ||
| 25 | import lombok.extern.slf4j.Slf4j; | 27 | import lombok.extern.slf4j.Slf4j; |
| @@ -33,6 +35,12 @@ public class JobController { | @@ -33,6 +35,12 @@ public class JobController { | ||
| 33 | private JobService jobService; | 35 | private JobService jobService; |
| 34 | @Autowired | 36 | @Autowired |
| 35 | private MatchingInnerDelingMapper matchingInnerDelingMapper; | 37 | private MatchingInnerDelingMapper matchingInnerDelingMapper; |
| 38 | + @Value("${thread.ai.count.rowmax}") | ||
| 39 | + BigDecimal bdAiAsyncMaxRowCount; | ||
| 40 | + @Value("${thread.ai.processing.wait}") | ||
| 41 | + BigDecimal bdAiAsyncWaitTime; | ||
| 42 | + @Value("${thread.ai.processing.wait.total}") | ||
| 43 | + BigDecimal bdAiAsyncTotalWaitTime; | ||
| 36 | 44 | ||
| 37 | 45 | ||
| 38 | 46 | ||
| @@ -67,9 +75,9 @@ public class JobController { | @@ -67,9 +75,9 @@ public class JobController { | ||
| 67 | UUID uuid = UUID.randomUUID(); | 75 | UUID uuid = UUID.randomUUID(); |
| 68 | String sJobGroup = uuid.toString(); | 76 | String sJobGroup = uuid.toString(); |
| 69 | 77 | ||
| 70 | - log.debug("Start Create Job"); | 78 | + log.info("Start Create Job"); |
| 71 | jobService.createData(sJobGroup, params); | 79 | jobService.createData(sJobGroup, params); |
| 72 | - log.debug("End Create Job"); | 80 | + log.info("End Create Job"); |
| 73 | 81 | ||
| 74 | Map<String, String> rtnMap = new HashMap<String, String>(); | 82 | Map<String, String> rtnMap = new HashMap<String, String>(); |
| 75 | rtnMap.put("jobGroupId", sJobGroup); | 83 | rtnMap.put("jobGroupId", sJobGroup); |
| @@ -94,9 +102,9 @@ public class JobController { | @@ -94,9 +102,9 @@ public class JobController { | ||
| 94 | UUID uuid = UUID.randomUUID(); | 102 | UUID uuid = UUID.randomUUID(); |
| 95 | String sJobGroup = uuid.toString(); | 103 | String sJobGroup = uuid.toString(); |
| 96 | 104 | ||
| 97 | - log.debug("Start Matching Job"); | 105 | + log.info("Start Matching Job"); |
| 98 | jobService.matchingJob(sJobGroup, params); | 106 | jobService.matchingJob(sJobGroup, params); |
| 99 | - log.debug("End Matching Job"); | 107 | + log.info("End Matching Job"); |
| 100 | 108 | ||
| 101 | Map<String, String> rtnMap = new HashMap<String, String>(); | 109 | Map<String, String> rtnMap = new HashMap<String, String>(); |
| 102 | rtnMap.put("jobGroupId", sJobGroup); | 110 | rtnMap.put("jobGroupId", sJobGroup); |
| @@ -122,7 +130,8 @@ public class JobController { | @@ -122,7 +130,8 @@ public class JobController { | ||
| 122 | UUID uuid = UUID.randomUUID(); | 130 | UUID uuid = UUID.randomUUID(); |
| 123 | String sJobGroup = uuid.toString(); | 131 | String sJobGroup = uuid.toString(); |
| 124 | 132 | ||
| 125 | - log.debug("Start Extra Matching Job"); | 133 | + log.info("Start Extra Matching Job"); |
| 134 | + params.put("asCurrency", "Y"); | ||
| 126 | List<Map> retData = matchingInnerDelingMapper.getCustomItemReadData(params); | 135 | List<Map> retData = matchingInnerDelingMapper.getCustomItemReadData(params); |
| 127 | 136 | ||
| 128 | // 수익/비용 | 137 | // 수익/비용 |
| @@ -140,7 +149,7 @@ public class JobController { | @@ -140,7 +149,7 @@ public class JobController { | ||
| 140 | jobService.extraJobSub(sJobGroup, cParams); | 149 | jobService.extraJobSub(sJobGroup, cParams); |
| 141 | } | 150 | } |
| 142 | 151 | ||
| 143 | - log.debug("End Extra Matching Job"); | 152 | + log.info("End Extra Matching Job"); |
| 144 | 153 | ||
| 145 | Map<String, String> rtnMap = new HashMap<String, String>(); | 154 | Map<String, String> rtnMap = new HashMap<String, String>(); |
| 146 | rtnMap.put("jobGroupId", sJobGroup); | 155 | rtnMap.put("jobGroupId", sJobGroup); |
| @@ -166,7 +175,7 @@ public class JobController { | @@ -166,7 +175,7 @@ public class JobController { | ||
| 166 | UUID uuid = UUID.randomUUID(); | 175 | UUID uuid = UUID.randomUUID(); |
| 167 | String sJobGroup = uuid.toString(); | 176 | String sJobGroup = uuid.toString(); |
| 168 | 177 | ||
| 169 | - log.debug("Start AI Sub Matching Job"); | 178 | + log.info("Start AI Sub Matching Job"); |
| 170 | List<Map> retData = matchingInnerDelingMapper.getAiSubReadData(params); | 179 | List<Map> retData = matchingInnerDelingMapper.getAiSubReadData(params); |
| 171 | 180 | ||
| 172 | //AI의 경우 수익비용만 매칭하고 있음 | 181 | //AI의 경우 수익비용만 매칭하고 있음 |
| @@ -178,7 +187,7 @@ public class JobController { | @@ -178,7 +187,7 @@ public class JobController { | ||
| 178 | jobService.aiSubJobSub(sJobGroup, cParams); | 187 | jobService.aiSubJobSub(sJobGroup, cParams); |
| 179 | } | 188 | } |
| 180 | 189 | ||
| 181 | - log.debug("End Extra Matching Job"); | 190 | + log.info("End Extra Matching Job"); |
| 182 | 191 | ||
| 183 | Map<String, String> rtnMap = new HashMap<String, String>(); | 192 | Map<String, String> rtnMap = new HashMap<String, String>(); |
| 184 | rtnMap.put("jobGroupId", sJobGroup); | 193 | rtnMap.put("jobGroupId", sJobGroup); |
| @@ -200,19 +209,49 @@ public class JobController { | @@ -200,19 +209,49 @@ public class JobController { | ||
| 200 | * "error_range": "0" | 209 | * "error_range": "0" |
| 201 | * } | 210 | * } |
| 202 | */ | 211 | */ |
| 203 | - //Job Create Log | 212 | + //Job Create LogmatchingInnerDelingMapper |
| 204 | UUID uuid = UUID.randomUUID(); | 213 | UUID uuid = UUID.randomUUID(); |
| 205 | String sJobGroup = uuid.toString(); | 214 | String sJobGroup = uuid.toString(); |
| 206 | 215 | ||
| 207 | - log.debug("Start AI Matching Job"); | 216 | + log.info("Start AI Matching Job"); |
| 208 | List<Map> retData = matchingInnerDelingMapper.getAiReadData(params); | 217 | List<Map> retData = matchingInnerDelingMapper.getAiReadData(params); |
| 218 | + BigDecimal bdCurrentRowCount = BigDecimal.ZERO; | ||
| 209 | for(Map curMap : retData) { | 219 | for(Map curMap : retData) { |
| 210 | Map<String, Object> curMParams = new HashMap<String, Object>(); | 220 | Map<String, Object> curMParams = new HashMap<String, Object>(); |
| 211 | curMParams.putAll(curMap); | 221 | curMParams.putAll(curMap); |
| 212 | curMParams.put("error_range", params.get("error_range")); | 222 | curMParams.put("error_range", params.get("error_range")); |
| 223 | + | ||
| 224 | + BigDecimal bdCntAll = new BigDecimal(String.valueOf(curMap.get("cnt_all"))); | ||
| 225 | + bdCurrentRowCount = bdCurrentRowCount.add(bdCntAll); | ||
| 226 | + log.info("Call Matching Job (" + JsonUtil.objectToString(curMap) + ")"); | ||
| 213 | jobService.aiJobSub(sJobGroup, curMParams); | 227 | jobService.aiJobSub(sJobGroup, curMParams); |
| 228 | + | ||
| 229 | + //전체카운트가 처리가능카운트를 넘어설때 | ||
| 230 | + if (bdCurrentRowCount.compareTo(bdAiAsyncMaxRowCount) > -1) { | ||
| 231 | + bdCurrentRowCount = BigDecimal.ZERO; | ||
| 232 | + | ||
| 233 | + //현재 작업그룹이 종료가 되었는지 체크해서 종료시 카운트 초기화 하고 다음작업을 한다. | ||
| 234 | + boolean blnStatus = true; | ||
| 235 | + Integer iTotalWait = 0; | ||
| 236 | + Integer iWaitTime = bdAiAsyncWaitTime.intValue() * 1000; //밀리초 | ||
| 237 | + do { | ||
| 238 | + Map<String, Object> mParam = new HashMap<String, Object>(); | ||
| 239 | + mParam.put("userJobGroup", sJobGroup); | ||
| 240 | + List<Map> lmJob = matchingInnerDelingMapper.getUserJobStatus(mParam); | ||
| 241 | + for (Map curJob : lmJob) { | ||
| 242 | + String ScurStatus = (String) curJob.get("status"); | ||
| 243 | + if (!"Finished".equalsIgnoreCase(ScurStatus)) { | ||
| 244 | + blnStatus = false; | ||
| 245 | + Thread.sleep(iWaitTime); | ||
| 246 | + iTotalWait = iTotalWait + iWaitTime; | ||
| 247 | + break; | ||
| 248 | + } | ||
| 249 | + } | ||
| 250 | + } while (!blnStatus && iTotalWait < bdAiAsyncTotalWaitTime.intValue()); //전체 기다리는 시간까지 체크 | ||
| 251 | + log.info("Next Thread Group Processing"); | ||
| 252 | + } | ||
| 214 | } | 253 | } |
| 215 | - log.debug("End AI Matching Job"); | 254 | + log.info("End AI Matching Job"); |
| 216 | 255 | ||
| 217 | Map<String, String> rtnMap = new HashMap<String, String>(); | 256 | Map<String, String> rtnMap = new HashMap<String, String>(); |
| 218 | rtnMap.put("jobGroupId", sJobGroup); | 257 | rtnMap.put("jobGroupId", sJobGroup); |
| @@ -233,9 +272,9 @@ public class JobController { | @@ -233,9 +272,9 @@ public class JobController { | ||
| 233 | UUID uuid = UUID.randomUUID(); | 272 | UUID uuid = UUID.randomUUID(); |
| 234 | String sJobGroup = uuid.toString(); | 273 | String sJobGroup = uuid.toString(); |
| 235 | 274 | ||
| 236 | - log.debug("Start Return Job"); | 275 | + log.info("Start Return Job"); |
| 237 | jobService.returnRwsultData(sJobGroup, params); | 276 | jobService.returnRwsultData(sJobGroup, params); |
| 238 | - log.debug("End Return Job"); | 277 | + log.info("End Return Job"); |
| 239 | 278 | ||
| 240 | Map<String, String> rtnMap = new HashMap<String, String>(); | 279 | Map<String, String> rtnMap = new HashMap<String, String>(); |
| 241 | rtnMap.put("jobGroupId", sJobGroup); | 280 | rtnMap.put("jobGroupId", sJobGroup); |
| @@ -311,6 +350,34 @@ public class JobController { | @@ -311,6 +350,34 @@ public class JobController { | ||
| 311 | 350 | ||
| 312 | return rtnVal; | 351 | return rtnVal; |
| 313 | } | 352 | } |
| 353 | + | ||
| 354 | + | ||
| 355 | + @PostMapping("/callAsyncJob") | ||
| 356 | + public Map<String, String> callAsyncJob( @RequestBody Map<String, String> params) throws Exception { | ||
| 357 | + | ||
| 358 | + /* | ||
| 359 | + * { | ||
| 360 | + * "PrgName": "cmd", | ||
| 361 | + * "PrgParams": "/C dir /w", | ||
| 362 | + * } | ||
| 363 | + */ | ||
| 364 | + //Job Create Log | ||
| 365 | + UUID uuid = UUID.randomUUID(); | ||
| 366 | + String sJobGroup = uuid.toString(); | ||
| 367 | + | ||
| 368 | + log.info("Start AI Sub Matching Job"); | ||
| 369 | + | ||
| 370 | + //OS Command Line 수행 | ||
| 371 | + jobService.callAsyncJobSub(sJobGroup, params); | ||
| 372 | + | ||
| 373 | + log.info("End Extra Matching Job"); | ||
| 374 | + | ||
| 375 | + Map<String, String> rtnMap = new HashMap<String, String>(); | ||
| 376 | + rtnMap.put("jobGroupId", sJobGroup); | ||
| 377 | + rtnMap.put("jobMessage", "OS Command 작업을 시작합니다. 작업이 끝난후 작업결과는 별도로 확인 바랍니다."); | ||
| 378 | + | ||
| 379 | + return rtnMap; | ||
| 380 | + } | ||
| 314 | 381 | ||
| 315 | 382 | ||
| 316 | } | 383 | } |
src/main/java/com/batch/service/JobService.java
| @@ -36,7 +36,7 @@ import com.batch.config.MatchingSetup.Matching; | @@ -36,7 +36,7 @@ import com.batch.config.MatchingSetup.Matching; | ||
| 36 | import com.batch.mapper.primary.MatchingInnerDelingMapper; | 36 | import com.batch.mapper.primary.MatchingInnerDelingMapper; |
| 37 | import com.batch.mapper.secondary.OracleMapper; | 37 | import com.batch.mapper.secondary.OracleMapper; |
| 38 | import com.batch.util.FileUtil; | 38 | import com.batch.util.FileUtil; |
| 39 | - | 39 | +import com.batch.util.StringUtil; |
| 40 | import com.batch.service.JobService; | 40 | import com.batch.service.JobService; |
| 41 | import lombok.extern.slf4j.Slf4j; | 41 | import lombok.extern.slf4j.Slf4j; |
| 42 | 42 | ||
| @@ -49,6 +49,9 @@ public class JobService { | @@ -49,6 +49,9 @@ public class JobService { | ||
| 49 | 49 | ||
| 50 | @Value("${python.ai.target}") | 50 | @Value("${python.ai.target}") |
| 51 | String sPythonAiTarget; | 51 | String sPythonAiTarget; |
| 52 | + | ||
| 53 | + @Value("${matching.auto.exceptListByComma}") | ||
| 54 | + String sExceptMatchType; | ||
| 52 | 55 | ||
| 53 | @Autowired | 56 | @Autowired |
| 54 | private JobLauncher jobLauncher; | 57 | private JobLauncher jobLauncher; |
| @@ -102,8 +105,18 @@ public class JobService { | @@ -102,8 +105,18 @@ public class JobService { | ||
| 102 | } | 105 | } |
| 103 | } | 106 | } |
| 104 | 107 | ||
| 105 | - | ||
| 106 | for (String sJobType : lJobType) { | 108 | for (String sJobType : lJobType) { |
| 109 | + if (!matchingSetup.getMatching(sJobType).getActive()) { | ||
| 110 | + log.info("[" + sThreadName + "]JobType(" + sJobType + " is Disabled"); | ||
| 111 | + continue; | ||
| 112 | + }; | ||
| 113 | + | ||
| 114 | + List<String> lExceptMatchType = StringUtil.StringToArrayList(sExceptMatchType); | ||
| 115 | + if (lExceptMatchType.indexOf(sJobType) > -1) { | ||
| 116 | + log.info("[" + sThreadName + "]JobType(" + sJobType + " is Excepted"); | ||
| 117 | + continue; | ||
| 118 | + }; | ||
| 119 | + | ||
| 107 | log.info("[" + sThreadName + "]Current running job type: " + sJobType); | 120 | log.info("[" + sThreadName + "]Current running job type: " + sJobType); |
| 108 | JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params); | 121 | JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params); |
| 109 | if (!jobExe.getStatus().equals(BatchStatus.COMPLETED)) { | 122 | if (!jobExe.getStatus().equals(BatchStatus.COMPLETED)) { |
| @@ -143,7 +156,7 @@ public class JobService { | @@ -143,7 +156,7 @@ public class JobService { | ||
| 143 | String sThreadName = Thread.currentThread().getName(); | 156 | String sThreadName = Thread.currentThread().getName(); |
| 144 | long startTime = System.currentTimeMillis(); | 157 | long startTime = System.currentTimeMillis(); |
| 145 | log.info("extra [" + sThreadName + "]Job Started : " + startTime); | 158 | log.info("extra [" + sThreadName + "]Job Started : " + startTime); |
| 146 | - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString()); | 159 | + log.info("extra [" + sThreadName + "]params=" + paramRec.toString()); |
| 147 | 160 | ||
| 148 | MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper); | 161 | MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper); |
| 149 | 162 | ||
| @@ -468,5 +481,60 @@ public class JobService { | @@ -468,5 +481,60 @@ public class JobService { | ||
| 468 | paramLog.put("exit_message", ""); | 481 | paramLog.put("exit_message", ""); |
| 469 | matchingInnerDelingMapper.finishUserJob(paramLog); | 482 | matchingInnerDelingMapper.finishUserJob(paramLog); |
| 470 | 483 | ||
| 471 | - } | 484 | + } |
| 485 | + | ||
| 486 | + | ||
| 487 | + @SuppressWarnings("rawtypes") | ||
| 488 | + @Async("commAsync") | ||
| 489 | + public void callAsyncJobSub(String jobGroupId, Map paramRec) throws Exception { | ||
| 490 | + | ||
| 491 | + | ||
| 492 | + //Job Create Log | ||
| 493 | + UUID uuid = UUID.randomUUID(); | ||
| 494 | + HashMap<String, String> mt = new HashMap<String, String>(); | ||
| 495 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); | ||
| 496 | + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); | ||
| 497 | + | ||
| 498 | + Map<String, Object> paramLog = new HashMap<String, Object>(); | ||
| 499 | + paramLog.put("user_job_group", jobGroupId); | ||
| 500 | + paramLog.put("user_job_id", sDate); | ||
| 501 | + paramLog.put("user_job_name", "OS Command Run(" + paramRec.toString() + ")"); | ||
| 502 | + matchingInnerDelingMapper.createUserJob(paramLog); | ||
| 503 | + | ||
| 504 | + | ||
| 505 | + long startTime = System.currentTimeMillis(); | ||
| 506 | + log.info("OS Command Run Started : " + startTime); | ||
| 507 | + log.info("OS Command Run params=" + paramRec.toString()); | ||
| 508 | + | ||
| 509 | + String sPrgName = (String) paramRec.get("PrgName"); | ||
| 510 | + String sPrgParam = (String) paramRec.get("PrgParams"); | ||
| 511 | + List<String> lParams = StringUtil.StringToArrayList(sPrgParam, " "); | ||
| 512 | + | ||
| 513 | + ArrayList<String> lcmd = new ArrayList<String>(); | ||
| 514 | + lcmd.add(sPrgName); | ||
| 515 | + lcmd.addAll(lParams); | ||
| 516 | + lcmd.add(jobGroupId); | ||
| 517 | + | ||
| 518 | + new ProcessExecutor() | ||
| 519 | + .command(lcmd) | ||
| 520 | + .redirectOutput(new LogOutputStream() { | ||
| 521 | + @Override | ||
| 522 | + protected void processLine(String line) { | ||
| 523 | + log.info(line); | ||
| 524 | + } | ||
| 525 | + }) | ||
| 526 | + .execute(); | ||
| 527 | + | ||
| 528 | + long endTime = System.currentTimeMillis(); | ||
| 529 | + log.info("OS Command Run Ended: " + endTime); | ||
| 530 | + log.info("OS Command Running Time : " + (endTime - startTime) + "ms"); | ||
| 531 | + | ||
| 532 | + | ||
| 533 | +// //작업종료에 대한 로그 업데이트 | ||
| 534 | +// paramLog.put("exit_code", "0"); | ||
| 535 | +// paramLog.put("exit_message", ""); | ||
| 536 | +// matchingInnerDelingMapper.finishUserJob(paramLog); | ||
| 537 | + | ||
| 538 | + } | ||
| 539 | + | ||
| 472 | } | 540 | } |
src/main/resources/application.properties
| @@ -18,14 +18,14 @@ spring.datasource.hikari.primary.username=account | @@ -18,14 +18,14 @@ spring.datasource.hikari.primary.username=account | ||
| 18 | spring.datasource.hikari.primary.password=daeucna10! | 18 | spring.datasource.hikari.primary.password=daeucna10! |
| 19 | 19 | ||
| 20 | # secondary | 20 | # secondary |
| 21 | -#spring.datasource.hikari.secondary.driver-class-name=oracle.jdbc.driver.OracleDriver | ||
| 22 | -#spring.datasource.hikari.secondary.jdbc-url=jdbc:oracle:thin:@vanguardlab.kr:63522/CONFINAS19C | ||
| 23 | -#spring.datasource.hikari.secondary.username=ai | ||
| 24 | -#spring.datasource.hikari.secondary.password=ai | ||
| 25 | spring.datasource.hikari.secondary.driver-class-name=oracle.jdbc.driver.OracleDriver | 21 | spring.datasource.hikari.secondary.driver-class-name=oracle.jdbc.driver.OracleDriver |
| 26 | -spring.datasource.hikari.secondary.jdbc-url=jdbc:oracle:thin:@daeuserver2.iptime.org:1521/orcl | ||
| 27 | -spring.datasource.hikari.secondary.username=CONFINAS3 | ||
| 28 | -spring.datasource.hikari.secondary.password=CONFINAS3 | 22 | +spring.datasource.hikari.secondary.jdbc-url=jdbc:oracle:thin:@vanguardlab.kr:63522/CONFINAS19C |
| 23 | +spring.datasource.hikari.secondary.username=ai | ||
| 24 | +spring.datasource.hikari.secondary.password=ai | ||
| 25 | +#spring.datasource.hikari.secondary.driver-class-name=oracle.jdbc.driver.OracleDriver | ||
| 26 | +#spring.datasource.hikari.secondary.jdbc-url=jdbc:oracle:thin:@daeuserver2.iptime.org:1521/orcl | ||
| 27 | +#spring.datasource.hikari.secondary.username=CONFINAS3 | ||
| 28 | +#spring.datasource.hikari.secondary.password=CONFINAS3 | ||
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | 31 | ||
| @@ -52,7 +52,13 @@ logging.level.p6spy=off | @@ -52,7 +52,13 @@ logging.level.p6spy=off | ||
| 52 | thread.comm.count=10 | 52 | thread.comm.count=10 |
| 53 | thread.ext.count=50 | 53 | thread.ext.count=50 |
| 54 | thread.ai.count=50 | 54 | thread.ai.count=50 |
| 55 | +thread.ai.count.rowmax=500 | ||
| 56 | +thread.ai.processing.wait=15 | ||
| 57 | +thread.ai.processing.wait.total=3600 | ||
| 55 | 58 | ||
| 56 | #Python 프로퍼티 설정 | 59 | #Python 프로퍼티 설정 |
| 57 | pytyon.path=D:\\Programs\\devp\\python-3.12.2\\python.exe | 60 | pytyon.path=D:\\Programs\\devp\\python-3.12.2\\python.exe |
| 58 | -python.ai.target=D:\\Working\\Python\\Test1.py | ||
| 59 | \ No newline at end of file | 61 | \ No newline at end of file |
| 62 | +python.ai.target=D:\\Working\\Python\\Test1.py | ||
| 63 | + | ||
| 64 | +#Auto Matching 제외 | ||
| 65 | +matching.auto.exceptListByComma=C-A-ROUND(-2) | ||
| 60 | \ No newline at end of file | 66 | \ No newline at end of file |
src/main/resources/matchingSetup.json
| @@ -289,6 +289,54 @@ | @@ -289,6 +289,54 @@ | ||
| 289 | }, | 289 | }, |
| 290 | 290 | ||
| 291 | 291 | ||
| 292 | + | ||
| 293 | + { | ||
| 294 | + "active": true, | ||
| 295 | + "type": "C-A-ROUND(-2)", | ||
| 296 | + "typeName": "자기수익(전표번호,거래통화),상대비용(전표번호,거래통화),비교(년월,거래통화,거래금액)", | ||
| 297 | + | ||
| 298 | + "condOne": { | ||
| 299 | + "cond": [ | ||
| 300 | + "dta_ty in ('11','21','41')", | ||
| 301 | + "mtch_ty is null", | ||
| 302 | + "chit_no is not null", | ||
| 303 | + "chit_no != ''" | ||
| 304 | + ], | ||
| 305 | + "makeCompareKey": [ | ||
| 306 | + "chit_no", | ||
| 307 | + "delng_crncy" | ||
| 308 | + ] | ||
| 309 | + }, | ||
| 310 | + "condTwo": { | ||
| 311 | + "cond": [ | ||
| 312 | + "dta_ty in ('12','22','42')", | ||
| 313 | + "mtch_ty is null", | ||
| 314 | + "chit_no is not null", | ||
| 315 | + "chit_no != ''" | ||
| 316 | + ], | ||
| 317 | + "makeCompareKey": [ | ||
| 318 | + "chit_no", | ||
| 319 | + "delng_crncy" | ||
| 320 | + ] | ||
| 321 | + }, | ||
| 322 | + "uniqueKey": [ | ||
| 323 | + "sys_se", | ||
| 324 | + "accnut_ym", | ||
| 325 | + "sn" | ||
| 326 | + ], | ||
| 327 | + "compareKey": "compare_ky", | ||
| 328 | + "currencyField": "delng_crncy", | ||
| 329 | + "amtField": "round(sum(delng_amt), -2) as delng_amt", | ||
| 330 | + "compareField": [ | ||
| 331 | + "accnut_ym", | ||
| 332 | + "delng_crncy", | ||
| 333 | + "delng_amt" | ||
| 334 | + ], | ||
| 335 | + "matchingType": "mtch_ty", | ||
| 336 | + "matchingTypeName": "mtch_ty_nm", | ||
| 337 | + "matchingNumber": "mtch_ky" | ||
| 338 | + }, | ||
| 339 | + | ||
| 292 | 340 | ||
| 293 | 341 | ||
| 294 | 342 |
src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml
| @@ -9,6 +9,9 @@ | @@ -9,6 +9,9 @@ | ||
| 9 | , accnut_ym | 9 | , accnut_ym |
| 10 | , cpr_code | 10 | , cpr_code |
| 11 | , partn_cpr | 11 | , partn_cpr |
| 12 | + <if test='asCurrency eq "Y".toString()'> | ||
| 13 | + , delng_crncy | ||
| 14 | + </if> | ||
| 12 | FROM | 15 | FROM |
| 13 | ( | 16 | ( |
| 14 | SELECT | 17 | SELECT |
| @@ -16,6 +19,9 @@ | @@ -16,6 +19,9 @@ | ||
| 16 | , accnut_ym | 19 | , accnut_ym |
| 17 | , cpr_code | 20 | , cpr_code |
| 18 | , partn_cpr | 21 | , partn_cpr |
| 22 | + <if test='asCurrency eq "Y".toString()'> | ||
| 23 | + , delng_crncy | ||
| 24 | + </if> | ||
| 19 | , case when count(*) > 0 then 1 else 0 end as cnt | 25 | , case when count(*) > 0 then 1 else 0 end as cnt |
| 20 | FROM | 26 | FROM |
| 21 | public.batch_tbcr_inner_delng | 27 | public.batch_tbcr_inner_delng |
| @@ -35,12 +41,18 @@ | @@ -35,12 +41,18 @@ | ||
| 35 | , accnut_ym | 41 | , accnut_ym |
| 36 | , cpr_code | 42 | , cpr_code |
| 37 | , partn_cpr | 43 | , partn_cpr |
| 44 | + <if test='asCurrency eq "Y".toString()'> | ||
| 45 | + , delng_crncy | ||
| 46 | + </if> | ||
| 38 | union all | 47 | union all |
| 39 | SELECT | 48 | SELECT |
| 40 | sys_se | 49 | sys_se |
| 41 | , accnut_ym | 50 | , accnut_ym |
| 42 | , partn_cpr as cpr_code | 51 | , partn_cpr as cpr_code |
| 43 | , cpr_code as partn_cpr | 52 | , cpr_code as partn_cpr |
| 53 | + <if test='asCurrency eq "Y".toString()'> | ||
| 54 | + , delng_crncy | ||
| 55 | + </if> | ||
| 44 | , case when count(*) > 0 then 1 else 0 end as cnt | 56 | , case when count(*) > 0 then 1 else 0 end as cnt |
| 45 | FROM | 57 | FROM |
| 46 | public.batch_tbcr_inner_delng | 58 | public.batch_tbcr_inner_delng |
| @@ -60,12 +72,18 @@ | @@ -60,12 +72,18 @@ | ||
| 60 | , accnut_ym | 72 | , accnut_ym |
| 61 | , cpr_code | 73 | , cpr_code |
| 62 | , partn_cpr | 74 | , partn_cpr |
| 75 | + <if test='asCurrency eq "Y".toString()'> | ||
| 76 | + , delng_crncy | ||
| 77 | + </if> | ||
| 63 | ) m | 78 | ) m |
| 64 | GROUP BY | 79 | GROUP BY |
| 65 | sys_se | 80 | sys_se |
| 66 | , accnut_ym | 81 | , accnut_ym |
| 67 | , cpr_code | 82 | , cpr_code |
| 68 | , partn_cpr | 83 | , partn_cpr |
| 84 | + <if test='asCurrency eq "Y".toString()'> | ||
| 85 | + , delng_crncy | ||
| 86 | + </if> | ||
| 69 | HAVING sum(cnt) > 1 | 87 | HAVING sum(cnt) > 1 |
| 70 | </select> | 88 | </select> |
| 71 | 89 | ||
| @@ -457,6 +475,7 @@ | @@ -457,6 +475,7 @@ | ||
| 457 | and accnut_ym = #{accnutYm} | 475 | and accnut_ym = #{accnutYm} |
| 458 | and cpr_code = #{cprCode} | 476 | and cpr_code = #{cprCode} |
| 459 | and partn_cpr = #{partnCpr} | 477 | and partn_cpr = #{partnCpr} |
| 478 | + and delng_crncy = #{delngCurncy} | ||
| 460 | and mtch_ky is null | 479 | and mtch_ky is null |
| 461 | <if test='conds eq "T".toString()'> | 480 | <if test='conds eq "T".toString()'> |
| 462 | and dta_ty in ('11','21','41') | 481 | and dta_ty in ('11','21','41') |
| @@ -485,6 +504,7 @@ | @@ -485,6 +504,7 @@ | ||
| 485 | and accnut_ym = #{accnutYm} | 504 | and accnut_ym = #{accnutYm} |
| 486 | and cpr_code = #{cprCode} | 505 | and cpr_code = #{cprCode} |
| 487 | and partn_cpr = #{partnCpr} | 506 | and partn_cpr = #{partnCpr} |
| 507 | + and delng_crncy = #{delngCurncy} | ||
| 488 | and mtch_ky is null | 508 | and mtch_ky is null |
| 489 | <if test='conds eq "T".toString()'> | 509 | <if test='conds eq "T".toString()'> |
| 490 | and dta_ty in ('12','22','42') | 510 | and dta_ty in ('12','22','42') |
| @@ -548,6 +568,8 @@ | @@ -548,6 +568,8 @@ | ||
| 548 | , partn_cpr | 568 | , partn_cpr |
| 549 | , tb_ty | 569 | , tb_ty |
| 550 | , delng_crncy | 570 | , delng_crncy |
| 571 | + , sum(cnt) as cnt | ||
| 572 | + , max(cnt_all) as cnt_all | ||
| 551 | FROM | 573 | FROM |
| 552 | ( | 574 | ( |
| 553 | SELECT | 575 | SELECT |
| @@ -558,6 +580,7 @@ | @@ -558,6 +580,7 @@ | ||
| 558 | , delng_crncy | 580 | , delng_crncy |
| 559 | , case when dta_ty in ('11','21','41') then 'T' else 'B' end tb_ty | 581 | , case when dta_ty in ('11','21','41') then 'T' else 'B' end tb_ty |
| 560 | , case when count(*) > 0 then 1 else 0 end as cnt | 582 | , case when count(*) > 0 then 1 else 0 end as cnt |
| 583 | + , count(*) as cnt_all | ||
| 561 | FROM | 584 | FROM |
| 562 | public.batch_tbcr_inner_delng | 585 | public.batch_tbcr_inner_delng |
| 563 | WHERE | 586 | WHERE |
| @@ -587,6 +610,7 @@ | @@ -587,6 +610,7 @@ | ||
| 587 | , delng_crncy | 610 | , delng_crncy |
| 588 | , case when dta_ty in ('12','22','42') then 'T' else 'B' end as tb_ty | 611 | , case when dta_ty in ('12','22','42') then 'T' else 'B' end as tb_ty |
| 589 | , case when count(*) > 0 then 1 else 0 end as cnt | 612 | , case when count(*) > 0 then 1 else 0 end as cnt |
| 613 | + , count(*) as cnt_all | ||
| 590 | FROM | 614 | FROM |
| 591 | public.batch_tbcr_inner_delng | 615 | public.batch_tbcr_inner_delng |
| 592 | WHERE | 616 | WHERE |
| @@ -616,6 +640,7 @@ | @@ -616,6 +640,7 @@ | ||
| 616 | , delng_crncy | 640 | , delng_crncy |
| 617 | , tb_ty | 641 | , tb_ty |
| 618 | HAVING sum(cnt) > 1 | 642 | HAVING sum(cnt) > 1 |
| 643 | + ORDER BY cnt_all | ||
| 619 | </select> | 644 | </select> |
| 620 | 645 | ||
| 621 | <!-- User Job Status --> | 646 | <!-- User Job Status --> |
src/main/resources/mybatis/secondaryMapper/OracleMapper.xml
| @@ -7,10 +7,19 @@ | @@ -7,10 +7,19 @@ | ||
| 7 | WITH COMP_INFO AS ( | 7 | WITH COMP_INFO AS ( |
| 8 | SELECT DISTINCT | 8 | SELECT DISTINCT |
| 9 | COMP_CODE AS COMP_CODE | 9 | COMP_CODE AS COMP_CODE |
| 10 | - , COMP_KR_NAME AS COMP_NAME | 10 | + , ( |
| 11 | + SELECT | ||
| 12 | + COMP_NAME_0 | ||
| 13 | + FROM TBBC_COMPANY_CODE_NLS | ||
| 14 | + WHERE | ||
| 15 | + SESSION_ID = A.SESSION_ID | ||
| 16 | + AND COMP_CODE = A.COMP_CODE | ||
| 17 | + AND #{accnutYm} BETWEEN START_YYMM AND END_YYMM | ||
| 18 | + AND ROWNUM = 1 | ||
| 19 | + ) AS COMP_NAME | ||
| 11 | , BOOK_CURRENCY AS COMP_CURRENCY | 20 | , BOOK_CURRENCY AS COMP_CURRENCY |
| 12 | , COMP_COA AS COMP_COA | 21 | , COMP_COA AS COMP_COA |
| 13 | - FROM TBBC_COMPANY_CODE | 22 | + FROM TBBC_COMPANY_CODE A |
| 14 | WHERE | 23 | WHERE |
| 15 | #{accnutYm} BETWEEN START_YYMM AND END_YYMM | 24 | #{accnutYm} BETWEEN START_YYMM AND END_YYMM |
| 16 | ) | 25 | ) |
| @@ -28,7 +37,7 @@ | @@ -28,7 +37,7 @@ | ||
| 28 | A.COMP_ACCT_CODE, | 37 | A.COMP_ACCT_CODE, |
| 29 | ( | 38 | ( |
| 30 | SELECT DISTINCT | 39 | SELECT DISTINCT |
| 31 | - COMP_ACCT_NAME | 40 | + COMP_ACCT_CODE |
| 32 | FROM TBBC_COMP_ACCT_CODE | 41 | FROM TBBC_COMP_ACCT_CODE |
| 33 | WHERE | 42 | WHERE |
| 34 | FS_TYPE = '1' | 43 | FS_TYPE = '1' |
| @@ -36,7 +45,7 @@ | @@ -36,7 +45,7 @@ | ||
| 36 | AND COMP_ACCT_CODE = A.COMP_ACCT_CODE | 45 | AND COMP_ACCT_CODE = A.COMP_ACCT_CODE |
| 37 | AND #{accnutYm} BETWEEN START_YYMM AND END_YYMM | 46 | AND #{accnutYm} BETWEEN START_YYMM AND END_YYMM |
| 38 | AND ROWNUM = 1 | 47 | AND ROWNUM = 1 |
| 39 | - ) AS COMP_ACCT_NAME, | 48 | + ) AS COMP_ACCT_NAME, |
| 40 | A.COMP_PROD_CODE, | 49 | A.COMP_PROD_CODE, |
| 41 | A.RECON_KEY, | 50 | A.RECON_KEY, |
| 42 | A.TRAN_DATE, | 51 | A.TRAN_DATE, |
| @@ -50,13 +59,13 @@ | @@ -50,13 +59,13 @@ | ||
| 50 | A.CONS_ACCT_CODE, | 59 | A.CONS_ACCT_CODE, |
| 51 | ( | 60 | ( |
| 52 | SELECT | 61 | SELECT |
| 53 | - CONS_ACCT_KR_NAME | ||
| 54 | - FROM TBBC_ACCT_CODE | 62 | + CONS_ACCT_NAME_0 |
| 63 | + FROM TBBC_ACCT_CODE_NLS | ||
| 55 | WHERE | 64 | WHERE |
| 56 | CONS_ACCT_CODE = A.CONS_ACCT_CODE | 65 | CONS_ACCT_CODE = A.CONS_ACCT_CODE |
| 57 | - AND CONS_COA = 'GOV_I_COA' | 66 | + AND CONS_COA = 'LS_COA' |
| 58 | AND FS_TYPE = '1' | 67 | AND FS_TYPE = '1' |
| 59 | - AND TO_CHAR(SYSDATE, 'YYYYMM') BETWEEN START_YYMM AND END_YYMM | 68 | + AND #{accnutYm} BETWEEN START_YYMM AND END_YYMM |
| 60 | AND ROWNUM = 1 | 69 | AND ROWNUM = 1 |
| 61 | ) AS CONS_ACCT_NAME, | 70 | ) AS CONS_ACCT_NAME, |
| 62 | A.PROD_CODE, | 71 | A.PROD_CODE, |
| @@ -75,8 +84,8 @@ | @@ -75,8 +84,8 @@ | ||
| 75 | A.OWN_BIZ_NO, | 84 | A.OWN_BIZ_NO, |
| 76 | A.PARTNER_BIZ_NO, | 85 | A.PARTNER_BIZ_NO, |
| 77 | A.ACCT_DATE, | 86 | A.ACCT_DATE, |
| 78 | - NULL AS CREATION_DIV_CODE, | ||
| 79 | - NULL AS COST_MAT_KEY | 87 | + A.CREATION_DIV_CODE, |
| 88 | + A.COST_MAT_KEY | ||
| 80 | FROM | 89 | FROM |
| 81 | TBCR_TRANSACTION_HISTORY A | 90 | TBCR_TRANSACTION_HISTORY A |
| 82 | INNER JOIN COMP_INFO B | 91 | INNER JOIN COMP_INFO B |
| @@ -98,7 +107,10 @@ | @@ -98,7 +107,10 @@ | ||
| 98 | FROM TBCR_MATCHING A, | 107 | FROM TBCR_MATCHING A, |
| 99 | TBCR_MATCHING_DETAIL B | 108 | TBCR_MATCHING_DETAIL B |
| 100 | WHERE | 109 | WHERE |
| 101 | - A.MATCH_KEY = B.MATCH_KEY | 110 | + A.SESSION_ID = B.SESSION_ID |
| 111 | + AND A.CONS_GROUP = B.CONS_GROUP | ||
| 112 | + AND A.LEDGER = B.LEDGER | ||
| 113 | + AND A.MATCH_KEY = B.MATCH_KEY | ||
| 102 | AND A.ACCOUNT_PERIOD = B.ACCOUNT_PERIOD | 114 | AND A.ACCOUNT_PERIOD = B.ACCOUNT_PERIOD |
| 103 | AND A.CONS_GROUP = #{sysSe} | 115 | AND A.CONS_GROUP = #{sysSe} |
| 104 | AND A.ACCOUNT_PERIOD = #{accnutYm} | 116 | AND A.ACCOUNT_PERIOD = #{accnutYm} |
src/main/resources/schema.sql
| @@ -33,11 +33,11 @@ CREATE TABLE IF NOT EXISTS batch_tbcr_inner_delng | @@ -33,11 +33,11 @@ CREATE TABLE IF NOT EXISTS batch_tbcr_inner_delng | ||
| 33 | sumry character varying(500), | 33 | sumry character varying(500), |
| 34 | org_mtch_ty character varying(10), | 34 | org_mtch_ty character varying(10), |
| 35 | org_mtch_ky numeric(10,0), | 35 | org_mtch_ky numeric(10,0), |
| 36 | - new_mtch_ty character varying(10), | 36 | + new_mtch_ty character varying(50), |
| 37 | new_mtch_ky numeric(10,0), | 37 | new_mtch_ky numeric(10,0), |
| 38 | compare_ky character varying(100), | 38 | compare_ky character varying(100), |
| 39 | mtch_sys character varying(10), | 39 | mtch_sys character varying(10), |
| 40 | - mtch_ty character varying(10), | 40 | + mtch_ty character varying(50), |
| 41 | mtch_ty_nm character varying(100), | 41 | mtch_ty_nm character varying(100), |
| 42 | mtch_ky bigint DEFAULT 0, | 42 | mtch_ky bigint DEFAULT 0, |
| 43 | creation_div_code character varying(3), | 43 | creation_div_code character varying(3), |
| @@ -90,3 +90,11 @@ http://localhost:8080/api/job/return | @@ -90,3 +90,11 @@ http://localhost:8080/api/job/return | ||
| 90 | 90 | ||
| 91 | #작업진행결과 | 91 | #작업진행결과 |
| 92 | http://localhost:8080/api/job/userJobInfo/JOB그룹id | 92 | http://localhost:8080/api/job/userJobInfo/JOB그룹id |
| 93 | + | ||
| 94 | +#Async Job 호출 | ||
| 95 | +http://localhost:8080/api/job/callAsyncJob | ||
| 96 | +{ | ||
| 97 | + "PrgName": "cmd", | ||
| 98 | + "PrgParams": "/C dir /w" | ||
| 99 | +} | ||
| 100 | + |