‘chenzhilei’ há 5 meses atrás
commit
4cadcbe823
32 ficheiros alterados com 1989 adições e 0 exclusões
  1. 8 0
      .gitignore
  2. 24 0
      HELP.md
  3. 310 0
      mvnw
  4. 182 0
      mvnw.cmd
  5. 271 0
      pom.xml
  6. 3 0
      src/main/java/META-INF/MANIFEST.MF
  7. 15 0
      src/main/java/com/webserver/config/ColumnName.java
  8. 30 0
      src/main/java/com/webserver/config/CorsConfig.java
  9. 28 0
      src/main/java/com/webserver/config/MybatisPlusConfig.java
  10. 20 0
      src/main/java/com/webserver/config/RestTemplateConfig.java
  11. 51 0
      src/main/java/com/webserver/config/SqlRunnerAdapter.java
  12. 28 0
      src/main/java/com/webserver/config/TaskConfig.java
  13. 26 0
      src/main/java/com/webserver/config/envionment/ApiUrl.java
  14. 26 0
      src/main/java/com/webserver/config/envionment/ArchiveConfig.java
  15. 82 0
      src/main/java/com/webserver/config/envionment/CaData.java
  16. 18 0
      src/main/java/com/webserver/config/envionment/JcptMobile.java
  17. 43 0
      src/main/java/com/webserver/config/envionment/SystemConfig.java
  18. 38 0
      src/main/java/com/webserver/config/exception/BizException.java
  19. 74 0
      src/main/java/com/webserver/config/exception/ExceptionEnum.java
  20. 10 0
      src/main/java/com/webserver/utils/HelloService.java
  21. 13 0
      src/main/java/com/webserver/utils/HelloServiceImpl.java
  22. 29 0
      src/main/java/com/webserver/utils/WebServiceConfig.java
  23. 13 0
      src/main/java/com/webserver/utils/WebserviceDemoApplication.java
  24. 7 0
      src/main/resources/Dockerfile
  25. 84 0
      src/main/resources/META-INF/additional-spring-configuration-metadata.json
  26. 188 0
      src/main/resources/application-dev.yml
  27. 168 0
      src/main/resources/application-prod.yml
  28. 3 0
      src/main/resources/application.yml
  29. 30 0
      src/main/resources/banner.txt
  30. 23 0
      src/main/resources/database/inpatient/inpatientrecord.properties
  31. 12 0
      src/main/resources/database/inpatient/patientbaseinfo.properties
  32. 132 0
      src/main/resources/logback-spring.xml

+ 8 - 0
.gitignore

@@ -0,0 +1,8 @@
+.idea
+serverlog
+target
+web-server.iml
+src/test
+*.zip
+sql
+src/main/java/com/webserver/service/xctest/xctest.java

+ 24 - 0
HELP.md

@@ -0,0 +1,24 @@
+# Getting Started
+
+### Reference Documentation
+
+For further reference, please consider the following sections:
+
+* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
+* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.4.1/maven-plugin/reference/html/)
+* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.4.1/maven-plugin/reference/html/#build-image)
+* [Spring Web](https://docs.spring.io/spring-boot/docs/2.4.1/reference/htmlsingle/#boot-features-developing-web-applications)
+* [Spring for RabbitMQ](https://docs.spring.io/spring-boot/docs/2.4.1/reference/htmlsingle/#boot-features-amqp)
+* [WebSocket](https://docs.spring.io/spring-boot/docs/2.4.1/reference/htmlsingle/#boot-features-websockets)
+* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.4.1/reference/htmlsingle/#using-boot-devtools)
+
+### Guides
+
+The following guides illustrate how to use some features concretely:
+
+* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
+* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
+* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/)
+* [Messaging with RabbitMQ](https://spring.io/guides/gs/messaging-rabbitmq/)
+* [Using WebSocket to build an interactive web application](https://spring.io/guides/gs/messaging-stomp-websocket/)
+

+ 310 - 0
mvnw

@@ -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 "$@"

+ 182 - 0
mvnw.cmd

@@ -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 userInfo 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%

+ 271 - 0
pom.xml

@@ -0,0 +1,271 @@
+<?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.1</version>
+        <relativePath/>
+    </parent>
+    <groupId>thyyxxk</groupId>
+    <artifactId>web-server</artifactId>
+    <version>12.6.5</version>
+    <name>web-server</name>
+    <description>server for yibao-web</description>
+    <properties>
+        <java.version>1.8</java.version>
+        <druid.version>1.1.10</druid.version>
+    </properties>
+    <dependencies>
+        <!--工具类        -->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.8.24</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.20</version>
+        </dependency>
+        <!-- 肖蟾 使用mybatis-plus-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.4.2</version>
+        </dependency>
+        <!-- 数据库中的注释-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.10.5</version>
+        </dependency>
+        <!--多数据源-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- Spring Boot Web Services -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web-services</artifactId>
+        </dependency>
+
+        <!-- Apache CXF Web Services 实现 -->
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
+            <version>3.5.5</version>
+        </dependency>
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <version>8.2.2.jre8</version>
+        </dependency>
+        <dependency>
+            <groupId>net.sourceforge.jtds</groupId>
+            <artifactId>jtds</artifactId>
+            <version>1.3.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.83</version>
+        </dependency>
+        <dependency>
+            <groupId>dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>1.6.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>2.1.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.10.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents.core5</groupId>
+            <artifactId>httpcore5</artifactId>
+            <version>5.2.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents.client5</groupId>
+            <artifactId>httpclient5</artifactId>
+            <version>5.3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.wechatpay-apiv3</groupId>
+            <artifactId>wechatpay-apache-httpclient</artifactId>
+            <version>0.2.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <!-- 拼音码转换-->
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+        <!-- http外部请求接口化 -->
+        <dependency>
+            <groupId>com.dtflys.forest</groupId>
+            <artifactId>forest-spring-boot-starter</artifactId>
+            <version>1.5.35</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jetbrains</groupId>
+            <artifactId>annotations</artifactId>
+            <version>24.0.1</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk18on</artifactId>
+            <version>1.78.1</version> <!-- 使用最新版本 -->
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcpkix-jdk18on</artifactId>
+            <version>1.78.1</version> <!-- 使用最新版本 -->
+        </dependency>
+        <dependency>
+            <groupId>ognl</groupId>
+            <artifactId>ognl</artifactId>
+            <version>3.3.4</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.1</version>
+        </dependency>
+        <!-- Apache Commons Text -->
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>1.9</version>
+        </dependency>
+        <!-- spring-boot-actuator依赖,监控系统健康情况的工具 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!-- prometheus依赖 -->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+            <version>1.6.12</version>
+        </dependency>
+        <!--micrometer核心包, 按需引入, 使用Meter注解或手动埋点时需要-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-core</artifactId>
+            <version>1.6.12</version>
+        </dependency>
+        <!--micrometer获取JVM相关信息, 并展示在Grafana上, 按需引入-->
+        <dependency>
+            <groupId>io.github.mweirauch</groupId>
+            <artifactId>micrometer-jvm-extras</artifactId>
+            <version>0.2.2</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>itextpdf</artifactId>
+            <version>5.5.13.3</version>
+        </dependency>
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+            <version>7.0.1</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.4.3</version>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 3 - 0
src/main/java/META-INF/MANIFEST.MF

@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: thyyxxk.webserver.WebServerApplication
+

+ 15 - 0
src/main/java/com/webserver/config/ColumnName.java

@@ -0,0 +1,15 @@
+package com.webserver.config;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author 肖蟾
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
+public @interface ColumnName {
+    String name() default "";
+}

+ 30 - 0
src/main/java/com/webserver/config/CorsConfig.java

@@ -0,0 +1,30 @@
+package com.webserver.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * @author dj
+ */
+@Configuration
+public class CorsConfig {
+    private CorsConfiguration buildConfig() {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        corsConfiguration.addAllowedOriginPattern("*");
+        corsConfiguration.addAllowedHeader("*");
+        corsConfiguration.addAllowedMethod("*");
+        corsConfiguration.setAllowCredentials(true);
+        return corsConfiguration;
+    }
+
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", buildConfig());
+        return new CorsFilter(source);
+    }
+
+}

+ 28 - 0
src/main/java/com/webserver/config/MybatisPlusConfig.java

@@ -0,0 +1,28 @@
+package com.webserver.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @description: Mybatis-Plus
+ * @author: DingJie
+ * @create: 2021-03-31 10:07:53
+ **/
+
+@Configuration
+@MapperScan("thyyxxk.webserver.dao")
+public class MybatisPlusConfig {
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        // 自定义拦截器,先添加先执行。
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.SQL_SERVER2005));
+        return interceptor;
+    }
+
+}

+ 20 - 0
src/main/java/com/webserver/config/RestTemplateConfig.java

@@ -0,0 +1,20 @@
+package com.webserver.config;
+
+import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+import java.time.Duration;
+
+@Configuration
+public class RestTemplateConfig {
+
+    @Bean
+    public RestTemplate restTemplate(RestTemplateBuilder builder) {
+        return builder
+                .setConnectTimeout(Duration.ofSeconds(3))
+                .setReadTimeout(Duration.ofSeconds(5))
+                .build();
+    }
+}

+ 51 - 0
src/main/java/com/webserver/config/SqlRunnerAdapter.java

@@ -0,0 +1,51 @@
+package com.webserver.config;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class SqlRunnerAdapter extends SqlRunner {
+
+    public SqlRunnerAdapter() {
+        super();
+    }
+
+    @Override
+    public <E extends IPage<Map<String, Object>>> E selectPage(E page, String sql, Object... args) {
+        if (null == page) {
+            return null;
+        }
+        SqlSession sqlSession = sqlSession();
+        try {
+            page.setRecords(sqlSession.selectList(SELECT_LIST, sqlMap(sql, page, args)));
+        }finally {
+            closeSqlSession(sqlSession);
+        }
+        return page;
+    }
+
+
+    private SqlSession sqlSession() {
+        return SqlSessionUtils.getSqlSession(SqlHelper.FACTORY);
+    }
+
+    private Map<String, Object> sqlMap(String sql, IPage page, Object... args) {
+        Map<String, Object> sqlMap = new HashMap<>();
+        sqlMap.put(PAGE, page);
+        sqlMap.put(SQL, StringUtils.sqlArgsFill(sql, args));
+        return sqlMap;
+    }
+
+    private static void closeSqlSession(SqlSession sqlSession) {
+        SqlSessionFactory sqlSessionFactory = SqlHelper.FACTORY;
+        SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
+    }
+}
+

+ 28 - 0
src/main/java/com/webserver/config/TaskConfig.java

@@ -0,0 +1,28 @@
+package com.webserver.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Configuration
+@EnableAsync
+public class TaskConfig {
+
+    @Bean
+    public TaskExecutor taskExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(20);
+        executor.setMaxPoolSize(30);
+        executor.setQueueCapacity(50);
+        executor.setKeepAliveSeconds(120);
+        executor.setThreadNamePrefix("web-server-async-");
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        executor.setWaitForTasksToCompleteOnShutdown(true);
+        return executor;
+    }
+
+}

+ 26 - 0
src/main/java/com/webserver/config/envionment/ApiUrl.java

@@ -0,0 +1,26 @@
+package com.webserver.config.envionment;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@ConfigurationProperties(prefix = "thyy.apiurl")
+@Component
+@NoArgsConstructor
+public class ApiUrl {
+
+    private String socketApi;
+
+    /**
+     * 第三方接口的 api
+     */
+    private String TirdpartApi;
+
+
+    /**
+     * 定时任务的api
+     */
+    private String ScheduledApi;
+}

+ 26 - 0
src/main/java/com/webserver/config/envionment/ArchiveConfig.java

@@ -0,0 +1,26 @@
+package com.webserver.config.envionment;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * 归档配置
+ */
+@Component
+@Data
+@ConfigurationProperties(prefix = "thyy.archive")
+@NoArgsConstructor
+public class ArchiveConfig {
+
+    /**
+     * 生成的pdf在什么路径
+     */
+    private String path = System.getProperty("user.dir");
+
+    /**
+     * 因为 归档服务器也是在同样的服务器中所以,本机就可以了
+     */
+    private String archiveUrl = "http://localhost:20921/thyy/api/archive";
+}

+ 82 - 0
src/main/java/com/webserver/config/envionment/CaData.java

@@ -0,0 +1,82 @@
+package com.webserver.config.envionment;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@Data
+@ConfigurationProperties(prefix = "thyy.ca")
+@NoArgsConstructor
+public class CaData {
+
+    @Data
+    public static class MobileApp {
+        private String signAlgorithms;
+        private String privatekey;
+        private String appId;
+        private String id;
+        private String url;
+    }
+
+    @Data
+    public static class SignAuthentication {
+        /**
+         * 应用系统标识
+         */
+        private String appCode;
+
+        /**
+         * 应用系统密码
+         */
+        private String appPwd;
+
+        /**
+         * 证书
+         */
+        private String cert;
+
+        /**
+         * 签名算法
+         */
+        private String signAig;
+
+        /**
+         * 地址
+         */
+        private String url;
+    }
+
+    @Data
+    public static class TimestampAuthentication {
+        private String url;
+        /**
+         * 应用系统标识
+         */
+        private String appCode;
+
+        /**
+         * 应用系统密码
+         */
+        private String appPwd;
+    }
+
+    /**
+     * 手写数字签名系统接口规范
+     */
+    private HBoardSign hBoardSign;
+
+    @Data
+    public static class HBoardSign {
+        private String apiKey;
+        private String apiSecret;
+        private String url;
+
+        private String returnUrl;
+    }
+
+    private MobileApp mobileApp;
+    private SignAuthentication signAuthentication;
+    private TimestampAuthentication timestampAuthentication;
+}

+ 18 - 0
src/main/java/com/webserver/config/envionment/JcptMobile.java

@@ -0,0 +1,18 @@
+package com.webserver.config.envionment;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@Data
+@ConfigurationProperties(prefix = "thyy.jcptmobile")
+@NoArgsConstructor
+public class JcptMobile {
+    private String address;
+    private Integer agentid;
+    private String appid;
+    private String url;
+    private String publicKey;
+}

+ 43 - 0
src/main/java/com/webserver/config/envionment/SystemConfig.java

@@ -0,0 +1,43 @@
+package com.webserver.config.envionment;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@Data
+@ConfigurationProperties(prefix = "thyy.system")
+@NoArgsConstructor
+public class SystemConfig {
+
+    /**
+     * 合理用药
+     */
+    private String rationalUseUrl;
+
+
+    private YzConfig yzConfig = new YzConfig();
+
+    private String doctorSignFolder = System.getProperty("user.dir");
+
+
+    @Data
+    public static class YzConfig {
+        /**
+         * 医嘱是否作废
+         */
+        private Boolean yzAllowInvalidation = Boolean.FALSE;
+
+        /**
+         * 出院超出几天需要科主任授权 -1 为关闭
+         */
+        private Integer exceedingDischargeDays = -1;
+
+        /**
+         * 是否允许出院后开医嘱
+         */
+        private Boolean prescribeMedicalAdviceAfterDischarge = false;
+
+    }
+}

+ 38 - 0
src/main/java/com/webserver/config/exception/BizException.java

@@ -0,0 +1,38 @@
+package com.webserver.config.exception;
+
+/**
+ * @author dj
+ */
+public class BizException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    protected ExceptionEnum errorEnum;
+
+    public BizException() {
+        super();
+    }
+
+    public BizException(ExceptionEnum errorEnum) {
+        super(errorEnum.getMessage());
+        this.errorEnum = errorEnum;
+    }
+
+    public BizException(String message) {
+        super(new Throwable(message));
+        this.errorEnum = ExceptionEnum.INTERNAL_SERVER_ERROR;
+    }
+
+    public BizException(ExceptionEnum errorEnum, String message) {
+        super(message);
+        this.errorEnum = errorEnum;
+    }
+
+    public BizException(ExceptionEnum errorEnum, Throwable cause) {
+        super(errorEnum.getMessage(), cause);
+        this.errorEnum = errorEnum;
+    }
+
+    public ExceptionEnum getErrorEnum() {
+        return this.errorEnum;
+    }
+}

+ 74 - 0
src/main/java/com/webserver/config/exception/ExceptionEnum.java

@@ -0,0 +1,74 @@
+package com.webserver.config.exception;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author dj
+ */
+
+@Getter
+public enum ExceptionEnum {
+    /**
+     * 成功
+     */
+    SUCCESS(200, "成功。"),
+    /**
+     * 提示成功
+     */
+    SUCCESS_AND_EL_MESSAGE(201, "操作成功"),
+    SUCCESS_AND_ALERT(202, "操作成功"),
+    SUCCESS_AND_EL_NOTIFICATION(203, "操作成功"),
+
+    // 以下是需要消息提示的错误
+    INTERNAL_SERVER_ERROR(1001, "服务器内部错误!"),
+    NULL_POINTER(1002, "有不合法的空值存在!"),
+    NETWORK_ERROR(1003, "网络异常!"),
+    EXIST_NEGATIVE_FEES(1004, "此患者费用清单存在负数。"),
+    EXIST_UNHANDLED_DRUG_ORDER(1104, "此患者有未处理的药单,请联系药房处理。"),
+    EXIST_UNHANDLED_REFUND_DRUG(1105, "此患者有未处理的护士退药单。"),
+    NO_DATA_EXIST(1005, "没有查询到符合条件的数据。"),
+    ABNORMAL_YZ_ACT_ORDER(1006, "此患者存在异常状态医嘱。"),
+    INVALID_PARAM(1007, "参数异常,请检查。"),
+    NO_PERMISSION_TO_VIEW(1008, "无权查看。"),
+    UNAUTHORIZED_OPERATION(1009, "无权操作。"),
+    API_FUNC_ERROR(1010, "接口错误,请联系管理员。"),
+
+    // 以下是需要弹窗提示的错误
+    LOGICAL_ERROR(2001, "错误。"),
+    NEED_PROOFREAD(2002, "错误。"),
+    LOGICAL_HTML_ERROR(2003, "错误。"),
+
+    // 以下是需要弹窗提示并且重定向到登录页面
+    TOKEN_NOT_EXIST(3001, "没有找到令牌,请重新登录!"),
+    TOKEN_ERROR(3001, "令牌错误,请重新登录!"),
+    USER_NOT_EXIST(3002, "用户不存在,请重新登录!"),
+    INVALID_PASSWORD(3003, "密码错误,请重新登录!"),
+    LOCK_OUT_THE_USER(3003, "用户锁定!"),
+    BAD_REQUEST(3004, "无法转换请求,请用正确的方式访问!"),
+    TOKEN_EXPIRED(3005, "令牌已过期,请重新登录!"),
+    TEST_ENVIRONMENT(3006, "测试环境已关闭请使用正式环境接口"),
+
+    // 以下是不需要提示的错误
+    SLIGHTLY_ERROR(4001, "无需提示的返回。"),
+    PRE_DISCHARGE_ERROR(4002, "出院预审有可疑数据。"),
+    SERVER_IS_UPDATE(5001, "服务器正在升级,请稍后在试一下。"),
+    ERROR_MESSAGE(6001, "前端是返回成功的"),
+    ERROR_MESSAGE_BOX(6002, "数据错误"),
+    // 电子病历保存错误信息
+    EMR_SAVE(7001, "保存失败"),
+    EMR_EXTRACT_OBJECTS(7002, "提取数据元失败,但病历已保存。"),
+    NOT_EL_MESSAGE(8001, "前端没提示的错误信息");
+
+
+
+    private final int code;
+    @Setter
+    private String message;
+
+    ExceptionEnum(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+}

+ 10 - 0
src/main/java/com/webserver/utils/HelloService.java

@@ -0,0 +1,10 @@
+package com.webserver.utils;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+
+@WebService
+public interface HelloService {
+    @WebMethod
+    String sayHello(String name);
+}

+ 13 - 0
src/main/java/com/webserver/utils/HelloServiceImpl.java

@@ -0,0 +1,13 @@
+package com.webserver.utils;
+
+import org.springframework.stereotype.Service;
+
+import javax.jws.WebService;
+@Service
+@WebService
+public class HelloServiceImpl {
+    public String sayHello(String name) {
+        return "Hello, " + name + "!";
+    }
+}
+

+ 29 - 0
src/main/java/com/webserver/utils/WebServiceConfig.java

@@ -0,0 +1,29 @@
+package com.webserver.utils;
+
+
+import org.apache.cxf.Bus;
+        import org.apache.cxf.jaxws.EndpointImpl;
+        import org.springframework.beans.factory.annotation.Autowired;
+        import org.springframework.context.annotation.Bean;
+        import org.springframework.context.annotation.Configuration;
+
+        import javax.xml.ws.Endpoint;
+
+@Configuration
+public class WebServiceConfig {
+
+    @Autowired
+    private Bus bus;
+
+    @Autowired
+    private HelloServiceImpl helloService;
+
+    @Bean
+    public Endpoint endpoint() {
+        // 创建Endpoint实例
+        EndpointImpl endpoint = new EndpointImpl(bus, helloService);
+        // 发布Endpoint,指定访问路径
+        endpoint.publish("/hello1");
+        return endpoint;
+    }
+}

+ 13 - 0
src/main/java/com/webserver/utils/WebserviceDemoApplication.java

@@ -0,0 +1,13 @@
+package com.webserver.utils;
+
+
+import org.springframework.boot.SpringApplication;
+        import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class WebserviceDemoApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(WebserviceDemoApplication.class, args);
+        System.out.println("WebService已发布在: http://localhost:8080/services/hello?wsdl");
+    }
+}

+ 7 - 0
src/main/resources/Dockerfile

@@ -0,0 +1,7 @@
+FROM openjdk:8-jdk-alpine
+RUN mkdir -p /home/intergration-platform/server/serverlog
+COPY *.jar /home/intergration-platform/server/web-server.jar
+WORKDIR /home/intergration-platform/server
+CMD ["java","-jar","/home/intergration-platform/server/web-server.jar","--spring.profiles.active=show"]
+
+#nohup java -Xms4096m -Xmx4096m -XX:+UseG1GC -jar $latest_jar --spring.profiles.active=show> /dev/null &

+ 84 - 0
src/main/resources/META-INF/additional-spring-configuration-metadata.json

@@ -0,0 +1,84 @@
+{
+  "properties": [
+    {
+      "name": "UPLOAD_BASE",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "CSSYB_BASE",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "HNSYB_BASE",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "XNHYB_BASE",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "CSSYB_READ_MZ_PATIENT",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "CSSYB_MT_INFO",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "HNSYB_MT_INFO",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "CSSYB_MT_PRE_CAL",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "PROOFREAD",
+      "type": "java.lang.String",
+      "description": "none."
+    },
+    {
+      "name": "si-readcard-url",
+      "type": "java.lang.String",
+      "description": "Description for si-readcard-url."
+    },
+    {
+      "name": "si-qrcode-url",
+      "type": "java.lang.String",
+      "description": "Description for si-qrcode-url."
+    },
+    {
+      "name": "jmbb-url",
+      "type": "java.lang.String",
+      "description": "Description for jmbb-url."
+    },
+    {
+      "name": "si-access-key",
+      "type": "java.lang.String",
+      "description": "Description for si-access-key."
+    },
+    {
+      "name": "si-secret-key",
+      "type": "java.lang.String",
+      "description": "Description for si-secret-key."
+    },
+    {
+      "name": "execute-scheduled",
+      "type": "java.lang.String",
+      "description": "Description for execute-scheduled."
+    },
+    {
+      "name": "baseUrl",
+      "type": "java.lang.String",
+      "description": "Description for baseUrl."
+    }
+  ]
+}

+ 188 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,188 @@
+server:
+  port: 8706
+  tomcat:
+    uri-encoding: utf-8
+    threads:
+      min-spare: 20
+      max: 800
+    accept-count: 200
+    max-connections: 10000
+spring:
+  application:
+    name: web-server-dev
+  thymeleaf:
+    cache: false
+  datasource:
+    dynamic:
+      primary: his
+      strict: false
+      datasource:
+        his:
+          url: "jdbc:sqlserver://localhost:1433;databaseName=hisdb"
+          username: "sa"
+          password: "root"
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+        demo:
+          url: "jdbc:sqlserver://localhost:1433;databaseName=demohisdb"
+          username: "demo"
+          password: "demo2025"
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+        lis:
+          url: "jdbc:sqlserver://172.16.32.178:1433;databaseName=eLimsCore"
+          username: "sa"
+          password: "hnthxyyy"
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+        adicon:
+          url: "jdbc:sqlserver://172.16.32.100:1433;databaseName=CYYFCheckUPV5_HNTHYY"
+          username: "sa"
+          password: "*ThyyHis2018#"
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+    druid:
+      #type: com.alibaba.druid.pool.DruidDataSource
+      #初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
+      initial-size: 40
+      #最大连接池数量
+      max-active: 100
+      #最小连接池数量
+      min-idle: 40
+      #获取连接时最大等待时间,单位毫秒
+      max-wait: 60000
+      #使用非公平锁。
+      use-unfair-lock: true
+      #用来检测连接是否有效的sql,要求是一个查询语句。
+      validation-query: SELECT 1
+      #建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
+      test-while-idle: true
+      #申请连接时执行validationQuery检测连接是否有效,
+      test-on-borrow: true
+      #归还连接时执行validationQuery检测连接是否有效,
+      test-on-return: false
+      #Destroy线程会检测连接的间隔时间,testWhileIdle的判断依据,详细看testWhileIdle属性的说明
+      time-between-eviction-runs-millis: 60000
+      #配置一个连接在池中最小生存的时间,单位是毫秒
+      min-evictable-idle-time-millis: 300000
+      #监控统计用的filter:stat  日志用的filter:log4j    防御sql注入的filter:wall
+      filters: stat
+      #是否缓存preparedStatement,也就是PSCache,在mysql5.5以下的版本中没有PSCache功能,建议关闭掉
+      pool-prepared-statements: false
+      #要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
+      max-pool-prepared-statement-per-connection-size: 200
+      #对于长时间不使用的连接强制关闭
+      remove-abandoned: true
+      #数据库链接超过180秒开始关闭空闲连接 秒为单位
+      remove-abandoned-timeout: 180
+      #将当前关闭动作记录到日志  此配置项会影响性能,只在排查的时候打开,系统运行时最好关闭。
+      log-abandoned: true
+  autoconfigure:
+    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 去除druid配置
+  jackson:
+    time-zone: Asia/Shanghai
+    date-format: yyyy-MM-dd HH:mm:ss
+  mvc:
+    format:
+      date: yyyy-MM-dd
+      date-time: yyyy-MM-dd HH:mm:ss
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+logging:
+  level:
+    thyyxxk.webserver.dao: debug
+forest:
+  timeout: 0
+  read-timeout: 0
+  log-enabled: true
+  log-request: true
+  log-response-status: true
+  connect-timeout: 1500
+  variables:
+    emrUrl: "http://172.16.32.125:8001/emr/runtime/api/v1"
+
+management:
+  server:
+    port: 9091
+  endpoints:
+    web:
+      base-path: /actuator
+      exposure:
+        include: '*'
+  metrics:
+    export:
+      simple:
+        enabled: true
+      jmx:
+        enabled: true
+      prometheus:
+        enabled: true
+    distribution:
+      percentiles-histogram:
+        http:
+          server:
+            requests: false
+      minimum-expected-value:
+        http:
+          server:
+            requests: 20ms
+      maximum-expected-value:
+        http:
+          server:
+            requests: 200ms
+  endpoint:
+    metrics:
+      enabled: true
+    health:
+      show-details: always
+      probes:
+        enabled: true
+    prometheus:
+      enabled: true
+
+execute-scheduled: false
+is-prod: false
+
+si-api-url: http://webhis.thyy.cn:8077/ybjkdz
+si-access-key: 04eMGRg7beAO6vqwrZiLacV8Uy3jNn7QGDUcBO
+si-secret-key: SK3Oip3a2R3NLz2xm58Mpmi69oFu96KrdKNRKglN
+si-zy-fee-url: http://172.16.30.26:1000
+si-mz-fee-url: http://172.16.30.26:1100/mzFee
+si-injury-fee-url: http://172.16.30.26:2100/siInjury
+si-injury-systm-url: http://172.16.30.26:2000/siInjury
+thmz-api-url: http://172.16.30.119:8089/thmz
+rmHkUserApi: http://172.16.30.66:20923/thyy/api/haikang/door/destructionUser
+
+
+thyy:
+  ca:
+    sign-authentication:
+      app-code: ywxt
+      app-pwd: 12345678
+      cert: "MIIB9TCCAZigAwIBAgIOAV53M9Vp5AY8j5DL1EUwDAYIKoEcz1UBg3UFADA+MQswCQYDVQQGEwJDTjEUMBIGA1UEAwwLU00yIFJPT1QgQ0ExCzAJBgNVBAgMAlNIMQwwCgYDVQQKDANoYWgwHhcNMjMwMzA5MDY1MzQyWhcNMjUwMzA5MDY1MzQyWjBZMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ0wCwYDVQQKDARzaWduMQ0wCwYDVQQLDARzaWduMRIwEAYDVQQDDAlzaWduX3Rlc3QwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAAT9dIroxCUB5oZvxl2Irq3OoAtbWvqa5tNvw854VGmgJxfuuTfgBtcVdEHkbXsSvRNdj9Uq2ld2XFjoaIyHaC1Co10wWzAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCE77Si3YBk/u4qjZMQAJNHBvWKUMB0GA1UdDgQWBBSjsmDHccu255pXS76XpNE3LL7f7DALBgNVHQ8EBAMCB4AwDAYIKoEcz1UBg3UFAANJADBGAiEAkECq7DAZiONAwDblXKigoyGkmjePKsS2L4noqg/wQuwCIQCGnRJITQ+ErYg/l+YNrAWgY1UtoQnsM8A4XIsUynzu7Q=="
+      sign-aig: "SM3withSM2"
+      url: "http://103.36.136.173:7845/services/CipherServices"
+    mobile-app:
+      app-id: 3
+      url: https://device.mkeysec.net/openapi
+      privatekey: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHwpN7M6Xhja7sfaB0K3y2MBd4xLfhOF64mv0mtEZfqaWvphadXAimnfru8Y4sf0wDb9LYjacXRTkRMhZaZq5ZRCNFB+G8HnNb1y9Vr+7VqvT3wlRV0n+Jar+rEFguW293kH6wOLPQVNkmL4xEy/ecI81gfqR0wSHbyVWaBJ4o7w8qYVFc3is0vswl/bpKE2/4ngjEGDNuYdS0oXZR1TOjEEtNPEws9944yHyfYnbJgbTXkO78hlRUUu4tA8UnSjLrO0m0I6aQkuibPHKjMj247q2629L5IQpn+mGpgxmqUQmzSlKf5wg3uE0Ss1Bea8/AneSDBx2tzjsEs2qKn8cfAgMBAAECggEAM18GbaVCjNIPMf/rmmnmPA6AoztVFU0+Un6bcmzfAE3ymz+u6QatY1b+YDJZiS72NYq37yfS5XRVPtOEL9sQ+EhXTETKP2QKZONNTxBOwN166tHHFd6cUgRp2LJLm+cPi9/KgKZELH4e2Vs+qb3AyX2mtm/VjTSTulY6JRjAPF6EIyQqiLIinyw9TUXNqBs1kT5ma/50YPO2pSXWiOcXX9WWL7ECCNLCfKVRCKlEuaHuIozDuuwGHBrALAdqjWxrj0IMywCZIoVbBke+U7+KCKhKsc5eqsUJu8YfoVR3hxVhUHjlqIFbuAlLvrMqYZd3HgT1O3RSp/eOyXRMGsW0kQKBgQDHvA1p9Qv7K62WYOwwHEIg5Qym5uK4ClhvWUUQPE63bhzrkLkfNlDEOFpsnIk1EonvJHbfzW4pKR36AjbGBv9xxdgntkee+35pN8d8MT2eNMyHdsF6TDToKqPmqKHcxXmnpOCtC9Cam1wjBU+e7gdSoAeNWJeKUzg79HN7M7uD6QKBgQCuAPkd1G7GHkhMiXur1Td6nTmzwz9zPeHHycAE2r1epH22VUfKTu/oDgmky/VKO3JJuc1txt2bHs90iTLRDmcMy9l+6Ix9UJzmanAIRzhAVgmwz1liUNLbnJGl0YxCq0qlQA3FUUmOP36C2cvHcJm/hRIPG2O2nT1DLKsHvgU1xwKBgGL6mPciHU7aBUrZOxJYXpjoiQ2Iq1+imNKNPYFfMW8LHT/LV0HVa87hUkYyiHgJeNtOia48olO5cYZ8ZGJcA2iBL632UaXCYZGIt82epTdqWNTkj9qoOyu2PcTHWncKUVA3j7ORgE2tocolDqDmujBC55svBOHifaKQcE3khA9JAoGAf/fLPjrrNN00gsVhpJ/sa0qSEzh2w4QxNkOT6n4MYzxKD/xsDcc7/MfGI+K0BOHvTXVONXvZoqloHOaB7unOs8R/sivIlqjgmzyQJCZsojQkcFot/HZAfK6LFw4jPyzGev2+ou0DUZA0tHsEuSqAiC+PdnjIPpcpZOvG5KzFHCUCgYEAuLEUmIzQ7ex85Ulag2qfGj0CDMAq1R/rmwrk+1d2aP9GY890HwcyN5dlZGy8/Z/lMlzOGo1kDhhhwOfbiYSit00FdLChVux0wh8nyqqB4IuTy0S0ZeTNjWnjftpNaPXdHh5mpUXXKygCp3UT65HC6coaqoD3Vv8jE32svsz/uPE="
+    timestamp-authentication:
+      url: http://103.36.136.173:7845/services/TimeStampServices
+      app-code: ywxt
+      app-pwd: 12345678
+    HBoard-sign:
+      api-key: "00000"
+      api-secret: "00000000"
+      url: http://47.100.199.230:8080/pdfsign_hw
+      return-url: "https://emr.hnthyy.cn:9222/caTest/thyyca/hBoardSignReturnUrl"
+  apiurl:
+    socket-api: http://localhost:20922/thyy/api/socket
+    scheduled-api: http://localhost:21702/thyy/scheduled/api
+    tirdpart-api: http://localhost:21701/thyy/thirdpart/api
+  archive:
+    path: "Z:\\"
+    archive-url: "http://172.16.32.167:20921/thyy/api/archive"
+  jcptmobile:
+    address: "https://emr.hnthyy.cn:8081"
+    agentid: 1000051
+  system:
+    yz-config:
+      exceeding-discharge-days: 4
+

+ 168 - 0
src/main/resources/application-prod.yml

@@ -0,0 +1,168 @@
+server:
+  port: 8706
+  tomcat:
+    uri-encoding: utf-8
+    threads:
+      min-spare: 20
+      max: 800
+    accept-count: 200
+    max-connections: 10000
+spring:
+  application:
+    name: web-server
+  thymeleaf:
+    cache: false
+  datasource:
+    dynamic:
+      primary: his
+      strict: false
+      datasource:
+        his:
+          url: "jdbc:sqlserver://172.16.32.168:1433;databaseName=thxyhisdb"
+          username: "sa"
+          password:
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+        lis:
+          url: "jdbc:sqlserver://172.16.32.178:1433;databaseName=eLimsCore"
+          username: "sa"
+          password: "hnthxyyy"
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+        adicon:
+          url: "jdbc:sqlserver://172.16.32.100:1433;databaseName=CYYFCheckUPV5_HNTHYY"
+          username: "sa"
+          password: "*ThyyHis2018#"
+          driver-class-name: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+    druid:
+      #type: com.alibaba.druid.pool.DruidDataSource
+      #初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
+      initial-size: 40
+      #最大连接池数量
+      max-active: 100
+      #最小连接池数量
+      min-idle: 40
+      #获取连接时最大等待时间,单位毫秒
+      max-wait: 60000
+      #使用非公平锁。
+      use-unfair-lock: true
+      #用来检测连接是否有效的sql,要求是一个查询语句。
+      validation-query: SELECT 1
+      #建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
+      test-while-idle: true
+      #申请连接时执行validationQuery检测连接是否有效,
+      test-on-borrow: true
+      #归还连接时执行validationQuery检测连接是否有效,
+      test-on-return: false
+      #Destroy线程会检测连接的间隔时间,testWhileIdle的判断依据,详细看testWhileIdle属性的说明
+      time-between-eviction-runs-millis: 60000
+      #配置一个连接在池中最小生存的时间,单位是毫秒
+      min-evictable-idle-time-millis: 300000
+      #监控统计用的filter:stat  日志用的filter:log4j    防御sql注入的filter:wall
+      filters: stat
+      #是否缓存preparedStatement,也就是PSCache,在mysql5.5以下的版本中没有PSCache功能,建议关闭掉
+      pool-prepared-statements: false
+      #要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
+      max-pool-prepared-statement-per-connection-size: 200
+      #对于长时间不使用的连接强制关闭
+      remove-abandoned: true
+      #数据库链接超过180秒开始关闭空闲连接 秒为单位
+      remove-abandoned-timeout: 180
+      #将当前关闭动作记录到日志  此配置项会影响性能,只在排查的时候打开,系统运行时最好关闭。
+      log-abandoned: true
+  autoconfigure:
+    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 去除druid配置
+  jackson:
+    time-zone: Asia/Shanghai
+    date-format: yyyy-MM-dd HH:mm:ss
+  mvc:
+    format:
+      date: yyyy-MM-dd
+      date-time: yyyy-MM-dd HH:mm:ss
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+logging:
+  level:
+    thyyxxk.webserver.dao: info
+forest:
+  timeout: 0
+  read-timeout: 0
+  log-enabled: true
+  log-request: true
+  log-response-status: true
+  connect-timeout: 1500
+  variables:
+    emrUrl: "http://172.16.32.125:8001/emr/runtime/api/v1"
+
+management:
+  server:
+    port: 9091
+  endpoints:
+    web:
+      base-path: /actuator
+      exposure:
+        include: '*'
+  metrics:
+    export:
+      simple:
+        enabled: true
+      jmx:
+        enabled: true
+      prometheus:
+        enabled: true
+    distribution:
+      percentiles-histogram:
+        http:
+          server:
+            requests: false
+      minimum-expected-value:
+        http:
+          server:
+            requests: 20ms
+      maximum-expected-value:
+        http:
+          server:
+            requests: 200ms
+  endpoint:
+    metrics:
+      enabled: true
+    health:
+      show-details: always
+      probes:
+        enabled: true
+    prometheus:
+      enabled: true
+
+execute-scheduled: true
+is-prod: true
+
+si-api-url: http://webhis.thyy.cn:8077/ybjkdz
+si-access-key: 04eMGRg7beAO6vqwrZiLacV8Uy3jNn7QGDUcBO
+si-secret-key: SK3Oip3a2R3NLz2xm58Mpmi69oFu96KrdKNRKglN
+si-zy-fee-url: http://172.16.32.166:1000
+si-mz-fee-url: http://172.16.32.166:1100/mzFee
+si-injury-fee-url: http://172.16.32.163:2100/siInjury
+si-injury-systm-url: http://172.16.32.163:2000/siInjury
+thmz-api-url: http://172.16.32.160:81/thmz
+rmHkUserApi: http://172.16.32.167:20923/thyy/api/haikang/door/destructionUser
+
+thyy:
+  system:
+    yz-config:
+      yz-allow-invalidation: true
+      exceeding-discharge-days: 4
+      prescribe-medical-advice-after-discharge: true
+    rational-use-url: http://172.16.32.121:8016/Audit.ashx
+    doctor-sign-folder: "/home/doctorSignature"
+  archive:
+    path: "/mnt/archive"
+    archive-url: http://172.16.32.167:20921/thyy/api/archive
+  apiurl:
+    socket-api: http://172.16.32.160:20922/thyy/api/socket
+    scheduled-api: http://localhost:21702/thyy/scheduled/api
+    tirdpart-api: http://localhost:21701/thyy/thirdpart/api
+  jcptmobile:
+    address: "https://emr.hnthyy.cn:8080"
+    agentid: 1000050
+    url: "https://open.weixin.qq.com/connect/oauth2/authorize"
+    appid: "wwf0b23c8b36012b34"
+    public-key: "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCDN7dqjx3C71g7P6qlcMHsnxawNSdgx7C0nHreDzAk0GFUO2xAkhxrYT9P2KQTPWzFQOje/DaxhWhJHssRQc8Q9lnaDZXta3wZvIvkLhW/NfJQNMLpOhYS6wyfTHrppSw/52TcxttmzmAEsza2ekkZbSvTwyVU4rIpKHyYt9r7bQIDAQAB"

+ 3 - 0
src/main/resources/application.yml

@@ -0,0 +1,3 @@
+spring:
+  profiles:
+    active: dev

+ 30 - 0
src/main/resources/banner.txt

@@ -0,0 +1,30 @@
+${AnsiColor.BRIGHT_GREEN}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+      ██     ██     ██      ██     ██             ████   ████   ████
+     ░██    ████   ░██     ░██    ████           █░░░ █ █░░░ █ █░░░ █
+     ░██   ██░░██  ░██     ░██   ██░░██         ░█   ░ ░█   ░ ░█   ░
+     ░██  ██  ░░██ ░░██    ██   ██  ░░██        ░█████ ░█████ ░█████
+     ░██ ██████████ ░░██  ██   ██████████       ░█░░░ █░█░░░ █░█░░░ █
+ ██  ░██░██░░░░░░██  ░░████   ░██░░░░░░██       ░█   ░█░█   ░█░█   ░█
+░░█████ ░██     ░██   ░░██    ░██     ░██       ░ ████ ░ ████ ░ ████
+ ░░░░░  ░░      ░░     ░░     ░░      ░░         ░░░░   ░░░░   ░░░░
+${AnsiColor.BRIGHT_YELLOW}$$                                _.ooOoo._                               $$
+${AnsiColor.BRIGHT_RED}$$                               o888888888o                              $$
+${AnsiColor.BRIGHT_CYAN}$$                               88"  .  "88                              $$
+${AnsiColor.BRIGHT_MAGENTA}$$                               (|  ^_^  |)                              $$
+${AnsiColor.BRIGHT_GREEN}$$                               O\   =   /O                              $$
+${AnsiColor.BRIGHT_RED}$$                            ____/`-----'\____                           $$
+${AnsiColor.BRIGHT_CYAN}$$                          .'  \\|       |$$  `.                         $$
+${AnsiColor.BRIGHT_MAGENTA}$$                         /  \\|||   :   |||$$  \                        $$
+${AnsiColor.BRIGHT_GREEN}$$                        /  _|||||  -:-  |||||-  \                       $$
+${AnsiColor.BRIGHT_YELLOW}$$                        |   | \\\   -   $$/ |   |                       $$
+${AnsiColor.BRIGHT_GREEN}$$                        | \_|  ''\-----/''  |   |                       $$
+${AnsiColor.BRIGHT_YELLOW}$$                        \  .-\___  `-`  ____/-. /                       $$
+${AnsiColor.BRIGHT_CYAN}$$                      ___`. .'   /--.--\   `. . ___                     $$
+${AnsiColor.BRIGHT_RED}$$                    ."" '<  `.____\_<|>_/____.'  >'"".                  $$
+${AnsiColor.BRIGHT_GREEN}$$                  | | :  `- \`.;`.\ _ /``;.`/ - ` : | |                 $$
+${AnsiColor.BRIGHT_YELLOW}$$                  \  \ `-.   \_ ___\ /___ _/   .-` /  /                 $$
+${AnsiColor.BRIGHT_CYAN}$$            ========`-.____`-.____\_____/____.-`____.-'========         $$
+${AnsiColor.BRIGHT_MAGENTA}$$                                  `=---='                               $$
+${AnsiColor.BRIGHT_YELLOW}$$            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        $$
+${AnsiColor.BRIGHT_GREEN}$$                     佛祖保佑          永无BUG         永不修改            $$
+${AnsiColor.BRIGHT_YELLOW}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

+ 23 - 0
src/main/resources/database/inpatient/inpatientrecord.properties

@@ -0,0 +1,23 @@
+inHospitalTable=zy_actpatient
+outHospitalTable=zy_inactpatient
+patNo=inpatient_no
+times=admiss_times
+name=name
+chargeType=charge_type
+visitType=visit_type
+admissDate=admiss_date
+admissStatus=admiss_status
+clinicDiag=clinic_diag
+admissDiag=admiss_diag
+admissDoctor=admiss_physician
+referDoctor=refer_physician
+consultPhysician=consult_physician
+deptDirector=dept_director
+admissDept=admiss_dept
+admissWard=admiss_ward
+disDate=dis_date
+disDiag=dis_diag
+disStatus=dis_status
+disDept=dis_dept
+disWard=dis_ward
+insurCode=insur_code

+ 12 - 0
src/main/resources/database/inpatient/patientbaseinfo.properties

@@ -0,0 +1,12 @@
+table=a_patient_mi
+patNo=inpatient_no
+name=name
+birthDate=birth_date
+gender=sex
+marriage=marry_code
+nation=nation_code
+occupation=occupation_code
+vip=vip_code
+idcard=social_no
+phone=home_tel
+livePlace=home_street

+ 132 - 0
src/main/resources/logback-spring.xml

@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+
+    <springProperty scope="context" name="LOG_HOME" source="logging.path"
+                    defaultValue="serverlog"/>
+
+    <!-- 日志级别 -->
+    <springProperty scope="context" name="LOG_ROOT_LEVEL" source="logging.level.root" defaultValue="INFO"/>
+
+    <!--  标识这个"STDOUT" 将会添加到这个logger -->
+    <springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
+
+    <!-- 日志文件名称-->
+    <property name="LOG_PREFIX" value="spring-boot-logback"/>
+
+    <!-- 日志文件编码-->
+    <property name="LOG_CHARSET" value="UTF-8"/>
+
+    <!-- 日志文件路径+日期-->
+    <property name="LOG_DIR" value="${LOG_HOME}/%d{yyyy-MM-dd}"/>
+
+    <!--对日志进行格式化-->
+    <property name="LOG_MSG" value="- [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%level] [%thread] [%logger{16}] --> %msg%n "/>
+
+    <!--文件大小,默认10MB-->
+    <property name="MAX_FILE_SIZE" value="30MB"/>
+
+    <!-- 配置日志的滚动时间 ,value表示保留日志的天数,0表示永久保存 -->
+    <property name="MAX_HISTORY" value="0"/>
+
+
+    <!-- 彩色日志 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="-[%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){blue}] [%clr(%level)] [%clr(%thread)] [%clr(%logger{16}){cyan}] %clr(-->){red} %clr(%msg%n){yellow}"/>
+
+    <!--输出到控制台-->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- 输出的日志内容格式化-->
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </layout>
+    </appender>
+
+    <!--输出到文件-->
+    <appender name="0" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    </appender>
+
+    <!-- 定义 ALL 日志的输出方式:-->
+    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!--日志文件路径,日志文件名称-->
+        <File>${LOG_HOME}/all_${LOG_PREFIX}.log</File>
+
+        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+
+            <!--日志文件路径,新的 ALL 日志文件名称,“ i ” 是个变量 -->
+            <FileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%i.log</FileNamePattern>
+
+            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+            <MaxHistory>${MAX_HISTORY}</MaxHistory>
+
+            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+
+        </rollingPolicy>
+
+        <!-- 输出的日志内容格式化-->
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <pattern>${LOG_MSG}</pattern>
+        </layout>
+    </appender>
+
+    <!-- 定义 ERROR 日志的输出方式:-->
+    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 下面为配置只输出error级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
+        </filter>
+        <!--日志文件路径,日志文件名称-->
+        <File>${LOG_HOME}/err_${LOG_PREFIX}.log</File>
+
+        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+
+            <!--日志文件路径,新的 ERR 日志文件名称,“ i ” 是个变量 -->
+            <FileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%i.log</FileNamePattern>
+
+            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+            <MaxHistory>${MAX_HISTORY}</MaxHistory>
+
+            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+
+        <!-- 输出的日志内容格式化-->
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <Pattern>${LOG_MSG}</Pattern>
+        </layout>
+    </appender>
+
+    <!-- additivity 设为false,则logger内容不附加至root ,配置以配置包下的所有类的日志的打印,级别是 ERROR-->
+
+    <logger name="org.springframework" level="ERROR"/>
+    <logger name="org.apache.commons" level="ERROR"/>
+    <!--    <logger name="th.itcenter.apps.controller.logger.LoggingController" level="WARN"/>-->
+    <!-- ${LOG_ROOT_LEVEL} 日志级别 -->
+    <root level="${LOG_ROOT_LEVEL}">
+
+        <!-- 标识这个"${STDOUT}"将会添加到这个logger -->
+        <appender-ref ref="${STDOUT}"/>
+
+        <!-- FILE_ALL 日志输出添加到 logger -->
+        <appender-ref ref="FILE_ALL"/>
+
+        <!-- FILE_ERROR 日志输出添加到 logger -->
+        <appender-ref ref="FILE_ERROR"/>
+    </root>
+
+</configuration>