commit
						4e541c7a2f
					
				 17 changed files with 977 additions and 0 deletions
			
			
		- 
					36.gitignore
 - 
					310mvnw
 - 
					182mvnw.cmd
 - 
					55pom.xml
 - 
					84src/main/java/com/cmyy/localtransfer/LocalTransferApplication.java
 - 
					28src/main/java/com/cmyy/localtransfer/controller/MedicalPayController.java
 - 
					36src/main/java/com/cmyy/localtransfer/dto/EcQueryDto.java
 - 
					21src/main/java/com/cmyy/localtransfer/dto/InDataDto.java
 - 
					75src/main/java/com/cmyy/localtransfer/service/MedicalPayService.java
 - 
					20src/main/java/com/cmyy/localtransfer/service/NationECLibrary.java
 - 
					48src/main/java/com/cmyy/localtransfer/utils/FileParseUtil.java
 - 
					32src/main/java/com/cmyy/localtransfer/utils/JsonUtil.java
 - 
					35src/main/java/com/cmyy/localtransfer/vo/EcQueryVo.java
 - 
					2src/main/resources/application.properties
 - 
					BINsrc/main/resources/mytest.zip
 - 
					BINsrc/main/resources/native/NationECCode.dll
 - 
					13src/test/java/com/cmyy/localtransfer/LocalTransferApplicationTests.java
 
@ -0,0 +1,36 @@ | 
				
			|||
HELP.md | 
				
			|||
target/ | 
				
			|||
!.mvn/wrapper/maven-wrapper.jar | 
				
			|||
!**/src/main/**/target/ | 
				
			|||
!**/src/test/**/target/ | 
				
			|||
NationEcCode.ini | 
				
			|||
hs_err_pid5012.log | 
				
			|||
 | 
				
			|||
### STS ### | 
				
			|||
.apt_generated | 
				
			|||
.classpath | 
				
			|||
.factorypath | 
				
			|||
.project | 
				
			|||
.settings | 
				
			|||
.springBeans | 
				
			|||
.sts4-cache | 
				
			|||
 | 
				
			|||
### IntelliJ IDEA ### | 
				
			|||
.idea | 
				
			|||
*.iws | 
				
			|||
*.iml | 
				
			|||
*.ipr | 
				
			|||
.mvn | 
				
			|||
 | 
				
			|||
### NetBeans ### | 
				
			|||
/nbproject/private/ | 
				
			|||
/nbbuild/ | 
				
			|||
/dist/ | 
				
			|||
/nbdist/ | 
				
			|||
/.nb-gradle/ | 
				
			|||
build/ | 
				
			|||
!**/src/main/**/build/ | 
				
			|||
!**/src/test/**/build/ | 
				
			|||
 | 
				
			|||
### VS Code ### | 
				
			|||
.vscode/ | 
				
			|||
@ -0,0 +1,310 @@ | 
				
			|||
#!/bin/sh | 
				
			|||
# ---------------------------------------------------------------------------- | 
				
			|||
# Licensed to the Apache Software Foundation (ASF) under one | 
				
			|||
# or more contributor license agreements.  See the NOTICE file | 
				
			|||
# distributed with this work for additional information | 
				
			|||
# regarding copyright ownership.  The ASF licenses this file | 
				
			|||
# to you 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. | 
				
			|||
# ---------------------------------------------------------------------------- | 
				
			|||
 | 
				
			|||
# ---------------------------------------------------------------------------- | 
				
			|||
# Maven Start Up Batch script | 
				
			|||
# | 
				
			|||
# Required ENV vars: | 
				
			|||
# ------------------ | 
				
			|||
#   JAVA_HOME - location of a JDK home dir | 
				
			|||
# | 
				
			|||
# Optional ENV vars | 
				
			|||
# ----------------- | 
				
			|||
#   M2_HOME - location of maven2's installed home dir | 
				
			|||
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven | 
				
			|||
#     e.g. to debug Maven itself, use | 
				
			|||
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | 
				
			|||
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files | 
				
			|||
# ---------------------------------------------------------------------------- | 
				
			|||
 | 
				
			|||
if [ -z "$MAVEN_SKIP_RC" ] ; then | 
				
			|||
 | 
				
			|||
  if [ -f /etc/mavenrc ] ; then | 
				
			|||
    . /etc/mavenrc | 
				
			|||
  fi | 
				
			|||
 | 
				
			|||
  if [ -f "$HOME/.mavenrc" ] ; then | 
				
			|||
    . "$HOME/.mavenrc" | 
				
			|||
  fi | 
				
			|||
 | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
# OS specific support.  $var _must_ be set to either true or false. | 
				
			|||
cygwin=false; | 
				
			|||
darwin=false; | 
				
			|||
mingw=false | 
				
			|||
case "`uname`" in | 
				
			|||
  CYGWIN*) cygwin=true ;; | 
				
			|||
  MINGW*) mingw=true;; | 
				
			|||
  Darwin*) darwin=true | 
				
			|||
    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home | 
				
			|||
    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html | 
				
			|||
    if [ -z "$JAVA_HOME" ]; then | 
				
			|||
      if [ -x "/usr/libexec/java_home" ]; then | 
				
			|||
        export JAVA_HOME="`/usr/libexec/java_home`" | 
				
			|||
      else | 
				
			|||
        export JAVA_HOME="/Library/Java/Home" | 
				
			|||
      fi | 
				
			|||
    fi | 
				
			|||
    ;; | 
				
			|||
esac | 
				
			|||
 | 
				
			|||
if [ -z "$JAVA_HOME" ] ; then | 
				
			|||
  if [ -r /etc/gentoo-release ] ; then | 
				
			|||
    JAVA_HOME=`java-config --jre-home` | 
				
			|||
  fi | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
if [ -z "$M2_HOME" ] ; then | 
				
			|||
  ## resolve links - $0 may be a link to maven's home | 
				
			|||
  PRG="$0" | 
				
			|||
 | 
				
			|||
  # need this for relative symlinks | 
				
			|||
  while [ -h "$PRG" ] ; do | 
				
			|||
    ls=`ls -ld "$PRG"` | 
				
			|||
    link=`expr "$ls" : '.*-> \(.*\)$'` | 
				
			|||
    if expr "$link" : '/.*' > /dev/null; then | 
				
			|||
      PRG="$link" | 
				
			|||
    else | 
				
			|||
      PRG="`dirname "$PRG"`/$link" | 
				
			|||
    fi | 
				
			|||
  done | 
				
			|||
 | 
				
			|||
  saveddir=`pwd` | 
				
			|||
 | 
				
			|||
  M2_HOME=`dirname "$PRG"`/.. | 
				
			|||
 | 
				
			|||
  # make it fully qualified | 
				
			|||
  M2_HOME=`cd "$M2_HOME" && pwd` | 
				
			|||
 | 
				
			|||
  cd "$saveddir" | 
				
			|||
  # echo Using m2 at $M2_HOME | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
# For Cygwin, ensure paths are in UNIX format before anything is touched | 
				
			|||
if $cygwin ; then | 
				
			|||
  [ -n "$M2_HOME" ] && | 
				
			|||
    M2_HOME=`cygpath --unix "$M2_HOME"` | 
				
			|||
  [ -n "$JAVA_HOME" ] && | 
				
			|||
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | 
				
			|||
  [ -n "$CLASSPATH" ] && | 
				
			|||
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
# For Mingw, ensure paths are in UNIX format before anything is touched | 
				
			|||
if $mingw ; then | 
				
			|||
  [ -n "$M2_HOME" ] && | 
				
			|||
    M2_HOME="`(cd "$M2_HOME"; pwd)`" | 
				
			|||
  [ -n "$JAVA_HOME" ] && | 
				
			|||
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
if [ -z "$JAVA_HOME" ]; then | 
				
			|||
  javaExecutable="`which javac`" | 
				
			|||
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then | 
				
			|||
    # readlink(1) is not available as standard on Solaris 10. | 
				
			|||
    readLink=`which readlink` | 
				
			|||
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then | 
				
			|||
      if $darwin ; then | 
				
			|||
        javaHome="`dirname \"$javaExecutable\"`" | 
				
			|||
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" | 
				
			|||
      else | 
				
			|||
        javaExecutable="`readlink -f \"$javaExecutable\"`" | 
				
			|||
      fi | 
				
			|||
      javaHome="`dirname \"$javaExecutable\"`" | 
				
			|||
      javaHome=`expr "$javaHome" : '\(.*\)/bin'` | 
				
			|||
      JAVA_HOME="$javaHome" | 
				
			|||
      export JAVA_HOME | 
				
			|||
    fi | 
				
			|||
  fi | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
if [ -z "$JAVACMD" ] ; then | 
				
			|||
  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 | 
				
			|||
  else | 
				
			|||
    JAVACMD="`which java`" | 
				
			|||
  fi | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
if [ ! -x "$JAVACMD" ] ; then | 
				
			|||
  echo "Error: JAVA_HOME is not defined correctly." >&2 | 
				
			|||
  echo "  We cannot execute $JAVACMD" >&2 | 
				
			|||
  exit 1 | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
if [ -z "$JAVA_HOME" ] ; then | 
				
			|||
  echo "Warning: JAVA_HOME environment variable is not set." | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher | 
				
			|||
 | 
				
			|||
# traverses directory structure from process work directory to filesystem root | 
				
			|||
# first directory with .mvn subdirectory is considered project base directory | 
				
			|||
find_maven_basedir() { | 
				
			|||
 | 
				
			|||
  if [ -z "$1" ] | 
				
			|||
  then | 
				
			|||
    echo "Path not specified to find_maven_basedir" | 
				
			|||
    return 1 | 
				
			|||
  fi | 
				
			|||
 | 
				
			|||
  basedir="$1" | 
				
			|||
  wdir="$1" | 
				
			|||
  while [ "$wdir" != '/' ] ; do | 
				
			|||
    if [ -d "$wdir"/.mvn ] ; then | 
				
			|||
      basedir=$wdir | 
				
			|||
      break | 
				
			|||
    fi | 
				
			|||
    # workaround for JBEAP-8937 (on Solaris 10/Sparc) | 
				
			|||
    if [ -d "${wdir}" ]; then | 
				
			|||
      wdir=`cd "$wdir/.."; pwd` | 
				
			|||
    fi | 
				
			|||
    # end of workaround | 
				
			|||
  done | 
				
			|||
  echo "${basedir}" | 
				
			|||
} | 
				
			|||
 | 
				
			|||
# concatenates all lines of a file | 
				
			|||
concat_lines() { | 
				
			|||
  if [ -f "$1" ]; then | 
				
			|||
    echo "$(tr -s '\n' ' ' < "$1")" | 
				
			|||
  fi | 
				
			|||
} | 
				
			|||
 | 
				
			|||
BASE_DIR=`find_maven_basedir "$(pwd)"` | 
				
			|||
if [ -z "$BASE_DIR" ]; then | 
				
			|||
  exit 1; | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
########################################################################################## | 
				
			|||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | 
				
			|||
# This allows using the maven wrapper in projects that prohibit checking in binary data. | 
				
			|||
########################################################################################## | 
				
			|||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then | 
				
			|||
    if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
      echo "Found .mvn/wrapper/maven-wrapper.jar" | 
				
			|||
    fi | 
				
			|||
else | 
				
			|||
    if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." | 
				
			|||
    fi | 
				
			|||
    if [ -n "$MVNW_REPOURL" ]; then | 
				
			|||
      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" | 
				
			|||
    else | 
				
			|||
      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" | 
				
			|||
    fi | 
				
			|||
    while IFS="=" read key value; do | 
				
			|||
      case "$key" in (wrapperUrl) jarUrl="$value"; break ;; | 
				
			|||
      esac | 
				
			|||
    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" | 
				
			|||
    if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
      echo "Downloading from: $jarUrl" | 
				
			|||
    fi | 
				
			|||
    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" | 
				
			|||
    if $cygwin; then | 
				
			|||
      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` | 
				
			|||
    fi | 
				
			|||
 | 
				
			|||
    if command -v wget > /dev/null; then | 
				
			|||
        if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
          echo "Found wget ... using wget" | 
				
			|||
        fi | 
				
			|||
        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then | 
				
			|||
            wget "$jarUrl" -O "$wrapperJarPath" | 
				
			|||
        else | 
				
			|||
            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" | 
				
			|||
        fi | 
				
			|||
    elif command -v curl > /dev/null; then | 
				
			|||
        if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
          echo "Found curl ... using curl" | 
				
			|||
        fi | 
				
			|||
        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then | 
				
			|||
            curl -o "$wrapperJarPath" "$jarUrl" -f | 
				
			|||
        else | 
				
			|||
            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f | 
				
			|||
        fi | 
				
			|||
 | 
				
			|||
    else | 
				
			|||
        if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
          echo "Falling back to using Java to download" | 
				
			|||
        fi | 
				
			|||
        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" | 
				
			|||
        # For Cygwin, switch paths to Windows format before running javac | 
				
			|||
        if $cygwin; then | 
				
			|||
          javaClass=`cygpath --path --windows "$javaClass"` | 
				
			|||
        fi | 
				
			|||
        if [ -e "$javaClass" ]; then | 
				
			|||
            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | 
				
			|||
                if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
                  echo " - Compiling MavenWrapperDownloader.java ..." | 
				
			|||
                fi | 
				
			|||
                # Compiling the Java class | 
				
			|||
                ("$JAVA_HOME/bin/javac" "$javaClass") | 
				
			|||
            fi | 
				
			|||
            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | 
				
			|||
                # Running the downloader | 
				
			|||
                if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
                  echo " - Running MavenWrapperDownloader.java ..." | 
				
			|||
                fi | 
				
			|||
                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") | 
				
			|||
            fi | 
				
			|||
        fi | 
				
			|||
    fi | 
				
			|||
fi | 
				
			|||
########################################################################################## | 
				
			|||
# End of extension | 
				
			|||
########################################################################################## | 
				
			|||
 | 
				
			|||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} | 
				
			|||
if [ "$MVNW_VERBOSE" = true ]; then | 
				
			|||
  echo $MAVEN_PROJECTBASEDIR | 
				
			|||
fi | 
				
			|||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" | 
				
			|||
 | 
				
			|||
# For Cygwin, switch paths to Windows format before running java | 
				
			|||
if $cygwin; then | 
				
			|||
  [ -n "$M2_HOME" ] && | 
				
			|||
    M2_HOME=`cygpath --path --windows "$M2_HOME"` | 
				
			|||
  [ -n "$JAVA_HOME" ] && | 
				
			|||
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | 
				
			|||
  [ -n "$CLASSPATH" ] && | 
				
			|||
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | 
				
			|||
  [ -n "$MAVEN_PROJECTBASEDIR" ] && | 
				
			|||
    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` | 
				
			|||
fi | 
				
			|||
 | 
				
			|||
# Provide a "standardized" way to retrieve the CLI args that will | 
				
			|||
# work with both Windows and non-Windows executions. | 
				
			|||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" | 
				
			|||
export MAVEN_CMD_LINE_ARGS | 
				
			|||
 | 
				
			|||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | 
				
			|||
 | 
				
			|||
exec "$JAVACMD" \ | 
				
			|||
  $MAVEN_OPTS \ | 
				
			|||
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ | 
				
			|||
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ | 
				
			|||
  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" | 
				
			|||
@ -0,0 +1,182 @@ | 
				
			|||
@REM ---------------------------------------------------------------------------- | 
				
			|||
@REM Licensed to the Apache Software Foundation (ASF) under one | 
				
			|||
@REM or more contributor license agreements.  See the NOTICE file | 
				
			|||
@REM distributed with this work for additional information | 
				
			|||
@REM regarding copyright ownership.  The ASF licenses this file | 
				
			|||
@REM to you under the Apache License, Version 2.0 (the | 
				
			|||
@REM "License"); you may not use this file except in compliance | 
				
			|||
@REM with the License.  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, | 
				
			|||
@REM software distributed under the License is distributed on an | 
				
			|||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
				
			|||
@REM KIND, either express or implied.  See the License for the | 
				
			|||
@REM specific language governing permissions and limitations | 
				
			|||
@REM under the License. | 
				
			|||
@REM ---------------------------------------------------------------------------- | 
				
			|||
 | 
				
			|||
@REM ---------------------------------------------------------------------------- | 
				
			|||
@REM Maven Start Up Batch script | 
				
			|||
@REM | 
				
			|||
@REM Required ENV vars: | 
				
			|||
@REM JAVA_HOME - location of a JDK home dir | 
				
			|||
@REM | 
				
			|||
@REM Optional ENV vars | 
				
			|||
@REM M2_HOME - location of maven2's installed home dir | 
				
			|||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands | 
				
			|||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending | 
				
			|||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven | 
				
			|||
@REM     e.g. to debug Maven itself, use | 
				
			|||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | 
				
			|||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files | 
				
			|||
@REM ---------------------------------------------------------------------------- | 
				
			|||
 | 
				
			|||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' | 
				
			|||
@echo off | 
				
			|||
@REM set title of command window | 
				
			|||
title %0 | 
				
			|||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' | 
				
			|||
@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO% | 
				
			|||
 | 
				
			|||
@REM set %HOME% to equivalent of $HOME | 
				
			|||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") | 
				
			|||
 | 
				
			|||
@REM Execute a user defined script before this one | 
				
			|||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre | 
				
			|||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending | 
				
			|||
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" | 
				
			|||
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" | 
				
			|||
:skipRcPre | 
				
			|||
 | 
				
			|||
@setlocal | 
				
			|||
 | 
				
			|||
set ERROR_CODE=0 | 
				
			|||
 | 
				
			|||
@REM To isolate internal variables from possible post scripts, we use another setlocal | 
				
			|||
@setlocal | 
				
			|||
 | 
				
			|||
@REM ==== START VALIDATION ==== | 
				
			|||
if not "%JAVA_HOME%" == "" goto OkJHome | 
				
			|||
 | 
				
			|||
echo. | 
				
			|||
echo Error: JAVA_HOME not found in your environment. >&2 | 
				
			|||
echo Please set the JAVA_HOME variable in your environment to match the >&2 | 
				
			|||
echo location of your Java installation. >&2 | 
				
			|||
echo. | 
				
			|||
goto error | 
				
			|||
 | 
				
			|||
:OkJHome | 
				
			|||
if exist "%JAVA_HOME%\bin\java.exe" goto init | 
				
			|||
 | 
				
			|||
echo. | 
				
			|||
echo Error: JAVA_HOME is set to an invalid directory. >&2 | 
				
			|||
echo JAVA_HOME = "%JAVA_HOME%" >&2 | 
				
			|||
echo Please set the JAVA_HOME variable in your environment to match the >&2 | 
				
			|||
echo location of your Java installation. >&2 | 
				
			|||
echo. | 
				
			|||
goto error | 
				
			|||
 | 
				
			|||
@REM ==== END VALIDATION ==== | 
				
			|||
 | 
				
			|||
:init | 
				
			|||
 | 
				
			|||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". | 
				
			|||
@REM Fallback to current working directory if not found. | 
				
			|||
 | 
				
			|||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% | 
				
			|||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir | 
				
			|||
 | 
				
			|||
set EXEC_DIR=%CD% | 
				
			|||
set WDIR=%EXEC_DIR% | 
				
			|||
:findBaseDir | 
				
			|||
IF EXIST "%WDIR%"\.mvn goto baseDirFound | 
				
			|||
cd .. | 
				
			|||
IF "%WDIR%"=="%CD%" goto baseDirNotFound | 
				
			|||
set WDIR=%CD% | 
				
			|||
goto findBaseDir | 
				
			|||
 | 
				
			|||
:baseDirFound | 
				
			|||
set MAVEN_PROJECTBASEDIR=%WDIR% | 
				
			|||
cd "%EXEC_DIR%" | 
				
			|||
goto endDetectBaseDir | 
				
			|||
 | 
				
			|||
:baseDirNotFound | 
				
			|||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR% | 
				
			|||
cd "%EXEC_DIR%" | 
				
			|||
 | 
				
			|||
:endDetectBaseDir | 
				
			|||
 | 
				
			|||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig | 
				
			|||
 | 
				
			|||
@setlocal EnableExtensions EnableDelayedExpansion | 
				
			|||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a | 
				
			|||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% | 
				
			|||
 | 
				
			|||
:endReadAdditionalConfig | 
				
			|||
 | 
				
			|||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" | 
				
			|||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" | 
				
			|||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | 
				
			|||
 | 
				
			|||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" | 
				
			|||
 | 
				
			|||
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( | 
				
			|||
    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B | 
				
			|||
) | 
				
			|||
 | 
				
			|||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | 
				
			|||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data. | 
				
			|||
if exist %WRAPPER_JAR% ( | 
				
			|||
    if "%MVNW_VERBOSE%" == "true" ( | 
				
			|||
        echo Found %WRAPPER_JAR% | 
				
			|||
    ) | 
				
			|||
) else ( | 
				
			|||
    if not "%MVNW_REPOURL%" == "" ( | 
				
			|||
        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" | 
				
			|||
    ) | 
				
			|||
    if "%MVNW_VERBOSE%" == "true" ( | 
				
			|||
        echo Couldn't find %WRAPPER_JAR%, downloading it ... | 
				
			|||
        echo Downloading from: %DOWNLOAD_URL% | 
				
			|||
    ) | 
				
			|||
 | 
				
			|||
    powershell -Command "&{"^ | 
				
			|||
		"$webclient = new-object System.Net.WebClient;"^ | 
				
			|||
		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ | 
				
			|||
		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ | 
				
			|||
		"}"^ | 
				
			|||
		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ | 
				
			|||
		"}" | 
				
			|||
    if "%MVNW_VERBOSE%" == "true" ( | 
				
			|||
        echo Finished downloading %WRAPPER_JAR% | 
				
			|||
    ) | 
				
			|||
) | 
				
			|||
@REM End of extension | 
				
			|||
 | 
				
			|||
@REM Provide a "standardized" way to retrieve the CLI args that will | 
				
			|||
@REM work with both Windows and non-Windows executions. | 
				
			|||
set MAVEN_CMD_LINE_ARGS=%* | 
				
			|||
 | 
				
			|||
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* | 
				
			|||
if ERRORLEVEL 1 goto error | 
				
			|||
goto end | 
				
			|||
 | 
				
			|||
:error | 
				
			|||
set ERROR_CODE=1 | 
				
			|||
 | 
				
			|||
:end | 
				
			|||
@endlocal & set ERROR_CODE=%ERROR_CODE% | 
				
			|||
 | 
				
			|||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost | 
				
			|||
@REM check for post script, once with legacy .bat ending and once with .cmd ending | 
				
			|||
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" | 
				
			|||
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" | 
				
			|||
:skipRcPost | 
				
			|||
 | 
				
			|||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' | 
				
			|||
if "%MAVEN_BATCH_PAUSE%" == "on" pause | 
				
			|||
 | 
				
			|||
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% | 
				
			|||
 | 
				
			|||
exit /B %ERROR_CODE% | 
				
			|||
@ -0,0 +1,55 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
				
			|||
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | 
				
			|||
  <modelVersion>4.0.0</modelVersion> | 
				
			|||
  <parent> | 
				
			|||
    <groupId>org.springframework.boot</groupId> | 
				
			|||
    <artifactId>spring-boot-starter-parent</artifactId> | 
				
			|||
    <version>2.4.0</version> | 
				
			|||
    <relativePath/> <!-- lookup parent from repository --> | 
				
			|||
  </parent> | 
				
			|||
  <groupId>com.cmyy</groupId> | 
				
			|||
  <artifactId>LocalTransfer</artifactId> | 
				
			|||
  <version>0.0.1-SNAPSHOT</version> | 
				
			|||
  <name>LocalTransfer</name> | 
				
			|||
  <description>local transfer for medical pay ec query</description> | 
				
			|||
  <properties> | 
				
			|||
    <java.version>1.8</java.version> | 
				
			|||
  </properties> | 
				
			|||
  <dependencies> | 
				
			|||
    <dependency> | 
				
			|||
      <groupId>org.springframework.boot</groupId> | 
				
			|||
      <artifactId>spring-boot-starter-web</artifactId> | 
				
			|||
    </dependency> | 
				
			|||
 | 
				
			|||
    <dependency> | 
				
			|||
      <groupId>org.springframework.boot</groupId> | 
				
			|||
      <artifactId>spring-boot-starter-test</artifactId> | 
				
			|||
      <scope>test</scope> | 
				
			|||
    </dependency> | 
				
			|||
 | 
				
			|||
    <!--lombok插件--> | 
				
			|||
    <dependency> | 
				
			|||
      <groupId>org.projectlombok</groupId> | 
				
			|||
      <artifactId>lombok</artifactId> | 
				
			|||
      <optional>true</optional> | 
				
			|||
    </dependency> | 
				
			|||
 | 
				
			|||
    <dependency> | 
				
			|||
      <groupId>com.sun.jna</groupId> | 
				
			|||
      <artifactId>jna</artifactId> | 
				
			|||
      <version>3.0.9</version> | 
				
			|||
    </dependency> | 
				
			|||
  </dependencies> | 
				
			|||
 | 
				
			|||
  <build> | 
				
			|||
    <finalName>ECQuery</finalName> | 
				
			|||
    <plugins> | 
				
			|||
      <plugin> | 
				
			|||
        <groupId>org.springframework.boot</groupId> | 
				
			|||
        <artifactId>spring-boot-maven-plugin</artifactId> | 
				
			|||
      </plugin> | 
				
			|||
    </plugins> | 
				
			|||
  </build> | 
				
			|||
 | 
				
			|||
</project> | 
				
			|||
@ -0,0 +1,84 @@ | 
				
			|||
package com.cmyy.localtransfer; | 
				
			|||
 | 
				
			|||
import org.slf4j.Logger; | 
				
			|||
import org.slf4j.LoggerFactory; | 
				
			|||
import org.springframework.boot.SpringApplication; | 
				
			|||
import org.springframework.boot.autoconfigure.SpringBootApplication; | 
				
			|||
import org.springframework.core.env.Environment; | 
				
			|||
 | 
				
			|||
import java.io.*; | 
				
			|||
 | 
				
			|||
@SpringBootApplication | 
				
			|||
public class LocalTransferApplication { | 
				
			|||
 | 
				
			|||
    private static final Logger LOG =  LoggerFactory.getLogger(LocalTransferApplication.class); | 
				
			|||
    public static void main(String[] args) { | 
				
			|||
        System.setProperty("jna.encoding", "GBK"); | 
				
			|||
        loadNative("NationECCode"); | 
				
			|||
        SpringApplication.run(LocalTransferApplication.class, args); | 
				
			|||
        System.out.println( | 
				
			|||
                "   ____   _____ ___.__.___.__.  \n" + | 
				
			|||
                        " _/ ___\\ /     <   |  <   |  |   \n" + | 
				
			|||
                        " \\  \\___|  Y Y  \\___  |\\___  |   \n" + | 
				
			|||
                        "  \\___  >__|_|  / ____|/ ____|   \n" + | 
				
			|||
                        "      \\/      \\/\\/     \\/         \n" + | 
				
			|||
                        "\n成美药业医保电子凭证解码中转台启动成功 \n官网:http://www.chengmeimedicine.com 提供技术支持゙  \n"); | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    private synchronized static void loadNative(String nativeName) { | 
				
			|||
 | 
				
			|||
        String systemType = System.getProperty("os.name"); | 
				
			|||
        String fileExt = (systemType.toLowerCase().indexOf("win") != -1) ? ".dll" : ".so"; | 
				
			|||
        File path = new File("."); | 
				
			|||
        //将所有动态链接库dll/so文件都放在一个临时文件夹下,然后进行加载 | 
				
			|||
        //这是应为项目为可执行jar文件的时候不能很方便的扫描里面文件 | 
				
			|||
        //此目录放置在与项目同目录下的natives文件夹下 | 
				
			|||
        String sysUserTempDir = path.getAbsoluteFile().getParent() + File.separator + "natives"; | 
				
			|||
 | 
				
			|||
        //System.out.println("------>>native lib临时存放目录 : " + sysUserTempDir); | 
				
			|||
        String fileName = nativeName + fileExt; | 
				
			|||
 | 
				
			|||
        InputStream in = null; | 
				
			|||
        BufferedInputStream reader = null; | 
				
			|||
        FileOutputStream writer = null; | 
				
			|||
 | 
				
			|||
        File tempFile = new File(sysUserTempDir + File.separator + fileName); | 
				
			|||
        if(!tempFile.getParentFile().exists()) | 
				
			|||
            tempFile.getParentFile().mkdirs() ; | 
				
			|||
        if (tempFile.exists()) { | 
				
			|||
            tempFile.delete(); | 
				
			|||
        } | 
				
			|||
        try { | 
				
			|||
            //读取文件形成输入流 | 
				
			|||
            in = LocalTransferApplication.class.getClassLoader().getResourceAsStream("/native/" + fileName); | 
				
			|||
            if (in == null) | 
				
			|||
                in = LocalTransferApplication.class.getClassLoader().getResourceAsStream("native/" + fileName); | 
				
			|||
            LocalTransferApplication.class.getClassLoader().getResource(fileName); | 
				
			|||
            reader = new BufferedInputStream(in); | 
				
			|||
            writer = new FileOutputStream(tempFile); | 
				
			|||
 | 
				
			|||
            byte[] buffer = new byte[1024]; | 
				
			|||
 | 
				
			|||
            while (reader.read(buffer) > 0) { | 
				
			|||
                writer.write(buffer); | 
				
			|||
                buffer = new byte[1024]; | 
				
			|||
            } | 
				
			|||
 | 
				
			|||
        } catch (IOException e) { | 
				
			|||
            e.printStackTrace(); | 
				
			|||
        } finally { | 
				
			|||
            try { | 
				
			|||
                if (in != null) | 
				
			|||
                    in.close(); | 
				
			|||
                if (writer != null) | 
				
			|||
                    writer.close(); | 
				
			|||
            } catch (IOException e) { | 
				
			|||
                e.printStackTrace(); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
        System.load(tempFile.getPath()); | 
				
			|||
        System.out.println("------>> 加载native文件 :" + tempFile + "成功!!"); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,28 @@ | 
				
			|||
package com.cmyy.localtransfer.controller; | 
				
			|||
 | 
				
			|||
import com.cmyy.localtransfer.service.MedicalPayService; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.http.ResponseEntity; | 
				
			|||
import org.springframework.web.bind.annotation.GetMapping; | 
				
			|||
import org.springframework.web.bind.annotation.RequestMapping; | 
				
			|||
import org.springframework.web.bind.annotation.RestController; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述:医保支付业务控制类 | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/12/14 15:47 | 
				
			|||
 */ | 
				
			|||
@RestController | 
				
			|||
@RequestMapping("/medical") | 
				
			|||
public class MedicalPayController { | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private MedicalPayService medicalPayService; | 
				
			|||
 | 
				
			|||
    @GetMapping(value = "/ecquery") | 
				
			|||
    public ResponseEntity<Object> getECInfo(){ | 
				
			|||
        String str = medicalPayService.decodeEC(); | 
				
			|||
        return ResponseEntity.ok(str); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,36 @@ | 
				
			|||
package com.cmyy.localtransfer.dto; | 
				
			|||
 | 
				
			|||
import lombok.AllArgsConstructor; | 
				
			|||
import lombok.Builder; | 
				
			|||
import lombok.Data; | 
				
			|||
import lombok.NoArgsConstructor; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述:电子凭证二维码解码入参 | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/11/24 16:29 | 
				
			|||
 */ | 
				
			|||
@Data | 
				
			|||
@Builder | 
				
			|||
@AllArgsConstructor | 
				
			|||
@NoArgsConstructor | 
				
			|||
public class EcQueryDto { | 
				
			|||
    //机构ID(医保定点机构代码) | 
				
			|||
    private String orgId; | 
				
			|||
    //用码业务类型(参见用码业务类型字典表。 01302-取药 02121-药店购药) | 
				
			|||
    private String businessType; | 
				
			|||
    //用码经办业务部分信息 | 
				
			|||
    private String businessInfo; | 
				
			|||
    //收款员编号 | 
				
			|||
    private String operatorId; | 
				
			|||
    //收款员姓名 | 
				
			|||
    private String operatorName; | 
				
			|||
    //医保科室编号 | 
				
			|||
    private String officeId; | 
				
			|||
    //科室名称 | 
				
			|||
    private String officeName; | 
				
			|||
    //设备类型(自助机则设为:SelfService) | 
				
			|||
    private String deviceType; | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,21 @@ | 
				
			|||
package com.cmyy.localtransfer.dto; | 
				
			|||
 | 
				
			|||
import lombok.Data; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述: | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/11/23 16:49 | 
				
			|||
 */ | 
				
			|||
@Data | 
				
			|||
public class InDataDto<T> { | 
				
			|||
    //机构ID | 
				
			|||
    private String orgId; | 
				
			|||
    //交易类型 | 
				
			|||
    private String transType; | 
				
			|||
    //接口请求参数 | 
				
			|||
    private T data; | 
				
			|||
    //扩展参数 | 
				
			|||
    private String extra; | 
				
			|||
} | 
				
			|||
@ -0,0 +1,75 @@ | 
				
			|||
package com.cmyy.localtransfer.service; | 
				
			|||
 | 
				
			|||
import com.cmyy.localtransfer.dto.EcQueryDto; | 
				
			|||
import com.cmyy.localtransfer.dto.InDataDto; | 
				
			|||
import com.cmyy.localtransfer.utils.JsonUtil; | 
				
			|||
import com.cmyy.localtransfer.vo.EcQueryVo; | 
				
			|||
import com.fasterxml.jackson.core.JsonProcessingException; | 
				
			|||
import com.sun.jna.Memory; | 
				
			|||
import com.sun.jna.Pointer; | 
				
			|||
import org.springframework.stereotype.Service; | 
				
			|||
 | 
				
			|||
import java.io.IOException; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述: | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/12/14 15:47 | 
				
			|||
 */ | 
				
			|||
@Service | 
				
			|||
public class MedicalPayService { | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 医保电子凭证解码 | 
				
			|||
     */ | 
				
			|||
    public String decodeEC(){ | 
				
			|||
        InDataDto inDataDto = new InDataDto(); | 
				
			|||
        inDataDto.setOrgId("H46040100004"); | 
				
			|||
        inDataDto.setTransType("ec.query"); | 
				
			|||
        inDataDto.setExtra(""); | 
				
			|||
        EcQueryDto ecQueryDto = EcQueryDto.builder() | 
				
			|||
                .orgId("H46040100004") | 
				
			|||
                .businessType("02121") | 
				
			|||
                .businessInfo("") | 
				
			|||
                .operatorId("008") | 
				
			|||
                .operatorName("TEST") | 
				
			|||
                .officeId("01") | 
				
			|||
                .officeName("内科") | 
				
			|||
                .deviceType("") | 
				
			|||
                .build(); | 
				
			|||
 | 
				
			|||
        inDataDto.setData(ecQueryDto); | 
				
			|||
 | 
				
			|||
        String inData = null; | 
				
			|||
        try { | 
				
			|||
            inData = JsonUtil.objToJson(inDataDto); | 
				
			|||
        } catch (JsonProcessingException e) { | 
				
			|||
            e.printStackTrace(); | 
				
			|||
        } | 
				
			|||
        System.out.println("inData-->"+ inData); | 
				
			|||
        Pointer outData = new Memory(1024 * 10); | 
				
			|||
        String url = "http://10.103.162.166:8080/localcfc/api/hsecfc/localQrCodeQuery"; | 
				
			|||
        String result = NationECLibrary.INSTANCE.NationEcTrans(url, inData, outData); | 
				
			|||
        System.out.println("result-->"+ result); | 
				
			|||
        String output = outData.getString(0); | 
				
			|||
        System.out.println("outPut-->"+ output); | 
				
			|||
        if (result.equals("0000")){ | 
				
			|||
            System.out.println("outPut-->"+ outData.getString(0)); | 
				
			|||
            /*JSONObject jsonObject = new JSONObject(outData.getString(0)); | 
				
			|||
            if (jsonObject.getInt("code") == -2){ | 
				
			|||
                //{"code":-2,"message":"医保电子凭证编码错误,请重新扫码"} | 
				
			|||
                String msg = jsonObject.getStr("message"); | 
				
			|||
                return; | 
				
			|||
            }*/ | 
				
			|||
            try { | 
				
			|||
                EcQueryVo ecQueryVo = (EcQueryVo) JsonUtil.jsonToObj(EcQueryVo.class, outData.getString(0)); | 
				
			|||
            } catch (IOException e) { | 
				
			|||
                e.printStackTrace(); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        return output; | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
package com.cmyy.localtransfer.service; | 
				
			|||
 | 
				
			|||
import com.sun.jna.Native; | 
				
			|||
import com.sun.jna.Platform; | 
				
			|||
import com.sun.jna.Pointer; | 
				
			|||
import com.sun.jna.win32.StdCallLibrary; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述:默认的是继承Library,如果动态链接库里的函数是以stdcall方式输出的,那么就继承StdCallLibrary,比如众所周知的kernel32库 | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/11/23 17:21 | 
				
			|||
 */ | 
				
			|||
public interface NationECLibrary extends StdCallLibrary { | 
				
			|||
    NationECLibrary INSTANCE = (NationECLibrary) | 
				
			|||
            Native.loadLibrary((Platform.isWindows() ? "NationECCode" : "c"), | 
				
			|||
                    NationECLibrary.class); | 
				
			|||
 | 
				
			|||
    String NationEcTrans(String strUrl, String InData, Pointer OutData); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,48 @@ | 
				
			|||
package com.cmyy.localtransfer.utils; | 
				
			|||
 | 
				
			|||
import java.io.BufferedReader; | 
				
			|||
import java.io.InputStream; | 
				
			|||
import java.io.InputStreamReader; | 
				
			|||
import java.util.ArrayList; | 
				
			|||
import java.util.List; | 
				
			|||
import java.util.zip.ZipEntry; | 
				
			|||
import java.util.zip.ZipInputStream; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述:文件解析工具类 | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/12/21 17:06 | 
				
			|||
 */ | 
				
			|||
public class FileParseUtil { | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * 流式文件解析(TXT文件的ZIP压缩包) | 
				
			|||
     * @param inputStream | 
				
			|||
     * @throws Exception | 
				
			|||
     */ | 
				
			|||
    public static void readZipFile(InputStream inputStream) throws Exception { | 
				
			|||
        List<String[]> list = new ArrayList<>(); | 
				
			|||
        ZipInputStream zipInputStream = new ZipInputStream(inputStream); | 
				
			|||
        ZipEntry zipEntry; | 
				
			|||
        BufferedReader reader = null; | 
				
			|||
        while ((zipEntry = zipInputStream.getNextEntry()) != null){ | 
				
			|||
            if (!zipEntry.isDirectory()){ | 
				
			|||
                long size = zipEntry.getSize(); | 
				
			|||
                if (size > 0){ | 
				
			|||
                    reader = new BufferedReader(new InputStreamReader(zipInputStream, "utf-8")); | 
				
			|||
                    String line; | 
				
			|||
                    while ((line = reader.readLine()) != null){ | 
				
			|||
                        System.out.println("line---->" + line); | 
				
			|||
                        String[] segments = line.split("\\t"); | 
				
			|||
                        System.out.println("segments[0]---->" + segments[0]); | 
				
			|||
                        System.out.println("segments[1]---->" + segments[0]); | 
				
			|||
                        list.add(segments); | 
				
			|||
                    } | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
        reader.close(); | 
				
			|||
        zipInputStream.close(); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,32 @@ | 
				
			|||
package com.cmyy.localtransfer.utils; | 
				
			|||
 | 
				
			|||
import com.fasterxml.jackson.core.JsonParseException; | 
				
			|||
import com.fasterxml.jackson.core.JsonProcessingException; | 
				
			|||
import com.fasterxml.jackson.databind.DeserializationFeature; | 
				
			|||
import com.fasterxml.jackson.databind.JsonMappingException; | 
				
			|||
import com.fasterxml.jackson.databind.ObjectMapper; | 
				
			|||
 | 
				
			|||
import java.io.IOException; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述: | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/12/14 16:48 | 
				
			|||
 */ | 
				
			|||
public final class JsonUtil { | 
				
			|||
    public static Object jsonToObj(Object obj,String jsonStr) throws JsonParseException, JsonMappingException, IOException { | 
				
			|||
        ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); | 
				
			|||
 | 
				
			|||
        return obj = mapper.readValue(jsonStr, obj.getClass()); | 
				
			|||
    } | 
				
			|||
    /* | 
				
			|||
     * 002.对象转换成json | 
				
			|||
     * @param:传入对象 | 
				
			|||
     * @return:json字符串 | 
				
			|||
     */ | 
				
			|||
    public static String objToJson(Object obj) throws JsonProcessingException { | 
				
			|||
        ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); | 
				
			|||
        return mapper.writeValueAsString(obj); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,35 @@ | 
				
			|||
package com.cmyy.localtransfer.vo; | 
				
			|||
 | 
				
			|||
import lombok.Data; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 描述:电子凭证二维码解码出参 | 
				
			|||
 * | 
				
			|||
 * @author stevenhu | 
				
			|||
 * @version 2021/12/7 11:48 | 
				
			|||
 */ | 
				
			|||
@Data | 
				
			|||
public class EcQueryVo { | 
				
			|||
    //用户姓名 | 
				
			|||
    private String userName; | 
				
			|||
    //证件号码 | 
				
			|||
    private String idNo; | 
				
			|||
    //证件类型() | 
				
			|||
    private String idType; | 
				
			|||
    //身份核验令牌(用于业务处理验证) | 
				
			|||
    private String ecToken; | 
				
			|||
    //参保地行政区划 | 
				
			|||
    private String insuOrg; | 
				
			|||
    //授权流水号 | 
				
			|||
    private String authNo; | 
				
			|||
    //外部索引号 | 
				
			|||
    private String ecIndexNo; | 
				
			|||
    //性别 | 
				
			|||
    private String gender; | 
				
			|||
    //出生日期 | 
				
			|||
    private String birthday; | 
				
			|||
    //国籍 | 
				
			|||
    private String nationality; | 
				
			|||
    //电子邮箱 | 
				
			|||
    private String email; | 
				
			|||
} | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
 | 
				
			|||
server.port = 8809 | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
package com.cmyy.localtransfer; | 
				
			|||
 | 
				
			|||
import org.junit.jupiter.api.Test; | 
				
			|||
import org.springframework.boot.test.context.SpringBootTest; | 
				
			|||
 | 
				
			|||
@SpringBootTest | 
				
			|||
class LocalTransferApplicationTests { | 
				
			|||
 | 
				
			|||
    @Test | 
				
			|||
    void contextLoads() { | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
} | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue