Browse Source

寿险反欺诈

sihs@dgtis.com 6 năm trước cách đây
mục cha
commit
214101664e
100 tập tin đã thay đổi với 33293 bổ sung0 xóa
  1. 31 0
      .gitignore
  2. 286 0
      mvnw
  3. 161 0
      mvnw.cmd
  4. 175 0
      pom.xml
  5. 55 0
      src/main/java/com/dgt/graphdemo/GraphdemoApplication.java
  6. 72 0
      src/main/java/com/dgt/graphdemo/JsonFileRunner.java
  7. 37 0
      src/main/java/com/dgt/graphdemo/config/CorsConfig.java
  8. 32 0
      src/main/java/com/dgt/graphdemo/config/Neo4jConfig.java
  9. 86 0
      src/main/java/com/dgt/graphdemo/config/ViewResolverConfiguration.java
  10. 29 0
      src/main/java/com/dgt/graphdemo/controller/DatilFromGraphController.java
  11. 71 0
      src/main/java/com/dgt/graphdemo/controller/GraphController.java
  12. 139 0
      src/main/java/com/dgt/graphdemo/controller/JsonController.java
  13. 22 0
      src/main/java/com/dgt/graphdemo/controller/TestController.java
  14. 24 0
      src/main/java/com/dgt/graphdemo/entity/Edge.java
  15. 28 0
      src/main/java/com/dgt/graphdemo/entity/GraphData.java
  16. 22 0
      src/main/java/com/dgt/graphdemo/entity/GraphDatilData.java
  17. 26 0
      src/main/java/com/dgt/graphdemo/entity/GraphQuery.java
  18. 32 0
      src/main/java/com/dgt/graphdemo/entity/MyNode.java
  19. 17 0
      src/main/java/com/dgt/graphdemo/entity/NodeAttr.java
  20. 20 0
      src/main/java/com/dgt/graphdemo/entity/RepEntity.java
  21. 21 0
      src/main/java/com/dgt/graphdemo/entity/RepTest.java
  22. 21 0
      src/main/java/com/dgt/graphdemo/entity/fqz/Basebean.java
  23. 81 0
      src/main/java/com/dgt/graphdemo/entity/fqz/CommonBean.java
  24. 204 0
      src/main/java/com/dgt/graphdemo/entity/fqz/Edge.java
  25. 80 0
      src/main/java/com/dgt/graphdemo/entity/fqz/EdgeAttr.java
  26. 136 0
      src/main/java/com/dgt/graphdemo/entity/fqz/EdgeNew.java
  27. 277 0
      src/main/java/com/dgt/graphdemo/entity/fqz/Graph.java
  28. 255 0
      src/main/java/com/dgt/graphdemo/entity/fqz/GraphNew.java
  29. 442 0
      src/main/java/com/dgt/graphdemo/entity/fqz/Node.java
  30. 79 0
      src/main/java/com/dgt/graphdemo/entity/fqz/NodeAttr.java
  31. 105 0
      src/main/java/com/dgt/graphdemo/entity/fqz/Nodes.java
  32. 253 0
      src/main/java/com/dgt/graphdemo/entity/fqz/Pager.java
  33. 23 0
      src/main/java/com/dgt/graphdemo/exception/CommonBizException.java
  34. 23 0
      src/main/java/com/dgt/graphdemo/exception/CommonSysException.java
  35. 71 0
      src/main/java/com/dgt/graphdemo/exception/ExpCodeEnum.java
  36. 126 0
      src/main/java/com/dgt/graphdemo/jpa/entity/BasicClaimnoEntity.java
  37. 89 0
      src/main/java/com/dgt/graphdemo/jpa/entity/RiskTipEntity.java
  38. 73 0
      src/main/java/com/dgt/graphdemo/jpa/entity/SimilarFactorEntity.java
  39. 95 0
      src/main/java/com/dgt/graphdemo/jpa/entity/SimilarTypeClaimnoEntity.java
  40. 16 0
      src/main/java/com/dgt/graphdemo/jpa/repo/BasicClaimnoRepo.java
  41. 16 0
      src/main/java/com/dgt/graphdemo/jpa/repo/RiskTipRepo.java
  42. 17 0
      src/main/java/com/dgt/graphdemo/jpa/repo/SimilarFactorRepo.java
  43. 17 0
      src/main/java/com/dgt/graphdemo/jpa/repo/SimilarTypeClaimnoRepo.java
  44. 112 0
      src/main/java/com/dgt/graphdemo/result/Result.java
  45. 60 0
      src/main/java/com/dgt/graphdemo/service/DatilFormGraphService.java
  46. 110 0
      src/main/java/com/dgt/graphdemo/service/GraphService.java
  47. 35 0
      src/main/java/com/dgt/graphdemo/utils/Constants.java
  48. 536 0
      src/main/java/com/dgt/graphdemo/utils/DateTimeUtils.java
  49. 25 0
      src/main/java/com/dgt/graphdemo/utils/ExpPrefixUtil.java
  50. 191 0
      src/main/java/com/dgt/graphdemo/utils/JsonUtils.java
  51. 839 0
      src/main/java/com/dgt/graphdemo/utils/Neo4jUtil.java
  52. 256 0
      src/main/java/com/dgt/graphdemo/utils/SysUser.java
  53. 80 0
      src/main/resources/application.yml
  54. 15 0
      src/main/webapp/WEB-INF/jsp/common/gloabl_resources.jsp
  55. 59 0
      src/main/webapp/WEB-INF/jsp/common/global.jsp
  56. 130 0
      src/main/webapp/WEB-INF/jsp/common/header.jsp
  57. 99 0
      src/main/webapp/WEB-INF/jsp/common/page.jsp
  58. 37 0
      src/main/webapp/WEB-INF/jsp/common/page_navigate.jsp
  59. 41 0
      src/main/webapp/WEB-INF/jsp/common/placeholderIE8.jsp
  60. 4 0
      src/main/webapp/WEB-INF/jsp/common/taglib.jsp
  61. 5 0
      src/main/webapp/WEB-INF/jsp/common/taglibs.jspf
  62. 111 0
      src/main/webapp/WEB-INF/jsp/dataBase/DataBaseIndex.jsp
  63. 215 0
      src/main/webapp/WEB-INF/jsp/dataBase/DataBaseReport.jsp
  64. 53 0
      src/main/webapp/WEB-INF/jsp/dataBase/DataBaseReportIndex.jsp
  65. 110 0
      src/main/webapp/WEB-INF/jsp/dataBase/HBaseIndex.jsp
  66. 116 0
      src/main/webapp/WEB-INF/jsp/dataBase/LogIndex.jsp
  67. 91 0
      src/main/webapp/WEB-INF/jsp/dataBase/TableIndex.jsp
  68. 304 0
      src/main/webapp/WEB-INF/jsp/dataBase/TableIndex2.jsp
  69. 387 0
      src/main/webapp/WEB-INF/jsp/dictionary/dictionaryIndex.jsp
  70. 52 0
      src/main/webapp/WEB-INF/jsp/gergrahTest.jsp
  71. 298 0
      src/main/webapp/WEB-INF/jsp/graph/analysis/bianhua.jsp
  72. 364 0
      src/main/webapp/WEB-INF/jsp/graph/analysis/fazhan.jsp
  73. 379 0
      src/main/webapp/WEB-INF/jsp/graph/analysis/fenbu.jsp
  74. 361 0
      src/main/webapp/WEB-INF/jsp/graph/analysis/huoyuedu.jsp
  75. 237 0
      src/main/webapp/WEB-INF/jsp/graph/analysis/shouming.jsp
  76. 396 0
      src/main/webapp/WEB-INF/jsp/graph/analysis/zhuxiao.jsp
  77. 29 0
      src/main/webapp/WEB-INF/jsp/graph/common/error/error404.jsp
  78. 35 0
      src/main/webapp/WEB-INF/jsp/graph/common/error/error500.jsp
  79. 35 0
      src/main/webapp/WEB-INF/jsp/graph/common/message.jsp
  80. 73 0
      src/main/webapp/WEB-INF/jsp/graph/common/pager.jspf
  81. 196 0
      src/main/webapp/WEB-INF/jsp/graph/detail/detail.jsp
  82. 3355 0
      src/main/webapp/WEB-INF/jsp/graph/fLoop/index.jsp
  83. 683 0
      src/main/webapp/WEB-INF/jsp/graph/fLoop/indexBack.jsp
  84. 4 0
      src/main/webapp/WEB-INF/jsp/graph/index.jsp
  85. 159 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/ImportDS.html
  86. 119 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/connectDS.html
  87. 664 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/connectDS.jsp
  88. 525 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/connectDSBackUp.jsp
  89. 201 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/importDS.jsp
  90. 246 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/index.html
  91. 524 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/index.jsp
  92. 3217 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/index.v3.jsp
  93. 3539 0
      src/main/webapp/WEB-INF/jsp/graph/indexNew/newIndex.v3.jsp
  94. 22 0
      src/main/webapp/WEB-INF/jsp/graph/left.jsp
  95. 2975 0
      src/main/webapp/WEB-INF/jsp/graph/machine/machineLearn.jsp
  96. 3318 0
      src/main/webapp/WEB-INF/jsp/graph/model/specialModel.jsp
  97. 301 0
      src/main/webapp/WEB-INF/jsp/graph/model/specialModel2.jsp
  98. 2914 0
      src/main/webapp/WEB-INF/jsp/graph/model/specialModel3.jsp
  99. 166 0
      src/main/webapp/WEB-INF/jsp/graph/statistics/branch.html
  100. 0 0
      src/main/webapp/WEB-INF/jsp/graph/statistics/branch.jsp

+ 31 - 0
.gitignore

@@ -0,0 +1,31 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/

+ 286 - 0
mvnw

@@ -0,0 +1,286 @@
+#!/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.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 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)`"
+  # TODO classpath?
+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
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    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 command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        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
+
+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 "$@"

+ 161 - 0
mvnw.cmd

@@ -0,0 +1,161 @@
+@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 Maven2 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 key stroke 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 my 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.4.2/maven-wrapper-0.4.2.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% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%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%

+ 175 - 0
pom.xml

@@ -0,0 +1,175 @@
+<?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 http://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.1.6.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.dgt</groupId>
+    <artifactId>graphdemo</artifactId>
+    <version>1.0.1-SNAPSHOT</version>
+    <name>graphdemo</name>
+    <packaging>war</packaging>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <neo4j.version>3.4.5</neo4j.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.46</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>18.0</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-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-neo4j -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-neo4j</artifactId>
+        </dependency>
+
+        <!--Neo4j-->
+       <!-- <dependency>
+            <groupId>org.neo4j</groupId>
+            <artifactId>neo4j-kernel</artifactId>
+            <version>${neo4j.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.neo4j.app</groupId>
+            <artifactId>neo4j-server</artifactId>
+            <version>${neo4j.version}</version>
+        </dependency>-->
+
+        <dependency>
+            <groupId>org.neo4j.driver</groupId>
+            <artifactId>neo4j-java-driver</artifactId>
+            <version>1.7.5</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.58</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.16.22</version>
+        </dependency>
+
+        <!--jsp支持-->
+        <!-- servlet 依赖. -->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+        </dependency>
+        <!-- tomcat 的支持.-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-tomcat</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-jasper</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.mchange</groupId>
+            <artifactId>mchange-commons-java</artifactId>
+            <version>0.2.11</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.2</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl -->
+        <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl -->
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-core-asl</artifactId>
+            <version>1.9.11</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <version>1.9.13</version>
+        </dependency>
+
+
+
+        <!--thymeleaf模版-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+        <!--非严格模式下 规避一些html编译错误 -->
+        <dependency>
+            <groupId>net.sourceforge.nekohtml</groupId>
+            <artifactId>nekohtml</artifactId>
+            <version>1.9.22</version>
+        </dependency>
+        <!--热部署-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+        <resources>
+            <resource>
+                <!--解决实体类启动和jar启动web页面会报404的错误-->
+                <directory>src/main/webapp</directory>
+                <targetPath>META-INF/resources</targetPath>
+                <includes>
+                    <include>**/**</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
+
+</project>

+ 55 - 0
src/main/java/com/dgt/graphdemo/GraphdemoApplication.java

@@ -0,0 +1,55 @@
+package com.dgt.graphdemo;
+
+import javafx.application.Application;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.ViewResolver;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
+import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
+
+@SpringBootApplication
+public class GraphdemoApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GraphdemoApplication.class, args);
+    }
+
+
+
+    /**
+     * 添加对jsp支持
+     *
+     */
+   /* @Bean
+    public ViewResolver getJspViewResolver() {
+        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
+        internalResourceViewResolver.setPrefix("/WEB-INF/");//前缀
+        internalResourceViewResolver.setSuffix(".jsp");//后缀
+        internalResourceViewResolver.setOrder(1);//优先级
+        return internalResourceViewResolver;
+    }
+
+    *//**
+     * 添加对Freemarker支持
+     *
+     *//*
+    @Bean
+    public FreeMarkerViewResolver getFreeMarkerViewResolver() {
+        FreeMarkerViewResolver freeMarkerViewResolver = new FreeMarkerViewResolver();
+        freeMarkerViewResolver.setCache(false);
+        freeMarkerViewResolver.setPrefix("/WEB-INF/");//前缀
+        freeMarkerViewResolver.setSuffix(".html");//后缀
+        freeMarkerViewResolver.setRequestContextAttribute("request");
+        freeMarkerViewResolver.setOrder(0);//优先级
+        freeMarkerViewResolver.setContentType("text/html;charset=UTF-8");
+        return freeMarkerViewResolver;
+
+    }*/
+
+
+}

+ 72 - 0
src/main/java/com/dgt/graphdemo/JsonFileRunner.java

@@ -0,0 +1,72 @@
+package com.dgt.graphdemo;
+
+import com.dgt.graphdemo.utils.Constants;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.util.StringUtils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import com.mchange.io.FileUtils;
+
+/**
+ * @author lugela
+ * @Title: JsonFileRunner
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/25 13:51
+ */
+@Slf4j
+public class JsonFileRunner implements CommandLineRunner {
+    @Override
+    public void run(String... args) throws Exception {
+        readfile("C:\\Users\\lugela\\Desktop\\jsonfile");
+    }
+
+
+    public  boolean readfile(String filepath) throws FileNotFoundException, IOException {
+        try {
+
+            File file = new File(filepath);
+            if (!file.isDirectory()) {
+                read( filepath, file.getPath());
+            } else if (file.isDirectory()) {
+                String[] filelist = file.list();
+                for (int i = 0; i < filelist.length; i++) {
+                    //linux 路径
+                    //File readfile = new File(filepath + "/" + filelist[i]);
+                    //Windows 本地路径
+                    File readfile = new File(filepath + "\\" + filelist[i]);
+                    if (!readfile.isDirectory()) {
+                        read( readfile.getPath(), readfile.getName());
+
+                    } else if (readfile.isDirectory()) {
+                        //  "\\"windows "/"linux 路径
+                        readfile(filepath + "\\" + filelist[i]);
+                    }
+                }
+
+            }
+
+        } catch (FileNotFoundException e) {
+            log.info(e.getMessage());
+        }
+        return true;
+    }
+
+
+    private  void read(String filepath,String filename){
+        File file = new File(filepath);
+        try {
+            String content= FileUtils.getContentsAsString(file);
+            if (!StringUtils.isEmpty(filename) &&!StringUtils.isEmpty(filepath)){
+                Constants.JSONFILEMAP.put(filename,content);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 37 - 0
src/main/java/com/dgt/graphdemo/config/CorsConfig.java

@@ -0,0 +1,37 @@
+package com.dgt.graphdemo.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;
+
+import java.util.Arrays;
+import java.util.List;
+
+@Configuration
+public class CorsConfig
+{
+    public final static List<String> exposedHeader= Arrays.asList("code","url");
+    private CorsConfiguration buildConfig()
+    {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        corsConfiguration.addAllowedOrigin("*"); // 1允许任何域名使用
+        corsConfiguration.addAllowedHeader("*"); // 2允许任何头
+        corsConfiguration.addAllowedMethod("*"); // 3允许任何方法(post、get等)
+         corsConfiguration.setExposedHeaders(exposedHeader);
+  //      corsConfiguration.setAllowCredentials(true);
+//        corsConfiguration.setMaxAge(1800L);
+
+       // <mvc:mapping path="/**" allowed-origins="*" allow-credentials="true" max-age="1800" allowed-methods="GET,POST,OPTIONS"/>
+
+        return corsConfiguration;
+    }
+
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", buildConfig()); // 4
+        return new CorsFilter(source);
+    }
+}

+ 32 - 0
src/main/java/com/dgt/graphdemo/config/Neo4jConfig.java

@@ -0,0 +1,32 @@
+package com.dgt.graphdemo.config;
+
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class Neo4jConfig {
+	@Value("${spring.neo4j.url}")
+	private String url;
+
+	@Value("${spring.neo4j.username}")
+	private String username;
+
+	@Value("${spring.neo4j.password}")
+	private String password;
+
+	/**
+	 * 图数据库驱动模式
+	 *
+	 * @return
+	 */
+
+	@Bean
+	public Driver neo4jDriver() {
+		return GraphDatabase.driver(url, AuthTokens.basic(username, password));
+	}
+
+}

+ 86 - 0
src/main/java/com/dgt/graphdemo/config/ViewResolverConfiguration.java

@@ -0,0 +1,86 @@
+package com.dgt.graphdemo.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.ViewResolver;
+import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
+import org.thymeleaf.spring5.SpringTemplateEngine;
+import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
+import org.thymeleaf.spring5.view.ThymeleafViewResolver;
+import org.thymeleaf.templateresolver.ITemplateResolver;
+
+/**
+ * @author lugela
+ * @Title: ViewResolverConfiguration
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/26 15:24
+ */
+@Configuration
+public class ViewResolverConfiguration {
+
+    @Configuration//用来定义 DispatcherServlet 应用上下文中的 bean
+    @EnableWebMvc
+    @ComponentScan("com.dgt.graphdemo.*")
+    public class WebConfig extends WebMvcConfigurerAdapter {
+        @Bean
+        public ViewResolver viewResolver() {
+            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
+//            resolver.setPrefix("/WEB-INF/");
+//            resolver.setSuffix(".jsp");
+//            resolver.setViewNames("jsps/*");
+            resolver.setPrefix("/WEB-INF/");
+            resolver.setSuffix(".jsp");
+            resolver.setViewNames("*");
+            resolver.setOrder(2);
+            return resolver;
+        }
+
+        @Bean
+        public ITemplateResolver templateResolver() {
+            SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
+            templateResolver.setTemplateMode("HTML5");
+            templateResolver.setPrefix("/WEB-INF/");
+            templateResolver.setSuffix(".html");
+            templateResolver.setCharacterEncoding("utf-8");
+            templateResolver.setCacheable(false);
+            return templateResolver;
+        }
+
+        @Bean
+        public SpringTemplateEngine templateEngine() {
+            SpringTemplateEngine templateEngine = new SpringTemplateEngine();
+            templateEngine.setTemplateResolver(templateResolver());
+            // templateEngine
+            return templateEngine;
+        }
+
+        @Bean
+        public ThymeleafViewResolver viewResolverThymeLeaf() {
+            ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
+            viewResolver.setTemplateEngine(templateEngine());
+            viewResolver.setCharacterEncoding("utf-8");
+            viewResolver.setOrder(1);
+            //viewResolver.setViewNames(new String[]{"thyme/*"});
+            viewResolver.setViewNames(new String[]{"/WEB-INF/*"});
+            return viewResolver;
+        }
+
+        @Override
+        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
+            configurer.enable();
+        }
+
+        @Override
+        public void addResourceHandlers(ResourceHandlerRegistry registry) {
+            super.addResourceHandlers(registry);
+        }
+    }
+
+
+}

+ 29 - 0
src/main/java/com/dgt/graphdemo/controller/DatilFromGraphController.java

@@ -0,0 +1,29 @@
+package com.dgt.graphdemo.controller;
+
+import com.dgt.graphdemo.entity.GraphDatilData;
+import com.dgt.graphdemo.result.Result;
+import com.dgt.graphdemo.service.DatilFormGraphService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author lugela
+ * @Title: DatilFromGraphController
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 14:03
+ */
+@RestController
+@RequestMapping("/dgt/graph")
+public class DatilFromGraphController {
+    @Autowired
+    DatilFormGraphService datilFormGraphService;
+
+    @GetMapping("/getDetailByClaimno")
+    public Result<GraphDatilData> getDetailByClaimno(String claimno){
+        GraphDatilData datilGraph = datilFormGraphService.getDatilGraph(claimno);
+
+        return Result.successResult(datilGraph);
+    }
+
+}

+ 71 - 0
src/main/java/com/dgt/graphdemo/controller/GraphController.java

@@ -0,0 +1,71 @@
+package com.dgt.graphdemo.controller;
+
+import com.dgt.graphdemo.entity.GraphData;
+import com.dgt.graphdemo.entity.GraphQuery;
+import com.dgt.graphdemo.entity.MyNode;
+import com.dgt.graphdemo.exception.CommonBizException;
+import com.dgt.graphdemo.exception.ExpCodeEnum;
+import com.dgt.graphdemo.result.Result;
+import com.dgt.graphdemo.service.GraphService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author lugela
+ * @Title: GraphController
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/27 9:37
+ */
+@RestController
+@RequestMapping("/dgt/graph")
+public class GraphController {
+    @Autowired
+    GraphService graphService;
+
+    @RequestMapping("/nodeAndRep.do")
+    public Result<GraphData> getGraph(@RequestBody(required = false)GraphQuery graphQuery){
+        if (graphQuery==null){
+            CommonBizException commonBizException = new CommonBizException(ExpCodeEnum.PARAM_NULL);
+            return Result.newFailureResult(commonBizException);
+        }
+
+
+        List<String> weaverIdList =null;
+        List<String> graphNames = graphQuery.getGraphNameList();
+        List<String>  graphNameList = null;
+        if (graphNames!=null && !graphNames.isEmpty()){
+            graphNameList=  graphNames.stream().map(x->"'"+x+"'").collect(Collectors.toList());
+        }
+         weaverIdList = graphQuery.getWeaverIdList();
+        if (weaverIdList==null || weaverIdList.isEmpty()){
+            weaverIdList = new ArrayList<>();
+        }
+        GraphData graphData = graphService.deatilGraphRep(graphNameList,weaverIdList);
+        return Result.successResult(graphData);
+    }
+
+
+    @RequestMapping("/nodeExtend.do")
+    public Result<GraphData> getExtendGraph(@RequestBody(required = false)GraphQuery graphQuery){
+        if (graphQuery==null){
+            CommonBizException commonBizException = new CommonBizException(ExpCodeEnum.PARAM_NULL);
+            return Result.newFailureResult(commonBizException);
+        }
+
+
+        List<String> weaverIdList =graphQuery.getWeaverIdList();
+        MyNode node = graphQuery.getNode();
+        String id = node.getId();
+        String type = node.getType();
+        String filterType = graphQuery.getFilterType();
+        GraphData graphData = graphService.deatilGraphExtend(filterType, type, id, weaverIdList);
+        return Result.successResult(graphData);
+    }
+
+}

+ 139 - 0
src/main/java/com/dgt/graphdemo/controller/JsonController.java

@@ -0,0 +1,139 @@
+package com.dgt.graphdemo.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.dgt.graphdemo.entity.fqz.*;
+import com.dgt.graphdemo.utils.Constants;
+import com.dgt.graphdemo.utils.JsonUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+
+@Controller
+@RequestMapping("/graph")
+public class JsonController {
+
+	//校验系列案名称格式
+	private static final String PATTERN = ".{11,100}((([\\d]{4}(((0[13578]|1[02])((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|(1[0-9])|(2[0-8])))))|((((([02468][048])|([13579][26]))00)|([0-9]{2}(([02468][048])|([13579][26]))))(((0[13578]|1[02])((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|(1[0-9])|(2[0-9])))))).*案)";
+
+
+//	@RequestMapping("/index.do")
+//	public String indexTograph(){
+//		return "/graph/indexNew/index.v3";
+//	}
+	@RequestMapping("/index.do")
+	public void indexTograph(HttpServletRequest request, HttpServletResponse response)throws Exception{
+		request.getRequestDispatcher("/WEB-INF/jsp/graph/indexNew/newIndex.v3.jsp").forward(request, response);
+
+	}
+
+	@RequestMapping("/detail.do")
+	public void indexTograph1(HttpServletRequest request, HttpServletResponse response)throws Exception{
+		request.getRequestDispatcher("/WEB-INF/jsp/graph/detail/detail.jsp").forward(request, response);
+
+	}
+	// 模糊查询实体
+	@RequestMapping("searchEntity")
+	public void searchEntityByCase(HttpServletRequest request,
+								   HttpServletResponse response, Nodes node, String searchType,
+								   Pager<Node> pager) throws Exception {
+		if (StringUtils.isBlank(node.getEntityName())) {
+			//throw new WeaverException("搜索内容不能为空!");
+		}
+        String key = node.getEntityName() +".json";
+
+		if ( Constants.JSONFILEMAP.containsKey(key)) {
+			String result = Constants.JSONFILEMAP.get(key);
+			response.setContentType("text/json; charset=utf-8");
+			response.setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存
+			PrintWriter out = response.getWriter();
+			out.print(result);
+//		System.out.println("result====" + result);
+			out.flush();
+			out.close();
+		}
+	}
+
+
+
+	//精确查询实体
+	@RequestMapping("/expandGraph")
+	public void expandGraph(HttpServletRequest request, HttpServletResponse response, String result, Nodes node, String graphweaverIds, String weaverData, String tagList, String entityId, String roleProperty, String weaverNode, String weaverEdge) throws Exception {
+        GraphNew graphOld=com.alibaba.fastjson.JSON.parseObject(result, GraphNew.class);
+
+	   if (!StringUtils.isEmpty(result)){
+		   //取出里面存储的每个节点上一次存储的相关信息
+		   Map<String, Map<String, Map<String,String>>> nodeLinkRelOld = graphOld.getNodeLinkRelmap();
+		   Map<String, Node> weaverNodeOld = graphOld.getWeaverNodeMap();
+
+
+
+		   String key=  node.getEntityId()+".json";
+		   if (Constants.JSONFILEMAP.containsKey(key)){
+			   String jsontest = Constants.JSONFILEMAP.get(key);
+			   Graph graphNew = JSON.parseObject(jsontest, Graph.class);
+			   Map<String, Map<String, Map<String, String>>> nodeLinkRelNew = graphNew.getNodeLinkRelmap();
+			   for(String rel: nodeLinkRelOld.keySet()){
+				   Map<String, Map<String, String>> mapold = nodeLinkRelOld.get(rel);
+				   if (nodeLinkRelNew.containsKey(rel)){
+				   	   //这里得到了关系下面某个target -> source
+					   Map<String, Map<String, String>> mapnew = nodeLinkRelNew.get(rel);
+					  // mapnew.putAll(mapold);
+					   for (String key1:mapold.keySet()){
+						   Map<String, String> map2old = mapold.get(key1);
+						   if (!mapnew.containsKey(key1)){
+                                mapnew.put(key1,map2old);
+						   }else{
+							   Map<String, String> map2new = mapnew.get(key1);
+							   for (String key3:map2old.keySet()){
+								   map2new.put(key3,key3);
+							   }
+						   }
+					   }
+				   }else{
+					   nodeLinkRelNew.put(rel,mapold);
+				   }
+			   }
+			   Map<String, Node> weaverNodeNew = graphNew.getWeaverNodeMap();
+			   for (String weaverOld:weaverNodeOld.keySet()){
+				   if (!weaverNodeNew.containsKey(weaverOld)){
+					   weaverNodeNew.put(weaverOld,weaverNodeOld.get(weaverOld));
+				   }
+			   }
+			   this.ajax(response, graphNew);
+			   return;
+		   }
+	   }
+
+
+		Graph g =new Graph();
+		String key=  node.getEntityId()+".json";
+		if (Constants.JSONFILEMAP.containsKey(key)){
+			String jsontest = Constants.JSONFILEMAP.get(key);
+			Graph graphNew = JSON.parseObject(jsontest, Graph.class);
+			this.ajax(response, graphNew);
+			return;
+		}
+
+
+		this.ajax(response, g);
+
+	}
+
+
+	private String ajax(HttpServletResponse response, Object obj) throws Exception {
+		JsonUtils.responseJson(response, obj);
+		return null;
+	}
+
+
+
+}

+ 22 - 0
src/main/java/com/dgt/graphdemo/controller/TestController.java

@@ -0,0 +1,22 @@
+package com.dgt.graphdemo.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author lugela
+ * @Title: TestController
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/25 10:15
+ */
+@Controller
+@RequestMapping("/testjsp")
+public class TestController {
+
+    @RequestMapping("/index")
+    public String testJsp(){
+
+        return "indexTest11";
+    }
+}

+ 24 - 0
src/main/java/com/dgt/graphdemo/entity/Edge.java

@@ -0,0 +1,24 @@
+package com.dgt.graphdemo.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: Edge
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/23 12:58
+ */
+@Data
+public class Edge {
+     private String id;
+     private String source;
+     private String target;
+     private List<String> weaverId;
+     private String weaverSource;
+     private String weaverTarget;
+     private String type;
+     private List<String> rel;
+}

+ 28 - 0
src/main/java/com/dgt/graphdemo/entity/GraphData.java

@@ -0,0 +1,28 @@
+package com.dgt.graphdemo.entity;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author lugela
+ * @Title: GraphData
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/23 13:21
+ */
+@Data
+public class GraphData {
+  //节点
+  private List<MyNode> nodes;
+  //边
+  private List<Edge> links;
+  private String website ="query";
+  //记录当前图谱的节点数
+  private List<String> weaverIdList;
+
+  //为了凑数不报错的垃圾的字段
+  private List<Map<String,String>> graphlist;
+
+}

+ 22 - 0
src/main/java/com/dgt/graphdemo/entity/GraphDatilData.java

@@ -0,0 +1,22 @@
+package com.dgt.graphdemo.entity;
+
+import com.dgt.graphdemo.jpa.entity.BasicClaimnoEntity;
+import com.dgt.graphdemo.jpa.entity.RiskTipEntity;
+import com.dgt.graphdemo.jpa.entity.SimilarTypeClaimnoEntity;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: GraphDatilData
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 14:00
+ */
+@Data
+public class GraphDatilData {
+   private BasicClaimnoEntity basicClaimno;
+   private RiskTipEntity riskTip;
+   private List<SimilarTypeClaimnoEntity> similarTypeClaimnos;
+}

+ 26 - 0
src/main/java/com/dgt/graphdemo/entity/GraphQuery.java

@@ -0,0 +1,26 @@
+package com.dgt.graphdemo.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: GraphQuery
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/27 10:38
+ */
+@Data
+public class GraphQuery {
+    //节点唯一生成的id号
+   List<String> weaverIdList;
+   //查询的节点名称
+   List<String> graphNameList;
+   //查询的节点id
+    MyNode node;
+    //是否过滤
+    String filterType;
+
+
+}

+ 32 - 0
src/main/java/com/dgt/graphdemo/entity/MyNode.java

@@ -0,0 +1,32 @@
+package com.dgt.graphdemo.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: Node
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/23 10:41
+ */
+@Data
+public class MyNode {
+    //节点生成的id
+    private String weaverId;
+
+    private String id;
+    //类型
+    private String type;
+
+    private String name;
+
+    private String imageName;
+
+    private List<NodeAttr> attrs;
+    private String size;
+
+
+    private String source="sxlp";
+}

+ 17 - 0
src/main/java/com/dgt/graphdemo/entity/NodeAttr.java

@@ -0,0 +1,17 @@
+package com.dgt.graphdemo.entity;
+
+import lombok.Data;
+
+/**
+ * @author lugela
+ * @Title: NodeAttr
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/23 10:45
+ */
+@Data
+public class NodeAttr {
+  private String key;
+  private String cname;
+  private String value;
+}

+ 20 - 0
src/main/java/com/dgt/graphdemo/entity/RepEntity.java

@@ -0,0 +1,20 @@
+package com.dgt.graphdemo.entity;
+
+import lombok.Data;
+import org.neo4j.ogm.annotation.GraphId;
+import org.neo4j.ogm.annotation.NodeEntity;
+
+/**
+ * @author lugela
+ * @Title: RepEntity
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 16:41
+ */
+@NodeEntity("Pid")
+@Data
+public class RepEntity {
+    @GraphId
+    private Long id;
+    private String name;
+}

+ 21 - 0
src/main/java/com/dgt/graphdemo/entity/RepTest.java

@@ -0,0 +1,21 @@
+package com.dgt.graphdemo.entity;
+
+import org.neo4j.ogm.model.Result;
+import org.springframework.data.neo4j.annotation.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author lugela
+ * @Title: RepTest
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/23 18:21
+ */
+public interface RepTest extends CrudRepository<RepEntity,Long> {
+
+    @Query("MATCH p=(c:Claimno{id:'A000CHD1830000303355'})-[*1..5]->(m) RETURN p")
+    public Result getGraph();
+  /*  @Query("MATCH p=(c:Claimno{id:'A000CHD1830000303355'})-[*1..5]->(m) RETURN p")
+    public RepEntity findById();*/
+}

+ 21 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/Basebean.java

@@ -0,0 +1,21 @@
+/*
+ * Basebean.java created on 2013-7-23 下午 16:20:12 by 李景帆(jingf_li)
+ */
+
+package com.dgt.graphdemo.entity.fqz;
+
+import java.io.Serializable;
+
+/**
+ * 基本接口,用于规范
+ * @author: 李景帆(jingf_li)
+ * @since: 2013-7-23
+ */
+public interface Basebean extends Serializable {
+
+	String toString();
+
+	int hashCode();
+
+	boolean equals(Object obj);
+}

+ 81 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/CommonBean.java

@@ -0,0 +1,81 @@
+/*
+ * CommonBean.java created on 2013-08-13 下午 16:20:12 by 谢清(xie-qing)
+ */
+
+package com.dgt.graphdemo.entity.fqz;
+
+import com.google.gson.GsonBuilder;
+import org.springframework.beans.BeanUtils;
+
+/**
+ * 公用JavaBean
+ * @author: 谢清(xie-qing)
+ * @since: 2013-08-13
+ */
+@SuppressWarnings({
+		"serial", "unchecked"
+})
+public class CommonBean<T> implements Basebean {
+
+	public final static GsonBuilder gb = new GsonBuilder();
+	{
+		gb.disableHtmlEscaping();
+	}
+	
+	public Class<T> clazz;
+
+	public CommonBean() {
+		//		ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
+		//		clazz = (Class<T>) pt.getActualTypeArguments()[0];
+	}
+
+	/**
+	 * 克隆
+	 * @creator: xie-qing
+	 * @createDate: 2013-08-13
+	 * @modifier:
+	 * @modifiedDate:
+	 * @return
+	 */
+	public T copy() {
+		//		T target = BeanUtils.instantiate(clazz);
+		T target = (T) BeanUtils.instantiate(this.getClass());
+		BeanUtils.copyProperties(this, target);
+		return target;
+	}
+
+	/**
+	 * 把值克隆到的目标对象,并返回
+	 * @creator: xie-qing
+	 * @createDate: 2013-08-13
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param target 把值克隆到的目标对象
+	 * @return
+	 */
+	public T copy(T target) {
+		BeanUtils.copyProperties(this, target);
+		return target;
+	}
+
+	/**
+	 * 把值(除了忽略的属性数组)克隆到的目标对象,并返回
+	 * @creator: xie-qing
+	 * @createDate: 2013-08-13
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param target 把值克隆到的目标对象
+	 * @param ignoreProperties 忽略的属性数组
+	 * @return
+	 */
+	public T copy(T target, String[] ignoreProperties) {
+		BeanUtils.copyProperties(this, target, ignoreProperties);
+		return target;
+	}
+	
+	@Override
+	public String toString(){
+		return gb.create().toJson(this);
+	}
+
+}

+ 204 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/Edge.java

@@ -0,0 +1,204 @@
+/**
+ * Edge.java created on 2016年12月1日 下午2:13:26 by jiminghu
+ */
+package com.dgt.graphdemo.entity.fqz;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import org.apache.commons.lang3.StringUtils;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 
+ * @author: jiminghu
+ * @since: 2016年12月1日
+ */
+public class Edge extends CommonBean<Edge>{
+
+	/**
+	 */
+	private static final long serialVersionUID = -1925481982912372949L;
+
+	private String id;
+	
+	private String source;
+	
+	private String target;
+	
+	private String weaverSource;
+	
+	private String weaverTarget;
+	
+	private List<String> weaverId;
+	
+	private List<String> rel;
+
+	private List<EdgeAttr> attr;
+	
+	private Boolean delete;
+	
+	public Edge(){}
+	
+	public Edge(Object weaverIds, Object rels){
+		weaverId = new ArrayList<>();
+		if(null!=weaverIds){
+			String x = Objects.toString(weaverIds);
+			if(StringUtils.isNotBlank(x)){
+				String[] xs = x.split(",");
+				weaverId = Arrays.asList(xs);
+			}
+		}
+		rel = new ArrayList<>();
+		if(null!=rels){
+			String x = Objects.toString(rels);
+			if(StringUtils.isNotBlank(x)){
+				String[] xs = x.split(",");
+				rel = Arrays.asList(xs);
+			}
+		}
+		attr = new ArrayList<EdgeAttr>();
+	}
+	
+	public List<EdgeAttr> getAttr() {
+		return attr;
+	}
+
+
+	public void setAttr(List<EdgeAttr> attr) {
+		this.attr = attr;
+	}
+
+
+	/**
+	 * @return the id
+	 */
+	public String getId() {
+		return id;
+	}
+
+	
+	/**
+	 * @param id the id to set
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	
+	/**
+	 * @return the source
+	 */
+	public String getSource() {
+		return source;
+	}
+
+	
+	/**
+	 * @param source the source to set
+	 */
+	public void setSource(String source) {
+		this.source = source;
+	}
+
+	
+	/**
+	 * @return the target
+	 */
+	public String getTarget() {
+		return target;
+	}
+
+	
+	/**
+	 * @param target the target to set
+	 */
+	public void setTarget(String target) {
+		this.target = target;
+	}
+
+	
+	/**
+	 * @return the rel
+	 */
+	public List<String> getRel() {
+		return rel;
+	}
+
+	
+	/**
+	 * @param rel the rel to set
+	 */
+	public void setRel(List<String> rel) {
+		this.rel = rel;
+	}
+
+
+	public JsonObject toJsonObject() {
+		JsonObject ob = new JsonObject();
+		ob.addProperty("id", this.id);
+		ob.addProperty("source", this.source);
+		ob.addProperty("target", this.target);
+		JsonArray arr = new JsonArray();
+		for(String s:this.rel)
+		{
+			arr.add(new JsonPrimitive(s));
+		}
+		ob.add("rel", arr);
+		return ob;
+	}
+
+	
+	/**
+	 * @return the weaverId
+	 */
+	public List<String> getWeaverId() {
+		return weaverId;
+	}
+
+
+	
+	/**
+	 * @param weaverId the weaverId to set
+	 */
+	public void setWeaverId(List<String> weaverId) {
+		this.weaverId = weaverId;
+	}
+
+	public String getWeaverSource() {
+		return weaverSource;
+	}
+
+	public void setWeaverSource(String weaverSource) {
+		this.weaverSource = weaverSource;
+	}
+
+	public String getWeaverTarget() {
+		return weaverTarget;
+	}
+
+	public void setWeaverTarget(String weaverTarget) {
+		this.weaverTarget = weaverTarget;
+	}
+
+	/**
+	 * @return the delete
+	 */
+	public Boolean getDelete() {
+		return delete;
+	}
+
+	
+	/**
+	 * @param delete the delete to set
+	 */
+	public void setDelete(Boolean delete) {
+		this.delete = delete;
+	}
+
+}

+ 80 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/EdgeAttr.java

@@ -0,0 +1,80 @@
+/**
+ * EdgeAttr.java created on 2016年12月28日 下午3:22:15 by jiminghu
+ */
+package com.dgt.graphdemo.entity.fqz;
+
+
+import java.math.BigDecimal;
+
+/**
+ * @Copyright: 2016
+ * @author: jiminghu
+ * @since: 2016年12月28日
+ */
+public class EdgeAttr extends CommonBean<EdgeAttr>{
+	/**
+	 */
+	private static final long serialVersionUID = -6827608185174111937L;
+	private String type;
+	private String createTime;
+	private String desc;
+	private BigDecimal weight;
+	
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+	
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+	
+	/**
+	 * @return the createTime
+	 */
+	public String getCreateTime() {
+		return createTime;
+	}
+	
+	/**
+	 * @param createTime the createTime to set
+	 */
+	public void setCreateTime(String createTime) {
+		this.createTime = createTime;
+	}
+	
+	/**
+	 * @return the desc
+	 */
+	public String getDesc() {
+		return desc;
+	}
+	
+	/**
+	 * @param desc the desc to set
+	 */
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+
+	
+	/**
+	 * @return the weight
+	 */
+	public BigDecimal getWeight() {
+		return weight;
+	}
+
+	
+	/**
+	 * @param weight the weight to set
+	 */
+	public void setWeight(BigDecimal weight) {
+		this.weight = weight;
+	}
+}

+ 136 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/EdgeNew.java

@@ -0,0 +1,136 @@
+package com.dgt.graphdemo.entity.fqz;
+
+import java.util.List;
+
+
+public class EdgeNew extends CommonBean<EdgeNew> {
+
+	private String id;
+
+	private Object source;
+
+	private Object target;
+
+	private String weaverSource;
+
+	private String weaverTarget;
+
+	private List<String> weaverId;
+
+	private List<String> rel;
+
+	private List<EdgeAttr> attr;
+
+	private Boolean delete;
+
+	public EdgeNew(){}
+
+
+
+	public List<EdgeAttr> getAttr() {
+		return attr;
+	}
+
+
+	public void setAttr(List<EdgeAttr> attr) {
+		this.attr = attr;
+	}
+
+
+	/**
+	 * @return the id
+	 */
+	public String getId() {
+		return id;
+	}
+
+
+	/**
+	 * @param id the id to set
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+
+
+
+	/**
+	 * @return the rel
+	 */
+	public List<String> getRel() {
+		return rel;
+	}
+
+
+	/**
+	 * @param rel the rel to set
+	 */
+	public void setRel(List<String> rel) {
+		this.rel = rel;
+	}
+
+
+	public Object getSource() {
+		return source;
+	}
+
+	public void setSource(Object source) {
+		this.source = source;
+	}
+
+	public Object getTarget() {
+		return target;
+	}
+
+	public void setTarget(Object target) {
+		this.target = target;
+	}
+
+	/**
+	 * @return the weaverId
+	 */
+	public List<String> getWeaverId() {
+		return weaverId;
+	}
+
+
+
+	/**
+	 * @param weaverId the weaverId to set
+	 */
+	public void setWeaverId(List<String> weaverId) {
+		this.weaverId = weaverId;
+	}
+
+	public String getWeaverSource() {
+		return weaverSource;
+	}
+
+	public void setWeaverSource(String weaverSource) {
+		this.weaverSource = weaverSource;
+	}
+
+	public String getWeaverTarget() {
+		return weaverTarget;
+	}
+
+	public void setWeaverTarget(String weaverTarget) {
+		this.weaverTarget = weaverTarget;
+	}
+
+	/**
+	 * @return the delete
+	 */
+	public Boolean getDelete() {
+		return delete;
+	}
+
+
+	/**
+	 * @param delete the delete to set
+	 */
+	public void setDelete(Boolean delete) {
+		this.delete = delete;
+	}
+}

+ 277 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/Graph.java

@@ -0,0 +1,277 @@
+/**
+ * Graph.java created on 2016年12月1日 下午2:18:04 by jiminghu
+ */
+
+package com.dgt.graphdemo.entity.fqz;
+
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 
+ * @author: jiminghu
+ * @since: 2016年12月1日
+ */
+public class Graph extends CommonBean<Graph>{
+
+	/**
+	 */
+	private static final long serialVersionUID = 837909159456836524L;
+
+	private List<Edge> links;
+
+	private List<Node> nodes;
+
+
+	//查询实体类型
+	private String type;
+
+	//查询实体id
+	private String id;
+
+	private BigDecimal score;
+	
+	private String name;
+	
+	private String markStatus;
+	private String markMess;
+	private String markUser;
+	private Date markDate;
+	//判断是分公司有限查询还是能查询所有实体(报案号)
+	private boolean authority;
+	//判断是查询页面还是欺诈检测页面
+	private String website;
+	//右击实体环形菜单是否显示
+	private boolean limitShow;
+
+	private List<Map<String,String>> graphlist;
+	//页面中的总节点数
+	private Map<String,Set<String>> weaverIdMap;
+
+	//页面中节点id统计
+	private List<String> weaverIdList;
+
+	//人相关属性展示
+	private Map<String,List<Map<String,String>>> rolePropertiesMap;
+
+	//相关节点
+	private Map<String,Node> weaverNodeMap;
+
+	//相关边
+	private Map<String,Map<String,Map<String,String>>> nodeLinkRelmap;
+
+	public Map<String, Map<String, Map<String, String>>> getNodeLinkRelmap() {
+		return nodeLinkRelmap;
+	}
+
+	public void setNodeLinkRelmap(Map<String, Map<String, Map<String, String>>> nodeLinkRelmap) {
+		this.nodeLinkRelmap = nodeLinkRelmap;
+	}
+
+	public Map<String, Node> getWeaverNodeMap() {
+		return weaverNodeMap;
+	}
+
+	public void setWeaverNodeMap(Map<String, Node> weaverNodeMap) {
+		this.weaverNodeMap = weaverNodeMap;
+	}
+
+
+
+	public Map<String, List<Map<String, String>>> getRolePropertiesMap() {
+		return rolePropertiesMap;
+	}
+
+	public void setRolePropertiesMap(Map<String, List<Map<String, String>>> rolePropertiesMap) {
+		this.rolePropertiesMap = rolePropertiesMap;
+	}
+
+	public List<String> getWeaverIdList() {
+		return weaverIdList;
+	}
+
+	public void setWeaverIdList(List<String> weaverIdList) {
+		this.weaverIdList = weaverIdList;
+	}
+
+	public List<Map<String, String>> getGraphlist() {
+		return graphlist;
+	}
+
+	public void setGraphlist(List<Map<String, String>> graphlist) {
+		this.graphlist = graphlist;
+	}
+
+	public Map<String, Set<String>> getWeaverIdMap() {
+		return weaverIdMap;
+	}
+
+	public void setWeaverIdMap(Map<String, Set<String>> weaverIdMap) {
+		this.weaverIdMap = weaverIdMap;
+	}
+
+	public boolean isLimitShow() {
+		return limitShow;
+	}
+
+
+	public void setLimitShow(boolean limitShow) {
+		this.limitShow = limitShow;
+	}
+
+
+	public String getWebsite() {
+		return website;
+	}
+
+
+	public void setWebsite(String website) {
+		this.website = website;
+	}
+
+
+	public boolean isAuthority() {
+		return authority;
+	}
+
+
+	public void setAuthority(boolean authority) {
+		this.authority = authority;
+	}
+
+
+	public String getName() {
+		return name;
+	}
+
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+
+	/**
+	 * @return the links
+	 */
+	public List<Edge> getLinks() {
+		return links;
+	}
+
+	
+	/**
+	 * @param links the links to set
+	 */
+	public void setLinks(List<Edge> links) {
+		this.links = links;
+	}
+
+	
+	/**
+	 * @return the nodes
+	 */
+	public List<Node> getNodes() {
+		return nodes;
+	}
+
+	
+	/**
+	 * @param nodes the nodes to set
+	 */
+	public void setNodes(List<Node> nodes) {
+		this.nodes = nodes;
+	}
+
+	
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+
+	
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	
+	/**
+	 * @return the id
+	 */
+	public String getId() {
+		return id;
+	}
+
+	
+	/**
+	 * @param id the id to set
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+
+	
+	/**
+	 * @return the score
+	 */
+	public BigDecimal getScore() {
+		return score;
+	}
+
+
+	
+	/**
+	 * @param score the score to set
+	 */
+	public void setScore(BigDecimal score) {
+		this.score = score;
+	}
+
+
+	public String getMarkStatus() {
+		return markStatus;
+	}
+
+
+	public void setMarkStatus(String markStatus) {
+		this.markStatus = markStatus;
+	}
+
+
+	public String getMarkMess() {
+		return markMess;
+	}
+
+
+	public void setMarkMess(String markMess) {
+		this.markMess = markMess;
+	}
+
+
+	public String getMarkUser() {
+		return markUser;
+	}
+
+
+	public void setMarkUser(String markUser) {
+		this.markUser = markUser;
+	}
+
+
+	public Date getMarkDate() {
+		return markDate;
+	}
+
+
+	public void setMarkDate(Date markDate) {
+		this.markDate = markDate;
+	}
+}

+ 255 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/GraphNew.java

@@ -0,0 +1,255 @@
+package com.dgt.graphdemo.entity.fqz;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class GraphNew extends CommonBean<GraphNew> {
+	/**
+	 */
+
+	private List<EdgeNew> links;
+
+	private List<Node> nodes;
+
+
+	//查询实体类型
+	private String type;
+
+	//查询实体id
+	private String id;
+
+	private BigDecimal score;
+
+	private String name;
+
+	private String markStatus;
+	private String markMess;
+	private String markUser;
+	private Date markDate;
+	//判断是分公司有限查询还是能查询所有实体(报案号)
+	private boolean authority;
+	//判断是查询页面还是欺诈检测页面
+	private String website;
+	//右击实体环形菜单是否显示
+	private boolean limitShow;
+
+	private List<Map<String,String>> graphlist;
+	//页面中的总节点数
+	private Map<String,Set<String>> weaverIdMap;
+
+	//页面中节点id统计
+	private List<String> weaverIdList;
+
+	//人相关属性展示
+	private Map<String,List<Map<String,String>>> rolePropertiesMap;
+
+
+	private Map<String,Node> weaverNodeMap;
+
+	//相关边
+	private Map<String,Map<String,Map<String,String>>> nodeLinkRelmap;
+
+	public Map<String, Map<String, Map<String, String>>> getNodeLinkRelmap() {
+		return nodeLinkRelmap;
+	}
+
+	public void setNodeLinkRelmap(Map<String, Map<String, Map<String, String>>> nodeLinkRelmap) {
+		this.nodeLinkRelmap = nodeLinkRelmap;
+	}
+
+	public Map<String, Node> getWeaverNodeMap() {
+		return weaverNodeMap;
+	}
+
+	public void setWeaverNodeMap(Map<String, Node> weaverNodeMap) {
+		this.weaverNodeMap = weaverNodeMap;
+	}
+
+	public Map<String, List<Map<String, String>>> getRolePropertiesMap() {
+		return rolePropertiesMap;
+	}
+
+	public void setRolePropertiesMap(Map<String, List<Map<String, String>>> rolePropertiesMap) {
+		this.rolePropertiesMap = rolePropertiesMap;
+	}
+
+	public List<String> getWeaverIdList() {
+		return weaverIdList;
+	}
+
+	public void setWeaverIdList(List<String> weaverIdList) {
+		this.weaverIdList = weaverIdList;
+	}
+
+	public List<Map<String, String>> getGraphlist() {
+		return graphlist;
+	}
+
+	public void setGraphlist(List<Map<String, String>> graphlist) {
+		this.graphlist = graphlist;
+	}
+
+	public Map<String, Set<String>> getWeaverIdMap() {
+		return weaverIdMap;
+	}
+
+	public void setWeaverIdMap(Map<String, Set<String>> weaverIdMap) {
+		this.weaverIdMap = weaverIdMap;
+	}
+
+	public boolean isLimitShow() {
+		return limitShow;
+	}
+
+
+	public void setLimitShow(boolean limitShow) {
+		this.limitShow = limitShow;
+	}
+
+
+	public String getWebsite() {
+		return website;
+	}
+
+
+	public void setWebsite(String website) {
+		this.website = website;
+	}
+
+
+	public boolean isAuthority() {
+		return authority;
+	}
+
+
+	public void setAuthority(boolean authority) {
+		this.authority = authority;
+	}
+
+
+	public String getName() {
+		return name;
+	}
+
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+
+	public List<EdgeNew> getLinks() {
+		return links;
+	}
+
+	public void setLinks(List<EdgeNew> links) {
+		this.links = links;
+	}
+
+	/**
+	 * @return the nodes
+	 */
+	public List<Node> getNodes() {
+		return nodes;
+	}
+
+
+	/**
+	 * @param nodes the nodes to set
+	 */
+	public void setNodes(List<Node> nodes) {
+		this.nodes = nodes;
+	}
+
+
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+
+
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+
+	/**
+	 * @return the id
+	 */
+	public String getId() {
+		return id;
+	}
+
+
+	/**
+	 * @param id the id to set
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+
+
+	/**
+	 * @return the score
+	 */
+	public BigDecimal getScore() {
+		return score;
+	}
+
+
+
+	/**
+	 * @param score the score to set
+	 */
+	public void setScore(BigDecimal score) {
+		this.score = score;
+	}
+
+
+	public String getMarkStatus() {
+		return markStatus;
+	}
+
+
+	public void setMarkStatus(String markStatus) {
+		this.markStatus = markStatus;
+	}
+
+
+	public String getMarkMess() {
+		return markMess;
+	}
+
+
+	public void setMarkMess(String markMess) {
+		this.markMess = markMess;
+	}
+
+
+	public String getMarkUser() {
+		return markUser;
+	}
+
+
+	public void setMarkUser(String markUser) {
+		this.markUser = markUser;
+	}
+
+
+	public Date getMarkDate() {
+		return markDate;
+	}
+
+
+	public void setMarkDate(Date markDate) {
+		this.markDate = markDate;
+	}
+}

+ 442 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/Node.java

@@ -0,0 +1,442 @@
+/**
+ * Node.java created on 2016年12月1日 下午2:12:05 by jiminghu
+ */
+
+package com.dgt.graphdemo.entity.fqz;
+
+import com.google.gson.JsonObject;
+
+
+import java.math.BigDecimal;
+import java.util.*;
+
+/**
+ * 
+ * @author: jiminghu
+ * @since: 2016年12月1日
+ */
+public class Node extends CommonBean<Node> {
+
+	/**
+	 */
+	private static final long serialVersionUID = -7436171504778022413L;
+	private String ctype;
+	private String ctsem;
+	private String markSource;
+	private BigDecimal impairmentAmount;
+
+	private String id;
+
+	private String weaverId;
+
+	private String name;
+
+	private String type;
+	//新增一个存储人节点重复的字段
+	private String roletype;
+
+	private List<String> nebors;
+
+	private Map<String,String> attr;
+
+	private List<NodeAttr> attrs;
+
+	private Boolean delete;
+
+	private Boolean canEx;
+
+	private String markStatus;
+	private String markMess;
+	private String markUser;
+
+	private Date markDate;
+	//欺诈时间
+	private String markqzDate;
+	private String markkyDate;
+	private String isM6Send;
+	private String markUserName;
+	private String branchCode;
+
+
+
+	private String handleCode;
+
+	private boolean showOff=true;
+
+    //模糊查询时展示的对象
+	private List<Map<String,String>> singleProperties;
+
+    //点扩展所展示的属性值
+	private List<Map<String,String>> manyProperties;
+
+	//查询类型
+	private String entityType;
+
+	//节点图片姓名
+	private String imageName;
+	//系统来源
+	private String source;
+
+	public String getRoletype() {
+		return roletype;
+	}
+
+	public void setRoletype(String roletype) {
+		this.roletype = roletype;
+	}
+
+	public String getSource() {
+		return source;
+	}
+
+	public void setSource(String source) {
+		this.source = source;
+	}
+
+	public String getImageName() {
+		return imageName;
+	}
+
+	public void setImageName(String imageName) {
+		this.imageName = imageName;
+	}
+
+	public String getEntityType() {
+		return entityType;
+	}
+
+	public void setEntityType(String entityType) {
+		this.entityType = entityType;
+	}
+
+	public List<Map<String, String>> getSingleProperties() {
+		return singleProperties;
+	}
+
+	public void setSingleProperties(List<Map<String, String>> singleProperties) {
+		this.singleProperties = singleProperties;
+	}
+
+	public List<Map<String, String>> getManyProperties() {
+		return manyProperties;
+	}
+
+	public void setManyProperties(List<Map<String, String>> manyProperties) {
+		this.manyProperties = manyProperties;
+	}
+
+
+	public String getBranchCode() {
+		return branchCode;
+	}
+
+	public void setBranchCode(String branchCode) {
+		this.branchCode = branchCode;
+	}
+
+	public String getHandleCode() {
+		return handleCode;
+	}
+
+	public void setHandleCode(String handleCode) {
+		this.handleCode = handleCode;
+	}
+
+
+	// 2018-4-4新增标注字段
+	private String flag;// 类型   0: 系列案名称  1:人名称
+
+	private String flagValue;// 值
+
+	public String getMarkkyDate() {
+		return markkyDate;
+	}
+
+	public String getMarkUserName() {
+		return markUserName;
+	}
+
+	public void setMarkUserName(String markUserName) {
+		this.markUserName = markUserName;
+	}
+
+	public void setMarkkyDate(String markkyDate) {
+		this.markkyDate = markkyDate;
+	}
+
+	public String getMarkqzDate() {
+		return markqzDate;
+	}
+
+	public void setMarkqzDate(String markqzDate) {
+		this.markqzDate = markqzDate;
+	}
+
+	public String getIsM6Send() {
+		return isM6Send;
+	}
+
+	public void setIsM6Send(String isM6Send) {
+		this.isM6Send = isM6Send;
+	}
+
+	public BigDecimal getImpairmentAmount() {
+		return impairmentAmount;
+	}
+
+	public void setImpairmentAmount(BigDecimal impairmentAmount) {
+		this.impairmentAmount = impairmentAmount;
+	}
+
+	public String getMarkSource() {
+		return markSource;
+	}
+
+	public void setMarkSource(String markSource) {
+		this.markSource = markSource;
+	}
+
+	public String getCtype() {
+		return ctype;
+	}
+
+	public void setCtype(String ctype) {
+		this.ctype = ctype;
+	}
+
+	public String getCtsem() {
+		return ctsem;
+	}
+
+	public void setCtsem(String ctsem) {
+		this.ctsem = ctsem;
+	}
+
+	public boolean isShowOff() {
+		return showOff;
+	}
+
+	public void setShowOff(boolean showOff) {
+		this.showOff = showOff;
+	}
+
+	public Node(){}
+
+	public List<NodeAttr> getAttrs() {
+		return attrs;
+	}
+
+	public void setAttrs(List<NodeAttr> attrs) {
+		this.attrs = attrs;
+	}
+
+
+	private int neborSize = 0;
+
+	public Node(String id) {
+		this.id = id;
+		this.nebors = new ArrayList<String>();
+		this.attr = new HashMap<String,String>();
+	}
+
+	/**
+	 * @return the id
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * @param id the id to set
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	/**
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * @param name the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	/**
+	 * @return the neibors
+	 */
+	public List<String> getNeibors() {
+		return this.nebors;
+	}
+
+	public void addNeborNode(String id) {
+		nebors.add(id);
+		neborSize++;
+	}
+
+
+	/**
+	 * @return the nebors
+	 */
+	public List<String> getNebors() {
+		return nebors;
+	}
+
+
+	/**
+	 * @param nebors the nebors to set
+	 */
+	public void setNebors(List<String> nebors) {
+		this.nebors = nebors;
+	}
+	/**
+	 * @return the neborSize
+	 */
+	public int getNeborSize() {
+		return neborSize;
+	}
+
+
+	/**
+	 * @param neborSize the neborSize to set
+	 */
+	public void setNeborSize(int neborSize) {
+		this.neborSize = neborSize;
+	}
+
+	public JsonObject toJsonObject()
+	{
+		JsonObject n = new JsonObject();
+		n.addProperty("id", this.id);
+		n.addProperty("name", this.name);
+		n.addProperty("type", this.type);
+		for(String key:this.attr.keySet())
+		{
+			n.addProperty(key, this.attr.get(key));
+		}
+
+		return n;
+	}
+
+
+	/**
+	 * @return the attr
+	 */
+	public Map<String, String> getAttr() {
+		return attr;
+	}
+
+
+	/**
+	 * @param attr the attr to set
+	 */
+	public void setAttr(Map<String, String> attr) {
+		this.attr = attr;
+	}
+
+	public String getWeaverId() {
+		return weaverId;
+	}
+
+	public void setWeaverId(String weaverId) {
+		this.weaverId = weaverId;
+	}
+
+	/**
+	 * @return the delete
+	 */
+	public Boolean getDelete() {
+		return delete;
+	}
+
+
+	/**
+	 * @param delete the delete to set
+	 */
+	public void setDelete(Boolean delete) {
+		this.delete = delete;
+	}
+
+
+	/**
+	 * @return the canEx
+	 */
+	public Boolean getCanEx() {
+		return canEx;
+	}
+
+
+	/**
+	 * @param canEx the canEx to set
+	 */
+	public void setCanEx(Boolean canEx) {
+		this.canEx = canEx;
+	}
+
+	public String getMarkStatus() {
+		return markStatus;
+	}
+
+	public void setMarkStatus(String markStatus) {
+		this.markStatus = markStatus;
+	}
+
+	public String getMarkMess() {
+		return markMess;
+	}
+
+	public void setMarkMess(String markMess) {
+		this.markMess = markMess;
+	}
+
+	public String getMarkUser() {
+		return markUser;
+	}
+
+	public void setMarkUser(String markUser) {
+		this.markUser = markUser;
+	}
+
+	public Date getMarkDate() {
+		return markDate;
+	}
+
+	public void setMarkDate(Date markDate) {
+		this.markDate = markDate;
+	}
+
+	public String getFlag() {
+		return flag;
+	}
+
+	public void setFlag(String flag) {
+		this.flag = flag;
+	}
+
+	public String getFlagValue() {
+		return flagValue;
+	}
+
+	public void setFlagValue(String flagValue) {
+		this.flagValue = flagValue;
+	}
+}

+ 79 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/NodeAttr.java

@@ -0,0 +1,79 @@
+/**
+ * NodeAttr.java created on 2016年12月16日 下午3:27:17 by jiminghu
+ */
+package com.dgt.graphdemo.entity.fqz;
+
+
+/**
+ * 
+ * @author: jiminghu
+ * @since: 2016年12月16日
+ */
+public class NodeAttr extends CommonBean<NodeAttr>{
+
+	/**
+	 */
+	private static final long serialVersionUID = -116111771178076960L;
+	private String name;
+	private String value;
+	private String cnname;
+	private String type;
+	
+	/**
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+	
+	/**
+	 * @param name the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	/**
+	 * @return the value
+	 */
+	public String getValue() {
+		return value;
+	}
+	
+	/**
+	 * @param value the value to set
+	 */
+	public void setValue(String value) {
+		this.value = value;
+	}
+	
+	/**
+	 * @return the cnname
+	 */
+	public String getCnname() {
+		return cnname;
+	}
+	
+	/**
+	 * @param cnname the cnname to set
+	 */
+	public void setCnname(String cnname) {
+		this.cnname = cnname;
+	}
+
+	
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+
+	
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+}

+ 105 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/Nodes.java

@@ -0,0 +1,105 @@
+package com.dgt.graphdemo.entity.fqz;
+
+
+
+/**
+ * 实体总表
+ * 
+ * @author jinTian
+ * @since 2016年12月1日
+ */
+public class Nodes extends CommonBean<Nodes>{
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 8100921548429823117L;
+	
+	private String entityId;//实体的唯一ID
+	private String weaverId;//weaver的唯一ID
+	private String entityType;//实体的类型
+	private String searchId;//实体用作模糊匹配和定向查找的ID
+	private String entityName;//实体显示在图上的名字
+	private String attributes;//实体具体的属性,总表中保存所有实体的所有属性类型
+	private String user;
+	private Boolean isCustom;
+	private Boolean isException;
+	private Integer level = 1;
+	public Boolean getIsCustom() {
+		return isCustom;
+	}
+	public void setIsCustom(Boolean isCustom) {
+		this.isCustom = isCustom;
+	}
+	public String getEntityId() {
+		return entityId;
+	}
+	public void setEntityId(String entityId) {
+		this.entityId = entityId;
+	}
+	public String getEntityType() {
+		return entityType;
+	}
+	public void setEntityType(String entityType) {
+		this.entityType = entityType;
+	}
+	public String getSearchId() {
+		return searchId;
+	}
+	public void setSearchId(String searchId) {
+		this.searchId = searchId;
+	}
+	public String getEntityName() {
+		return entityName;
+	}
+	public void setEntityName(String entityName) {
+		this.entityName = entityName;
+	}
+	public String getAttributes() {
+		return attributes;
+	}
+	public void setAttributes(String attributes) {
+		this.attributes = attributes;
+	}
+	
+	/**
+	 * @return the weaverId
+	 */
+	public String getWeaverId() {
+		return weaverId;
+	}
+	
+	/**
+	 * @param weaverId the weaverId to set
+	 */
+	public void setWeaverId(String weaverId) {
+		this.weaverId = weaverId;
+	}
+	
+	/**
+	 * @return the user
+	 */
+	public String getUser() {
+		return user;
+	}
+	
+	/**
+	 * @param user the user to set
+	 */
+	public void setUser(String user) {
+		this.user = user;
+	}
+	public Boolean getIsException() {
+		return isException;
+	}
+	public void setIsException(Boolean isException) {
+		this.isException = isException;
+	}
+	public Integer getLevel() {
+		return level;
+	}
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
+}

+ 253 - 0
src/main/java/com/dgt/graphdemo/entity/fqz/Pager.java

@@ -0,0 +1,253 @@
+/*
+ * Pager.java created on 2012-4-19 下午1:32:48 by xie-qing
+ */
+
+package com.dgt.graphdemo.entity.fqz;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * 分页对象
+ * @author: xie-qing
+ * @since: 2012-4-19
+ */
+public class Pager<T> implements Serializable {
+
+	private static final long serialVersionUID = -674342573401174523L;
+
+	public final static String CURRENT_PAGE = "currentPage";
+	
+	public final static String LIMIT_NUM = "limit";
+
+	private int limit = 10;
+
+	private boolean hasPre;
+
+	private boolean hasNext;
+
+	private int currentPage = 1;
+
+	private Long total;
+
+	private boolean needPage = true;
+
+	private transient List<T> dataList = new ArrayList<T>();
+
+	//专门标识人的标识位
+	private List<String> tagList;
+
+
+
+	private List<Integer> limitList = new ArrayList<Integer>();
+
+	private String ids;
+
+	private Date beginDate;
+
+	private Date endDate;
+
+	private String submitFlag;
+
+	private transient Map<String, Object> param = new HashMap<String, Object>();
+
+	/**容器ID,主要用来load进分页页面的:  $("#"+tdId).load(url,param,function(){......*/
+	private String containerId;
+
+	/**上一页,下一页等调用的url: ${ctx}/BestDataMonitor/user/list.do*/
+	private String url;
+
+	/**
+	 * myPagination分页组件传过来的当前页数(第几页)
+	 */
+	public final static String MY_PAGINATION_CURRENT_PAGE = "page";
+
+	public Pager() {
+
+	}
+
+	public Pager(boolean needPage) {
+		this.needPage = needPage;
+	}
+
+	public Pager(int currentPage, Long total) {
+		super();
+		this.currentPage = currentPage;
+		this.total = total;
+	}
+
+	public Pager(int limit, int currentPage, Long total) {
+		super();
+		this.limit = limit;
+		this.currentPage = currentPage;
+		this.total = total;
+	}
+
+	public int getTotalPage() {
+		try {
+			if (0 == total) {
+				return 1;
+			}
+		} catch (Exception e) {
+			return 1;
+		}
+		return (int) (total - 1) / this.getLimit() + 1;
+	}
+
+	public boolean isFirstPage() {
+		return 1 == currentPage ? true : false;
+	}
+
+	public boolean isLastPage() {
+		return currentPage == getTotalPage() ? true : false;
+	}
+
+	/** 获取上一页是第几页 */
+	public int getPrePage() {
+		return currentPage - 1;
+	}
+
+	/** 获取下一页是第几页 */
+	public int getNextPage() {
+		return currentPage + 1;
+	}
+
+	// /////////////////////////////////////////////////////////////////////////
+
+	public int getLimit() {
+		return limit;
+	}
+
+	public void setLimit(int limit) {
+		this.limit = limit;
+	}
+
+	public boolean isHasPre() {
+		return hasPre;
+	}
+
+	public void setHasPre(boolean hasPre) {
+		this.hasPre = hasPre;
+	}
+
+	public boolean isHasNext() {
+		return hasNext;
+	}
+
+	public void setHasNext(boolean hasNext) {
+		this.hasNext = hasNext;
+	}
+
+	public int getCurrentPage() {
+		return currentPage;
+	}
+
+	public void setCurrentPage(int currentPage) {
+		this.currentPage = currentPage;
+	}
+
+	public Long getTotal() {
+		return total;
+	}
+
+	public void setTotal(Long total) {
+		this.total = total;
+	}
+
+	public boolean isNeedPage() {
+		return needPage;
+	}
+
+	public void setNeedPage(boolean needPage) {
+		this.needPage = needPage;
+	}
+
+	public List<T> getDataList() {
+		return dataList;
+	}
+
+	public void setDataList(List<T> dataList) {
+		this.dataList = dataList;
+	}
+
+	public String getIds() {
+		return ids;
+	}
+
+	public void setIds(String ids) {
+		this.ids = ids;
+	}
+
+	public Date getBeginDate() {
+		return beginDate;
+	}
+
+	public void setBeginDate(Date beginDate) {
+		this.beginDate = beginDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public String getSubmitFlag() {
+		return submitFlag;
+	}
+
+	public void setSubmitFlag(String submitFlag) {
+		this.submitFlag = submitFlag;
+	}
+
+	public Map<String, Object> getParam() {
+		return param;
+	}
+
+	public void setParam(Map<String, Object> param) {
+		this.param = param;
+	}
+
+	public String getContainerId() {
+		return containerId;
+	}
+
+	public void setContainerId(String containerId) {
+		this.containerId = containerId;
+	}
+
+	public String getUrl() {
+		return url;
+	}
+
+	public void setUrl(String url) {
+		this.url = url;
+	}
+
+	public List<String> getTagList() {
+		return tagList;
+	}
+
+	public void setTagList(List<String> tagList) {
+		this.tagList = tagList;
+	}
+
+	public List<Integer> getLimitList() {
+		limitList.add(5);
+		limitList.add(10);
+		limitList.add(12);
+		limitList.add(15);
+		limitList.add(20);
+		limitList.add(50);
+		limitList.add(100);
+		limitList.add(1000);
+		return limitList;
+	}
+
+	public void setLimitList(List<Integer> limitList) {
+		this.limitList = limitList;
+	}
+
+}

+ 23 - 0
src/main/java/com/dgt/graphdemo/exception/CommonBizException.java

@@ -0,0 +1,23 @@
+package com.dgt.graphdemo.exception;
+
+import java.io.Serializable;
+
+/**
+ * @Author lugela
+ * @Date 2017/10/27 下午10:37
+ * 通用业务异常(由异常状态码区分不同的业务异常)
+ */
+public class CommonBizException extends RuntimeException implements Serializable {
+    private ExpCodeEnum codeEnum;
+
+    public CommonBizException(ExpCodeEnum codeEnum){
+        super(codeEnum.getMessage());
+        this.codeEnum = codeEnum;
+    }
+
+    public CommonBizException(){}
+
+    public ExpCodeEnum getCodeEnum() {
+        return codeEnum;
+    }
+}

+ 23 - 0
src/main/java/com/dgt/graphdemo/exception/CommonSysException.java

@@ -0,0 +1,23 @@
+package com.dgt.graphdemo.exception;
+
+import java.io.Serializable;
+
+/**
+ * @author lugela
+ * @date 2017/11/6 下午2:11
+ *
+ * @description 通用系统异常
+ */
+public class CommonSysException extends RuntimeException implements Serializable {
+
+    private ExpCodeEnum codeEnum;
+
+    public CommonSysException(ExpCodeEnum codeEnum) {
+        super(codeEnum.getMessage());
+        this.codeEnum = codeEnum;
+    }
+
+    public CommonSysException() {
+
+    }
+}

+ 71 - 0
src/main/java/com/dgt/graphdemo/exception/ExpCodeEnum.java

@@ -0,0 +1,71 @@
+package com.dgt.graphdemo.exception;
+
+
+import java.io.Serializable;
+
+import static com.dgt.graphdemo.utils.ExpPrefixUtil.*;
+
+
+/**
+ * @Author lugela
+ * @Date
+ * 全局的异常状态码 和 异常描述
+ *
+ */
+public enum ExpCodeEnum implements Serializable {
+
+    /** 通用异常 */
+    /*成功*/
+    SUCCESS(  "0000", "成功"),
+
+    /*1*/
+    PARAM_NULL(ComExpPrefix + "001", "参数为空"),
+    JSONERROR(ComExpPrefix + "002", "JSON解析异常"),
+    HTTP_REQ_METHOD_ERROR(ComExpPrefix + "003", "HTTP请求方法不正确"),
+    ADDfAILE(ComExpPrefix + "004", "添加失败"),
+    UPDATEFAILE(ComExpPrefix + "005", "更新失败"),
+    DELETEFAILE(ComExpPrefix +"006","删除失败"),
+    TOKENNODATA(ComExpPrefix + "007", "认证码不存在"),
+    TOKENPERMISSION(ComExpPrefix + "008", "认证码有误"),
+    TOKENLOAD(ComExpPrefix + "009", "认证码失效"),
+    SESSION_NULL(NotFoundExpPrefix + "010", "请求头中认证码不存在"),
+    PARAMETERSMISSING(ComExpPrefix +"011","必传参数缺失"),
+    QUREYRSMISSING(ComExpPrefix +"012","请求查询参数不合法"),
+    USEREXISTS(ComExpPrefix +"013","该账号已经存在"),
+    LOGINFAILURE(ComExpPrefix +"014","账号或密码错误"),
+    /*2*/
+    NULLVALUE (UserExpPrefix + "001", "没有查询到数据"),
+    NOTFINDCUSTID(UserExpPrefix +"002","修改的客户未能查询到"),
+
+    /*3*/
+    NO_REPEAT(ProdExpPrefix + "001", "请勿重复提交"),
+    JURISDICTION(ProdExpPrefix + "002", "无权限访问"),
+    SYSCODEPERMISSION(ProdExpPrefix +"03","该账号无权限"),
+    SERVERPERMISSION(ProdExpPrefix +"04","服务器无访问权限"),
+    TOKENANDSERVERPERMISSION(ProdExpPrefix + "005", "服务器无访问权限,token有误"),
+    /*4*/
+    ERROR_404(NotFoundExpPrefix + "001", "没有该接口"),
+    /*5*/
+    UNKNOW_ERROR(AnlsExpPrefix+"001","未知异常");
+
+
+
+
+    private String code;
+    private String message;
+
+    private ExpCodeEnum(String code, String message){
+        this.code = code;
+        this.message = message;
+    }
+
+    ExpCodeEnum(){}
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+}

+ 126 - 0
src/main/java/com/dgt/graphdemo/jpa/entity/BasicClaimnoEntity.java

@@ -0,0 +1,126 @@
+package com.dgt.graphdemo.jpa.entity;
+
+import javax.persistence.*;
+import java.sql.Date;
+import java.util.Objects;
+
+/**
+ * @author lugela
+ * @Title: BasicClaimnoEntity
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 12:23
+ * 基本信息表
+ */
+@Entity
+@Table(name = "basic_claimno", schema = "graphtb", catalog = "")
+public class BasicClaimnoEntity {
+    private int id;
+    private String claimno;
+    private String name;
+    private String sex;
+    private Integer age;
+    private String claimnAcc;
+    private Date accdate;
+    private Date recdate;
+
+    @Id
+    @Column(name = "id", nullable = false)
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @Basic
+    @Column(name = "claimno", nullable = true, length = 18)
+    public String getClaimno() {
+        return claimno;
+    }
+
+    public void setClaimno(String claimno) {
+        this.claimno = claimno;
+    }
+
+    @Basic
+    @Column(name = "name", nullable = true, length = 100)
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @Basic
+    @Column(name = "sex", nullable = true, length = 100)
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    @Basic
+    @Column(name = "age", nullable = true)
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    @Basic
+    @Column(name = "claimn_acc", nullable = true, length = 100)
+    public String getClaimnAcc() {
+        return claimnAcc;
+    }
+
+    public void setClaimnAcc(String claimnAcc) {
+        this.claimnAcc = claimnAcc;
+    }
+
+    @Basic
+    @Column(name = "accdate", nullable = true)
+    public Date getAccdate() {
+        return accdate;
+    }
+
+    public void setAccdate(Date accdate) {
+        this.accdate = accdate;
+    }
+
+    @Basic
+    @Column(name = "recdate", nullable = true)
+    public Date getRecdate() {
+        return recdate;
+    }
+
+    public void setRecdate(Date recdate) {
+        this.recdate = recdate;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        BasicClaimnoEntity that = (BasicClaimnoEntity) o;
+        return id == that.id &&
+                Objects.equals(claimno, that.claimno) &&
+                Objects.equals(name, that.name) &&
+                Objects.equals(sex, that.sex) &&
+                Objects.equals(age, that.age) &&
+                Objects.equals(claimnAcc, that.claimnAcc) &&
+                Objects.equals(accdate, that.accdate) &&
+                Objects.equals(recdate, that.recdate);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, claimno, name, sex, age, claimnAcc, accdate, recdate);
+    }
+}

+ 89 - 0
src/main/java/com/dgt/graphdemo/jpa/entity/RiskTipEntity.java

@@ -0,0 +1,89 @@
+package com.dgt.graphdemo.jpa.entity;
+
+import javax.persistence.*;
+import java.util.Objects;
+
+/**
+ * @author lugela
+ * @Title: RiskTipEntity
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 12:23
+ * 风险提示
+ */
+@Entity
+@Table(name = "risk_tip", schema = "graphtb", catalog = "")
+public class RiskTipEntity {
+    private int id;
+    private String decisionResult;
+    private String detailedDescription;
+    private String fastCompensateScore;
+    private String claimno;
+
+    @Id
+    @Column(name = "id", nullable = false)
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @Basic
+    @Column(name = "decision_result", nullable = true, length = 18)
+    public String getDecisionResult() {
+        return decisionResult;
+    }
+
+    public void setDecisionResult(String decisionResult) {
+        this.decisionResult = decisionResult;
+    }
+
+    @Basic
+    @Column(name = "detailed_description", nullable = true, length = 100)
+    public String getDetailedDescription() {
+        return detailedDescription;
+    }
+
+    public void setDetailedDescription(String detailedDescription) {
+        this.detailedDescription = detailedDescription;
+    }
+
+    @Basic
+    @Column(name = "fast_compensate_score", nullable = true, length = 100)
+    public String getFastCompensateScore() {
+        return fastCompensateScore;
+    }
+
+    public void setFastCompensateScore(String fastCompensateScore) {
+        this.fastCompensateScore = fastCompensateScore;
+    }
+
+    @Basic
+    @Column(name = "claimno", nullable = true, length = 18)
+    public String getClaimno() {
+        return claimno;
+    }
+
+    public void setClaimno(String claimno) {
+        this.claimno = claimno;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        RiskTipEntity that = (RiskTipEntity) o;
+        return id == that.id &&
+                Objects.equals(decisionResult, that.decisionResult) &&
+                Objects.equals(detailedDescription, that.detailedDescription) &&
+                Objects.equals(fastCompensateScore, that.fastCompensateScore) &&
+                Objects.equals(claimno, that.claimno);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, decisionResult, detailedDescription, fastCompensateScore, claimno);
+    }
+}

+ 73 - 0
src/main/java/com/dgt/graphdemo/jpa/entity/SimilarFactorEntity.java

@@ -0,0 +1,73 @@
+package com.dgt.graphdemo.jpa.entity;
+
+import javax.persistence.*;
+import java.util.Objects;
+
+/**
+ * @author lugela
+ * @Title: SimilarFactorEntity
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 12:23
+ */
+@Entity
+@Table(name = "similar_factor", schema = "graphtb", catalog = "")
+public class SimilarFactorEntity {
+    private int id;
+    private Integer similarId;
+    private String similarityFactorType;
+    private String similarityFactorDetail;
+    private String remark;
+
+    @Id
+    @Column(name = "id", nullable = false)
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @Basic
+    @Column(name = "similar_id", nullable = true, length = 18)
+    public Integer getSimilarId() {
+        return similarId;
+    }
+
+    public void setSimilarId(Integer similarId) {
+        this.similarId = similarId;
+    }
+
+    @Basic
+    @Column(name = "similarity_factor_type", nullable = true, length = 100)
+    public String getSimilarityFactorType() {
+        return similarityFactorType;
+    }
+
+    public void setSimilarityFactorType(String similarityFactorType) {
+        this.similarityFactorType = similarityFactorType;
+    }
+
+    @Basic
+    @Column(name = "similarity_factor_detail", nullable = true, length = 100)
+    public String getSimilarityFactorDetail() {
+        return similarityFactorDetail;
+    }
+
+    public void setSimilarityFactorDetail(String similarityFactorDetail) {
+        this.similarityFactorDetail = similarityFactorDetail;
+    }
+
+    @Basic
+    @Column(name = "remark", nullable = true, length = 100)
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+
+}

+ 95 - 0
src/main/java/com/dgt/graphdemo/jpa/entity/SimilarTypeClaimnoEntity.java

@@ -0,0 +1,95 @@
+package com.dgt.graphdemo.jpa.entity;
+
+import javax.persistence.*;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author lugela
+ * @Title: SimilarTypeClaimnoEntity
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 12:23
+ */
+@Entity
+@Table(name = "similar_type_claimno", schema = "graphtb", catalog = "")
+public class SimilarTypeClaimnoEntity {
+    private int id;
+    private String claimno;
+    private String historyClaimno;
+    private String claimnoConclusion;
+    private Integer similarFactorNum;
+    private Float similarityFactor;
+    private List<SimilarFactorEntity> similarFactorList;
+
+    @Transient
+    public List<SimilarFactorEntity> getSimilarFactorList() {
+        return similarFactorList;
+    }
+
+    public void setSimilarFactorList(List<SimilarFactorEntity> similarFactorList) {
+        this.similarFactorList = similarFactorList;
+    }
+
+    @Id
+    @Column(name = "id", nullable = false)
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    @Basic
+    @Column(name = "claimno", nullable = true, length = 18)
+    public String getClaimno() {
+        return claimno;
+    }
+
+    public void setClaimno(String claimno) {
+        this.claimno = claimno;
+    }
+
+    @Basic
+    @Column(name = "history_claimno", nullable = true, length = 100)
+    public String getHistoryClaimno() {
+        return historyClaimno;
+    }
+
+    public void setHistoryClaimno(String historyClaimno) {
+        this.historyClaimno = historyClaimno;
+    }
+
+    @Basic
+    @Column(name = "claimno_conclusion", nullable = true, length = 100)
+    public String getClaimnoConclusion() {
+        return claimnoConclusion;
+    }
+
+    public void setClaimnoConclusion(String claimnoConclusion) {
+        this.claimnoConclusion = claimnoConclusion;
+    }
+
+    @Basic
+    @Column(name = "similar_factor_num", nullable = true)
+    public Integer getSimilarFactorNum() {
+        return similarFactorNum;
+    }
+
+    public void setSimilarFactorNum(Integer similarFactorNum) {
+        this.similarFactorNum = similarFactorNum;
+    }
+
+    @Basic
+    @Column(name = "similarity_factor", nullable = true)
+    public Float getSimilarityFactor() {
+        return similarityFactor;
+    }
+
+    public void setSimilarityFactor(Float similarityFactor) {
+        this.similarityFactor = similarityFactor;
+    }
+
+
+}

+ 16 - 0
src/main/java/com/dgt/graphdemo/jpa/repo/BasicClaimnoRepo.java

@@ -0,0 +1,16 @@
+package com.dgt.graphdemo.jpa.repo;
+
+import com.dgt.graphdemo.jpa.entity.BasicClaimnoEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * @author lugela
+ * @Title: BasicClaimnoRepo
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 13:26
+ */
+public interface BasicClaimnoRepo extends JpaRepository<BasicClaimnoEntity,Integer> {
+
+    public BasicClaimnoEntity findByClaimno(String Claimno);
+}

+ 16 - 0
src/main/java/com/dgt/graphdemo/jpa/repo/RiskTipRepo.java

@@ -0,0 +1,16 @@
+package com.dgt.graphdemo.jpa.repo;
+
+import com.dgt.graphdemo.jpa.entity.RiskTipEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * @author lugela
+ * @Title: RiskTipRepo
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 13:30
+ */
+public interface RiskTipRepo extends JpaRepository<RiskTipEntity,Integer> {
+
+    public RiskTipEntity findByClaimno(String climno);
+}

+ 17 - 0
src/main/java/com/dgt/graphdemo/jpa/repo/SimilarFactorRepo.java

@@ -0,0 +1,17 @@
+package com.dgt.graphdemo.jpa.repo;
+
+import com.dgt.graphdemo.jpa.entity.SimilarFactorEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: SimilarFactorRepo
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 13:31
+ */
+public interface SimilarFactorRepo extends JpaRepository<SimilarFactorEntity,Integer> {
+    public List<SimilarFactorEntity> findBySimilarId(Integer similarId);
+}

+ 17 - 0
src/main/java/com/dgt/graphdemo/jpa/repo/SimilarTypeClaimnoRepo.java

@@ -0,0 +1,17 @@
+package com.dgt.graphdemo.jpa.repo;
+
+import com.dgt.graphdemo.jpa.entity.SimilarTypeClaimnoEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: SimilarTypeClaimnoRepo
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 13:34
+ */
+public interface SimilarTypeClaimnoRepo extends JpaRepository<SimilarTypeClaimnoEntity,Integer> {
+    public List<SimilarTypeClaimnoEntity> findByClaimno(String claimno);
+}

+ 112 - 0
src/main/java/com/dgt/graphdemo/result/Result.java

@@ -0,0 +1,112 @@
+package com.dgt.graphdemo.result;
+
+import com.dgt.graphdemo.exception.CommonBizException;
+import com.dgt.graphdemo.exception.ExpCodeEnum;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author lugela
+ * @Date 2017/10/27 下午10:59
+ * restful接口通用返回结果
+ */
+@Data
+public class Result<T> implements Serializable {
+
+    private static final long serialVersionUID = 2988770413133778370L;
+    /** 执行结果 */
+ //   private boolean isSuccess;
+
+    /** 错误码 */
+   // private String errorCode;
+
+    /** 错误原因 */
+    private String message;
+
+    /** 返回数据 */
+    private T data;
+
+    //状态码
+
+    private String resultCode;
+
+    /**
+     * 返回成功的结果
+     * @param data 需返回的结果
+     * @param <T>
+     * @return
+     */
+    public static <T> Result<T> newSuccessResult(T data){
+        Result<T> result = new Result<>();
+      //  result.isSuccess = true;
+        result.data = data;
+        return result;
+    }
+
+    public static <T> Result<T> successResult(T data){
+        Result<T> result = new Result<>();
+        result.resultCode ="0000";
+        result.message = "成功";
+        result.data = data;
+        return result;
+    }
+
+    /**
+     * 返回成功的结果
+     * @param <T>
+     * @return
+     */
+    public static <T> Result<T> newSuccessResult(){
+        Result<T> result = new Result<>();
+       // result.isSuccess = true;
+        result.resultCode ="0000";
+        result.message = "成功";
+        return result;
+    }
+
+    /**
+     * 返回失败的结果
+     * PS:返回"未知异常"
+     * @param <T>
+     * @return
+     */
+    public static <T> Result<T> newFailureResult(){
+        Result<T> result = new Result<>();
+       // result.isSuccess = false;
+        result.resultCode = ExpCodeEnum.UNKNOW_ERROR.getCode();
+        result.message = ExpCodeEnum.UNKNOW_ERROR.getMessage();
+        return result;
+    }
+
+    /**
+     *
+     * @param commonBizException 异常
+     * @param <T>
+     * @return
+     */
+    public static <T> Result<T> newFailureResult(CommonBizException commonBizException){
+        Result<T> result = new Result<>();
+       // result.isSuccess = false;
+        result.resultCode = commonBizException.getCodeEnum().getCode();
+        result.message = commonBizException.getCodeEnum().getMessage();
+        return result;
+    }
+
+    /**
+     * 返回失败的结果
+     * @param commonBizException 异常
+     * @param data 需返回的数据
+     * @param <T>
+     * @return
+     */
+    public static <T> Result<T> newFailureResult(CommonBizException commonBizException, T data){
+        Result<T> result = new Result<>();
+        //result.isSuccess = false;
+        result.resultCode = commonBizException.getCodeEnum().getCode();
+        result.message = commonBizException.getCodeEnum().getMessage();
+        result.data = data;
+        return result;
+    }
+
+}

+ 60 - 0
src/main/java/com/dgt/graphdemo/service/DatilFormGraphService.java

@@ -0,0 +1,60 @@
+package com.dgt.graphdemo.service;
+
+import com.dgt.graphdemo.entity.GraphDatilData;
+import com.dgt.graphdemo.jpa.entity.BasicClaimnoEntity;
+import com.dgt.graphdemo.jpa.entity.RiskTipEntity;
+import com.dgt.graphdemo.jpa.entity.SimilarFactorEntity;
+import com.dgt.graphdemo.jpa.entity.SimilarTypeClaimnoEntity;
+import com.dgt.graphdemo.jpa.repo.BasicClaimnoRepo;
+import com.dgt.graphdemo.jpa.repo.RiskTipRepo;
+import com.dgt.graphdemo.jpa.repo.SimilarFactorRepo;
+import com.dgt.graphdemo.jpa.repo.SimilarTypeClaimnoRepo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author lugela
+ * @Title: DatilFormGraphService
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/24 13:46
+ */
+@Service
+public class DatilFormGraphService {
+    //基本信息
+    @Autowired
+    BasicClaimnoRepo basicClaimnoRepo;
+    @Autowired
+    //风险信息
+    RiskTipRepo riskTipRepo;
+    //同类案件
+    @Autowired
+    SimilarTypeClaimnoRepo similarTypeClaimnoRepo;
+    //关联同类案件
+    @Autowired
+    SimilarFactorRepo similarFactorRepo;
+    public GraphDatilData getDatilGraph(String claimno){
+        BasicClaimnoEntity basicClaimno = basicClaimnoRepo.findByClaimno(claimno);
+        RiskTipEntity riskTip = riskTipRepo.findByClaimno(claimno);
+        List<SimilarTypeClaimnoEntity> similarTypeClaimnos = similarTypeClaimnoRepo.findByClaimno(claimno);
+
+        if (similarTypeClaimnos!=null&&!similarTypeClaimnos.isEmpty()){
+            similarTypeClaimnos.forEach(similarTypeClaimno ->{
+                List<SimilarFactorEntity> similarFactorList=null;
+                if (similarTypeClaimno!=null ){
+                    int id = similarTypeClaimno.getId();
+                    similarFactorList = similarFactorRepo.findBySimilarId(id);
+                    similarTypeClaimno.setSimilarFactorList(similarFactorList);
+                }
+            });
+        }
+        GraphDatilData graphDatilData = new GraphDatilData();
+        graphDatilData.setBasicClaimno(basicClaimno);
+        graphDatilData.setRiskTip(riskTip);
+        graphDatilData.setSimilarTypeClaimnos(similarTypeClaimnos);
+        return graphDatilData;
+
+    }
+}

+ 110 - 0
src/main/java/com/dgt/graphdemo/service/GraphService.java

@@ -0,0 +1,110 @@
+package com.dgt.graphdemo.service;
+
+import com.dgt.graphdemo.entity.GraphData;
+import com.dgt.graphdemo.entity.MyNode;
+import com.dgt.graphdemo.utils.Constants;
+import com.dgt.graphdemo.utils.Neo4jUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author lugela
+ * @Title: GraphService
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/27 9:22
+ */
+@Service
+public class GraphService {
+   @Autowired
+    private Neo4jUtil neo4jUtil;
+
+   public GraphData deatilGraphRep(List<String> claimnos, List<String> weaverIdList){
+        String claimnoAraays = StringUtils.join(claimnos,",");
+       String nodeSql= String.format( "MATCH p=(c:Claimno)-[*1..3]->(m) WHERE c.name IN [%s] RETURN p",claimnoAraays);
+       GraphData graphData = neo4jUtil.GetGraph(nodeSql);
+       List<MyNode> nodes = graphData.getNodes();
+       if (nodes!=null && !nodes.isEmpty()){
+           nodes.forEach(node ->{
+               String weaverId = node.getWeaverId();
+               if (!weaverIdList.contains(weaverId)){
+                   weaverIdList.add(weaverId);
+               }
+           });
+       }
+       graphData.setWeaverIdList(weaverIdList);
+       //为了给前台不报错的凑数代码
+       Map<String,String> map= new HashMap<>();
+       map.put("value","0");
+       map.put("Imagepath","sxlpclaimNum.png");
+       map.put("type","A");
+       map.put("cname","案件数量");
+       List<Map<String,String>> list=new ArrayList<>();
+       list.add(map);
+       graphData.setGraphlist(list);
+       return graphData;
+
+   }
+
+
+    /**
+     *
+     * @author lugela
+     * @date 2019/7/2 13:26
+     * @param
+     * @return
+     * 双击扩展图谱,深度为1层
+     * filterType 规则过滤
+     */
+     public GraphData deatilGraphExtend(String filterType,String nodeType,String id,List<String> weaverIdList){
+         //普通情况下
+         String nodeName = Constants.NODETYPEMAP.get(nodeType);
+         boolean flag =true;
+         if ("H".equals(nodeType)){
+             //说明当前查询的为医院节点进行扩展,扩展的时候分为规则过滤
+             if ("same".equals(filterType)){
+                 flag = false;
+             }
+         }
+         String nodeSql =null;
+         //为相似度过滤,单独处理
+         if (!flag){
+              nodeSql= String.format( "MATCH p=(c:%s)-[*1..1]-(m) WHERE c.id='%s' AND m.size is null RETURN p",nodeName,id);
+         }
+
+         if (flag){
+              nodeSql= String.format( "MATCH p=(c:%s{id:'%s'})-[*1..1]-(m) RETURN p",nodeName,id);
+         }
+
+
+         //普通情况下
+         GraphData graphData = neo4jUtil.GetGraph(nodeSql);
+         List<MyNode> nodes = graphData.getNodes();
+         if (nodes!=null && !nodes.isEmpty()){
+             nodes.forEach(node ->{
+                 String weaverId = node.getWeaverId();
+                 if (!weaverIdList.contains(weaverId)){
+                     weaverIdList.add(weaverId);
+                 }
+             });
+         }
+         graphData.setWeaverIdList(weaverIdList);
+         //为了给前台不报错的凑数代码
+         Map<String,String> map= new HashMap<>();
+         map.put("value","0");
+         map.put("Imagepath","sxlpclaimNum.png");
+         map.put("type","A");
+         map.put("cname","案件数量");
+         List<Map<String,String>> list=new ArrayList<>();
+         list.add(map);
+         graphData.setGraphlist(list);
+         return graphData;
+     }
+
+}

+ 35 - 0
src/main/java/com/dgt/graphdemo/utils/Constants.java

@@ -0,0 +1,35 @@
+package com.dgt.graphdemo.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author lugela
+ * @Title: Constants
+ * @ProjectName graphdemo
+ * @Description: TODO
+ * @date 2019/6/25 14:22
+ */
+public class Constants  {
+    public static final Map<String,String> JSONFILEMAP = new HashMap<>();
+
+    public static final Map<String,String> NODETYPEMAP = new HashMap<>();
+    static {
+        NODETYPEMAP.put("A","Claimno");
+        NODETYPEMAP.put("B","Policyno");
+        NODETYPEMAP.put("P","Pid");
+        NODETYPEMAP.put("T","Apid");
+        NODETYPEMAP.put("L","Ben_pid");
+        NODETYPEMAP.put("BUSI","Busi_pid");
+        NODETYPEMAP.put("D","Pphone");
+        NODETYPEMAP.put("C","Account");
+        NODETYPEMAP.put("AGE","Age");
+        NODETYPEMAP.put("career","Career");
+        NODETYPEMAP.put("H","Hospital");
+        NODETYPEMAP.put("HL","HospitalLvl");
+        NODETYPEMAP.put("ILL","Illness");
+
+
+
+    }
+}

+ 536 - 0
src/main/java/com/dgt/graphdemo/utils/DateTimeUtils.java

@@ -0,0 +1,536 @@
+/*
+ * DateTimeUtils.java created on 2012-5-11 下午1:32:48 by xie-qing
+ */
+
+package com.dgt.graphdemo.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.apache.commons.lang3.time.DateUtils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+
+/**
+ * 日期时间工具类
+ * @author: xie-qing
+ * @since: 2012-5-11
+ */
+@Slf4j
+public class DateTimeUtils {
+
+
+	public final static String SDF_YYYY = "yyyy";
+
+	public final static String SDF_YYYYMM = "yyyy-MM";
+
+	public final static String SDF_YYYYMMDD = "yyyy-MM-dd";
+
+	public final static String SDF_YYYYMMDD_HH = "yyyy-MM-dd HH";
+
+	public final static String SDF_YYYYMMDD_HHMM = "yyyy-MM-dd HH:mm";
+
+	public final static String SDF_YYYYMMDD_HHMMSS = "yyyy-MM-dd HH:mm:ss";
+
+	public final static String SDF_MM = "MM";
+
+	public final static String SDF_DD = "dd";
+
+	public final static String SDF_HH = "HH";
+
+	public final static String SDFMM = "mm";
+
+	public final static String SDF_SS = "ss";
+
+	public final static String SDF_HHMM = "HH:mm";
+
+	public final static String SDF_HHMMSS = "HH:mm:ss";
+	
+	public final static int MAX_NUMBER_FOR_DAY=30;
+
+	/**
+	 * 是否是同一天
+	 * 
+	 * @param date1
+	 * @param date2
+	 * @return
+	 */
+//	public static boolean isSameDate(Date date1, Date date2) {
+//		if (date1!=null&&date2!=null){
+//
+//			return toDayStart(date1).getTime() == toDayStart(date2).getTime();
+//		}
+//		return false;
+//	}
+
+	/**
+	 * 比较date1是否在date2之前
+	 * @creator: xie-qing
+	 * @createDate: 2012-8-20 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param date1
+	 * @param date2
+	 * @return
+	 */
+//	public static boolean isBefore(Date date1, Date date2) {
+//		if (date1!=null&&date2!=null) {
+//			return toDayStart(date1).getTime() <= toDayStart(date2).getTime();
+//		}
+//		return false;
+//	}
+
+	/**
+	 * 日期转换成字符串
+	 * @param date
+	 * @param pattern
+	 * @return
+	 */
+	public static String dateToString(Date date, String pattern) {
+		return DateFormatUtils.format(date, pattern);
+	}
+
+	/**
+	 * 字符串转换成日期
+	 * @param date
+	 * @param pattern
+	 * @return
+	 */
+	public static Date stringToDate(String date, String pattern) {
+		try {
+			return DateUtils.parseDate(date, new String[] {
+				pattern
+			});
+		} catch (ParseException e) {
+			log.error("发生错误,错误信息为:"+e);
+
+			return null;
+		}
+	}
+
+	/**
+	 * 指定日期的开始时间: 2010-10-10 00:00:00
+	 * 
+	 * @param date
+	 * @return
+	 */
+	public static Date toDayStart(Date date) {
+		SimpleDateFormat sdf = new SimpleDateFormat(SDF_YYYYMMDD);
+		try {
+			return sdf.parse(sdf.format(date));
+		} catch (ParseException e) {
+			log.error("发生错误,错误信息为:"+e);
+
+			return null;
+		} catch (Exception e) {
+			log.error("发生错误,错误信息为:"+e);
+			return null;
+		}
+	}
+
+	/**
+	 * 指定日期的最后时间: 2010-10-10 23:59:59
+	 * 
+	 * @param date
+	 * @return
+	 */
+	public static Date toDayEnd(Date date) {
+		SimpleDateFormat sdf = new SimpleDateFormat(SDF_YYYYMMDD);
+		Date tmp = null;
+		try {
+			tmp = sdf.parse(sdf.format(date));
+		} catch (ParseException e) {
+			log.error("发生错误,错误信息为:"+e);
+			return null;
+		}
+		return new Date(tmp.getTime() + 24 * 60 * 60 * 1000 - 1);
+	}
+
+	/**
+	 * 获取当前日期的年份
+	 * 
+	 * @return
+	 */
+	public static int getYear() {
+		return getYear(new Date());
+	}
+
+	/**
+	 * 获取指定日期的年份
+	 * 
+	 * @param date
+	 * @return
+	 */
+	public static int getYear(Date date) {
+		String year = DateFormatUtils.format(date, SDF_YYYY);
+		return Integer.parseInt(year);
+
+	}
+
+	/**
+	 * 获取当前日期的月份
+	 * 
+	 * @return
+	 */
+	public static int getMonth() {
+		return getMonth(new Date());
+	}
+
+	/**
+	 * 获取指定日期的月份
+	 * 
+	 * @param date
+	 * @return
+	 */
+	public static int getMonth(Date date) {
+		String month = DateFormatUtils.format(date, SDF_MM);
+		return Integer.parseInt(month);
+	}
+
+	/**
+	 * 获取当前日期几号
+	 * 
+	 * @return
+	 */
+	public static int getDay() {
+		return getDay(new Date());
+	}
+
+	/**
+	 * 获取指定日期几号
+	 * 
+	 * @param date
+	 * @return
+	 */
+	public static int getDay(Date date) {
+		String day = DateFormatUtils.format(date, SDF_DD);
+		return Integer.parseInt(day);
+	}
+
+	/**
+	 * 获取当前日期几点
+	 * 
+	 * @return
+	 */
+	public static int getHour() {
+		return getHour(new Date());
+	}
+
+	/**
+	 * 获取指定日期几点
+	 * 
+	 * @return
+	 */
+	public static int getHour(Date date) {
+		String hours = DateFormatUtils.format(date, SDF_HH);
+		return Integer.parseInt(hours);
+	}
+
+	/**
+	 * 获取当前日期几分钟
+	 * 
+	 * @return
+	 */
+	public static int getMinute() {
+		return getMinute(new Date());
+	}
+
+	/**
+	 * 获取指定日期几分钟
+	 * 
+	 * @return
+	 */
+	public static int getMinute(Date date) {
+		String minutes = DateFormatUtils.format(date, SDFMM);
+		return Integer.parseInt(minutes);
+	}
+
+	/**
+	 * 获取当前日期几秒钟
+	 * 
+	 * @return
+	 */
+	public static int getSecond() {
+		return getSecond(new Date());
+	}
+
+	/**
+	 * 获取指定日期几秒钟
+	 * 
+	 * @return
+	 */
+	public static int getSecond(Date date) {
+		String seconds = DateFormatUtils.format(date, SDF_SS);
+		return Integer.parseInt(seconds);
+	}
+
+	/**
+	 * 获取当前日期是星期几
+	 * 
+	 * @return
+	 */
+	public static int getWeek() {
+		return getWeek(new Date());
+	}
+
+	/**
+	 * 获取指定日期是星期几
+	 * 
+	 * @return
+	 */
+	public static int getWeek(Date date) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(date);
+		int week = cal.get(Calendar.DAY_OF_WEEK) - 1;
+		return week < 0 ? 0 : week;
+	}
+
+	/**
+	 * 获取当前月有多少天
+	 * 
+	 * @param date
+	 * @return
+	 */
+	public static int getMonthDays(Date date) {
+		if (date == null) {
+			throw new RuntimeException("date is null");
+		}
+		int year = getYear(date);
+		int month = getMonth(date);
+		if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
+			return 31;
+		} else if (month == 2) {
+			if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
+				return 29;
+			} else {
+				return 28;
+			}
+		} else {
+			return 30;
+		}
+	}
+
+	/**
+	 * 获取两个日期之间相差几年(2011-10-10至2013-10-09 算1年, 2011-10-10至2013-10-10 算2年)
+	 * 
+	 * @param date1  开始日期
+	 * @param date2  结束日期
+	 * @return
+	 */
+	public static int getDiffYears(Date date1, Date date2) {
+		//return Math.abs(getYear(date2) - getYear(date1));
+		int y = getYear(date2), m = getMonth(date2), d = getDay(date2), yFrom = getYear(date1), mFrom = getMonth(date1), dFrom = getDay(date1);
+		// 1. 当前的月份大于出生月份
+		if (m > mFrom) {
+			return y - yFrom;
+		}
+		// 2. 当前的月份等于出生月份
+		else if (m == mFrom) {
+			if (d >= dFrom) {
+				return y - yFrom;
+			} else {
+				return y - yFrom - 1;
+			}
+		}
+		// 3. 当前的月份小于出生月份
+		else if (m < mFrom) {
+			return y - yFrom - 1;
+		}
+		else {
+			return 0;
+		}
+	}
+
+	/**
+	 * 获取两个日期之间相差几月
+	 * 
+	 * @param date1
+	 * @param date2
+	 * @return
+	 */
+	public static int getDiffMonths(Date date1, Date date2) {
+		return Math.abs(getYear(date2) * 12 + getMonth(date2) - getYear(date1) * 12 - getMonth(date1));
+	}
+
+	/**
+	 * 获取两个日期之间相差几天
+	 * 
+	 * @param date1
+	 * @param date2
+	 * @return
+	 */
+/*	public static int getDiffDays(Date date1, Date date2) {
+		if (date1!=null&&date2!=null){
+
+			long diffTimes = Math.abs(toDayStart(date2).getTime() - toDayStart(date1).getTime());
+			return (int) (diffTimes / (1000 * 60 * 60 * 24));
+		}
+
+	}*/
+
+	/**
+	 * 获取当前月份的第一天
+	 * 
+	 * @return
+	 */
+	public static Date getFirstDayOfCurrentMonth() {
+		return getFirstDayOfCurrentMonth(new Date());
+	}
+
+	/**
+	 * 获取指定月份的第一天
+	 * 
+	 * @return
+	 */
+	public static Date getFirstDayOfCurrentMonth(Date date) {
+		SimpleDateFormat sdf = new SimpleDateFormat(SDF_YYYYMM);
+		try {
+			return sdf.parse(sdf.format(date));
+		} catch (ParseException e) {
+			log.error("发生错误,错误信息为:"+e);
+			return null;
+		}
+	}
+
+	/**
+	 * 获取当前月份的最后一天
+	 * 
+	 * @return
+	 */
+	public static Date getLastDayOfCurrentMonth() {
+		return getLastDayOfCurrentMonth(new Date());
+	}
+
+	/**
+	 * 获取指定月份的最后一天
+	 * 
+	 * @return
+	 */
+	public static Date getLastDayOfCurrentMonth(Date date) {
+		Date temp = DateUtils.addMonths(date, 1);
+		SimpleDateFormat sdf = new SimpleDateFormat(SDF_YYYYMM);
+		try {
+			Long time = sdf.parse(sdf.format(temp)).getTime();
+			return new Date(time - 1);
+		} catch (ParseException e) {
+			log.error("发生错误,错误信息为:"+e);
+			return null;
+		}
+	}
+
+	/**
+	 * 获取当前星期的第一天(周一)
+	 * 
+	 * @return
+	 */
+	public static Date getFirstDayOfCurrentWeek() {
+		return getFirstDayOfCurrentWeek(new Date());
+	}
+
+	/**
+	 * 获取指定星期的第一天(周一)
+	 * 
+	 * @return
+	 */
+	public static Date getFirstDayOfCurrentWeek(Date date) {
+		int week = getWeek(date);
+		//星期天
+		if (0 == week) {
+			return DateUtils.addDays(date, -6);
+		} else {
+			return DateUtils.addDays(date, 1 - week);
+		}
+	}
+
+	/**
+	 * 获取当前星期的最后一天(周日)
+	 * 
+	 * @return
+	 */
+	public static Date getLastDayOfCurrentWeek() {
+		return getLastDayOfCurrentWeek(new Date());
+	}
+
+	/**
+	 * 获取指定星期的最后一天(周日)
+	 * 
+	 * @return
+	 */
+	public static Date getLastDayOfCurrentWeek(Date date) {
+		int week = getWeek(date);
+		//星期天
+		if (0 == week) {
+			return date;
+		} else {
+			return DateUtils.addDays(date, 7 - week);
+		}
+	}
+
+	/**
+	 * 根据出生日期获取年龄
+	 * 
+	 * @param birthday
+	 * @return
+	 */
+	public static int getAge(Date birthday) {
+		int y = getYear(), m = getMonth(), d = getDay(), yFrom = getYear(birthday), mFrom = getMonth(birthday), dFrom = getDay(birthday);
+		// 1. 当前的月份大于出生月份
+		if (m > mFrom) {
+			return y - yFrom;
+		}
+		// 2. 当前的月份等于出生月份
+		else if (m == mFrom) {
+			if (d >= dFrom) {
+				return y - yFrom;
+			} else {
+				return y - yFrom - 1;
+			}
+		}
+		// 3. 当前的月份小于出生月份
+		else if (m < mFrom) {
+			return y - yFrom - 1;
+		}
+		else{
+			return 0;
+		}
+		
+	}
+
+	public static void main(String[] args) {
+		//		System.out.println(getWeek(stringToDate("2011-08-06", "yyyy-MM-dd")));
+		//		System.out.println(dateToString(getFirstDayOfCurrentWeek(new Date()), "yyyy-MM-dd"));
+		//		System.out.println(dateToString(getLastDayOfCurrentWeek(new Date()), "yyyy-MM-dd"));
+
+		Date date = DateTimeUtils.stringToDate("2011-06-07", "yyyy-MM-dd");
+		int n = DateTimeUtils.getDiffMonths(new Date(), date);
+		//System.out.println(n);
+		//int m = DateTimeUtils.getDiffYears(new Date(), date);
+		int m = DateTimeUtils.getDiffYears(date, new Date());
+		//System.out.println(m);
+
+		//		System.out.println(getAge(DateTimeUtils.stringToDate("2000-12-30", "yyyy-MM-dd")));
+		//		
+		//		int k = 10;
+		//		System.out.println(k/3);
+	}
+
+	/**
+	 * @creator: jiminghu
+	 * @createDate: 2017年5月31日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param orDefault
+	 * @return
+	 */
+	public static Date standarTime(String orDefault) {
+		try {
+			return DateUtils.parseDate(orDefault, DateTimeUtils.SDF_YYYYMMDD_HHMMSS, DateTimeUtils.SDF_YYYYMMDD_HHMM , DateTimeUtils.SDF_YYYYMMDD_HH, DateTimeUtils.SDF_YYYYMMDD, DateTimeUtils.SDF_YYYYMM);
+		} catch (ParseException e) {
+			log.error("发生错误,错误信息为:"+e);
+			return null;
+		}
+	}
+}

+ 25 - 0
src/main/java/com/dgt/graphdemo/utils/ExpPrefixUtil.java

@@ -0,0 +1,25 @@
+package com.dgt.graphdemo.utils;
+
+/**
+ * @author lugela
+ * @date 2017/11/2 下午2:55
+ * @description 异常码的前缀
+ */
+public class ExpPrefixUtil {
+
+    /** 通用异常码前缀 */
+    public static final String ComExpPrefix = "1";
+
+
+    public static final String UserExpPrefix = "2";
+
+
+    public static final String ProdExpPrefix = "3";
+
+
+    public static final String NotFoundExpPrefix = "4";
+
+
+    public static final String AnlsExpPrefix = "5";
+
+}

+ 191 - 0
src/main/java/com/dgt/graphdemo/utils/JsonUtils.java

@@ -0,0 +1,191 @@
+/*
+ * JsonUtils.java created on 2014年7月1日 下午2:20:17 by 谢清
+ */
+
+package com.dgt.graphdemo.utils;
+
+
+import com.dgt.graphdemo.entity.fqz.Pager;
+import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
+import org.codehaus.jackson.annotate.JsonMethod;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * Json 工具类
+ * @author: 谢清
+ * @since: 2014年7月1日
+ */
+public class JsonUtils {
+	
+//	public static void main(String[] args) throws Exception {
+//		Map<String, Object> jsonMap = new HashMap<String, Object>();
+//		jsonMap.put("isThroughCheck", "notThroughCheck");
+//		jsonMap.put(Constants.MESSAGE, new Message("title1","content1","www.baidu.com"));
+//		
+//		String result = JsonUtils.toJson(jsonMap);
+////		System.out.println(result);
+//	}
+
+	/**
+	 * 把对象转换成json对象
+	 * @creator: 谢清
+	 * @createDate: 2014年7月1日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param obj 要转换成json的对象
+	 * @return
+	 * @throws Exception
+	 */
+	public static String toJson(Object obj) throws Exception {
+		ObjectMapper mapper = new ObjectMapper();
+		mapper.setVisibility(JsonMethod.GETTER, Visibility.ANY);
+		mapper.setDateFormat(new SimpleDateFormat(DateTimeUtils.SDF_YYYYMMDD_HHMMSS));
+		mapper.setSerializationInclusion(Inclusion.NON_NULL);
+		String result = mapper.writeValueAsString(obj);
+
+		return result;
+	}
+	
+	/**
+	 * 根据mapper把 对象转换成json对象
+	 * <pre>
+	 * mapper可以设置日期的格式,是否显示null值等
+	 * </pre>
+	 * @creator: 谢清
+	 * @createDate: 2014年7月1日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param obj 要转换成json的对象
+	 * @param mapper 如果mapper为null,则调用默认的toJson方法,否则使用传进来的mapper生成
+	 * @return
+	 * @throws Exception
+	 */
+	public static String toJson(Object obj, ObjectMapper mapper) throws Exception {
+		if (mapper == null) {
+			return toJson(obj);
+		} else {
+			return mapper.writeValueAsString(obj);
+		}
+	}
+	
+	
+	/**
+	 * 通告response对象把传进来的参数对象转换成json对象,并写出去
+	 * @creator: 谢清
+	 * @createDate: 2014年7月1日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param response
+	 * @param obj 要转换成json的对象
+	 * @throws Exception
+	 */
+	public static void responseJson(HttpServletResponse response, Object obj) throws Exception {
+		
+		String result = toJson(obj);
+		response.setContentType("text/json; charset=utf-8");
+		response.setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存
+		PrintWriter out = response.getWriter();
+		out.print(result);
+//		System.out.println("result====" + result);
+		out.flush();
+		out.close();
+	}
+	
+	/**
+	 * 通告response对象和指定的mapper,把传进来的参数对象转换成json对象,并写出去
+	 * @creator: 谢清
+	 * @createDate: 2014年7月1日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param response
+	 * @param obj
+	 * @param mapper
+	 * @throws Exception
+	 */
+	public static void responseJson(HttpServletResponse response, Object obj, ObjectMapper mapper) throws Exception {
+		String result = "";
+		if (mapper == null) {
+			result = toJson(obj);
+		} else {
+			result = toJson(obj, mapper);
+		}
+		
+		response.setContentType("text/json; charset=utf-8");
+		response.setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存
+		PrintWriter out = response.getWriter();
+		out.print(result);
+		// System.out.println(result);
+		out.flush();
+		out.close();
+		
+	}
+	
+	
+	/**
+	 * 通告response对象把传进来的分页参数对象(pager)转换成json对象,并写出去
+	 * @creator: 谢清
+	 * @createDate: 2014年7月1日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param response
+	 * @param pager 分页对象
+	 * @throws Exception
+	 */
+	@SuppressWarnings("rawtypes")
+	public static void responsePageJson(HttpServletResponse response, Pager pager) throws Exception {
+		Map<String, Object> jsonMap = new HashMap<String, Object>();
+		// 当前页
+		jsonMap.put("currentPage", pager.getCurrentPage());
+		// 总页数
+		jsonMap.put("pageCount", pager.getTotalPage());
+		// 总记录数
+		jsonMap.put("rowCount", pager.getTotal());
+		// 结果集
+		jsonMap.put("dataList", pager.getDataList());
+
+		//人的类型
+		jsonMap.put("tagList", pager.getTagList());
+		
+		responseJson(response, jsonMap);
+	}
+	
+	/**
+	 * 通告response对象和指定的mapper,把传进来的分页参数对象(pager)转换成json对象,并写出去
+	 * @creator: 谢清
+	 * @createDate: 2014年7月1日 
+	 * @modifier:
+	 * @modifiedDate:
+	 * @param response
+	 * @param pager 分页对象
+	 * @param mapper 如果mapper为null,则调用默认的responseJson方法,否则使用传进来的mapper生成
+	 * @throws Exception
+	 */
+	@SuppressWarnings("rawtypes")
+	public static void responsePageJson(HttpServletResponse response, Pager pager, ObjectMapper mapper) throws Exception {
+		Map<String, Object> jsonMap = new HashMap<String, Object>();
+		// 当前页
+		jsonMap.put("currentPage", pager.getCurrentPage());
+		// 总页数
+		jsonMap.put("pageCount", pager.getTotalPage());
+		// 总记录数
+		jsonMap.put("rowCount", pager.getTotal());
+		// 结果集
+		jsonMap.put("dataList", pager.getDataList());
+		
+		if (mapper == null) {
+			responseJson(response, jsonMap);
+		} else {
+			responseJson(response, jsonMap, mapper);
+		}
+	}
+
+}
+

+ 839 - 0
src/main/java/com/dgt/graphdemo/utils/Neo4jUtil.java

@@ -0,0 +1,839 @@
+package com.dgt.graphdemo.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.dgt.graphdemo.entity.Edge;
+import com.dgt.graphdemo.entity.GraphData;
+import com.dgt.graphdemo.entity.MyNode;
+import com.dgt.graphdemo.entity.NodeAttr;
+import org.apache.commons.lang3.StringUtils;
+import org.neo4j.driver.v1.*;
+import org.neo4j.driver.v1.types.Node;
+import org.neo4j.driver.v1.types.Path;
+import org.neo4j.driver.v1.types.Relationship;
+import org.neo4j.driver.v1.util.Pair;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Field;
+import java.util.*;
+import java.util.Map.Entry;
+
+@Component
+public class Neo4jUtil {
+	@Autowired
+	private Driver neo4jDriver;
+
+	public boolean isNeo4jOpen() {
+		try (Session session = neo4jDriver.session()) {
+			System.out.println("连接成功:" + session.isOpen());
+			return session.isOpen();
+		} catch (Exception e) {
+
+		}
+		return false;
+	}
+
+	public StatementResult excuteCypherSql(String cypherSql) {
+		StatementResult result = null;
+		try (Session session = neo4jDriver.session()) {
+			System.out.println(cypherSql);
+			result = session.run(cypherSql);
+			session.close();
+		} catch (Exception e) {
+			throw e;
+		}
+		return result;
+	}
+
+
+	public HashMap<String, Object> GetEntityMap(String cypherSql) {
+		HashMap<String, Object> rss = new HashMap<String, Object>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				List<Record> records = result.list();
+				for (Record recordItem : records) {
+					for (Value value : recordItem.values()) {
+						if (value.type().name().equals("NODE")) {// 结果里面只要类型为节点的值
+							Node noe4jNode = value.asNode();
+							Map<String, Object> map = noe4jNode.asMap();
+							for (Entry<String, Object> entry : map.entrySet()) {
+								String key = entry.getKey();
+								if (rss.containsKey(key)) {
+									String oldValue = rss.get(key).toString();
+									String newValue = oldValue + "," + entry.getValue();
+									rss.replace(key, newValue);
+								} else {
+									rss.put(key, entry.getValue());
+								}
+							}
+
+						}
+					}
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return rss;
+	}
+
+	public List<HashMap<String, Object>> GetGraphNode(String cypherSql) {
+		List<HashMap<String, Object>> ents = new ArrayList<HashMap<String, Object>>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				List<Record> records = result.list();
+				for (Record recordItem : records) {
+					List<Pair<String, Value>> f = recordItem.fields();
+					for (Pair<String, Value> pair : f) {
+						HashMap<String, Object> rss = new HashMap<String, Object>();
+						String typeName = pair.value().type().name();
+						if (typeName.equals("NODE")) {
+							Node noe4jNode = pair.value().asNode();
+							String uuid = String.valueOf(noe4jNode.id());
+							Map<String, Object> map = noe4jNode.asMap();
+							for (Entry<String, Object> entry : map.entrySet()) {
+								String key = entry.getKey();
+								rss.put(key, entry.getValue());
+							}
+							rss.put("uuid", uuid);
+							ents.add(rss);
+						}
+					}
+
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return ents;
+	}
+
+	public List<HashMap<String, Object>> GetGraphRelationShip(String cypherSql) {
+		List<HashMap<String, Object>> ents = new ArrayList<HashMap<String, Object>>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				List<Record> records = result.list();
+				for (Record recordItem : records) {
+					List<Pair<String, Value>> f = recordItem.fields();
+					for (Pair<String, Value> pair : f) {
+						HashMap<String, Object> rss = new HashMap<String, Object>();
+						String typeName = pair.value().type().name();
+						if (typeName.equals("RELATIONSHIP")) {
+							Relationship rship = pair.value().asRelationship();
+							String uuid = String.valueOf(rship.id());
+							String sourceid = String.valueOf(rship.startNodeId());
+							String targetid = String.valueOf(rship.endNodeId());
+							Map<String, Object> map = rship.asMap();
+							for (Entry<String, Object> entry : map.entrySet()) {
+								String key = entry.getKey();
+								rss.put(key, entry.getValue());
+							}
+							rss.put("uuid", uuid);
+							rss.put("sourceid", sourceid);
+							rss.put("targetid", targetid);
+							ents.add(rss);
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return ents;
+	}
+
+	/**
+	 *
+	 * @author lugela
+	 * @date 2019/6/23 10:04
+	 * @param
+	 * @return
+	 * 对于查询出来的结果封装成nod节点以及边的关系
+	 */
+	public GraphData GetGraph(String cypherSql){
+		List<MyNode> myNodes= new ArrayList<>();
+		List<Edge>   edges = new ArrayList<>();
+		Map<String,Map<String,Object>> nodeMap = new HashMap<>();
+		Map<String,Map<String,Object>> relationshipMap = new HashMap<>();
+		StatementResult result = excuteCypherSql(cypherSql);
+		result.forEachRemaining(record -> {
+			List<Pair<String, Value>> f = record.fields();
+			f.forEach(pair ->{
+				String typeName = pair.value().type().name();
+				if ("PATH".equals(typeName)){
+					getGraphByPath( pair,nodeMap,relationshipMap);
+				}
+			});
+		});
+		System.out.println("========");
+		//对于node节点
+		nodeMap.values().forEach(map->{
+			String attrs = (String)map.get("attrs");
+			List<NodeAttr> list = (List<NodeAttr>)JSON.parseObject(attrs, List.class);
+		    map.put("attrs",list);
+			MyNode myNode = JSON.parseObject(JSON.toJSONString(map), MyNode.class);
+			myNodes.add(myNode);
+		});
+		//关系
+		relationshipMap.values().forEach(map ->{
+			Edge edge=JSON.parseObject(JSON.toJSONString(map), Edge.class);
+			edges.add(edge);
+		});
+		GraphData graphData = new GraphData();
+		graphData.setNodes(myNodes);
+		graphData.setLinks(edges);
+		return graphData;
+	}
+
+	/**
+	 *
+	 * @author lugela
+	 * @date 2019/6/23 0:58
+	 * @param
+	 * @return
+	 * nodeMap 存放着节点的数据,key 为节点id,value 为节点
+	 */
+	private   void  getGraphByPath(Pair<String,Value> pair,Map<String,Map<String,Object>> nodeMap,Map<String,Map<String,Object>> relationshipMap){
+		Path segments = pair.value().asPath();
+		segments.iterator().forEachRemaining(segment -> {
+			//开始节点
+			Node startNode = segment.start();
+			getNodeData( startNode, nodeMap);
+			//结束节点
+			Node endNode = segment.end();
+			getNodeData( endNode, nodeMap);
+			//开始处理关系
+			Relationship relationship = segment.relationship();
+			getRelationship( relationship ,relationshipMap,nodeMap);
+
+		});
+	}
+
+	//node 数据保存
+	private void getNodeData(Node node,Map<String,Map<String,Object>> map){
+		String weaverId=String.valueOf(node.id());
+		if (!map.containsKey(weaverId)){
+			Map<String, Object> map1 = node.asMap();
+			Map<String,Object> mapNew = new HashMap<>();
+			map1.forEach((k,v)->mapNew.put(k,v));
+			mapNew.put("weaverId",weaverId);
+			map.put(weaverId,mapNew);
+		}
+	}
+	//关系保存
+	private void getRelationship(Relationship relationship,Map<String,Map<String,Object>> map,Map<String,Map<String,Object>> nodeMap){
+		String weaverId=String.valueOf(relationship.id());
+		String weaverSource = String.valueOf(relationship.startNodeId());
+		String weaverTarget = String.valueOf(relationship.endNodeId());
+		String type = relationship.type();
+		if (!map.containsKey(weaverId)){
+			Map<String, Object> map1 = relationship.asMap();
+			Map<String,Object> mapNew = new HashMap<>();
+			map1.forEach((k,v)->{
+				List<String> rels = new ArrayList<>();
+				if ("rel".equals(k)){
+					rels.add((String) v);
+					mapNew.put(k,rels);
+				}
+				});
+			List<String> weaverIds = new ArrayList<>();
+			//获取两个节点的id
+			Map<String, Object> nodeSource = nodeMap.get(weaverSource);
+			Map<String, Object> nodeTarget = nodeMap.get(weaverTarget);
+			String idSource = (String)nodeSource.get("id");
+			String idTarget = (String)nodeTarget.get("id");
+			String id =idSource+","+idTarget;
+			weaverIds.add(weaverId);
+			mapNew.put("id",id);
+			mapNew.put("source",idSource);
+			mapNew.put("target",idTarget);
+			mapNew.put("weaverId",weaverIds);
+			mapNew.put("weaverSource",weaverSource);
+			mapNew.put("weaverTarget",weaverTarget);
+			mapNew.put("type",type);
+			map.put(weaverId,mapNew);
+		}
+
+	}
+
+	public List<HashMap<String, Object>> GetGraphItem(String cypherSql) {
+		List<HashMap<String, Object>> ents = new ArrayList<HashMap<String, Object>>();
+		List<String> nodeids = new ArrayList<String>();
+		List<String> shipids = new ArrayList<String>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				List<Record> records = result.list();
+				for (Record recordItem : records) {
+					List<Pair<String, Value>> f = recordItem.fields();
+					HashMap<String, Object> rss = new HashMap<String, Object>();
+					for (Pair<String, Value> pair : f) {
+						String typeName = pair.value().type().name();
+						if (typeName.equals("NODE")) {
+							Node noe4jNode = pair.value().asNode();
+							String uuid = String.valueOf(noe4jNode.id());
+							if(!nodeids.contains(uuid)) {
+								Map<String, Object> map = noe4jNode.asMap();
+								for (Entry<String, Object> entry : map.entrySet()) {
+									String key = entry.getKey();
+									rss.put(key, entry.getValue());
+								}
+								rss.put("uuid", uuid);
+							}
+						}else if (typeName.equals("RELATIONSHIP")) {
+							Relationship rship = pair.value().asRelationship();
+							String uuid = String.valueOf(rship.id());
+							if (!shipids.contains(uuid)) {
+								String sourceid = String.valueOf(rship.startNodeId());
+								String targetid = String.valueOf(rship.endNodeId());
+								Map<String, Object> map = rship.asMap();
+								for (Entry<String, Object> entry : map.entrySet()) {
+									String key = entry.getKey();
+									rss.put(key, entry.getValue());
+								}
+								rss.put("uuid", uuid);
+								rss.put("sourceid", sourceid);
+								rss.put("targetid", targetid);
+							}
+						}else if (typeName.equals("PATH")){
+							Path segments = pair.value().asPath();
+							segments.iterator().forEachRemaining(segment -> {
+								Node nodeStar= segment.start();
+								long id = nodeStar.id();
+								Map<String, Object> map = nodeStar.asMap();
+								map.forEach((k,v)->{
+
+								});
+
+							});
+
+						}else {
+							rss.put(pair.key(),pair.value().toString());
+						}
+					}
+					ents.add(rss);
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return ents;
+	}
+	/*
+	 * 获取值类型的结果,如count,uuid
+	 * @return 1 2 3 等数字类型
+	 */
+	public long GetGraphValue(String cypherSql) {
+		long val=0;
+		try {
+			StatementResult cypherResult = excuteCypherSql(cypherSql);
+			if (cypherResult.hasNext()) {
+				Record record = cypherResult.next();
+				for (Value value : record.values()) {
+					val = value.asLong();
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return val;
+	}
+
+	public HashMap<String, Object> GetGraphNodeAndShip(String cypherSql) {
+		HashMap<String, Object> mo = new HashMap<String, Object>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				List<Record> records = result.list();
+				List<HashMap<String, Object>> ents = new ArrayList<HashMap<String, Object>>();
+				List<HashMap<String, Object>> ships = new ArrayList<HashMap<String, Object>>();
+				List<String> uuids = new ArrayList<String>();
+				List<String> shipids = new ArrayList<String>();
+				for (Record recordItem : records) {
+					List<Pair<String, Value>> f = recordItem.fields();
+					for (Pair<String, Value> pair : f) {
+						HashMap<String, Object> rships = new HashMap<String, Object>();
+						HashMap<String, Object> rss = new HashMap<String, Object>();
+						String typeName = pair.value().type().name();
+						if (typeName.equals("NULL")) {
+							continue;
+						} else if (typeName.equals("NODE")) {
+							Node noe4jNode = pair.value().asNode();
+                            Map<String, Object> map = noe4jNode.asMap();
+                            String uuid = String.valueOf(noe4jNode.id());
+                            if (!uuids.contains(uuid)) {
+                                for (Entry<String, Object> entry : map.entrySet()) {
+                                    String key = entry.getKey();
+                                    rss.put(key, entry.getValue());
+                                }
+                                rss.put("uuid", uuid);
+                                uuids.add(uuid);
+                            }
+                            if (rss != null && !rss.isEmpty()) {
+                                ents.add(rss);
+                            }
+						} else if (typeName.equals("RELATIONSHIP")) {
+							Relationship rship = pair.value().asRelationship();
+                            String uuid = String.valueOf(rship.id());
+                            if (!shipids.contains(uuid)) {
+                                String sourceid = String.valueOf(rship.startNodeId());
+                                String targetid = String.valueOf(rship.endNodeId());
+                                Map<String, Object> map = rship.asMap();
+                                for (Entry<String, Object> entry : map.entrySet()) {
+                                    String key = entry.getKey();
+                                    rships.put(key, entry.getValue());
+                                }
+                                rships.put("uuid", uuid);
+                                rships.put("sourceid", sourceid);
+                                rships.put("targetid", targetid);
+								shipids.add(uuid);
+                                if (rships != null && !rships.isEmpty()) {
+                                    ships.add(rships);
+                                }
+                            }
+
+						} else if (typeName.equals("PATH")) {
+							Path path = pair.value().asPath();
+							Map<String, Object> startNodemap = path.start().asMap();
+							String startNodeuuid = String.valueOf(path.start().id());
+							if (!uuids.contains(startNodeuuid)) {
+								rss=new HashMap<String, Object>();
+								for (Entry<String, Object> entry : startNodemap.entrySet()) {
+									String key = entry.getKey();
+									rss.put(key, entry.getValue());
+								}
+								rss.put("uuid", startNodeuuid);
+								uuids.add(startNodeuuid);
+								if (rss != null && !rss.isEmpty()) {
+									ents.add(rss);
+								}
+							}
+
+							Map<String, Object> endNodemap = path.end().asMap();
+							String endNodeuuid = String.valueOf(path.end().id());
+							if (!uuids.contains(endNodeuuid)) {
+								rss=new HashMap<String, Object>();
+								for (Entry<String, Object> entry : endNodemap.entrySet()) {
+									String key = entry.getKey();
+									rss.put(key, entry.getValue());
+								}
+								rss.put("uuid", endNodeuuid);
+								uuids.add(endNodeuuid);
+								if (rss != null && !rss.isEmpty()) {
+									ents.add(rss);
+								}
+							}
+							Iterator<Node> allNodes = path.nodes().iterator();
+							while (allNodes.hasNext()) {
+								Node next = allNodes.next();
+								String uuid = String.valueOf(next.id());
+								if (!uuids.contains(uuid)) {
+									rss=new HashMap<String, Object>();
+									Map<String, Object> map = next.asMap();
+									for (Entry<String, Object> entry : map.entrySet()) {
+										String key = entry.getKey();
+										rss.put(key, entry.getValue());
+									}
+									rss.put("uuid", uuid);
+									uuids.add(uuid);
+									if (rss != null && !rss.isEmpty()) {
+										ents.add(rss);
+									}
+								}
+							}
+							Iterator<Relationship> reships = path.relationships().iterator();
+							while (reships.hasNext()) {
+								Relationship next = reships.next();
+								String uuid = String.valueOf(next.id());
+								if (!shipids.contains(uuid)) {
+									rships=new HashMap<String, Object>();
+									String sourceid = String.valueOf(next.startNodeId());
+									String targetid = String.valueOf(next.endNodeId());
+									Map<String, Object> map = next.asMap();
+									for (Entry<String, Object> entry : map.entrySet()) {
+										String key = entry.getKey();
+										rships.put(key, entry.getValue());
+									}
+									rships.put("uuid", uuid);
+									rships.put("sourceid", sourceid);
+									rships.put("targetid", targetid);
+									shipids.add(uuid);
+									if (rships != null && !rships.isEmpty()) {
+										ships.add(rships);
+									}
+								}
+							}
+						} else if (typeName.contains("LIST")) {
+							Iterable<Value> val=pair.value().values();
+                            Value next = val.iterator().next();
+                            String type=next.type().name();
+                            if (type.equals("RELATIONSHIP")) {
+                                Relationship rship = next.asRelationship();
+                                String uuid = String.valueOf(rship.id());
+                                if (!shipids.contains(uuid)) {
+                                    String sourceid = String.valueOf(rship.startNodeId());
+                                    String targetid = String.valueOf(rship.endNodeId());
+                                    Map<String, Object> map = rship.asMap();
+                                    for (Entry<String, Object> entry : map.entrySet()) {
+                                        String key = entry.getKey();
+                                        rships.put(key, entry.getValue());
+                                    }
+                                    rships.put("uuid", uuid);
+                                    rships.put("sourceid", sourceid);
+                                    rships.put("targetid", targetid);
+									shipids.add(uuid);
+                                    if (rships != null && !rships.isEmpty()) {
+                                        ships.add(rships);
+                                    }
+                                }
+                            }
+						} else if (typeName.contains("MAP")) {
+							rss.put(pair.key(), pair.value().asMap());
+						} else {
+							rss.put(pair.key(), pair.value().toString());
+                            if (rss != null && !rss.isEmpty()) {
+                                ents.add(rss);
+                            }
+						}
+						
+					}
+				}
+				mo.put("node", ents);
+				mo.put("relationship", ships);
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw e;
+		}
+		return mo;
+	}
+	/**
+	 * 匹配所有类型的节点,可以是节点,关系,数值,路径
+	 * @param cypherSql
+	 * @return
+	 */
+	public List<HashMap<String, Object>> GetEntityList(String cypherSql) {
+		List<HashMap<String, Object>> ents = new ArrayList<HashMap<String, Object>>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				List<Record> records = result.list();
+				for (Record recordItem : records) {
+					HashMap<String, Object> rss = new HashMap<String, Object>();
+					List<Pair<String, Value>> f = recordItem.fields();
+					for (Pair<String, Value> pair : f) {
+						String typeName = pair.value().type().name();
+						if (typeName.equals("NULL")) {
+							continue;
+						} else if (typeName.equals("NODE")) {
+							Node noe4jNode = pair.value().asNode();
+							Map<String, Object> map = noe4jNode.asMap();
+							for (Entry<String, Object> entry : map.entrySet()) {
+								String key = entry.getKey();
+								rss.put(key, entry.getValue());
+							}
+						} else if (typeName.equals("RELATIONSHIP")) {
+							Relationship rship = pair.value().asRelationship();
+							Map<String, Object> map = rship.asMap();
+							for (Entry<String, Object> entry : map.entrySet()) {
+								String key = entry.getKey();
+								rss.put(key, entry.getValue());
+							}
+						} else if (typeName.equals("PATH")) {
+
+						} else if (typeName.contains("LIST")) {
+							rss.put(pair.key(), pair.value().asList());
+						} else if (typeName.contains("MAP")) {
+							rss.put(pair.key(), pair.value().asMap());
+						} else {
+							rss.put(pair.key(), pair.value().toString());
+						}
+					}
+					ents.add(rss);
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return ents;
+	}
+
+	public <T> List<T> GetEntityItemList(String cypherSql, Class<T> type) {
+		List<HashMap<String, Object>> ents=GetGraphNode(cypherSql);
+		List<T> model = HashMapToObject(ents, type);
+		return model;
+	}
+
+	public <T> T GetEntityItem(String cypherSql, Class<T> type) {
+		HashMap<String, Object> rss = new HashMap<String, Object>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				Record record = result.next();
+				for (Value value : record.values()) {
+					if (value.type().name().equals("NODE")) {// 结果里面只要类型为节点的值
+						Node noe4jNode = value.asNode();
+						Map<String, Object> map = noe4jNode.asMap();
+						for (Entry<String, Object> entry : map.entrySet()) {
+							String key = entry.getKey();
+							if (rss.containsKey(key)) {
+								String oldValue = rss.get(key).toString();
+								String newValue = oldValue + "," + entry.getValue();
+								rss.replace(key, newValue);
+							} else {
+								rss.put(key, entry.getValue());
+							}
+						}
+
+					}
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		T model = HashMapToObjectItem(rss, type);
+		return model;
+	}
+
+	public HashMap<String, Object> GetEntity(String cypherSql) {
+		HashMap<String, Object> rss = new HashMap<String, Object>();
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				Record record = result.next();
+				for (Value value : record.values()) {
+					String t = value.type().name();
+					if (value.type().name().equals("NODE")) {// 结果里面只要类型为节点的值
+						Node noe4jNode = value.asNode();
+						Map<String, Object> map = noe4jNode.asMap();
+						for (Entry<String, Object> entry : map.entrySet()) {
+							String key = entry.getKey();
+							if (rss.containsKey(key)) {
+								String oldValue = rss.get(key).toString();
+								String newValue = oldValue + "," + entry.getValue();
+								rss.replace(key, newValue);
+							} else {
+								rss.put(key, entry.getValue());
+							}
+						}
+
+					}
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return rss;
+	}
+
+	public Integer executeScalar(String cypherSql) {
+		Integer count = 0;
+		try {
+			StatementResult result = excuteCypherSql(cypherSql);
+			if (result.hasNext()) {
+				Record record = result.next();
+				for (Value value : record.values()) {
+					String t = value.type().name();
+					if (t.equals("INTEGER")) {
+						count = Integer.valueOf(value.toString());
+						break;
+					}
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return count;
+	}
+
+	public HashMap<String, Object> GetRelevantEntity(String cypherSql) {
+		HashMap<String, Object> rss = new HashMap<String, Object>();
+		try {
+			StatementResult resultNode = excuteCypherSql(cypherSql);
+			if (resultNode.hasNext()) {
+				List<Record> records = resultNode.list();
+				for (Record recordItem : records) {
+					Map<String, Object> r = recordItem.asMap();
+					System.out.println(JSON.toJSONString(r));
+					String key = r.get("key").toString();
+					if (rss.containsKey(key)) {
+						String oldValue = rss.get(key).toString();
+						String newValue = oldValue + "," + r.get("value");
+						rss.replace(key, newValue);
+					} else {
+						rss.put(key, r.get("value"));
+					}
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return rss;
+	}
+
+
+
+	public String getFilterPropertiesJson(String jsonStr) {
+		String propertiesString = jsonStr.replaceAll("\"(\\w+)\"(\\s*:\\s*)", "$1$2"); // 去掉key的引号
+		return propertiesString;
+	}
+	public <T>String getkeyvalCyphersql(T obj) {
+		 Map<String, Object> map = new HashMap<String, Object>();
+		 List<String> sqlList=new ArrayList<String>();
+	        // 得到类对象
+	        Class userCla = obj.getClass();
+	        /* 得到类中的所有属性集合 */
+	        Field[] fs = userCla.getDeclaredFields();
+	        for (int i = 0; i < fs.length; i++) {
+	            Field f = fs[i];
+	            Class type = f.getType();
+	            
+	            f.setAccessible(true); // 设置些属性是可以访问的
+	            Object val = new Object();
+	            try {
+	                val = f.get(obj);
+	                if(val==null) {
+	                	val="";
+	                }
+	                String sql="";
+	                String key=f.getName();
+	                System.out.println("key:"+key+"type:"+type);
+	                if ( val instanceof   Integer ){
+	                	// 得到此属性的值
+		                map.put(key, val);// 设置键值
+		                sql="n."+key+"="+val;
+	    			}
+	                else if ( val instanceof   String[] ){
+	    				//如果为true则强转成String数组
+	    				String [] arr = ( String[] ) val ;
+	    				String v="";
+	    				for ( int j = 0 ; j < arr.length ; j++ ){
+	    					arr[j]="'"+ arr[j]+"'";
+	    				}
+	    				v=String.join(",", arr);
+	    				sql="n."+key+"=["+val+"]";
+	    			}
+	                else if (val instanceof List){
+	    				//如果为true则强转成String数组
+	                	List<String> arr = ( ArrayList<String> ) val ;
+	                	List<String> aa=new ArrayList<String>();
+	    				String v="";
+	    				for (String s : arr) {
+	    					s="'"+ s+"'";
+	    					aa.add(s);
+						}
+	    				v=String.join(",", aa);
+	    				sql="n."+key+"=["+v+"]";
+	    			}
+	                else {
+	                	// 得到此属性的值
+		                map.put(key, val);// 设置键值
+		                sql="n."+key+"='"+val+"'";
+	                }
+	                
+	                sqlList.add(sql);
+	            } catch (IllegalArgumentException e) {
+	                e.printStackTrace();
+	            } catch (IllegalAccessException e) {
+	                e.printStackTrace();
+	            }
+	        }
+	        String finasql=String.join(",",sqlList);
+	        System.out.println("单个对象的所有键值==反射==" + map.toString());
+		return finasql;
+	}
+	public <T> List<T> HashMapToObject(List<HashMap<String, Object>> maps, Class<T> type) {
+		try {
+			List<T> list = new ArrayList<T>();
+			for (HashMap<String, Object> r : maps) {
+				T t = type.newInstance();
+				Iterator iter = r.entrySet().iterator();// 该方法获取列名.获取一系列字段名称.例如name,age...
+				while (iter.hasNext()) {
+					Entry entry = (Entry) iter.next();// 把hashmap转成Iterator再迭代到entry
+					String key = entry.getKey().toString(); // 从iterator遍历获取key
+					Object value = entry.getValue(); // 从hashmap遍历获取value
+					if("serialVersionUID".toLowerCase().equals(key.toLowerCase()))continue;
+					Field field = type.getDeclaredField(key);// 获取field对象
+					if (field != null) {
+						field.setAccessible(true);
+						if (field.getType() == int.class || field.getType() == Integer.class) {
+							if (value==null|| StringUtils.isBlank(value.toString())) {
+								field.set(t, 0);// 设置值
+							} else {
+								field.set(t, Integer.parseInt(value.toString()));// 设置值
+							}
+						}
+						 else if (field.getType() == long.class||field.getType() == Long.class ) {
+								if (value==null||StringUtils.isBlank(value.toString())) {
+									field.set(t, 0);// 设置值
+								} else {
+									field.set(t, Long.parseLong(value.toString()));// 设置值
+								}
+
+						}
+						 else {
+							field.set(t, value);// 设置值
+						}
+					}
+
+				}
+				list.add(t);
+			}
+
+			return list;
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public <T> T HashMapToObjectItem(HashMap<String, Object> map, Class<T> type) {
+		try {
+			T t = type.newInstance();
+			Iterator iter = map.entrySet().iterator();
+			while (iter.hasNext()) {
+				Entry entry = (Entry) iter.next();// 把hashmap转成Iterator再迭代到entry
+				String key = entry.getKey().toString(); // 从iterator遍历获取key
+				Object value = entry.getValue(); // 从hashmap遍历获取value
+				if("serialVersionUID".toLowerCase().equals(key.toLowerCase()))continue;
+				Field field = type.getDeclaredField(key);// 获取field对象
+				if (field != null) {
+					field.setAccessible(true);
+					if (field.getType() == int.class || field.getType() == Integer.class) {
+						if (value==null||StringUtils.isBlank(value.toString())) {
+							field.set(t, 0);// 设置值
+						} else {
+							field.set(t, Integer.parseInt(value.toString()));// 设置值
+						}
+					} 
+					 else if (field.getType() == long.class||field.getType() == Long.class ) {
+							if (value==null||StringUtils.isBlank(value.toString())) {
+								field.set(t, 0);// 设置值
+							} else {
+								field.set(t, Long.parseLong(value.toString()));// 设置值
+							}
+
+					}
+					 else {
+						field.set(t, value);// 设置值
+					}
+				}
+
+			}
+
+			return t;
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+}

+ 256 - 0
src/main/java/com/dgt/graphdemo/utils/SysUser.java

@@ -0,0 +1,256 @@
+package com.dgt.graphdemo.utils;
+
+
+import java.util.Date;
+
+/**
+ * @ClassName: SysUser.java
+ * @Description: 用户实体
+ * @author Mars
+ * @date 2015-7-2 下午5:38:20
+ *
+ */
+public class SysUser  {
+
+    private static final long serialVersionUID = -5190364084748102337L;
+    /** 用户类型 **/
+    public static final String USER_TYPE_ADMIN = "10";
+    public static final String USER_TYPE_GENERAL = "20";
+
+    private Long userId;// 主键
+    private String loginName;// 登录名称
+    private String loginPassword;// 密码
+    private String userName;// 用户名称
+    private String salt;// 加密种子
+    private String email;// 邮箱
+    private String mobile;// 电话
+    private String certType;// 证件类型
+    private String certNo;// 证件号码
+    private String birthday;// 生日
+    private String sex;// 性别
+    private String userType;// 用户类型
+    private String userPosition;// 用户职位
+    private String userStatus;// 用户状态:10、20、30、40
+    private String status;// 状态:10、50、90
+    private Date createDate;// 创建时间
+    private Date updateDate;// 更新时间
+
+    /**
+     * 主键
+     * 
+     * @return
+     */
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    /**
+     * 登录名称
+     * 
+     * @return
+     */
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    /**
+     * 登录密码
+     * 
+     * @return
+     */
+    public String getLoginPassword() {
+        return loginPassword;
+    }
+
+    public void setLoginPassword(String loginPassword) {
+        this.loginPassword = loginPassword;
+    }
+
+    /**
+     * 用户名称
+     * 
+     * @return
+     */
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    /**
+     * 盐值
+     */
+    public String getSalt() {
+        return salt;
+    }
+
+    public void setSalt(String salt) {
+        this.salt = salt;
+    }
+
+    /**
+     * 邮箱
+     * 
+     * @return
+     */
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    /**
+     * 电话
+     * 
+     * @return
+     */
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    /**
+     * 证件类型
+     * 
+     * @return
+     */
+    public String getCertType() {
+        return certType;
+    }
+
+    public void setCertType(String certType) {
+        this.certType = certType;
+    }
+
+    /**
+     * 证件号码
+     * 
+     * @return
+     */
+    public String getCertNo() {
+        return certNo;
+    }
+
+    public void setCertNo(String certNo) {
+        this.certNo = certNo;
+    }
+
+    /**
+     * 生日
+     * 
+     * @return
+     */
+    public String getBirthday() {
+        return birthday;
+    }
+
+    public void setBirthday(String birthday) {
+        this.birthday = birthday;
+    }
+
+    /**
+     * 性别
+     * 
+     * @return
+     */
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    /**
+     * 用户类型
+     * 
+     * @return
+     */
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    /**
+     * 用户状态:10、20、30、40
+     * 
+     * @return
+     */
+    public String getUserStatus() {
+        return userStatus;
+    }
+
+    public void setUserStatus(String userStatus) {
+        this.userStatus = userStatus;
+    }
+
+    /**
+     * 状态
+     * 
+     * @return
+     */
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    /**
+     * 创建时间
+     * 
+     * @return
+     */
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    /**
+     * 更新时间
+     * 
+     * @return
+     */
+    public Date getUpdateDate() {
+        return updateDate;
+    }
+
+    public void setUpdateDate(Date updateDate) {
+        this.updateDate = updateDate;
+    }
+
+    /**
+     * 用户职位
+     * 
+     * @return
+     */
+    public String getUserPosition() {
+        return userPosition;
+    }
+
+    public void setUserPosition(String userPosition) {
+        this.userPosition = userPosition;
+    }
+}

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

@@ -0,0 +1,80 @@
+server:
+  port: 10000
+  #servlet-path: /
+
+
+
+
+spring:
+  data:
+    #图数据库 springdata方式
+    neo4j:
+#      uri: bolt://test-hadoop1
+      uri: bolt://127.0.0.1
+      username: neo4j
+      password: admin
+      open-in-view: false
+  #http方式
+  neo4j:
+#    url: bolt://test-hadoop1:7687
+    url: bolt://127.0.0.1:7687
+    username: neo4j
+    password: admin
+  #支持jsp
+  mvc:
+    view:
+      prefix: /WEB-INF/
+      suffix: .jsp
+#关闭默认引擎
+#  thymeleaf:
+ #   cache: false
+#    enabled: false
+  thymeleaf:
+    #清除缓存
+    cache: false
+    mode: LEGACYHTML5 #非严格模式
+    prefix: /WEB-INF/ #默认 classpath:/templates/
+    suffix: .html
+    servlet:
+      content-type: text/html
+  http:
+    encoding:
+      force: true
+      charset: UTF-8
+      #热部署生效
+      enabled: true
+ # devtools:
+ #   restart:
+  #    enabled: true #设置开启热部署
+  #freemarker:
+ #   cache: true
+  #jpa
+  jpa:
+    database: MYSQL
+    show-sql: true
+    properties:
+      hibernate:
+        format_sql: true
+        show_sql: false
+        dialect: org.hibernate.dialect.MySQL5Dialect
+
+#mysql数据库
+  datasource:
+    url: jdbc:mysql://127.0.0.1:3306/graphtb?useUnicode=true&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: root
+    driverClassName: com.mysql.jdbc.Driver #连接池配置
+    initialSize: 5
+    minIdle: 5
+    maxActive: 20
+    maxWait: 60000          #连接等待超时时间
+    timeBetweenEvictionRunsMillis: 60000    #配置隔多久进行一次检测(检测可以关闭的空闲连接)
+    minEvictableIdleTimeMillis: 300000      #配置连接在池中的最小生存时间
+    validationQuery: SELECT 1 FROM DUAL
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true            # 打开PSCache,并且指定每个连接上PSCache的大小
+    maxPoolPreparedStatementPerConnectionSize: 20
+    filters: stat,wall,log4j                # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

+ 15 - 0
src/main/webapp/WEB-INF/jsp/common/gloabl_resources.jsp

@@ -0,0 +1,15 @@
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<%@ page contentType="text/html;charset=UTF-8" %>
+<link href="<c:url value='/resources/page/css/main.css'/>" rel="stylesheet">
+<link href="<c:url value='/resources/page/css/common.css'/>" rel="stylesheet">
+<link href="<c:url value='/resources/page/css/commonloading.css'/>" rel="stylesheet">
+<link href="<c:url value='/resources/page/css/jquery.alerts.css'/>" rel="stylesheet">
+<script src="<c:url value='/resources/page/js/jquery-1.7.2.min.js'/>" type="text/javascript"></script>
+<script src="<c:url value='/resources/page/js/jquery.jmpopups-0.5.1.js'/>" type="text/javascript"></script>
+<script src="<c:url value='/resources/page/js/sliding.js'/>" type="text/javascript"></script>
+<script src="<c:url value='/resources/My97DatePicker/WdatePicker.js'/>" type="text/javascript"></script>
+<script type="text/javascript" src="<c:url value='/resources/page/js/common.js'/>"></script>
+<script src="<c:url value='/resources/js/claim/claimjs.js'/>" type="text/javascript"></script>
+<script src="<c:url value='/resources/js/claim/ecm.js'/>" type="text/javascript"></script>
+<script src="<c:url value='/resources/page/js/jquery.alerts.js'/>" type="text/javascript"></script>
+<script src="<c:url value='/resources/page/js/check.js'/>" type="text/javascript"></script>

+ 59 - 0
src/main/webapp/WEB-INF/jsp/common/global.jsp

@@ -0,0 +1,59 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+
+ <link href="../compass/app/js/jquery-ui/jquery-ui.css" type="text/css" rel="stylesheet" />
+ <link  href="../compass/app/css/UtryJsLib.all.css"  type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/jquery-1.10.2.min.js"></script>
+ <script src="../compass/app/js/jquery-ui/jquery-ui.all.js"></script>
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/bootstrap.min.js"></script>
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/WdatePicker.js"></script>
+ <link href="../compass/app/js/jquery-ui/font-awesome.min.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/bootstrap.min.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/style.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/WdatePicker.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/datepicker.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/default.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/top.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/main.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/jquery.tablesorter.js"></script>
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/UtryJsLib.all.js"></script>
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/select2.js"></script>
+ <script type="text/javascript" src="../compass/app/lib/jquery/dist/select2_locale_zh-CN.js"></script>
+ <link href="../compass/app/js/jquery-ui/select2.css" type="text/css" rel="stylesheet" />
+ <link href="../compass/app/js/jquery-ui/select2-bootstrap.css" type="text/css" rel="stylesheet" />
+
+<script type="text/javascript">
+	document.onkeydown=function(event) 
+   	{
+   		var event = (event) ? event : ((window.event) ? window.event : ""); 
+       	var key = event.keyCode ? event.keyCode:event.which;
+       	if((event.altKey) && (key == 37 || key == 39))
+       	{
+       		alert("'ALT'+'<-' and 'ALT'+'->' is disabled.");
+           	event.cancelBubble = true;
+           	return false;
+       	}
+       	var srcElement = event.srcElement?event.srcElement:event.target;
+       	if((key == 8) && (srcElement.tagName == "TEXTAREA" || srcElement.tagName == "INPUT"))
+       		return;
+       	if((!(event.altKey)) && (key == 37 || key == 39) && (srcElement.tagName == "TEXTAREA" || srcElement.tagName == "INPUT"))
+       		return;
+       	if((key == 38 || key == 40) && (srcElement.tagName == "TEXTAREA"))
+       		return;
+       	if((key==116) || (key==13 && srcElement.type != "textarea")
+           		|| ((event.ctrlKey)&&(key==78)) //disable Ctrl+n
+           		|| ((event.shiftKey)&&(key==121)) //disable shift+F10
+           		|| ((event.ctrlKey)&&(key==115)) //disable Ctrl+F4
+           		|| (key== 8) //disable Back Space
+       	)
+       	{
+       		event.cancelBubble = true;
+           	return false;
+       	}
+   	}
+</script>
+<meta http-equiv="Expires" content="0">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Cache-control" content="no-cache">
+<meta http-equiv="Cache" content="no-cache">

+ 130 - 0
src/main/webapp/WEB-INF/jsp/common/header.jsp

@@ -0,0 +1,130 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java"%>
+<script type="text/javascript" src="<c:url value='/resources/js/common/header.js'/>?<%=System.currentTimeMillis() %>"></script>
+
+<script type="text/javascript">
+var chooseMoudle='';
+	$(function(){
+		chooseMoudle =<%=session.getAttribute("chooseMoudle")%>;
+		showHead(chooseMoudle);
+	});
+	
+	function showRightOpen(ppid,pid,id,obj){
+		createBg();
+		var left = $(obj).offset().left+$(obj).width();
+		var top = $(obj).offset().top;
+		$("#"+id).css({"display":"block","left":left,"top":top});
+		
+		$("#lock_click_bg").unbind();
+		
+		$("#lock_click_bg").bind("click", function() {
+			$("#lock_click_bg").hide();
+			$("#" + id).hide();
+			$("#" + pid).hide();
+			if(ppid!=''){
+				$("#" + ppid).hide();
+			}
+		});
+	}
+
+ </script>	
+	
+	
+	
+	
+<div class="top_main">
+	  
+	  <span class="top_icon_r">
+   	      <a href="<c:url value='/claim/commonsearch/policyListQuery.do'/>" class="top_icon_sea"><span></span>查询</a>
+          <a href="<c:url value='/j_spring_security_logout'/>" class="top_icon_exit"><span></span>退出</a>
+      </span>
+      
+      <span class="top_personal"><a href="#"><span id="loginNo"></span><br /><span id="loginName"></span></a></span>
+      
+      
+      <div class="top_logo"></div>
+      
+      <span class="top_name">健康险理赔系统</span>
+      
+      <span class="top_icon" id="header">
+   	     <a href="<c:url value='/claim/notification/query.do'/>" class="top_icon1" id="moudle01" style="display: none;"><b id="count01" style="display: none;"></b><span></span>报案</a>
+         <a href="<c:url value='/dataenter/showlist.do'/>" id="moudle02" class="top_icon2" style="display: none;"><b id="count02" style="display: none;"></b><span></span>数据</a>
+         <a href="<c:url value='/inspection/clmtask/findByOrgAndClaimState.do'/>" id="moudle03" class="top_icon3" style="display: none;"><b id="count03" style="display: none;"></b><span></span>质检</a>
+         <a href="<c:url value='/claim/filedCase/queryFiledCaseEntry.do'/>" id="moudle04" class="top_icon4" style="display: none;"><b id="count04" style="display: none;"></b><span></span>立案</a>
+         <a href="<c:url value='/claim/task/auditTask.do'/>" id="moudle11"  class="top_icon5" style="display: none;"><span><b id="count11" style="display: none;"></b></span>任务分配</a>
+         <a href="<c:url value='/humanaudit/queryWorkbench.do'/>" id="moudle05" class="top_icon6" style="display: none;"><b id="count05" style="display: none;"></b><span></span>审核</a>
+         <a href="<c:url value='/adjustment/adjustmentTask.do'/>" id="moudle06" class="top_icon7" style="display: none;"><b id="count06" style="display: none;"></b><span></span>理算</a>
+         <a href="<c:url value='/auditinfo/showaudit.do'/>" id="moudle07" class="top_icon8" style="display: none;"><b id="count07" style="display: none;"></b><span></span>复核</a>
+         <a href="<c:url value='/claim/showendcase.do'/>" id="moudle08" class="top_icon9" style="display: none;"><b id="count08" style="display: none;"></b><span></span>结案</a>
+         <a href="<c:url value='/upload/requestMain.do'/>" id="moudle23" class="top_icon2" style="display: none;"><b id="count23" style="display: none;"></b><span></span>案件导入</a>
+         <a href="<c:url value='/management/blacklistManagement.do'/>" id="moudle13" class="top_icon10" style="display: none;"><b id="count13" style="display: none;"></b><span></span>设置</a>
+         <a class="top_icon12" onClick="showTopOpen('topOpen1',this)" id="moudle12" style="cursor: pointer;display: none;" ><b id="count12" style="display: none;" ></b><span></span>其它</a>
+         <a class="top_icon13" onClick="showTopOpen('topOpen3',this)" id="moudle14" style="cursor: pointer;display: none;" ><b id="count14" style="display: none;" ></b><span></span>BPO</a>
+         <a class="top_icon14" onClick="showTopOpen('topOpen4',this)" id="moudle15" style="cursor: pointer;display: none;" ><b id="count15" style="display: none;" ></b><span></span>预授权受理</a>
+         <a href="<c:url value='/authorization/showRoleSet.do'/>" id="moudle09" class="top_icon11" style="display: none;"><b id="count09" style="display: none;"></b><span></span>权限管理</a>
+         <a class="top_icon15" onClick="showTopOpen('topOpen5',this)" id="moudle18" style="cursor: pointer;display: none;" ><b id="count18" style="display: none;" ></b><span></span>财务日结</a>
+         <a class="top_icon21" onClick="showTopOpen('topOpen6',this)" id="moudle21" style="cursor: pointer;display: none;" ><b id="count21" style="display: none;" ></b><span></span>全外包</a>
+         <a class="top_icon22" onClick="showTopOpen('topOpen7',this)" id="moudle22" style="cursor: pointer;display: none;" ><b id="count22" style="display: none;" ></b><span></span>外包管理</a>
+         </span>
+      <span class="top_open op_wz_01 displayN" id="topOpen1">
+            <b class="cs_top_arr"></b> 
+            <a href="<c:url value='/claim/showbeforeendcase.do'/>" >结案补充打印</a>
+            <a href="<c:url value="/otherProcess/queryConsultFeedbackDatas.do" />">协谈</a>
+            <a href="<c:url value='/claimDeceitFeedback/requestFeedback.do'/>">反欺诈审核</a>
+            <a href="<c:url value='/bills/generateBills.do'/>">对账单</a>
+            <a href="<c:url value='/bills/print.do'/>">对账单补充打印</a>
+            <a href="<c:url value='/otherProcess/holidayMaintenance.do'/>">节假日维护</a>
+            <a href="<c:url value='/virementoperation/showall.do'/>">转账结果查询</a>
+            <a href="<c:url value='/folder/requestFolderPage.do'/>">卷宗皮打印</a>
+            <a href="<c:url value='/payment/paymentPage.do'/>">付款对账清单</a>
+            <div id="assist" style="display: none;"><a onClick="javascript:queryjkgl()">直付机构查询</a></div>
+            <div id="detailedlist" style="display: none;"><a href="<c:url value='/exportClaimData1/queryClaimData1.do'/>">理赔清单</a></div>
+            <a href="<c:url value='/claim/noticeofreason/toNoticeOfReason.do'/>">理算通知书下载</a>
+            <a href="<c:url value='/claimChecklist/claimChecklistPage.do'/>">核算清单</a>
+            <a href="<c:url value='/accountchecklist/accountCheckListPage.do'/>">外包商对账清单</a>
+            <a href="<c:url value='/directPaymentCases/directPaymentCases.do'/>">直付案件清单报表</a>
+            <a href="<c:url value='/historicalPreservation/historicalPreservationPage.do'/>">全外包清单发送</a>
+      </span>
+       <span class="top_open op_wz_01 displayN" id="topOpen3">
+            <b class="cs_top_arr"></b>  
+            <a href="<c:url value='/bpoInterface/bpoTimeInit.do'/>" >BPO时效查询</a>
+            <a href="<c:url value="/bpoInterface/bpocccx.do" />" >BPO差错查询</a>
+            <a href="<c:url value='/bpoInterface/queryCondition.do'/>">BPO收单查询</a>
+            <a href="<c:url value='/bpoInterface/bpoTimeAmountInit.do'/>">BPO时效统计</a>
+            <a href="<c:url value='/bpoInterface/bpoQualityQuery.do'/>">BPO质量统计</a>
+      </span> 
+      <span class="top_open op_wz_01 displayN" id="topOpen4">
+            <b class="cs_top_arr"></b>  
+            <a href="<c:url value='/preauthorization/taskpoolQuery.do'/>">预授权受理任务池</a>
+            <a href="<c:url value="/preauthorization/examinePoolsQuery.do" />">预授权审核任务池</a>
+            <a href="<c:url value='/preauthorization/grantPoolsQuery.do'/>">预授权复核任务池</a>
+            <a href="<c:url value='/preauthorization/queryPreauthorization.do'/>">预授权综合查询</a>
+      </span>
+      <span class="top_open op_wz_01 displayN" id="topOpen5">
+            <b class="cs_top_arr"></b>  
+            <a href="<c:url value='/directpay/queryClaimPay.do'/>">理赔代付</a>
+            <a href="<c:url value='/directpay/queryDirectPayRece.do' />">理赔收回</a>
+            <a href="<c:url value='/directpay/queryDirectPayAmt.do'/>">余额</a>
+      </span> 
+      <span class="top_open op_wz_01 displayN" id="topOpen6">
+            <b class="cs_top_arr"></b>  
+            <a href="<c:url value='/claimpolicyInfoController/claimpolicyInfoQueryPage.do'/>">保单查询</a>
+            <a href="<c:url value='/epibolyModify/queryEpibolyPage.do' />">数据修改查询</a>
+      </span>   
+      <span class="top_open op_wz_01 displayN" id="topOpen7">
+            <b class="cs_top_arr"></b>  
+            <a href="<c:url value='/bpomanage/caseInfo/queryCaseInfo.do'/>">案件查询</a>
+            <a id="reportManager" onClick="showRightOpen('','topOpen7','rightOpen1',this)">管理报表</a>
+            <a href="<c:url value='/bpomanage/proportion/queryProportion.do'/>">抽检设置</a>
+      </span>   
+      <span class="top_open op_wz_01 displayN" id="rightOpen1">
+            <a href="<c:url value='/bpomanage/amountInfo/queryAmountInfo.do'/>">件数报表</a>
+            <a href="<c:url value='/bpomanage/timelinessInfo/queryTimelinessInfo.do'/>">时效报表</a>
+            <a id="questionReport" onClick="showRightOpen('topOpen7','rightOpen1','rightOpen2',this)">问题件报表</a>
+            <a href="<c:url value='/bpomanage/errorInfo/queryErrorInfo.do'/>">差错报表</a>
+      </span>   
+      <span class="top_open op_wz_01 displayN" id="rightOpen2">
+            <a href="<c:url value='/bpomanage/problem/queryCaseInfo.do'/>">问题件比例</a>
+            <a href="<c:url value='/bpomanage/problem/queryWtjClassify.do'/>">问题件分类</a>
+      </span>   
+      
+</div>

+ 99 - 0
src/main/webapp/WEB-INF/jsp/common/page.jsp

@@ -0,0 +1,99 @@
+<%@ page contentType="text/html; charset=UTF-8" language="java" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+
+<div class="content_top_page">
+	<ul>
+	    <li class="total_page">共<span id="totalCountSpan">${page.totalCount}</span>条记录,当前页:${page.currentPage},共 ${page.totalPage} 页</li>
+	    
+		<li id="preLi">
+			<c:choose>
+				<c:when test="${page.currentPage != 1}">
+					<a href="javascript:goPage1(0);" id="pagePreLi">首页</a>				
+				</c:when>
+				<c:otherwise>
+					<a href="javascript:void(0);" id="pagePreLi">首页</a>
+				</c:otherwise>
+			</c:choose>
+		</li>
+		
+		<li id="preLi">
+			<c:choose>
+				<c:when test="${page.currentPage != 1}">
+					<a href="javascript:goPage('pre');" id="pagePreLi">上一页</a>				
+				</c:when>
+				<c:otherwise>
+					<a href="javascript:void(0);" id="pagePreLi">上一页</a>
+				</c:otherwise>
+			</c:choose>
+		</li>
+		 
+			<input id="currentPageInput" class="input_page" type="hidden" value="${page.currentPage}" />
+		 
+		
+	    <li id="nextLi">
+	    	<c:choose>
+	    		<c:when test="${page.currentPage != page.totalPage && page.totalPage > 0}">
+	    			<a href="javascript:goPage('next');" id="pageNextLi">下一页</a>
+	    		</c:when>
+	    		<c:otherwise>
+	    			<a href="javascript:void(0);" id="pageNextLi">下一页</a>
+	    		</c:otherwise>
+	    	</c:choose> 
+	    </li>	
+	    
+	     <li id="nextLi">
+	     	<c:choose>
+	    		<c:when test="${page.currentPage != page.totalPage && page.totalPage > 0}">
+	    			<a href="javascript:goPage1('${page.totalPage }');" id="pageNextLi">末页</a>
+	    		</c:when>
+	    		<c:otherwise>
+	    			<a href="javascript:void(0);" id="pageNextLi">末页</a>
+	    		</c:otherwise>
+	    	</c:choose>  	
+	    </li>		
+     </ul>
+</div>
+<input type="hidden" id="initQuery" name="initQuery" value="1"/>
+<input type="hidden" id="currentPage" name="currentPage" value="${page.currentPage}"/>
+<input type="hidden" id="pageSize" name="pageSize" value="${page.pageSize}"/>
+<script type="text/javascript">
+	
+	function goPage(type)
+	{
+		var currentPage = $('#currentPage').val();
+		if(type == 'pre')
+			currentPage = parseInt(currentPage, 10) - 1;
+		if(type == "next")
+			currentPage = parseInt(currentPage, 10) + 1;
+		
+		if(!isNaN(currentPage))
+		{
+			$('#currentPage').val(currentPage);
+			$('#initQuery').val("0");
+			document.forms[0].submit();
+		}
+	}
+	
+	function goPage1(type)
+	{
+	
+			$('#currentPage').val(type);
+			$('#initQuery').val("0");
+			document.forms[0].submit();
+	}
+	
+	
+/* 	document.onkeydown=function(event){            
+		var e = event || window.event || arguments.callee.caller.arguments[0];            
+		if(e && e.keyCode==13 && document.activeElement.id=="currentPageInput"){ // enter 键     
+			var currentPage = $('#currentPageInput').val();   
+			if(currentPage<=0 || currentPage>${page.totalPage}){
+				alert("您好输入的页码不是有效的!");return;
+			}
+			$('#currentPage').val(currentPage);   
+			$('#initQuery').val("0");   
+			document.forms[0].submit();
+		}
+	}; */ 
+</script>

+ 37 - 0
src/main/webapp/WEB-INF/jsp/common/page_navigate.jsp

@@ -0,0 +1,37 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: YangKui
+  Date: 13-6-12
+  Time: 下午8:17
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java"%>
+<div id="off_table_fanye" class="pull-right" style="margin-top: 15px;padding-bottom: 15px;">
+	<input type="hidden" name="page" id="page_currentPage" value="${page.number}" /> 
+	<input type="hidden" name="size" id="page_pageSize" value="${page.size}" /> 
+	<input type="hidden" id="page_pageCount" value="${page.totalPages}" /> 
+	<input type="hidden" id="page_recordCount"	value="${page.totalElements}" />
+	<input type="hidden" id="sortType" name="sortType" value="${sortType}" /> 
+	<input type="hidden" id="orderParm" name="orderParm" value="${orderParm}" />
+
+	<c:choose>
+		<c:when test="${page.number > 0}">
+			<span><a name="" class="oa-btn oa-btn-white" onclick="$.page.formSubmit(this.form, '1');">首页</a></span>
+			<span><a name="" class="oa-btn oa-btn-white" onclick="$.page.formSubmit(this.form, '${page.number}');">上一页</a></span>
+		</c:when>
+		<c:otherwise>
+		</c:otherwise>
+	</c:choose>
+	 <c:if test="${page.totalPages > 1}">
+	 	<span style="margin-left:8px;"> 第 <input id="current_pg" value="${page.number+1}" oa-pre-value="${page.number+1}" type="text"  class="oa-input" style="width:40px" onblur="return $.page.enterPageNum(this.form, this.value,event,'${page.totalPages}');"/> 页,</span>
+	</c:if>
+	<span>共${page.totalPages}页</span>
+	<c:choose>
+		<c:when test="${page.number+1 < page.totalPages}">
+			<span> <a name="" class="oa-btn oa-btn-white" onclick="$.page.formSubmit(this.form, '${page.number+2}');">下一页</a></span>
+			<span> <a name="" class="oa-btn oa-btn-white" onclick="$.page.formSubmit(this.form, '${page.totalPages}');">尾页</a></span>
+		</c:when>
+		<c:otherwise>
+		</c:otherwise>
+	</c:choose>
+</div>

+ 41 - 0
src/main/webapp/WEB-INF/jsp/common/placeholderIE8.jsp

@@ -0,0 +1,41 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java"%>
+<script type="text/javascript">
+//placeholder IE8
+var _placeholderSupport = function() {
+    var t = document.createElement("input");
+    t.type = "text";
+    return (typeof t.placeholder !== "undefined");
+}();
+
+
+window.onload = function() {
+    var arrInputs = document.getElementsByTagName("input");
+    for (var i = 0; i < arrInputs.length; i++) {
+        var curInput = arrInputs[i];
+        if (!curInput.type || curInput.type == "" || curInput.type == "text")
+            HandlePlaceholder(curInput);
+    }
+};
+ 
+function HandlePlaceholder(oTextbox) {
+    if (!_placeholderSupport) {
+        var curPlaceholder = oTextbox.getAttribute("placeholder");
+        if (curPlaceholder && curPlaceholder.length > 0) {
+            oTextbox.value = curPlaceholder;
+            oTextbox.setAttribute("old_color", oTextbox.style.color);
+            oTextbox.style.color = "#c0c0c0";
+            oTextbox.onfocus = function() {
+                this.style.color = this.getAttribute("old_color");
+                if (this.value === curPlaceholder)
+                    this.value = "";
+            };
+            oTextbox.onblur = function() {
+                if (this.value === "") {
+                    this.style.color = "#c0c0c0";
+                    this.value = curPlaceholder;
+                }
+            }
+        }
+    }
+}
+</script>

+ 4 - 0
src/main/webapp/WEB-INF/jsp/common/taglib.jsp

@@ -0,0 +1,4 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="d" uri="/WEB-INF/tld/dic.tld" %>

+ 5 - 0
src/main/webapp/WEB-INF/jsp/common/taglibs.jspf

@@ -0,0 +1,5 @@
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
+<%@taglib prefix="hejin" tagdir="/WEB-INF/tags" %>

+ 111 - 0
src/main/webapp/WEB-INF/jsp/dataBase/DataBaseIndex.jsp

@@ -0,0 +1,111 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<!DOCTYPE html>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+
+<html>
+<head>
+	<title>sql执行 寿险反欺诈系统</title>
+	<script src="../compass/app/js/DataBaseIndex.js"></script>
+	<script type="text/javascript">
+        $(document).ready(function(){
+            $(".container").attr("style","font-size:14px;margin-top:-15px;border-left: 0px solid #9c464600;min-height: 100%;padding-top: 15px;margin-left: auto;margin-right: auto;padding-left: 15px;padding-right: 15px;width: 1250px;");
+
+            $(".container a[class='dropdown-toggle']").attr("style","width:105px");
+            $("body div[class='navbar-inverse']").attr("style","height:42px;");
+        });
+
+	</script>
+	<style >
+		.btn {
+			background: #428bca;
+		}
+	</style>
+</head>
+<body>
+
+<jsp:include page="../menu.jsp"/>
+<!-- BEGIN 面包屑 -->
+<div class="container-fluid">
+	<ol class="breadcrumb" style="font-size: 14px;" ><!-- BEGIN 面包屑 -->
+		<li><a href="javascript:void(0);" style="color: #428bca">系统管理</a></li>
+		<li><a href="index.do" style="color: #428bca">sql查询</a></li>
+	</ol>
+</div>
+
+<div class="container-fluid">
+	<div class="row">
+		<div class="col-md-12 col-sm-12 tab-btn"  style="margin-top: -8px;margin-bottom: 8px;">
+
+			<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: 8px;font-size: 15px;">数据源 </label>
+			<div id="selectul0" class="col-sm-2 col-md-2 col-lg-2" >
+				<select id="source_code" name ="p_source_code" class="form-control" style="border-radius:4px 4px 4px 4px;box-shadow: 0 0 4px 0px RGBA(0, 0, 0, 0.48);margin-left: -70px;height: 34px;width: 115px;">
+					<option value="mysql">&nbsp;&nbsp;&nbsp;mysql&nbsp;&nbsp;&nbsp; </option>
+					<option value="oracle">&nbsp;&nbsp;&nbsp;oracle&nbsp;&nbsp;&nbsp;</option>
+				</select>
+			</div>
+
+
+			<div class="btn-group right" data-toggle="buttons">
+				<button class="btn btn-primary" onclick="check();"   >执行</button>
+				<button class="btn btn-primary" onclick="resetSelect();"  >重置</button>
+			</div>
+		</div>
+	</div>
+	<div class="content">
+		<div class="tab-header">
+			<div class="form-group" style="margin-top:0;">
+				<label  class="col-sm-1 col-md-1 col-lg-1 control-label"> 查询区域 </label >
+			</div>
+			<div class="col-sm-2 col-md-2 col-lg-2">
+				<textarea id = "textArea"  class='form-control' style='width: 665%;height:135px;resize: none'></textarea>
+			</div>
+			<div class="clear"></div>
+		</div>
+	</div>
+	<div class="tab-content">
+		<div class="content_botttom">
+			<div class="content_list" style="width:100%; overflow-x:auto;">
+				<table class="table table-striped">
+					<thead>
+					<tr id="context_body_header">
+					</tr>
+					</thead>
+					<tbody style="" id="context_body_manager">
+					</tbody>
+				</table>
+
+			</div>
+		</div>
+	</div>
+</div>
+
+<!-- 模态提示框 -->
+<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
+					&times;
+				</button>
+				<h4 class="modal-title" id="myModalLabel">
+					温馨提示:
+				</h4>
+			</div>
+			<div class="modal-body">
+
+			</div>
+			<div class="modal-footer">
+				<button type="button" class="btn btn-submit" data-dismiss="modal">确定</button>
+				<!-- 					<button type="button" class="btn btn-default btn-cancel" data-dismiss="modal">取消</button> -->
+			</div>
+		</div>
+	</div>
+</div>
+
+</body>
+
+</html>

+ 215 - 0
src/main/webapp/WEB-INF/jsp/dataBase/DataBaseReport.jsp

@@ -0,0 +1,215 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+
+<%@ include file="/WEB-INF/jsp/common/taglib.jsp"%>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <title>寿险反欺诈系统</title>
+    <script src="../compass/app/js/jquery.min.js"></script>
+    <link rel="stylesheet" href="../compass/app/css/app.css"/>
+    <link rel="stylesheet" href="../compass/app/css/common.css"/>
+    <link rel="stylesheet" href="../compass/app/css/report.css"/>
+    <link rel="stylesheet" href="../compass/app/lib/bootstrap/css/bootstrap.min.css"/>
+</head>
+<body  onresize="hero()" style="text-align: center;background-size:cover;width: 100%;">
+
+<input id="paybehavior" type="hidden" value="${result.mapradar.pay_behavior}"/>
+<input id="perinfobehavior" type="hidden" value="${result.mapradar.perinfo_behavior}"/>
+<input id="accidentbehavior" type="hidden" value="${result.mapradar.accident_behavior}"/>
+<input id="frequencybehavior" type="hidden" value="${result.mapradar.frequency_behavior}"/>
+<input id="cheatbehavior" type="hidden" value="${result.mapradar.cheat_behavior}"/>
+<input id="score" type="hidden" value="${result.mapMsg.levelscore}"/>
+<input id="operate" type="hidden" value="${result.operate}"/>
+<div id="app" style="display: inline-block;width: 1086px">
+    <div  class="modalContent report-wrap" style="width: 100%;">
+        <div id="pdfbox" class="report-wrap" style="width:100%">
+            <div class="report-title" style="width: 100%">寿险理赔分析报告</div>
+            <div class="report-content">
+
+            <%--    <div class="report-section1">
+                    <div class="section1-left" style="width:70%;">
+                        <div class="section1-title white" style="margin-bottom:50px;">综合风险评分</div>
+                        <div class="temper-wrap" searchstyle="width: 93%" id="temper">
+                            <div class="temper-inner" id="temperinner">
+                                <div class="temper-top"></div>
+                            </div>
+                        </div>
+                        <div class="temper-bottom" style="width: 95%;color: #f5f5f5;">
+                            <span style="margin-right: 110px;">0</span>
+                            <span style="margin-right: 110px;">200</span>
+                            <span style="margin-right: 110px;">400</span>
+                            <span style="margin-right: 110px;">600</span>
+                            <span style="margin-right: 110px;">800</span>
+                            <span style="margin-right: 0px;">1000</span>
+                        </div>
+                    </div>
+                    <div class="section1-right fr" style="width:30%;">
+                        <div class="section1-title txt-right">综合风险等级</div>
+                        <div class="section1-flex">
+                            <p  class="fl f79 blue" style="margin-left: 4%;margin-right: 1%;">${result.mapMsg.levelscore}</p>
+                            <div class="section1-line fl" style="margin-left: 4%;"></div>
+                            <div class="fl">
+                                <P class="f44 orange">${result.mapMsg.level}</P>
+                                <p class="f22 orange">风险</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>--%>
+
+                <div class="report-section2">
+                    <div class="fl depart-left" style="width: 69%;height: 415px;">
+                        <div class="section-title" style="width: 100%">分项风险等级</div>
+                        <div style="padding-left: 10%;padding-right: 10%;width: 100%;">
+                            <div id="showecharts" class="showecharts" style="width:60%;height:300px;margin-top:50px"></div>
+
+                        </div>
+                        <div class="section-right-top" style="width: 22%;height: 200px;">
+                            <div id="triangle-up"></div>
+
+                            <p id="pay_behavior" class="orange" style="line-height: 40px;">支付对象:低</p>
+                            <p id="perinfo_behavior" class="blue" style="line-height: 40px;">身份信息:低</p>
+                            <p id="accident_behavior" class="blue" style="line-height: 40px;">出险事故:低</p>
+                            <p id="frequency_behavior" class="green" style="line-height: 40px;">高频案件:低</p>
+                            <p id="cheat_behavior" class="green" style="line-height: 40px;">团伙骗赔:低</p>
+                        </div>
+                    </div>
+                    <div class="fr depart-right" style="width: 30%;height: 415px;">
+                        <div class="section-title" style="width: 100%;">赔案基本信息</div>
+                        <div class="depart-content">
+                            <div class="top">
+                                <div class="fl">
+                                    <c:if test="${result.mapMsg.sex=='女'}">
+                                        <img id="agesvg" src="../compass/app/img/0.svg">
+                                    </c:if>
+                                    <c:if test="${result.mapMsg.sex!='女'}">
+                                        <img id="agesvg" src="../compass/app/img/1.svg">
+                                    </c:if>
+                                </div>
+                                <div class="fl top-right">
+                                    <table >
+                                        <tr><td align="left" style="padding-top: 8px;"><p><span>姓名:</span><span>${result.mapMsg.name}</span></p></td></tr>
+                                        <tr><td align="left"><p><span>性别:</span><span>${result.mapMsg.sex}</span></p></td></tr>
+                                        <tr><td align="left"><p><span>年龄:</span><span>${result.mapMsg.age}</span></p></td></tr>
+
+                                    </table>
+                                </div>
+                            </div>
+                            <div class="bottom">
+                                <table>
+                                    <tr><td ><p><span>赔案号:</span><span>${result.mapMsg.claimNo}</span></p></td></tr>
+                                    <tr><td><p><span>事故日期:</span><span>${result.mapMsg.acctdate}</span></p></td></tr>
+                                    <tr><td><p><span>立案日期:</span><span>${result.mapMsg.regdate}</span></p></td></tr>
+                                    <tr><td><p><span>证件号:</span><span>${result.mapMsg.pid}</span></p></td></tr>
+                                    <input type="hidden"  class="box_input form-control" id = "claimNo"  value="${result.mapMsg.claimNo}" >
+                                    <input type="hidden"  class="box_input form-control" id="reportIndex"  value="${result.mapMsg.reportIndex}" >
+                                </table>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="report-section3" style="width: 100%;">
+                    <div class="section-title">风险提示及审核指引</div>
+                    <table class="deport-table" style="width: 100%;">
+                        <thead>
+                        <th style="width: 40%">风险提示</th>
+                        <th style="width: 60%">风险详细说明</th>
+                        </thead>
+                        <tbody>
+
+                        <c:forEach var="c" items="${result.ratelist}" varStatus="">
+                            <tr>
+                                <c:if test="${c.Mname !=null}">
+                                    <td style="width: 28%;padding: 5px 5px 5px 5px;">${c.Mname}</td>
+                                    <td style="text-align: left;width: 36%;padding: 5px 6px 5px 7px;">${c.massage}</td>
+                                </c:if>
+                            </tr>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+
+
+                <form id="myform" style="width: 100%;">
+                    <div class="report-section3">
+                        <div class="section-title">报告评估反馈</div>
+                        <input name="reportId" type="hidden" value="${result.mapMsg.reportId}"/>
+                        <table class="deport-table" style="width: 100%;">
+                            <thead>
+                            <th style="width: 28%">风险提示</th>
+                            <th style="width: 36%">提示反馈</th>
+                            <th style="width: 36%">反馈说明</th>
+                            </thead>
+                            <tbody>
+
+                            <c:forEach var="c" items="${result.ratelist}">
+                                <tr>
+                                    <td style="width: 28%;padding-top: 5px;padding-bottom: 5px;">${c.Mname}</td>
+                                    <td align="center" style="width: 36%;" >
+                                        <div class="fl radio-box">
+                                            <input  type="radio"  name="${c.radioname}"
+                                                    value="1" class="report-td" style="margin-right:5px;"><span style="font-size: 12px;">准确</span>
+                                        </div>
+                                        <div class="fl radio-box">
+                                            <input  type="radio"  name="${c.radioname}"
+                                                    value="-1" class="report-td" style="margin-right:5px;"><span style="font-size: 12px;">不准确</span>
+                                        </div>
+                                        <div class="fl radio-box">
+                                            <input type="radio"  name="${c.radioname}"
+                                                   value="0" class="report-td" style="margin-right:5px;"><span style="font-size: 12px;">无法判断</span>
+                                        </div>
+                                    </td>
+                                    <td style="width: 36%;padding-top: 5px;padding-bottom: 5px;">
+                                        <input type="text" name="${c.textname}" class="search_showbox"  value="${c.text}" style="font-size: 12px;padding: 5px 6px 5px 7px;" placeholder="请输入反馈说明">
+                                    </td>
+                                </tr>
+                                <script >
+                                    <c:choose>
+                                    <c:when test="${c.radio=='1'}">
+                                    document.getElementsByName("${c.radioname}")[0].checked=true;
+                                    </c:when>
+                                    <c:when test="${c.radio=='-1'}">
+                                    document.getElementsByName("${c.radioname}")[1].checked=true;
+                                    </c:when>
+                                    <c:when test="${c.radio=='0'}">
+                                    document.getElementsByName("${c.radioname}")[2].checked=true;
+                                    </c:when>
+                                    </c:choose>
+                                </script>
+                            </c:forEach>
+                            </tbody>
+                        </table>
+
+                    </div>
+                    <div class="report-section3" style="width:100%;">
+                        <div class="section-title">其他反馈</div>
+                        <textarea name="otherFeedBack" class="search_showbox" style="width: 100%;height: 100px;border: 0px;font-size: 13px;padding: 5px 6px 5px 7px;" placeholder="请输入反馈说明">${result.mapMsg.othertext}</textarea>
+                    </div>
+                </form>
+            </div>
+        </div>
+
+        <div class="modal-footer" style="text-align: center;width: 100%">
+            <div style="position: absolute;padding-top: 12px;">${result.mapMsg.createdate}</div>
+            <button type="button" onclick="javascript:window.open(location, '_self').close();" class="btn btn-default" data-dismiss="modal">关闭</button>
+        </div>
+
+    </div>
+    <div id="popupcontent"></div>
+    <script type="text/javascript">
+        var lists="${result.ratelist}";
+    </script>
+    <script src="../compass/app/lib/jquery/dist/jquery.min.js"></script>
+    <script src="../compass/app/js/echarts/echarts.min.js"></script>
+    <script src="../compass/app/js/DataBasereportcontroller.js"></script>
+</div>
+
+
+</body>
+</html>

+ 53 - 0
src/main/webapp/WEB-INF/jsp/dataBase/DataBaseReportIndex.jsp

@@ -0,0 +1,53 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+
+<%@ include file="/WEB-INF/jsp/common/taglib.jsp"%>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
+    <meta http-equiv="X-UA-Compatible" content="IE=9" />
+    <title>寿险反欺诈系统</title>
+    <script src="../compass/app/js/jquery.min.js"></script>
+    <link rel="stylesheet" href="../compass/app/css/app.css"/>
+    <link rel="stylesheet" href="../compass/app/css/common.css"/>
+    <link rel="stylesheet" href="../compass/app/css/report.css"/>
+    <link rel="stylesheet" href="../compass/app/lib/bootstrap/css/bootstrap.min.css"/>
+</head>
+<body  onresize="hero()" style="text-align: center;background-size:cover;width: 100%;">
+
+<input id="paybehavior" type="hidden" value="${result.mapradar.pay_behavior}"/>
+<input id="perinfobehavior" type="hidden" value="${result.mapradar.perinfo_behavior}"/>
+<input id="accidentbehavior" type="hidden" value="${result.mapradar.accident_behavior}"/>
+<input id="frequencybehavior" type="hidden" value="${result.mapradar.frequency_behavior}"/>
+<input id="cheatbehavior" type="hidden" value="${result.mapradar.cheat_behavior}"/>
+<input id="score" type="hidden" value="${result.mapMsg.levelscore}"/>
+<input id="operate" type="hidden" value="${result.operate}"/>
+<div id="app" style="display: inline-block;width: 1086px">
+    <div  class="modalContent report-wrap" style="width: 100%;">
+        <div id="pdfbox" class="report-wrap" style="width:100%">
+
+            <label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: 15px">案件号</label>
+            <div class="col-sm-2 col-md-2" style="margin-top: 8px;margin-left: -30px">
+                <input type="text" id="claimNoId" name="p_claimNo" style="width: 170px" class="form-control"/>
+            </div>
+            <button class="btn btn-primary" style="margin-left: -760px;margin-top: 8px" onclick="searchUI();">打分</button>
+        </div>
+    </div>
+    <div id="popupcontent"></div>
+    <script type="text/javascript">
+        var lists="${result.ratelist}";
+    </script>
+    <script src="../compass/app/lib/jquery/dist/jquery.min.js"></script>
+    <script src="../compass/app/js/echarts/echarts.min.js"></script>
+    <script src="../compass/app/js/DataBaseReportIndex.js"></script>
+
+</div>
+
+
+</body>
+</html>

+ 110 - 0
src/main/webapp/WEB-INF/jsp/dataBase/HBaseIndex.jsp

@@ -0,0 +1,110 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<!DOCTYPE html>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+
+<html>
+<head>
+	<title>hbase执行 寿险反欺诈系统</title>
+	<script src="../compass/app/js/HBaseIndex.js"></script>
+	<script type="text/javascript">
+        $(document).ready(function(){
+            $(".container").attr("style","font-size:14px;margin-top:-15px;border-left: 0px solid #9c464600;min-height: 100%;padding-top: 15px;margin-left: auto;margin-right: auto;padding-left: 15px;padding-right: 15px;width: 1250px;");
+
+            $(".container a[class='dropdown-toggle']").attr("style","width:105px");
+            $("body div[class='navbar-inverse']").attr("style","height:42px;");
+
+        });
+
+	</script>
+	<style >
+		.btn {
+			background: #428bca;
+		}
+	</style>
+</head>
+<body>
+
+<jsp:include page="../menu.jsp"/>
+<!-- BEGIN 面包屑 -->
+<div class="container-fluid">
+	<ol class="breadcrumb" style="font-size: 14px;" ><!-- BEGIN 面包屑 -->
+		<li><a href="javascript:void(0);" style="color: #428bca">系统管理</a></li>
+		<li><a href="index.do" style="color: #428bca">hbase查询</a></li>
+	</ol>
+</div>
+
+<div class="container-fluid">
+	<div class="content">
+		<div class="tab-header" style="padding:35px">
+
+			<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -8px;font-size: 15px;">表名 </label>
+			<div class="col-sm-2 col-md-2 col-lg-2" style="margin-top: -15px">
+				<input type="text" id="tableName" name="p_tableName" class="form-control" style="width: 100%"/>
+			</div>
+
+			<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -8px;font-size: 15px;">ROW_KEY </label>
+			<div class="col-sm-2 col-md-2 col-lg-2" style="margin-top: -15px ">
+				<input type="text" id="rowKey" name="p_rowKey"  class="form-control" style="width:450px"/>
+			</div>
+
+			<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -6px; font-size: 15px; margin-left: 185px;">格式 </label>
+			<div id="selectul0" class="col-sm-2 col-md-2 col-lg-2" style="margin-top: -14px;">
+				<select id="source_style" name ="p_source_style" class="form-control" style="border-radius:4px 4px 4px 4px;box-shadow: 0 0 4px 0px RGBA(0, 0, 0, 0.48);margin-left: -70px;height: 34px;width: 115px;">
+					<option value="bd">&nbsp;&nbsp;&nbsp;表单&nbsp;&nbsp;&nbsp; </option>
+					<option value="jb">&nbsp;&nbsp;&nbsp;脚本&nbsp;&nbsp;&nbsp;</option>
+				</select>
+			</div>
+
+			<div class="btn-group right" data-toggle="buttons" style="margin-top: -15px">
+				<button class="btn btn-primary" onclick="query();"  style="margin-right: 10px" >执行</button>
+				<button class="btn btn-primary" onclick="resetSelect();"  >重置</button>
+			</div>
+		</div>
+	</div>
+	<div class="tab-content">
+		<div class="content_botttom">
+			<div class="content_list" style="width:100%; overflow-x:auto;">
+				<table class="table table-striped">
+					<thead>
+					<tr id="context_body_header">
+					</tr>
+					</thead>
+					<tbody style="" id="context_body_manager">
+
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+
+<!-- 模态提示框 -->
+<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
+					&times;
+				</button>
+				<h4 class="modal-title" id="myModalLabel">
+					温馨提示:
+				</h4>
+			</div>
+			<div class="modal-body">
+
+			</div>
+			<div class="modal-footer">
+				<button type="button" class="btn btn-submit" data-dismiss="modal">确定</button>
+				<!-- 					<button type="button" class="btn btn-default btn-cancel" data-dismiss="modal">取消</button> -->
+			</div>
+		</div>
+	</div>
+</div>
+
+</body>
+
+</html>

+ 116 - 0
src/main/webapp/WEB-INF/jsp/dataBase/LogIndex.jsp

@@ -0,0 +1,116 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<!DOCTYPE html>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+
+<html>
+<head>
+	<title>规则日志 寿险反欺诈系统</title>
+	<script src="../compass/app/js/LogIndex.js"></script>
+	<script type="text/javascript">
+        $(document).ready(function(){
+            $(".container").attr("style","font-size:14px;margin-top:-15px;border-left: 0px solid #9c464600;min-height: 100%;padding-top: 15px;margin-left: auto;margin-right: auto;padding-left: 15px;padding-right: 15px;width: 1250px;");
+
+            $(".container a[class='dropdown-toggle']").attr("style","width:110px");
+            $("body div[class='navbar-inverse']").attr("style","height:42px;");
+
+        });
+
+	</script>
+	<style >
+		.btn {
+			background: #428bca;
+		}
+	</style>
+</head>
+<body>
+
+<jsp:include page="../menu.jsp"/>
+<!-- BEGIN 面包屑 -->
+<div class="container-fluid">
+	<ol class="breadcrumb" style="font-size: 14px;" ><!-- BEGIN 面包屑 -->
+		<li><a href="javascript:void(0);" style="color: #428bca">系统管理</a></li>
+		<li><a href="index.do" style="color: #428bca">规则日志</a></li>
+	</ol>
+</div>
+
+<div class="container-fluid">
+	<div class="row">
+		<div class="col-md-12 col-sm-12 tab-btn"  style="margin-top: -8px;margin-bottom: 8px;">
+
+			<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: 8px;font-size: 15px; margin-left: 15px">规则 </label>
+			<div id="selectul0" class="col-sm-2 col-md-2 col-lg-2" >
+				<select id="source_code" name ="p_source_code" class="form-control" style="border-radius:4px 4px 4px 4px;box-shadow: 0 0 4px 0px RGBA(0, 0, 0, 0.48);margin-left: -65px;height: 34px;width: 115px;">
+					<option value="1">&nbsp;&nbsp;&nbsp;规则1&nbsp;&nbsp;&nbsp; </option>
+					<option value="2">&nbsp;&nbsp;&nbsp;规则2&nbsp;&nbsp;&nbsp; </option>
+					<option value="3">&nbsp;&nbsp;&nbsp;规则3&nbsp;&nbsp;&nbsp;</option>
+					<option value="4">&nbsp;&nbsp;&nbsp;规则4&nbsp;&nbsp;&nbsp;</option>
+					<option value="5">&nbsp;&nbsp;&nbsp;规则5&nbsp;&nbsp;&nbsp;</option>
+					<option value="6">&nbsp;&nbsp;&nbsp;规则6&nbsp;&nbsp;&nbsp;</option>
+					<option value="7">&nbsp;&nbsp;&nbsp;规则7&nbsp;&nbsp;&nbsp; </option>
+					<option value="8">&nbsp;&nbsp;&nbsp;规则8&nbsp;&nbsp;&nbsp;</option>
+					<option value="9">&nbsp;&nbsp;&nbsp;规则9&nbsp;&nbsp;&nbsp;</option>
+					<option value="10">&nbsp;&nbsp;&nbsp;规则10&nbsp;&nbsp;&nbsp;</option>
+					<option value="11">&nbsp;&nbsp;&nbsp;规则11&nbsp;&nbsp;&nbsp;</option>
+					<option value="12">&nbsp;&nbsp;&nbsp;规则12&nbsp;&nbsp;&nbsp; </option>
+					<option value="13">&nbsp;&nbsp;&nbsp;规则13&nbsp;&nbsp;&nbsp;</option>
+					<option value="14">&nbsp;&nbsp;&nbsp;规则14&nbsp;&nbsp;&nbsp;</option>
+				</select>
+			</div>
+
+			<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: 8px;font-size: 15px;margin-left: -130px">赔案号 </label>
+			<div class="col-sm-2 col-md-2 col-lg-2" style="margin-top: -15px ">
+				<input type="text" id="claimNo" name="p_claimNo"  class="form-control" style="margin-top: 14px;margin-left: -55px"/>
+			</div>
+
+
+			<div class="btn-group right" data-toggle="buttons">
+				<button id="queryBtn" class="btn btn-primary" onclick="check();"   >查询</button>
+				<button class="btn btn-primary" onclick="resetSelect();"  >重置</button>
+			</div>
+		</div>
+		<div id="popupcontent"></div>
+	</div>
+	<div class="content">
+		<div class="tab-header">
+			<div class="form-group" style="margin-top:0;">
+				<label  class="col-sm-1 col-md-1 col-lg-1 control-label"> 条件区域 </label >
+			</div>
+			<div class="col-sm-2 col-md-2 col-lg-2">
+				<textarea id = "textArea"  class='form-control' style='width: 665%;height:480px;resize: none'></textarea>
+			</div>
+			<div class="clear"></div>
+		</div>
+	</div>
+
+</div>
+
+<!-- 模态提示框 -->
+<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
+					&times;
+				</button>
+				<h4 class="modal-title" id="myModalLabel">
+					温馨提示:
+				</h4>
+			</div>
+			<div class="modal-body">
+
+			</div>
+			<div class="modal-footer">
+				<button type="button" class="btn btn-submit" data-dismiss="modal">确定</button>
+				<!-- 					<button type="button" class="btn btn-default btn-cancel" data-dismiss="modal">取消</button> -->
+			</div>
+		</div>
+	</div>
+</div>
+
+</body>
+
+</html>

+ 91 - 0
src/main/webapp/WEB-INF/jsp/dataBase/TableIndex.jsp

@@ -0,0 +1,91 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<!DOCTYPE html>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+
+<html>
+<head>
+    <title>查询</title>
+    <script src="../compass/app/js/TableIndex.js"></script>
+    <style >
+        .btn {
+            background: #428bca;
+        }
+        #peopleType,#listType{
+            border-radius:4px 4px 4px 4px;
+            box-shadow: 0 0 4px 0 RGBA(0, 0, 0, 0.48);
+            margin-left: -70px;height: 34px;
+            font-size: 16px;
+        }
+    </style>
+</head>
+<body>
+<%--<jsp:include page="../menu.jsp"/>--%>
+<div class="container-fluid">
+    <div class="content">
+        <div class="tab-header" style="padding:35px">
+            <label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -8px;font-size: 15px;">人员属性 </label>
+            <div class="col-sm-3 col-md-3 col-lg-3" style="margin-top: -15px">
+                <select id="peopleType" class="form-control" onchange="selectP(this)">
+                    <option value="被保险人">&nbsp;&nbsp;&nbsp;被保险人&nbsp;&nbsp;&nbsp; </option>
+                    <option value="投保人">&nbsp;&nbsp;&nbsp;投保人&nbsp;&nbsp;&nbsp;</option>
+                </select>
+            </div>
+
+            <label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -8px;font-size: 15px;">清单类型</label>
+            <div class="col-sm-3 col-md-3 col-lg-3" style="margin-top: -15px ">
+                <select id="listType" class="form-control"></select>
+            </div>
+
+            <div class="btn-group right" data-toggle="buttons" style="margin-top: -15px">
+                <button class="btn btn-primary" onclick="query();"  style="margin-right: 10px" >执行</button>
+                <button class="btn btn-primary" onclick="resetSelect();"  >重置</button>
+            </div>
+        </div>
+    </div>
+    <div class="tab-content">
+        <div class="content_botttom">
+            <div class="content_list" style="width:100%; overflow-x:auto;">
+                <table class="table table-striped">
+                    <thead>
+                    <tr id="list_title">
+                    </tr>
+                    </thead>
+                    <tbody style="" id="list_body">
+
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- 模态提示框 -->
+<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
+                    &times;
+                </button>
+                <h4 class="modal-title" id="myModalLabel">
+                    温馨提示:
+                </h4>
+            </div>
+            <div class="modal-body">
+
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-submit" data-dismiss="modal">确定</button>
+                <!-- 					<button type="button" class="btn btn-default btn-cancel" data-dismiss="modal">取消</button> -->
+            </div>
+        </div>
+    </div>
+</div>
+
+</body>
+
+</html>

+ 304 - 0
src/main/webapp/WEB-INF/jsp/dataBase/TableIndex2.jsp

@@ -0,0 +1,304 @@
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<%@page import="com.dgt.graphdemo.utils.SysUser"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8"%>
+<%--<%@ include file="/WEB-INF/jsp/common/global.jsp"%>--%>
+<%@ include file="/include/taglib.jsp" %>
+    <%--<img src="../images/indexNew/logo.png" alt="" style="width: 110px;height:30px;float:left;margin: 5px 0px 0px 15px;">--%>
+    <%--<span>寿险反欺诈</span>--%>
+    <%--<div><a href="../graph/index.do">返回主页</a></div>--%>
+<%--</header>--%>
+<div class="left_list">
+    <div>
+        <span>检索条件</span>
+        <span>▽</span>
+    </div>
+    <ul hidden>
+        <li>根据证件号检索</li>
+        <li>根据赔案号检索</li>
+        <li>根据保单号检索</li>
+        <li>根据移动电话号码检索</li>
+        <li>根据银行账号检索</li>
+    </ul>
+</div>
+<div class="containerTable">
+    <div class="topSelect">
+        <%--证件号检索模块--%>
+        <div id="IdNumSearch">
+            <div>
+                <div class="col-sm-4 col-md-4 col-lg-4">
+                    <span class="col-sm-3 col-md-3 col-lg-3">请输入证件号:</span>
+                    <input  type="text">
+                </div>
+                <div class="col-sm-4 col-md-4 col-lg-4">
+                    <label class="col-sm-3 col-md-3 col-lg-3" style="text-align: center">人员属性:</label>
+                    <select id="peopleType" name="" id="">
+                        <option disabled selected >请选择</option>
+                        <option value="被保险人">被保险人</option>
+                        <option value="投保人">投保人</option>
+                        <option value="领款人">领款人</option>
+                        <option value="立案人">立案人</option>
+                        <option value="理赔初审">理赔初审</option>
+                        <option value="理赔复核">理赔复核</option>
+                        <option value="调查">调查</option>
+                        <option value="调查复核">调查复核</option>
+                    </select>
+                </div>
+                <div class="col-sm-3 col-md-3 col-lg-3">
+                    <label class="col-sm-3 col-md-3 col-lg-3">清单类型:</label>
+                    <select id="listType">
+                        <option disabled selected >请选择</option>
+                    </select>
+                </div>
+                <div class="col-sm-4 col-md-4 col-lg-4">
+                    <label class="col-sm-3 col-md-3 col-lg-3">索赔事故性质:</label>
+                    <select name="" id="">
+                        <option disabled selected>请选择</option>
+                        <option value="全部">全部</option>
+                        <option value="死亡">死亡</option>
+                        <option value="伤残">伤残</option>
+                        <option value="重大疾病">重大疾病</option>
+                        <option value="门急诊">门急诊</option>
+                        <option value="住院医疗">住院医疗</option>
+                        <option value="医疗补贴">医疗补贴</option>
+                    </select>
+                </div>
+                <div class="col-sm-4 col-md-4 col-lg-4 timeRange">
+                    <span class="col-sm-3 col-md-3 col-lg-3" style="text-align: center">时间范围:</span>
+                    <input class="startTime" type="text" placeholder="请输入起始日期">
+                    <span>/</span>
+                    <input class="endTime" type="text" placeholder="请输入结束日期">
+                </div>
+                <div class="col-sm-3 col-md-3 col-lg-3">
+                    <label class="col-sm-3 col-md-3 col-lg-3">出险类型:</label>
+                    <select name="" id="">
+                        <option disabled selected>请选择</option>
+                        <option value="全部">全部</option>
+                        <option value="疾病">疾病</option>
+                        <option value="意外">意外</option>
+                    </select>
+                </div>
+                <div class="col-sm-4 col-md-4 col-lg-4">
+                    <label class="col-sm-3 col-md-3 col-lg-3">分公司:</label>
+                    <select name="" id="">
+                        <option disabled selected>请选择</option>
+                        <option value="全司">全司</option>
+                    </select>
+                </div>
+                <div class="IdLast">
+                    <span class="confirm">确定</span>
+                    <span class="reset" onclick="resetSelect();">重置</span>
+                </div>
+            </div>
+        </div>
+        <%--赔案号检索模块--%>
+        <div id="ClaimNumSearch">
+            <div class="col-sm-4 col-md-4 col-lg-4">
+                <span class="col-sm-3 col-md-3 col-lg-3">请输入赔案号:</span>
+                <input type="text">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <span class="col-sm-3 col-md-3 col-lg-4">时间范围:</span>
+                <input class="startTime" type="text" placeholder="请输入起始日期">
+                <span>/</span>
+                <input class="endTime" type="text" placeholder="请输入结束日期">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <label class="col-sm-3 col-md-3 col-lg-3">分公司:</label>
+                <select name="" id="">
+                    <option disabled selected>请选择</option>
+                    <option value="全司">全司</option>
+                </select>
+            </div>
+            <div class="col-sm-4 col-md-4 col-lg-4">
+                <label class="col-sm-3 col-md-3 col-lg-3">出险类型:</label>
+                <select name="" id="">
+                    <option disabled selected>请选择</option>
+                    <option value="全部">全部</option>
+                    <option value="疾病">疾病</option>
+                    <option value="意外">意外</option>
+                </select>
+            </div>
+            <div class="col-sm-4 col-md-4 col-lg-4">
+                <label class="col-sm-3 col-lg-3">索赔事故性质:</label>
+                <select name="" id="">
+                    <option disabled selected>请选择</option>
+                    <option value="全部">全部</option>
+                    <option value="死亡">死亡</option>
+                    <option value="伤残">伤残</option>
+                    <option value="重大疾病">重大疾病</option>
+                    <option value="门急诊">门急诊</option>
+                    <option value="住院医疗">住院医疗</option>
+                    <option value="医疗补贴">医疗补贴</option>
+                </select>
+            </div>
+            <div class="ClaimLast">
+                <span class="confirm">确定</span>
+                <span class="reset" onclick="resetSelect();">重置</span>
+            </div>
+        </div>
+        <%--保单号检索模块--%>
+        <div id="PolicySearch">
+            <div class="col-sm-4 col-md-4 col-lg-4">
+                <span class="col-sm-3 col-md-3 col-lg-3">请输入保单号:</span>
+                <input type="text">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <span class="col-sm-3 col-md-3 col-lg-3">时间范围:</span>
+                <input type="text" placeholder="请输入起始日期">
+                <span>/</span>
+                <input type="text" placeholder="请输入结束日期">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <label class="col-sm-3 col-md-3 col-lg-3">分公司:</label>
+                <select name="" id="">
+                    <option disabled selected>请选择</option>
+                    <option value="全司">全司</option>
+                </select>
+            </div>
+            <div class="PolicyLast">
+                <span class="confirm">确定</span>
+                <span class="reset" onclick="resetSelect();">重置</span>
+            </div>
+        </div>
+        <%--移动电话号检索模块--%>
+        <div id="PhoneNumSearch">
+            <div class="col-sm-4 col-md-4 col-lg-4">
+                <span class="col-sm-3 col-md-3 col-lg-3">请输入移动电话:</span>
+                <input type="text">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <span class="col-sm-3 col-md-3 col-lg-3">时间范围:</span>
+                <input type="text" placeholder="请输入起始日期">
+                <span>/</span>
+                <input type="text" placeholder="请输入结束日期">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <label class="col-sm-3 col-md-3 col-lg-3">分公司:</label>
+                <select name="" id="">
+                    <option disabled selected>请选择</option>
+                    <option value="全司">全司</option>
+                </select>
+            </div>
+            <div class="PhoneLast">
+                <span class="confirm">确定</span>
+                <span class="reset" onclick="resetSelect();">重置</span>
+            </div>
+        </div>
+        <%--银行账号检索模块--%>
+        <div id="BankAccNumSearch">
+            <div class="col-sm-4 col-md-4 col-lg-4">
+                <span class="col-sm-3 col-md-3 col-lg-3">请输入银行账号:</span>
+                <input type="text">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <span class="col-sm-3 col-md-3 col-lg-3">时间范围:</span>
+                <input type="text" placeholder="请输入起始日期">
+                <span>/</span>
+                <input type="text" placeholder="请输入结束日期">
+            </div>
+            <div class="col-sm-3 col-md-3 col-lg-3">
+                <label class="col-sm-3 col-md-3 col-lg-3">分公司:</label>
+                <select name="" id="">
+                    <option disabled selected>请选择</option>
+                    <option value="全司">全司</option>
+                </select>
+            </div>
+            <div class="BankLast">
+                <span class="confirm">确定</span>
+                <span class="reset" onclick="resetSelect();">重置</span>
+            </div>
+        </div>
+    </div>
+    <div id="paging">
+        <ul>
+            <li id="firstPage">首页</li>
+            <li id="nextPage">上一页</li>
+            <li id="lastPage">下一页</li>
+            <li id="endPage">尾页</li>
+            <li id="pageCount"></li>
+            <li id="curPage"></li>
+            <li>
+                跳转到 <input type="text" id="inputPage">
+            </li>
+            <li id="jumpPage">跳转</li>
+        </ul>
+    </div>
+    <div id="listTable">
+        <table style="font-size:16px;color: #fff;border-collapse:collapse;text-align: center">
+            <thead>
+
+            </thead>
+            <tbody>
+
+            </tbody>
+        </table>
+    </div>
+    <%--<div class="content">--%>
+        <%--<div class="tab-header" style="padding:35px">--%>
+            <%--<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -8px;font-size: 15px;">人员属性 </label>--%>
+            <%--<div class="col-sm-3 col-md-3 col-lg-3" style="margin-top: -15px">--%>
+                <%--<select id="peopleType" class="form-control">--%>
+                    <%--<option disabled selected >&nbsp;&nbsp;&nbsp;请选择&nbsp;&nbsp;&nbsp;</option>--%>
+                    <%--<option value="被保险人">&nbsp;&nbsp;&nbsp;被保险人&nbsp;&nbsp;&nbsp; </option>--%>
+                    <%--<option value="投保人">&nbsp;&nbsp;&nbsp;投保人&nbsp;&nbsp;&nbsp;</option>--%>
+                    <%--<option value="领款人">&nbsp;&nbsp;&nbsp;领款人&nbsp;&nbsp;&nbsp;</option>--%>
+                <%--</select>--%>
+            <%--</div>--%>
+
+            <%--<label class="col-sm-1 col-md-1 col-lg-1 control-label" style="margin-top: -8px;font-size: 15px;">清单类型</label>--%>
+            <%--<div class="col-sm-3 col-md-3 col-lg-3" style="margin-top: -15px ">--%>
+                <%--<select id="listTypes" class="form-control">--%>
+                    <%--<option disabled selected >&nbsp;&nbsp;&nbsp;请选择&nbsp;&nbsp;&nbsp;</option>--%>
+                <%--</select>--%>
+            <%--</div>--%>
+
+            <%--<div class="btn-group right" data-toggle="buttons" style="margin-top: -15px">--%>
+                <%--<button class="btn btn-primary" onclick="query();"  style="margin-right: 10px" >执行</button>--%>
+                <%--<button class="btn btn-primary" onclick="resetSelect();"  >重置</button>--%>
+            <%--</div>--%>
+        <%--</div>--%>
+    <%--</div>--%>
+    <%--<div class="tab-content">--%>
+        <%--<div class="content_botttom">--%>
+            <%--<div class="content_list" style="width:100%;text-align:center;overflow:auto;">--%>
+                <%--<table class="table table-striped">--%>
+                    <%--<thead>--%>
+                    <%--<tr id="list_head">--%>
+                    <%--</tr>--%>
+                    <%--</thead>--%>
+                    <%--<tbody style="" id="list_body">--%>
+
+                    <%--</tbody>--%>
+                <%--</table>--%>
+            <%--</div>--%>
+        <%--</div>--%>
+    <%--</div>--%>
+</div>
+
+<!-- 模态提示框 -->
+<%--<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">--%>
+    <%--<div class="modal-dialog">--%>
+        <%--<div class="modal-content">--%>
+            <%--<div class="modal-header">--%>
+                <%--<button type="button" class="close" data-dismiss="modal" aria-hidden="true">--%>
+                    <%--&times;--%>
+                <%--</button>--%>
+                <%--<h4 class="modal-title" id="myModalLabel">--%>
+                    <%--温馨提示:--%>
+                <%--</h4>--%>
+            <%--</div>--%>
+            <%--<div class="modal-body">--%>
+
+            <%--</div>--%>
+            <%--<div class="modal-footer">--%>
+                <%--<button type="button" class="btn btn-submit" data-dismiss="modal">确定</button>--%>
+                <%--<!-- 					<button type="button" class="btn btn-default btn-cancel" data-dismiss="modal">取消</button> -->--%>
+            <%--</div>--%>
+        <%--</div>--%>
+    <%--</div>--%>
+<%--</div>--%>
+<script src="../compass/app/js/TableIndex2.js"></script>

+ 387 - 0
src/main/webapp/WEB-INF/jsp/dictionary/dictionaryIndex.jsp

@@ -0,0 +1,387 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%
+	String path = request.getContextPath();
+	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+<!DOCTYPE html>
+<%@ include file="/WEB-INF/jsp/common/global.jsp"%>
+<html>
+<head>
+	<title>数字字典 寿险反欺诈系统</title>
+
+	<script src="../compass/app/js/zTree/jquery.ztree.all-3.5.min.js"></script>
+	<script src="../compass/app/js/zTree/jquery.ztree.exhide-3.5.min.js"></script>
+	<script src="../compass/app/js/zTree/tree.js"></script>
+	<link href="../compass/app/js/zTree/zTreeStyle.css" type="text/css" rel="stylesheet" />
+	<script type="text/javascript">
+        var list_sys = list_sys || {};
+        list_sys.path = "<%=path%>";
+        list_sys.basePath =  "<%=basePath%>";
+
+        $(document).ready(function(){
+            $(".container").attr("style","font-size:14px;margin-top:-15px;border-left: 1px solid #9c464600;min-height: 100%;padding-top: 15px;margin-left: auto;margin-right: auto;padding-left: 15px;padding-right: 15px;width: 1250px;");
+
+            $(".container a[class='dropdown-toggle']").attr("style","width:105px");
+            $("body div[class='navbar-inverse']").attr("style","height:42px;");
+
+        });
+	</script>
+	<script src="../compass/app/js/dictionaryIndex.js"></script>
+
+	<style>
+		.icon_background{
+			line-height: 0;
+			margin-top: -4px;
+			margin: 5px;
+			width: 16px;
+			height: 16px;
+			display: inline-block;
+			vertical-align: middle;
+			border: 0 none;
+			cursor: pointer;
+			outline: none;
+			background-color: transparent;
+			background-repeat: no-repeat;
+			background-attachment: scroll;
+
+		}
+
+		.icon_close{
+			background-position: -74px 0;
+		}
+
+		.icon_open{
+			background-position: -92px -18px;
+		}
+
+		.icon_folder{
+			margin-right: 5px;
+			background-position: -110px -16px;
+		}
+
+		.icon_file{
+			margin-right: 5px;
+			background-position: -110px -32px;
+		}
+
+		.icon_checkbox_false{
+			background-position: 0 0;
+			width: 13px;
+			height: 13px;
+			margin-right: 3px;
+			margin-left: 3px;
+			margin-top: -5px;
+		}
+
+		.icon_checkbox_true{
+			background-position: -14px -14px;
+			width: 13px;
+			height: 13px;
+			margin-right: 3px;
+			margin-left: 3px;
+			margin-top: -5px;
+		}
+
+		.left_div{
+			width: 425px;
+			height:calc(100% - 102px);
+			float: left;
+			margin-top:-20px;
+		}
+
+		.right_div{
+			width: calc(100% - 430px);
+			height:calc(100% - 102px);
+			float: right;
+			margin-top:-20px;
+		}
+
+		.container {
+			height: 100%;
+		}
+
+		.tab-content {
+			height: calc(100% - 20px);
+		}
+
+		.table {
+			width:100%;
+			height: 95%;
+			display: block;
+		}
+
+		.table tr,.table thead{
+			display: block;
+			width: 100%;
+		}
+
+		.table tbody {
+			display: block;
+			width: 100%;
+			max-height: calc(100% - 110px);
+			overflow: auto;
+			border-bottom: 1px solid #ddd;
+			float: left;
+		}
+
+		.left_div .table tr th,.left_div .table tr td {
+			width: 100%;
+			height: 36px;
+			display: inline-block;
+		}
+
+		.left_div .table tr th,.right_div .table tr th {
+			border: none;
+		}
+
+		.right_div .table tr th,.right_div .table tr td {
+			display: inline-block;
+			height: 36px;
+			float: left;
+		}
+
+		.right_div .table tr th:nth-child(1),.right_div .table tr td:nth-child(1) {
+			width: 8%;
+		}
+		.right_div .table tr th:nth-child(2),.right_div .table tr td:nth-child(2) {
+			width: 23%;
+		}
+		.right_div .table tr th:nth-child(3),.right_div .table tr td:nth-child(3) {
+			width: 22%;
+		}
+		.right_div .table tr th:nth-child(4),.right_div .table tr td:nth-child(4) {
+			width: 15%;
+		}
+		.right_div .table tr th:nth-child(5),.right_div .table tr td:nth-child(5) {
+			width: 25%;
+		}
+		.right_div .table tr th:nth-child(6),.right_div .table tr td:nth-child(6) {
+			width: 7%;
+		}
+
+
+		#div_tree_box > li{
+			width:300px;
+		}
+
+		#div_tree_box_p{
+			overflow: auto;
+			height: 280px;
+		}
+		#s2id_unit_status{
+			width: 250px;
+		}
+
+		#s2id_channel_select{
+			width: 220px;
+		}
+
+		.table thead th{
+			background: #3c8dbc;
+
+		}
+		.btn {
+			background: #428bca;
+		}
+	</style>
+
+</head>
+<body>
+
+<jsp:include page="../menu.jsp"/>
+<!-- BEGIN 面包屑 -->
+<div class="container-fluid">
+	<ol class="breadcrumb"  style="font-size: 14px;"><!-- BEGIN 面包屑 -->
+		<li><a href="javascript:void(0);" style="color: #428bca">系统管理</a></li>
+		<li><a href="index.do" style="color: #428bca">数据字典</a></li>
+	</ol>
+</div>
+
+<div class="container-fluid">
+	<!--按钮组 -->
+	<div class="tab-btn"  style="margin-top: -25px;margin-bottom: 7px;">
+		<div class="btn-group right" data-toggle="buttons" style="margin-right: 40px;margin-top: 7px;">
+			<input type="text" value="" class="form-control" id="m_val" style="width:240px;height: 33px;">
+			<button class="btn btn-primary" onclick="findDictData();">查询</button>
+		</div>
+	</div>
+
+	<%--<div style="width: 100%;height: 36px;margin-bottom: 15px;margin-top: 15px;">
+        <div class="" data-toggle="buttons" style="margin-right: 40px;padding-left: 1326px;">
+            <input type="text" value="" class="form-control" id="m_val" style="width:240px;height: 33px;padding-top: 3px;">
+            <button class="btn btn-primary" onclick="findDictData();">查询</button>
+        </div>
+    </div>--%>
+
+	<div class="content left_div">
+		<div class="tab-content" style="float: left;height: 600px;">
+			<table class="table table-striped table-hover" style="height:100%">
+				<thead>
+				<tr>
+					<th width="80%">字典结构</th>
+				</tr>
+				</thead>
+				<!-- 查询列表 -->
+				<tbody style="height:100%;background-color: rgb(249, 249, 249);  max-height: calc(100% - 33px);" id="context_body_role">
+				<tr style="height:100%">
+					<td style="margin-top: -60px;">
+						<div class="span2 layout-box box-border">
+							<div class="row-fluid layout-center overflow_yout" style="margin-top: 53px;">
+								<div class="" id="div_tree_box" style="margin:10px;width:200px;">
+									<!-- 字典树形结构 -->
+								</div>
+							</div>
+						</div>
+					</td>
+				</tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+
+	<div class="content right_div ">
+		<div class="tab-content" style="float: left;">
+			<table class="table table-striped table-hover">
+				<thead>
+				<tr>
+					<th>&nbsp;</th>
+					<th>&nbsp;</th>
+					<th>&nbsp;</th>
+					<th>&nbsp;</th>
+					<th>&nbsp;</th>
+					<th>&nbsp;</th>
+				</tr>
+				<tr style="height: 115px;border-left: 1px solid rgb(161, 209, 255);border-right: 1px solid rgb(161, 209, 255);">
+					<th style="background:white;width:225px;border-left: 0px;">
+						<div class="tab-btn">
+							<div class="btn-group right" data-toggle="buttons">
+								<%--<button class="btn btn-primary" onclick="clearSelected();" style="margin-left: -100px;">复位</button>--%>
+								<button class="btn btn-primary" onclick="addDictData();"  >新增</button>
+								<button class="btn btn-primary" onclick="updateDictData();"  >修改</button>
+								<button class="btn btn-primary" onclick="delDictData();"   >删除</button>
+							</div>
+						</div>
+					</th>
+					<th style="background:white;">&nbsp;</th>
+					<th style="background:white;">&nbsp;</th>
+					<th style="background:white;">&nbsp;</th>
+					<th style="background:white;">&nbsp;</th>
+					<th style="background:white;  border-right: 0px;">&nbsp;</th>
+				</tr>
+				<tr id ="zidonghang">
+					<th>序列号</th>
+					<th>名称</th>
+					<th>编码</th>
+					<th>数值</th>
+					<th>备注</th>
+					<th>状态</th>
+				</tr>
+				</thead>
+				<!-- 查询列表 -->
+				<tbody style="" id="context_body_manager">
+				<!-- 							<tr> -->
+				<!-- 								<td style="text-align: center;">张三</td> -->
+				<!-- 								<td style="text-align: center;">uatchenxm</td> -->
+				<!-- 								<td style="text-align: center;">测试</td> -->
+				<!-- 								<td style="text-align: center;">测试数据</td> -->
+				<!-- 							</tr> -->
+				<!-- 							<tr> -->
+				<!-- 								<td style="text-align: center;">张三</td> -->
+				<!-- 								<td style="text-align: center;">uatchenxm</td> -->
+				<!-- 								<td style="text-align: center;">测试</td> -->
+				<!-- 								<td style="text-align: center;">测试数据</td> -->
+				<!-- 							</tr> -->
+				</tbody>
+			</table>
+		</div>
+
+	</div>
+</div>
+
+<!-- 模态提示框 -->
+<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
+					&times;
+				</button>
+				<h4 class="modal-title" id="myModalLabel">
+					温馨提示:
+				</h4>
+			</div>
+			<div class="modal-body">
+
+			</div>
+			<div class="modal-footer">
+				<button type="button" class="btn btn-submit" data-dismiss="modal">确定</button>
+				<!-- 					<button type="button" class="btn btn-default btn-cancel" data-dismiss="modal">取消</button> -->
+			</div>
+		</div>
+	</div>
+</div>
+<!-- 模态提示框 -->
+
+<script type="text/template" id="edit_dn">
+	<div class="container-fluid layout-box main-box" id="">
+		<div class="">
+			<div class="layout-box scroll_x" >
+				<div class="row-fluid layout-top" id="title_" style=" padding-right:17px; border-bottom:1px solid #d7d7d7;">
+					<table class="">
+						<thead>
+						<tr>
+							<th style="width:280px;">父节点</th>
+							<th style="width:440px;" id="f_unit_name">父节点名称测试</th>
+						</tr>
+						</thead>
+					</table>
+				</div>
+				<div class="row-fluid layout-center scroll_y scroll_x div_cha_mo" style="height: 400px;">
+					<table class="table table_ch_c" style="height:100%">
+						<tbody fm-body style="max-height: calc(100%);border-bottom: 1px solid #b7b7ba;">
+						<tr>
+							<td style="width:30%">名称<span style="color:red">&nbsp;&nbsp;*</span></td>
+							<td style="width:51%"><input type='text' class='unit_name form-control' style='width: 250px;' value=''></td>
+						</tr>
+						<tr>
+							<td style="width:30%">编码<span style="color:red">&nbsp;&nbsp;*</span></td>
+							<td style="width:51%"><input type='text' class='unit_code form-control' style='width: 250px;' value=''></td>
+						</tr>
+						<tr>
+							<td style="width:30%">数值<span style="color:red">&nbsp;&nbsp;*</span></td>
+							<td style="width:51%"><input type='text' class='unit_val form-control' style='width: 250px;' value=''></td>
+						</tr>
+						<%--		<tr>
+									<td style="width:30%">序列号<span style="color:red">&nbsp;&nbsp;*</span></td>
+									<td style="width:51%"><input type='text' class='unit_serialnum form-control' style='width: 250px;' value=''></td>
+								</tr>--%>
+						<tr>
+							<td style="width:30%">状态<span style="color:red">&nbsp;&nbsp;*</span></td>
+							<td style="width:51%">
+								<input type='text' class='unit_status form-control' id='unit_status' name='unit_status'>
+							</td>
+						</tr>
+						<tr>
+							<td style="width:30%">备注</td>
+							<td style="width:51%"><textarea class='unit_remark form-control' style='width: 250px;height:120px;resize: none'></textarea></td>
+						</tr>
+						<tr id="err_msg_tr" style="display:none">
+							<td style="width: 193.5px;"><span>&nbsp;</span></td>
+							<td style="text-align: left; width: 154.5px;" >
+								<li id="err_msg_li_cont" style="color: red;"></li>
+							</td>
+						</tr>
+						</tbody>
+					</table>
+				</div>
+				<div style="font-size: smaller;color: red;" id="mes_title"></div>
+			</div>
+		</div>
+	</div>
+</script>
+<script type="text/template" id="apartmengt_peo">
+	<input type="text" name="keyword" class="input input_large form-control" placeholder="输入员工工号或姓名" />
+	<div id="div_tree_box_p" class="tree_win mt10"></div>
+</script>
+</body>
+</html>

+ 52 - 0
src/main/webapp/WEB-INF/jsp/gergrahTest.jsp

@@ -0,0 +1,52 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: c_suncuixiang-001
+  Date: 2018/7/4
+  Time: 17:14
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>测试表单数据提交</title>
+</head>
+<body>
+<form action="/claim-risk/graph/searchEntity.do" method="POST">
+    案件号: <input id="entityName" type="text" name="entityName">
+    <br />
+    查询类型: <input id="searchType" type="text" name="searchType" />
+    限制条数: <input id="limit" type="text" name="limit" />
+    <input id="1" type="submit" value="提交" />
+</form>
+
+
+<br/>
+
+<%--<form action="/claim-risk/dataBase/expandGraph.do" method="POST">
+    案件号1: <input id="entityId" type="text" name="entityId">
+    <br />
+    查询类型1: <input id="level" type="text" name="level" />
+    限制条数1: <input id="type" type="text" name="type" />
+    &lt;%&ndash;限制条数1: <input id="isCustom" type="" name="isCustom" />&ndash;%&gt;
+    <input id="2" type="submit" value="提交" />
+</form>--%>
+
+
+<br/>
+
+
+<br/>
+
+<form action="/claim-risk/dataBase/expandGraph.do" method="POST">
+    案件号: <input id="entityId" type="text" name="entityId">
+    <br />
+    等级: <input id="level" type="text" name="level" />
+    类型: <input id="type" type="text" name="type" />
+   <%-- 限制条数: <input id="isCustom" type="text" name="isCustom" />--%>
+    <input  id="3" type="submit" value="提交" />
+</form>
+
+
+</body>
+</html>
+

+ 298 - 0
src/main/webapp/WEB-INF/jsp/graph/analysis/bianhua.jsp

@@ -0,0 +1,298 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+    <%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body class="bg1">
+        <jsp:include page="../top.jsp">
+        <jsp:param name="index" value="2" />
+        </jsp:include>
+       	<jsp:include page="../left.jsp">
+       	<jsp:param name="index" value="2" />
+       	</jsp:include>
+		<div class="main">
+			<div class="selectCom">
+				行业:<div style="display: inline-block; position: relative;">
+						<!-- <input class="statSelect" type="text"/><i class="selIcon"></i> -->
+					<select style="width:200px;height:29px;margin-right:50px;">
+					      <option value="all">全部</option>
+						<c:forEach items="${hyList}" var="list">
+						  <option value="${list.key}">${list.value}</option>
+						</c:forEach>
+						</select>
+					</div>
+					<a href="javascript:void(0)"><span class="statBtn" >统计</span></a>
+			</div>
+			<div class="chartTable" id="chartTable">
+				<div class="rowForLive">
+					<!-- <div class="LiveItemLeft"><img class="imgChart" src="../images/indexNew/chart1.png"></div>
+					<div class="LiveItemRight"><img class="imgChart" src="../images/indexNew/chart1.png"></div> -->
+					<div style="background-color: #272A48;" >
+					   <div class="LiveItemLeft" id="char1"></div>	
+					   <div class="LiveItemRight"  id="char2" > </div>				 
+					</div>
+				</div>
+				<div class="rowForLive">
+					 <div class="LiveItemLeft"   id="char3"></div>	
+					 <div class="LiveItemRight"  id="char4"></div>		
+				</div>
+				<div class="clear"></div>
+				<div  style="height: 455px">
+					  <div style="margin-left:420px;margin-top: 20px;">
+					             <span>${nowYear }度市场主体变化趋势分析</span>
+					        </div>
+					 <div  id="chart5" class="bottomRowForLive" style="height:400px;"></div>		
+				</div>
+			</div>
+		</div>
+		<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+		<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+		<script src="${ctx}/js/echarts-plain.js" ></script>
+		<script>
+			resize();
+			$(window).resize(function(){
+				resize();
+			});
+			function resize(){
+				//获取窗口高度
+				var windowheight=$(window).height();
+				var searchCon = windowheight-40-146;
+				$(".searchCon").css("height",windowheight-40);
+				$(".main").css("height",windowheight-40);
+				$(".chartTable").css("height",windowheight-80);
+			}
+			//perfect-scrollbar滚动条插件
+			$('#chartTable').perfectScrollbar();
+			
+		  	
+          	
+          	
+		 </script>
+         
+         <script type="text/javascript">
+             //业务处理
+              
+              $(".selectCom").find("a").click(function(){
+            	 var val=$(".selectCom").find("select").val(); 
+            	  var myChart1 = echarts.init(document.getElementById("char1"));	
+        		  var myChart2 = echarts.init(document.getElementById("char2"));
+        		  var myChart3 = echarts.init(document.getElementById("char3"));
+        		  var myChart4 = echarts.init(document.getElementById("char4"));
+         		  var myChart5 = echarts.init(document.getElementById("chart5"));
+        		  myChart1.showLoading();
+        		  myChart2.showLoading();
+        		  myChart3.showLoading();
+        		  myChart4.showLoading();
+        		  myChart5.showLoading();
+            	 $.post("${ctx}/enterpriseAnalysis/bianhua/hangye1.do",{hangye:val},function(data){           		 
+            		  console.info(data);//修改点
+            		
+            		  myChart1.setOption(getOption(data.tb.newEntitysRate-1,data.hb.newEntitysRate-1,"市场主体注册/同环比"));	 
+            		  myChart2.setOption(getOption(data.tb.newMoneyRate-1,data.hb.newMoneyRate-1,"资金流入/同环比"));
+            		  myChart3.setOption(getOption(data.tb.leaveEntitysRate-1,data.hb.leaveEntitysRate-1,"市场主体退出/同环比"));	 
+            		  myChart4.setOption(getOption(data.tb.leaveMoneyRate-1,data.hb.leaveMoneyRate-1,"资金流失/同环比"));
+            		  myChart1.hideLoading();
+            		  myChart2.hideLoading();
+            		  myChart3.hideLoading();
+            		  myChart4.hideLoading();
+            		  //data.tb//里面有同比数据,新增,退出,存活 都有。
+            		  //新增数量同比:(data.tb.newEntitysRate-1)
+            		  //新增资本同比:(data.tb.newMoneyRate-1)
+            		  //退出数量同比:(data.tb.leaveMoneyRate-1)
+            		  //退出资本同比:(data.tb.leaveMoneyRate-1)
+            		  //存活数量同比:(data.tb.livesRate-1)
+            		  //存活资本同比:(data.tb.liveMoneyRate-1)
+            		  //data.hb//里面有环比数据,新增,退出,存活 都有。字段同上。
+            	 });
+            	 $.post("${ctx}/enterpriseAnalysis/bianhua/hangye2.do",{hangye:val},function(data){           		 
+            		  console.info(data);//修改点
+            		  var data1=new Array();
+            		  var data2=new Array();
+            		  for(var c=0;c<data.jn.length;c++){
+            			  
+            			  data1[c]=data.jn[c].newEntitys;
+            			  data2[c]=data.jn[c].leaveEntitys;
+            			  
+            		  }
+            		  line(data1,data2,myChart5);
+            		  myChart5.hideLoading();
+            		  //data.jn//里面有今年数据列表,每一项是每月的数据,如下。
+            		  //新增数量:data.jn[0].newEntitys
+            		  //新增资本:data.jn[0].newMoney
+            		  //退出数量:data.jn[0].leaveMoney
+            		  //退出资本:data.jn[0].leaveMoney
+            		  //存活数量:data.jn[0].lives
+            		  //存活资本:data.jn[0].liveMoney
+            		  //数据月份:data.jn[0].timePoint
+            		  //data.qn//同上
+            	 });
+            	 
+              });
+              $(".selectCom").find("a").click();
+          	//设置OPTION 同环比
+          	function getOption(data1,data2,title){
+          	 	var labelTop = {
+              		    normal : {
+              		        label : {
+              		            show : true,
+              		            position : 'center',
+              		            formatter : '{b}',
+              		            textStyle: {
+              		                baseline : 'bottom'
+              		            }
+              		        },
+              		        labelLine : {
+              		            show : false
+              		        }
+              		    }
+              		};
+              		var labelFromatter = {
+              		    normal : {
+              		        label : {
+              		            formatter : function (params,a,b){
+              		            	var c=100 - (--b);
+              		                return c.toFixed(2) + '%'
+              		            }, 
+              		            textStyle: {
+              		                baseline : 'top'
+              		            }
+              		        }
+              		    }
+              		};
+              		var labelBottom = {
+              		    normal : {
+              		        color: '#ccc',
+              		        label : {
+              		            show : true,
+              		            position : 'center'
+              		        },
+              		        labelLine : {
+              		            show : false
+              		        }
+              		    },
+              		    emphasis: {
+              		        color: 'rgba(0,0,0,0)'
+              		    }
+              		};
+              		var radius = [65, 95];
+              		var option = {
+              			title : {
+              			        text: title,
+              			        x: 'right',
+              			         textStyle : {
+              					   fontSize : 14,
+              					   fontWeight : 'bolder',
+              					   color : 'white'
+              				    }
+              			},
+              		    legend: {
+              		        x : '10px',   
+              		        data:[
+              		            '同比','环比'
+              		        ],
+              		        textStyle : {
+         					   fontSize : 11,
+         					   fontWeight : 'bolder',
+         					   color : 'white'
+         				    }
+              		    },
+              		    color:["#00B7EF","#FFC200"],
+              		    series : [
+              		        {
+              		            type : 'pie',
+              		            center : ['30%', '55%'],
+              		            radius : radius,
+              		            x: '0%', // for funnel
+              		            itemStyle : labelFromatter,
+              		            data : [
+              		                {name:'other', value:100-data1, itemStyle : labelBottom},
+              		                {name:'同比', value:data1,itemStyle : labelTop}
+              		            ]
+              		        },
+              		        {
+              		            type : 'pie',
+              		            center : ['70%', '55%'],
+              		            radius : radius,
+              		            x:'20%', // for funnel
+              		            itemStyle : labelFromatter,
+              		            data : [
+              		                  {name:'other', value:100-data2, itemStyle : labelBottom},
+              		                  {name:'环比', value:data2,itemStyle : labelTop}
+              		            ]
+              		        }
+              		    ]
+              		};
+              		
+              		return option;
+          	}
+          	
+            //曲线图
+      	  function line(data1,data2,myChart){
+      		  option = {
+      				   tooltip: {
+      				       trigger: "item",
+      				       formatter: "{a} <br/>{b} : {c}"
+      				   },
+      				   color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+      				   legend: {
+      				       x: 'left',
+      				       data: ["今年注册", "今年注销"],
+      				       textStyle : {
+        					   fontSize : 12,
+        					   fontWeight : 'bolder',
+        					   color : 'white'
+        				    }
+      				   },
+      				   xAxis: [
+      				       {
+      				           type: "category",
+      				           name: "",
+      				           splitLine: {show: false},
+      				           data: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月","十月","十一月","十二月"],
+      				           axisLabel :{
+       						    	textStyle:{
+       						    		 color: 'white'
+       						    	}
+       						    }
+      				       }
+      				   ],
+      				   yAxis: [
+      				       {
+      				           type: "log",
+      				           name: "数量",
+      				           axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    }
+      				       }
+      				   ],  
+      				   calculable: false,
+      				   series: [
+      				       {
+      				           name: "今年注册",
+      				           type: "line",
+      				           data: data1
+
+      				       },
+      				       {
+      				           name: "今年注销",
+      				           type: "line",
+      				           data: data2
+
+      				       }
+      				   ]
+      				};
+      				                
+      	      myChart.setOption(option);
+      	  }
+         </script>
+</body>
+</html>

+ 364 - 0
src/main/webapp/WEB-INF/jsp/graph/analysis/fazhan.jsp

@@ -0,0 +1,364 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+    <%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body class="bg1">
+        <jsp:include page="../top.jsp">
+        <jsp:param name="index" value="2" />
+        </jsp:include>
+       	<jsp:include page="../left.jsp">
+       	<jsp:param name="index" value="4" />
+       	</jsp:include>
+		<div class="main">
+			<div class="chartTable" id="chartTable">
+				<div class="rowForLive">
+					 <div>   
+					    <div style="margin-left: 428px;">2016年度发展速度同比情况</div>
+					   <div  id="chart1" class="bottomRowForLive" style="height:300px;"></div>			 
+					</div>
+				</div>
+				<div class="rowForLive">
+					<div >
+					        <div style="margin-left:428px;"> 2016年行业发展分析 </div>      
+					        <div  id="chart2" class="bottomRowForLive" style="height:400px;"></div>		
+					</div>
+				</div>
+				<div class="clear"></div>
+					<!-- <img class="imgChart" src="../images/indexNew/chart5.png"> -->
+					<div >
+					        <div style="margin-left:420px;margin-top: 20px;">
+					             <span>2007-2016年度市场主体发展趋势</span>
+					        </div>
+					        <div  id="chart3" class="bottomRowForLive" style="height:400px;"></div>		
+				   </div>
+			</div>
+		</div>
+		<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+		<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+		<script src="${ctx}/js/echarts-plain.js" ></script>
+		<script>
+			resize();
+			$(window).resize(function(){
+				resize();
+			});
+			function resize(){
+				//获取窗口高度
+				var windowheight=$(window).height();
+				var searchCon = windowheight-40-146;
+				$(".searchCon").css("height",windowheight-40);
+				$(".main").css("height",windowheight-40);
+				$(".chartTable").css("height",windowheight-80);
+			}
+			//perfect-scrollbar滚动条插件
+			$('#chartTable').perfectScrollbar();
+			
+		  	
+          	
+          	
+		 </script>
+         
+         <script type="text/javascript">
+             //业务处理   
+          $(function(){
+          	pie();//饼状图
+ 	         bar();//柱状图
+ 	         line();//曲线图
+          });
+ 	         
+ 	         
+            //柱状图
+      	  function bar(){
+      		  option = {
+      				    tooltip : {
+      				        trigger: 'axis'
+      				    },
+      				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+      				    calculable : true,
+      				    xAxis : [
+      				        {
+      				            type : 'category',
+      				            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    yAxis : [
+      				        {
+      				            type : 'value',
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    series : [
+      				        {
+      				            name:'蒸发量',
+      				            type:'bar',
+      				            itemStyle: {
+      				                normal: {
+      				                    color: function(params,a,b) {
+      				                        // build a color map as your need.
+      				                        var colorList = [
+      				                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
+      				                           '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+      				                           '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+      				                        ];
+      				                        return colorList[a]
+      				                    },
+      				                    label: {
+      				                        show: true,
+      				                        position: 'top',
+      				                        formatter: '{b}\n{c}'
+      				                    }
+      				                }
+      				            },
+      				            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
+      				         
+      				        }
+      				    ]
+      				};
+      		  var myChart = echarts.init(document.getElementById("chart2"));
+      	      myChart.setOption(option);
+      	      echartData.hangye(myChart,option);	
+      	  }
+ 	         
+      	//饼状图
+      	  function pie(){
+      		  
+      		var labelTop = {
+          		    normal : {
+          		        label : {
+          		            show : true,
+          		            position : 'center',
+          		            formatter : '{b}',
+          		            textStyle: {
+          		                baseline : 'bottom'
+          		            }
+          		        },
+          		        labelLine : {
+          		            show : false
+          		        }
+          		    }
+          		};
+          		var labelFromatter = {
+          		    normal : {
+          		        label : {
+          		            formatter : function (params,a,b){
+          		                return 100 - (--b) + '%'
+          		            }, 
+          		            textStyle: {
+          		                baseline : 'top'
+          		            }
+          		        }
+          		    }
+          		};
+          		var labelBottom = {
+          		    normal : {
+          		        color: '#ccc',
+          		        label : {
+          		            show : true,
+          		            position : 'center'
+          		        },
+          		        labelLine : {
+          		            show : false
+          		        }
+          		    },
+          		    emphasis: {
+          		        color: 'rgba(0,0,0,0)'
+          		    }
+          		};
+          		var radius = [65, 95];
+          		var option = {
+          		    legend: {
+          		        x : '10px',   
+          		        data:[
+          		            '第一产业','第二产业','第三产业'
+          		        ],
+          		        textStyle : {
+     					   fontSize : 11,
+     					   fontWeight : 'bolder',
+     					   color : 'white'
+     				    }
+          		    },
+          		    color:["#FFC200","#00B692","#2070DA"],
+          		    series : [
+          		        {
+          		            type : 'pie',
+          		            center : ['20%', '55%'],
+          		            radius : radius,
+          		            x: '0%', // for funnel
+          		            itemStyle : labelFromatter,
+          		            data : [
+          		                {name:'other', value:46, itemStyle : labelBottom},
+          		                {name:'第一产业', value:54,itemStyle : labelTop}
+          		            ]
+          		        },
+          		        {
+          		            type : 'pie',
+          		            center : ['50%', '55%'],
+          		            radius : radius,
+          		            x:'20%', // for funnel
+          		            itemStyle : labelFromatter,
+          		            data : [
+          		                {name:'other', value:56, itemStyle : labelBottom},
+          		                {name:'第二产业', value:44,itemStyle : labelTop}
+          		            ]
+          		        },
+          		       {
+          		            type : 'pie',
+          		            center : ['80%', '55%'],
+          		            radius : radius,
+          		            x:'20%', // for funnel
+          		            itemStyle : labelFromatter,
+          		            data : [
+          		                {name:'other', value:56, itemStyle : labelBottom},
+          		                {name:'第三产业', value:44,itemStyle : labelTop}
+          		            ]
+          		        }
+          		    ]
+          		};                  
+      		  var myChart = echarts.init(document.getElementById("chart1"));
+      	      myChart.setOption(option);
+      	      echartData.jingjileixing(myChart,option);	
+      	  }
+      
+    	   //曲线图
+    	  function line(){
+    	
+    		  option = {
+    				    tooltip : {
+    				        trigger: 'axis'
+    				    },
+    				    legend: {
+    				        data:['今年','去年'],
+    				        textStyle : {
+    	     					   fontSize : 11,
+    	     					   fontWeight : 'bolder',
+    	     					   color : 'white'
+    	     				    }
+    				    },
+    				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+    				    calculable : true,
+    				    xAxis : [
+    				        {
+    				            type : 'category',
+    				            boundaryGap : false,
+    				            data : ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
+    				            axisLabel :{
+     						    	textStyle:{
+     						    		 color: 'white'
+     						    	}
+     						    }
+    				        }
+    				    ],
+    				    yAxis : [
+    				        {
+    				            type : 'value',
+    				            axisLabel :{
+     						    	textStyle:{
+     						    		 color: 'white'
+     						    	}
+     						    }
+    				        }
+    				    ],
+    				    series : [
+    				        {
+    				            name:'今年',
+    				            type:'line',
+    				            data:[120, 132, 101, 134, 90, 230, 210]
+    				        },
+    				        {
+    				            name:'去年',
+    				            type:'line',
+    				            data:[220, 182, 191, 234, 290, 330, 310]
+    				        }
+    				    ]
+    				};
+    				                    	                
+    		  var myChart = echarts.init(document.getElementById("chart3"));
+    	      myChart.setOption(option);
+    	      echartData.qushi(myChart,option);                    
+    	  }
+         </script>
+         <script>
+		var echartData = {
+			jingjileixing : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/fazhan/jingjileixing.do",
+				{},
+				function(data){
+					var fullvalue = data.primary.newEntitys + data.secondary.newEntitys + data.tertiary.newEntitys;
+					option.series[0].data[0].value = (100-data.primary.newEntitys/fullvalue*100).toFixed(0);
+					option.series[0].data[1].value = (data.primary.newEntitys/fullvalue*100).toFixed(0);
+					option.series[1].data[0].value = (100-data.secondary.newEntitys/fullvalue*100).toFixed(0);
+					option.series[1].data[1].value = (data.secondary.newEntitys/fullvalue*100).toFixed(0);
+					option.series[2].data[0].value = (100-data.tertiary.newEntitys/fullvalue*100).toFixed(0);
+					option.series[2].data[1].value = (data.tertiary.newEntitys/fullvalue*100).toFixed(0);
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return option;
+				});
+			},
+			hangye : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/fazhan/hangye.do",
+				{},
+				function(data){
+					console.log(data)
+					var lineData = [];
+					var xAsitData = [];
+					for(var i=0;i<data.length;i++){
+						lineData.push(data[i].newEntitys);
+						xAsitData.push(data[i].trades);
+					}
+					option.xAxis[0].data = xAsitData;
+					option.series[0].data = lineData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return option;
+				});
+			},
+			qushi : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/fazhan/qushi.do",
+				{},
+				function(data){
+					var lineData = [];
+					var lineData1 = [];
+					var xAsitData = [];
+					for(var i=0;i<data.jn.length;i++){
+						lineData.push(data.jn[i].newEntitys);
+					}
+					for(var i=0;i<data.qn.length;i++){
+						lineData1.push(data.qn[i].newEntitys);
+					}
+					for(;lineData.length<12;){
+						lineData.push("-");
+					}
+					for(;lineData1.length<12;){
+						lineData1.push("-");
+					}
+					option.series[0].data = lineData;
+					option.series[1].data = lineData1;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return lineData;
+				});
+			}
+		};
+	</script>
+</body>
+</html>

+ 379 - 0
src/main/webapp/WEB-INF/jsp/graph/analysis/fenbu.jsp

@@ -0,0 +1,379 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body class="bg1">
+       <jsp:include page="../top.jsp">
+       <jsp:param name="index" value="2" />
+       </jsp:include>
+       <jsp:include page="../left.jsp">
+       <jsp:param name="index" value="0" />
+       </jsp:include>
+        <div class="main" id="main" style="position:relative;padding-bottom: 12px;padding-right: 22px;">
+		<div class="chartBox">
+			<p>${nowYear}度市场主体各市县分布情况</p>
+			<div class="chartIncludeTable">
+				<div class="forChart" style="background-color:#303A57">
+					<%-- <img class="imgChart" src="${ctx}/images/indexNew/chart3.png"> --%>
+					 <div id="chart1" style="height: 500px;width:98%;"></div>
+				</div>
+				<div class="forTable">
+				      <div>
+					      <span style="margin:6px;color: white">市场主体总数:</span>
+					      <span id="zongshu" style="margin:6px;font-size:30px;color: yellow">00,0000 个</span>
+					      <span style="margin-left: 20px;margin-right:5px;">同比:<font id="tongbi">00.0</font>% <img  style="margin-top:-6px;width:5%" alt="" src="${ctx}/images/arrow_top.png"></span>
+					   </div>
+				      <div  style="height:455px;overflow:auto"   id="sxph" >
+						  <table>
+							<thead>
+								<tr><th>市县名称</th><th>注册数</th><th>退出数</th><th>总数</th></tr>
+							</thead>
+							
+							   <tbody id="shixian"></tbody>													
+						  </table>
+						</div>
+					
+				</div>
+				<div class="clear"></div>
+			</div>
+		</div>
+		<div class="chartBox">
+			<p>${nowYear}度行业类型分析(TOP 10)</p>
+			<div class="chartIncludeTable">
+				<div class="forChart" style="background-color:#303A57">
+					<%-- <img class="imgChart" src="${ctx}/images/indexNew/chart4.png"> --%>
+					<div id="chart2" style="height:330px;width:98%;"></div>
+				</div>
+				<div class="forTable" >
+				  <div style="height:330px; overflow:auto"  id="hyph">
+					<table>
+						<thead>
+							<tr><th>行业类型</th><th>注册数</th><th>退出数</th><th>总数</th></tr>
+						</thead>
+						<tbody id="hangyes"></tbody>	
+					</table>
+				  </div>
+				</div>
+				<div class="clear"></div>
+			</div>
+		</div>
+		<div class="chartBox">
+			<p>${nowYear}度资金流入情况分析/亿元(TOP 10)</p>
+			<%-- <img class="imgChart" src="${ctx}/images/indexNew/chart2.png"> --%>
+			<div id="chart3" style="height:400px;width:98%;"></div>
+		</div>
+	</div>
+	<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+	<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+	<script src="${ctx}/js/echarts/ecom/esl/1-6-10/esl.js"></script>
+	<script src="${ctx}/js/echarts-plain.js" ></script>
+	<!-- 模块化框架配置 -->
+		<script type="text/javascript">
+			seajs.use.config({
+				paths : {
+					"echarts" : "${ctx}/js/echarts/build/echarts",
+					"echarts/chart/map" : "${ctx}/js/echarts/build/echarts-map"
+				}
+			});
+		</script>
+	<script>
+		resize();
+		$(window).resize(function(){
+			resize();
+		});
+		function resize(){
+			//获取窗口高度
+			var windowheight=$(window).height();
+			var searchCon = windowheight-40-146;
+			$(".searchCon").css("height",windowheight-40);
+			$(".main").css("height",windowheight-40-12-12);
+		}
+		//perfect-scrollbar滚动条插件
+		$('#main').perfectScrollbar();
+	</script>
+	
+	<script type="text/javascript">
+	  $(function(){
+	  //业务处理
+	   getMap();//海南分布地图
+       pie();//饼图展示
+       bar();//柱状图
+       echartData.quanshen();
+	  });
+	  //地图
+	  function getMap(){
+		  seajs.use(["echarts","echarts/chart/map"],  
+				  
+		   function (echarts){
+			  
+			   var  option = {		   
+					    /* legend: {
+					        orient: 'vertical',
+					        x:'right',
+					        data:['随机数据']
+					    }, */
+					    dataRange: {
+					        min: 0,
+					        max: 10000,
+					        color:['#2070DA','#00B7EF'],
+					        text:['高','低'],           // 文本,默认为数值文本
+					        x:"right",
+					        textStyle : {
+           					   fontSize : 14,
+           					   fontWeight : 'bolder',
+           					   color : 'white'
+           				    },
+					        calculable : true
+					    },
+					    series : [
+					        {
+					            name: '市场主体数量',
+					            type: 'map',
+					            mapType: '海南',
+					            selectedMode : 'single',
+					            itemStyle:{
+					                normal:{label:{show:true}},
+					                emphasis:{label:{show:true}}
+					            },
+					            data:[
+					                {name: '儋州市',value: Math.round(Math.random()*1000)},
+					                {name: '文昌市',value: Math.round(Math.random()*1000)},
+					                {name: '乐东黎族自治县',value: Math.round(Math.random()*1000)},
+					                {name: '三亚市',value: Math.round(Math.random()*1000)},
+					                {name: '琼中黎族苗族自治县',value: Math.round(Math.random()*1000)},
+					                {name: '东方市',value: Math.round(Math.random()*1000)},
+					                {name: '海口市',value: Math.round(Math.random()*1000)},
+					                {name: '万宁市',value: Math.round(Math.random()*1000)},
+					                {name: '澄迈县',value: Math.round(Math.random()*1000)},
+					                {name: '白沙黎族自治县',value: Math.round(Math.random()*1000)},
+					                {name: '琼海市',value: Math.round(Math.random()*1000)},
+					                {name: '昌江黎族自治县',value: Math.round(Math.random()*1000)},
+					                {name: '临高县',value: Math.round(Math.random()*1000)},
+					                {name: '陵水黎族自治县',value: Math.round(Math.random()*1000)},
+					                {name: '屯昌县',value: Math.round(Math.random()*1000)},
+					                {name: '定安县',value: Math.round(Math.random()*1000)},
+					                {name: '保亭黎族苗族自治县',value: Math.round(Math.random()*1000)},
+					                {name: '五指山市',value: Math.round(Math.random()*1000)}
+					            ]
+					        }
+					    ]
+					};
+			      var myChart1 = echarts.init(document.getElementById("chart1"));
+			     // myChart1.setOption(option);
+			      echartData.shixian(myChart1,option);
+			      $('#sxph').perfectScrollbar();
+		       }
+			)
+	 
+	 }
+       
+        //饼图展示
+	  function pie(){
+	
+		  option = {
+				    tooltip : {
+				        trigger: 'item',
+				        formatter: "{a} <br/>{b} : {c} ({d}%)"
+				    },
+				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+				    legend: {
+				        orient : 'vertical',
+				        x : 'left',
+				        data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
+				        textStyle : {
+       					   fontSize : 12,
+       					   fontWeight : 'bolder',
+       					   color : 'white'
+       				    }
+				    },
+				    calculable : true,
+				    series : [
+				        {
+				            name:'访问来源',
+				            type:'pie',
+				            radius : ['50%', '70%'],
+				            itemStyle : {
+				                normal : {
+				                    label : {
+				                        show : false
+				                    },
+				                    labelLine : {
+				                        show : false
+				                    }
+				                },
+				                emphasis : {
+				                    label : {
+				                        show : true,
+				                        position : 'center',
+				                        textStyle : {
+				                            fontSize : '30',
+				                            fontWeight : 'bold'
+				                        }
+				                    }
+				                }
+				            },
+				            data:[
+				                {value:335, name:'直接访问'},
+				                {value:310, name:'邮件营销'},
+				                {value:234, name:'联盟广告'},
+				                {value:135, name:'视频广告'},
+				                {value:1548, name:'搜索引擎'}
+				            ]
+				        }
+				    ]
+				};
+		  var myChart = echarts.init(document.getElementById("chart2"));
+	      //myChart.setOption(option);
+	      echartData.hangye(myChart,option);
+	      $('#hyph').perfectScrollbar();
+	  }
+        
+        //柱状图
+	  function bar(){
+		  
+		  option = {
+				    tooltip : {
+				        trigger: 'axis'
+				    },
+				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+				    calculable : true,
+				    xAxis : [
+				        {
+				            type : 'category',
+				            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
+				            axisLabel :{
+						    	textStyle:{
+						    		 color: 'white'
+						    	}
+						    },
+				        }
+				    ],
+				    yAxis : [
+				        {
+				            type : 'value',
+				            axisLabel :{
+						    	textStyle:{
+						    		 color: 'white'
+						    	}
+						    },
+				        }
+				    ],
+				    series : [
+				        {
+				            name:'资金投入',
+				            type:'bar',
+				            itemStyle: {
+				                normal: {
+				                    color: function(params,a,b) {
+				                        // build a color map as your need.
+				                        var colorList = [
+				                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
+				                           '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+				                           '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+				                        ];
+				                        return colorList[a]
+				                    },
+				                    label: {
+				                        show: false,
+				                        position: 'top',
+				                        formatter: '{b}\n{c}'
+				                    }
+				                }
+				            },
+				            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
+				         
+				        }
+				    ]
+				};
+		  var myChart = echarts.init(document.getElementById("chart3"));
+	     // myChart.setOption(option);	
+		  echartData.hangyezijin(myChart,option);
+	  }
+	</script>
+	<script>
+		var echartData = {
+			quanshen : function(){
+				$.post("${ctx}/enterpriseAnalysis/fenbu/quanshen.do",
+				{},
+				function(data){
+					//$("#zongshu").text(data.lives);
+					$("#zongshu").text("77,2206");
+					var tongbi = (data.livesRate - 1)*100;
+					$("#tongbi").text(tongbi.toFixed(2));
+					return {
+						zongshu:data.lives,
+						zongzijin:data.liveMoney,
+					}
+				});
+			},
+			shixian : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/fenbu/shixian.do",
+				{},
+				function(data){
+					var mapData = [];
+					$("#shixian").empty();
+					for(var i=0;i<data.length;i++){
+						//console.log((data[i].lives*100/765838).toFixed(2))
+						mapData.push({
+							name: data[i].cityCode,value: data[i].lives
+						});
+						$("#shixian").append("<tr><td>"+data[i].cityCode+"</td><td>"+data[i].newEntitys+"</td><td>"+data[i].leaveEntitys+"</td><td>"+data[i].lives+"</td></tr>")
+					}
+					option.series[0].data = mapData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return mapData;
+				});
+			},
+			hangye : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/fenbu/hangye.do",
+				{},
+				function(data){
+					var legendData = [];
+					var pieData = [];
+					$("#hangyes").empty();
+					for(var i=0;i<data.length;i++){
+						legendData.push(data[i].trades);
+						pieData.push({
+							name: data[i].trades,value: data[i].lives
+						});
+						$("#hangyes").append("<tr><td>"+data[i].trades+"</td><td>"+data[i].newEntitys+"</td><td>"+data[i].leaveEntitys+"</td><td>"+data[i].lives+"</td></tr>")
+					}
+					option.series[0].data = pieData;
+					option.legend.data = legendData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return {legendData:legendData,pieData:pieData};
+				});
+			},
+			hangyezijin : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/fenbu/hangyezijin.do",
+				{},
+				function(data){
+					var lineData = [];
+					var xAsitData = [];
+					for(var i=0;i<data.length;i++){
+						lineData.push((data[i].newMoney/100000000).toFixed(2));
+						xAsitData.push(data[i].trades);
+					}
+					option.xAxis[0].data = xAsitData;
+					option.series[0].data = lineData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return lineData;
+				});
+			}
+		};
+	</script>
+	</body>
+</html>

+ 361 - 0
src/main/webapp/WEB-INF/jsp/graph/analysis/huoyuedu.jsp

@@ -0,0 +1,361 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body class="bg1">
+         <jsp:include page="../top.jsp">
+         <jsp:param name="index" value="2" />
+         </jsp:include>
+       	 <jsp:include page="../left.jsp">
+       	 <jsp:param name="index" value="1" />
+       	 </jsp:include>
+        <div class="main" id="main" style="position:relative;padding-bottom: 12px;padding-right: 22px;">
+        
+        <div class="chartBox">
+			<p>市场主体活跃度指数</p>
+			<%-- <img class="imgChart" src="${ctx}/images/indexNew/chart2.png"> --%>
+			<div id="chart1" style="height:500px;width:98%;"></div>
+		</div>
+		
+		
+		<div class="chartBox">
+			<div style="margin-left: 250px;margin-top: 10px;">
+				<span>市场主体活跃指数 TOP 10</span>
+				<span style="margin-left:290px;">资本活跃指数 TOP 10</span>
+			</div>
+			<div class="chartIncludeTable">
+				<div class="forTable">
+					<table>
+						<thead>
+							<tr><th>行业类型</th><th>活跃指数</th></tr>
+						</thead>
+						<tbody id="huoyue1">
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+						</tbody>
+					</table>
+				</div>
+				<div class="forTable">
+					<table>
+						<thead>
+							<tr><th>行业类型</th><th>活跃指数</th></tr>
+						</thead>
+						<tbody id="huoyue2">
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+							<tr><td>行业1</td><td>123</td></tr>
+						</tbody>
+					</table>
+				</div>
+				<div class="clear"></div>
+			</div>
+		</div>		
+		
+	</div>
+	<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+	<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+	<script src="${ctx}/js/echarts/ecom/esl/1-6-10/esl.js"></script>
+	<script src="${ctx}/js/echarts-plain.js" ></script>
+	<!-- 模块化框架配置 -->
+		<script type="text/javascript">
+			seajs.use.config({
+				paths : {
+					"echarts" : "${ctx}/js/echarts/build/echarts",
+					"echarts/chart/map" : "${ctx}/js/echarts/build/echarts-map"
+				}
+			});
+		</script>
+	<script>
+
+		resize();
+		$(window).resize(function(){
+			resize();
+		});
+		function resize(){
+			//获取窗口高度
+			var windowheight=$(window).height();
+			var searchCon = windowheight-40-146;
+			$(".searchCon").css("height",windowheight-40);
+			$(".main").css("height",windowheight-40-12-12);
+		}
+		//perfect-scrollbar滚动条插件
+		$('#main').perfectScrollbar();
+	</script>
+	
+	<script type="text/javascript">
+	  //业务处理
+	  $(function(){
+	  	dashed();//散点图
+	  	echartData.paihang1();
+	  	echartData.paihang2();
+	  });
+	  function dashed(){
+		  option = {
+				    /* title : {
+				        text: '男性女性身高体重分布',
+				        subtext: '抽样调查来自: Heinz  2003'
+				    }, */
+				    tooltip : {
+				        trigger: 'axis',
+				        showDelay : 0,
+				        formatter : function (params) {
+				            if (params.value.length > 1) {
+				                return params.seriesName + ' :<br/>'
+				                   + params.value[0] + 'cm ' 
+				                   + params.value[1] + 'kg ';
+				            }
+				            else {
+				                return params.seriesName + ' :<br/>'
+				                   + params.name + ' : '
+				                   + params.value + 'kg ';
+				            }
+				        }/*,  
+				        axisPointer:{
+				            show: true,
+				            type : 'cross',
+				            lineStyle: {
+				                type : 'dashed',
+				                width : 1
+				            }
+				        }*/
+				    },
+				    legend: {
+				        data:['市场主体活跃指数'],
+				        textStyle : {
+      					   fontSize : 11,
+      					   fontWeight : 'bolder',
+      					   color : 'white'
+      				    }
+				    },
+				    xAxis : [
+				        {
+				        	name : "CRI",
+				            type : 'value',
+				            scale:true,
+				            axisLabel : {
+				                formatter: '{value}',
+				                textStyle:{
+ 						    		 color: 'white'
+ 						    	}
+				            }
+				        }
+				    ],
+				    yAxis : [
+				        {
+				        	name : 'QRI',
+				            type : 'value',
+				            scale:true,
+				            axisLabel : {
+				                formatter: '{value}',
+				                textStyle:{
+						    		 color: 'white'
+						    	}
+				            }
+				        }
+				    ],
+				    series : [
+				        {
+				            name:'活跃指数',
+				            type:'scatter',
+				            data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],
+				                [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],
+				                [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],
+				                [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],
+				                [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],
+				                [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],
+				                [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],
+				                [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],
+				                [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],
+				                [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],
+				                [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],
+				                [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],
+				                [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],
+				                [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],
+				                [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],
+				                [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],
+				                [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],
+				                [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9],
+				                [161.4, 63.4], [169.0, 58.2], [166.2, 58.6], [159.4, 45.7], [162.5, 52.2],
+				                [159.0, 48.6], [162.8, 57.8], [159.0, 55.6], [179.8, 66.8], [162.9, 59.4],
+				                [161.0, 53.6], [151.1, 73.2], [168.2, 53.4], [168.9, 69.0], [173.2, 58.4],
+				                [171.8, 56.2], [178.0, 70.6], [164.3, 59.8], [163.0, 72.0], [168.5, 65.2],
+				                [166.8, 56.6], [172.7, 105.2], [163.5, 51.8], [169.4, 63.4], [167.8, 59.0],
+				                [159.5, 47.6], [167.6, 63.0], [161.2, 55.2], [160.0, 45.0], [163.2, 54.0],
+				                [162.2, 50.2], [161.3, 60.2], [149.5, 44.8], [157.5, 58.8], [163.2, 56.4],
+				                [172.7, 62.0], [155.0, 49.2], [156.5, 67.2], [164.0, 53.8], [160.9, 54.4],
+				                [162.8, 58.0], [167.0, 59.8], [160.0, 54.8], [160.0, 43.2], [168.9, 60.5],
+				                [158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [167.1, 62.2], [158.0, 55.5],
+				                [167.6, 57.8], [156.0, 54.6], [162.1, 59.2], [173.4, 52.7], [159.8, 53.2],
+				                [170.5, 64.5], [159.2, 51.8], [157.5, 56.0], [161.3, 63.6], [162.6, 63.2],
+				                [160.0, 59.5], [168.9, 56.8], [165.1, 64.1], [162.6, 50.0], [165.1, 72.3],
+				                [166.4, 55.0], [160.0, 55.9], [152.4, 60.4], [170.2, 69.1], [162.6, 84.5],
+				                [170.2, 55.9], [158.8, 55.5], [172.7, 69.5], [167.6, 76.4], [162.6, 61.4],
+				                [167.6, 65.9], [156.2, 58.6], [175.2, 66.8], [172.1, 56.6], [162.6, 58.6],
+				                [160.0, 55.9], [165.1, 59.1], [182.9, 81.8], [166.4, 70.7], [165.1, 56.8],
+				                [177.8, 60.0], [165.1, 58.2], [175.3, 72.7], [154.9, 54.1], [158.8, 49.1],
+				                [172.7, 75.9], [168.9, 55.0], [161.3, 57.3], [167.6, 55.0], [165.1, 65.5],
+				                [175.3, 65.5], [157.5, 48.6], [163.8, 58.6], [167.6, 63.6], [165.1, 55.2],
+				                [165.1, 62.7], [168.9, 56.6], [162.6, 53.9], [164.5, 63.2], [176.5, 73.6],
+				                [168.9, 62.0], [175.3, 63.6], [159.4, 53.2], [160.0, 53.4], [170.2, 55.0],
+				                [162.6, 70.5], [167.6, 54.5], [162.6, 54.5], [160.7, 55.9], [160.0, 59.0],
+				                [157.5, 63.6], [162.6, 54.5], [152.4, 47.3], [170.2, 67.7], [165.1, 80.9],
+				                [172.7, 70.5], [165.1, 60.9], [170.2, 63.6], [170.2, 54.5], [170.2, 59.1],
+				                [161.3, 70.5], [167.6, 52.7], [167.6, 62.7], [165.1, 86.3], [162.6, 66.4],
+				                [152.4, 67.3], [168.9, 63.0], [170.2, 73.6], [175.2, 62.3], [175.2, 57.7],
+				                [160.0, 55.4], [165.1, 104.1], [174.0, 55.5], [170.2, 77.3], [160.0, 80.5],
+				                [167.6, 64.5], [167.6, 72.3], [167.6, 61.4], [154.9, 58.2], [162.6, 81.8],
+				                [175.3, 63.6], [171.4, 53.4], [157.5, 54.5], [165.1, 53.6], [160.0, 60.0],
+				                [174.0, 73.6], [162.6, 61.4], [174.0, 55.5], [162.6, 63.6], [161.3, 60.9],
+				                [156.2, 60.0], [149.9, 46.8], [169.5, 57.3], [160.0, 64.1], [175.3, 63.6],
+				                [169.5, 67.3], [160.0, 75.5], [172.7, 68.2], [162.6, 61.4], [157.5, 76.8],
+				                [176.5, 71.8], [164.4, 55.5], [160.7, 48.6], [174.0, 66.4], [163.8, 67.3]
+				            ]
+				        }/*,
+				        {
+				            name:'男性',
+				            type:'scatter',
+				            data: [[174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6], [187.2, 78.8],
+				                [181.5, 74.8], [184.0, 86.4], [184.5, 78.4], [175.0, 62.0], [184.0, 81.6],
+				                [180.0, 76.6], [177.8, 83.6], [192.0, 90.0], [176.0, 74.6], [174.0, 71.0],
+				                [184.0, 79.6], [192.7, 93.8], [171.5, 70.0], [173.0, 72.4], [176.0, 85.9],
+				                [176.0, 78.8], [180.5, 77.8], [172.7, 66.2], [176.0, 86.4], [173.5, 81.8],
+				                [178.0, 89.6], [180.3, 82.8], [180.3, 76.4], [164.5, 63.2], [173.0, 60.9],
+				                [183.5, 74.8], [175.5, 70.0], [188.0, 72.4], [189.2, 84.1], [172.8, 69.1],
+				                [170.0, 59.5], [182.0, 67.2], [170.0, 61.3], [177.8, 68.6], [184.2, 80.1],
+				                [186.7, 87.8], [171.4, 84.7], [172.7, 73.4], [175.3, 72.1], [180.3, 82.6],
+				                [182.9, 88.7], [188.0, 84.1], [177.2, 94.1], [172.1, 74.9], [167.0, 59.1],
+				                [169.5, 75.6], [174.0, 86.2], [172.7, 75.3], [182.2, 87.1], [164.1, 55.2],
+				                [163.0, 57.0], [171.5, 61.4], [184.2, 76.8], [174.0, 86.8], [174.0, 72.2],
+				                [177.0, 71.6], [186.0, 84.8], [167.0, 68.2], [171.8, 66.1], [182.0, 72.0],
+				                [167.0, 64.6], [177.8, 74.8], [164.5, 70.0], [192.0, 101.6], [175.5, 63.2],
+				                [171.2, 79.1], [181.6, 78.9], [167.4, 67.7], [181.1, 66.0], [177.0, 68.2],
+				                [174.5, 63.9], [177.5, 72.0], [170.5, 56.8], [182.4, 74.5], [197.1, 90.9],
+				                [180.1, 93.0], [175.5, 80.9], [180.6, 72.7], [184.4, 68.0], [175.5, 70.9],
+				                [180.6, 72.5], [177.0, 72.5], [177.1, 83.4], [181.6, 75.5], [176.5, 73.0],
+				                [175.0, 70.2], [174.0, 73.4], [165.1, 70.5], [177.0, 68.9], [192.0, 102.3],
+				                [176.5, 68.4], [169.4, 65.9], [182.1, 75.7], [179.8, 84.5], [175.3, 87.7],
+				                [184.9, 86.4], [177.3, 73.2], [167.4, 53.9], [178.1, 72.0], [168.9, 55.5],
+				                [157.2, 58.4], [180.3, 83.2], [170.2, 72.7], [177.8, 64.1], [172.7, 72.3],
+				                [165.1, 65.0], [186.7, 86.4], [165.1, 65.0], [174.0, 88.6], [175.3, 84.1],
+				                [185.4, 66.8], [177.8, 75.5], [180.3, 93.2], [180.3, 82.7], [177.8, 58.0],
+				                [177.8, 79.5], [177.8, 78.6], [177.8, 71.8], [177.8, 116.4], [163.8, 72.2],
+				                [188.0, 83.6], [198.1, 85.5], [175.3, 90.9], [166.4, 85.9], [190.5, 89.1],
+				                [166.4, 75.0], [177.8, 77.7], [179.7, 86.4], [172.7, 90.9], [190.5, 73.6],
+				                [185.4, 76.4], [168.9, 69.1], [167.6, 84.5], [175.3, 64.5], [170.2, 69.1],
+				                [190.5, 108.6], [177.8, 86.4], [190.5, 80.9], [177.8, 87.7], [184.2, 94.5],
+				                [176.5, 80.2], [177.8, 72.0], [180.3, 71.4], [171.4, 72.7], [172.7, 84.1],
+				                [172.7, 76.8], [177.8, 63.6], [177.8, 80.9], [182.9, 80.9], [170.2, 85.5],
+				                [167.6, 68.6], [175.3, 67.7], [165.1, 66.4], [185.4, 102.3], [181.6, 70.5],
+				                [172.7, 95.9], [190.5, 84.1], [179.1, 87.3], [175.3, 71.8], [170.2, 65.9],
+				                [193.0, 95.9], [171.4, 91.4], [177.8, 81.8], [177.8, 96.8], [167.6, 69.1],
+				                [167.6, 82.7], [180.3, 75.5], [182.9, 79.5], [176.5, 73.6], [186.7, 91.8],
+				                [188.0, 84.1], [188.0, 85.9], [177.8, 81.8], [174.0, 82.5], [177.8, 80.5],
+				                [171.4, 70.0], [185.4, 81.8], [185.4, 84.1], [188.0, 90.5], [188.0, 91.4],
+				                [182.9, 89.1], [176.5, 85.0], [175.3, 69.1], [175.3, 73.6], [188.0, 80.5],
+				                [188.0, 82.7], [175.3, 86.4], [170.5, 67.7], [179.1, 92.7], [177.8, 93.6],
+				                [175.3, 70.9], [182.9, 75.0], [170.8, 93.2], [188.0, 93.2], [180.3, 77.7],
+				                [177.8, 61.4], [185.4, 94.1], [168.9, 75.0], [185.4, 83.6], [180.3, 85.5],
+				                [174.0, 73.9], [167.6, 66.8], [182.9, 87.3], [160.0, 72.3], [180.3, 88.6],
+				                [167.6, 75.5], [186.7, 101.4], [175.3, 91.1], [175.3, 67.3], [175.9, 77.7],
+				                [175.3, 81.8], [179.1, 75.5], [181.6, 84.5], [177.8, 76.6], [182.9, 85.0],
+				                [177.8, 102.5], [184.2, 77.3], [179.1, 71.8], [176.5, 87.9], [188.0, 94.3],
+				                [174.0, 70.9], [167.6, 64.5], [170.2, 77.3], [167.6, 72.3], [188.0, 87.3],
+				                [174.0, 80.0], [176.5, 82.3], [180.3, 73.6], [167.6, 74.1], [188.0, 85.9],
+				                [180.3, 73.2], [167.6, 76.3], [183.0, 65.9], [183.0, 90.9], [179.1, 89.1],
+				                [170.2, 62.3], [177.8, 82.7], [179.1, 79.1], [190.5, 98.2], [177.8, 84.1],
+				                [180.3, 83.2], [180.3, 83.2]
+				            ]
+				        }*/
+				    ]
+				};  
+				
+				
+		                  
+		  var myChart = echarts.init(document.getElementById("chart1"));
+	      myChart.setOption(option);	
+		  echartData.sandian(myChart,option);
+	  }
+	</script>
+	<script>
+		var echartData = {
+			sandian : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/huoyuedu/sandian.do",
+				{},
+				function(data){
+					var legendData = [];
+					var series = [];
+					for(var key in data){
+						if(data[key] instanceof Array){
+							var oneData = data[key];
+							legendData.push(key.substr(0,4));
+							var oData = [];
+							for(var i=0;i<oneData.length;i++){
+								oData.push({
+									name:oneData[i].zzlx,
+									value:[oneData[i].qri,oneData[i].cri]
+								});
+							}
+							var s = {
+				            	name:key.substr(0,4),
+				            	type:"scatter",
+				            	data:oData
+				            };
+				            series.push(s);
+						}
+					}
+					option.legend.data = legendData;
+					option.series = series;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return option;
+				});
+			},
+			paihang1:function(){
+				$.post("${ctx}/enterpriseAnalysis/huoyuedu/paihang1.do",
+				{},
+				function(data){
+					$("#huoyue1").empty();
+					for(var i = 0;i<data.length;i++){
+						$("#huoyue1").append("<tr><td>"+data[i].zzlx+"</td><td>"+data[i].qri+"</td></tr>");
+					}
+				});
+			},
+			paihang2:function(){
+				$.post("${ctx}/enterpriseAnalysis/huoyuedu/paihang2.do",
+				{},
+				function(data){
+					$("#huoyue2").empty();
+					for(var i = 0;i<data.length;i++){
+						$("#huoyue2").append("<tr><td>"+data[i].zzlx+"</td><td>"+data[i].cri+"</td></tr>");
+					}
+				});
+			}
+		};
+	</script>
+	</body>
+</html>

+ 237 - 0
src/main/webapp/WEB-INF/jsp/graph/analysis/shouming.jsp

@@ -0,0 +1,237 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+    <%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body class="bg1">
+        <jsp:include page="../top.jsp">
+        <jsp:param name="index" value="2" />
+        </jsp:include>
+       	<jsp:include page="../left.jsp">
+       	<jsp:param name="index" value="5" />
+       	</jsp:include>
+		<div class="main">
+			<div class="chartTable" id="chartTable">
+				<div class="rowForLive">
+					<div >
+					        <div style="margin-left:400px;">行业寿命指数分析(行业类型的寿命指数)</div>      
+					        <div  id="chart1" class="bottomRowForLive" style="height:400px;"></div>		
+					</div>
+				</div>
+				<div class="clear"></div>
+					<!-- <img class="imgChart" src="../images/indexNew/chart5.png"> -->
+					<div >
+					        <div style="margin-left:400px;margin-top: 20px;">
+					             <span>经济主体寿命指数分析(经济主体的寿命指数)</span>
+					        </div>
+					        <div  id="chart2" class="bottomRowForLive" style="height:400px;"></div>		
+				   </div>
+			</div>
+		</div>
+		<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+		<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+		<script src="${ctx}/js/echarts-plain.js" ></script>
+		<script>
+			resize();
+			$(window).resize(function(){
+				resize();
+			});
+			function resize(){
+				//获取窗口高度
+				var windowheight=$(window).height();
+				var searchCon = windowheight-40-146;
+				$(".searchCon").css("height",windowheight-40);
+				$(".main").css("height",windowheight-40);
+				$(".chartTable").css("height",windowheight-80);
+			}
+			//perfect-scrollbar滚动条插件
+			$('#chartTable').perfectScrollbar();
+			
+		  	
+          	
+          	
+		 </script>
+         
+         <script type="text/javascript">
+             //业务处理   
+          $(function(){
+          	 bar1();//柱状图
+ 	         bar2();//柱状图
+          });
+ 	        
+         
+            //柱状图
+      	  function bar1(){
+      		  option = {
+      				    tooltip : {
+      				        trigger: 'axis'
+      				    },
+      				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+      				    calculable : true,
+      				    xAxis : [
+      				        {
+      				            type : 'category',
+      				            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    yAxis : [
+      				        {
+      				            type : 'value',
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    series : [
+      				        {
+      				            name:'寿命指数',
+      				            type:'bar',
+      				            itemStyle: {
+      				                normal: {
+      				                    color: function(params,a,b) {
+      				                        // build a color map as your need.
+      				                        var colorList = [
+      				                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
+      				                           '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+      				                           '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0',
+      				                         '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B'
+      				                        ];
+      				                        return colorList[a]
+      				                    },
+      				                    label: {
+      				                        show: false,
+      				                        position: 'top',
+      				                        formatter: '{b}\n{c}'
+      				                    }
+      				                }
+      				            },
+      				            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
+      				         
+      				        }
+      				    ]
+      				};
+      		  var myChart = echarts.init(document.getElementById("chart1"));
+      	     // myChart.setOption(option);	
+      		  echartData.hangye(myChart,option);
+      	  }
+      	   //柱状图
+      	  function bar2(){
+      		  option = {
+      				    tooltip : {
+      				        trigger: 'axis'
+      				    },
+      				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA","#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+      				    calculable : true,
+      				    xAxis : [
+      				        {
+      				            type : 'category',
+      				            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    yAxis : [
+      				        {
+      				            type : 'value',
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    series : [
+      				        {
+      				            name:'寿命指数',
+      				            type:'bar',
+      				            itemStyle: {
+      				                normal: {
+      				                    color: function(params,a,b) {
+      				                        // build a color map as your need.
+      				                        var colorList = [
+      				                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
+      				                           '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+      				                           '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0',
+      				                         '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B'
+      				                        ];
+      				                        return colorList[a]
+      				                    },
+      				                    label: {
+      				                        show: false,
+      				                        position: 'top',
+      				                        formatter: '{b}\n{c}'
+      				                    }
+      				                }
+      				            },
+      				            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
+      				         
+      				        }
+      				    ]
+      				};
+      		  var myChart = echarts.init(document.getElementById("chart2"));
+      	     // myChart.setOption(option);	
+      		  echartData.qiye(myChart,option);
+      	  }
+    
+         </script>
+         
+         
+         <script>
+		var echartData = {
+			hangye : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/shouming/hangye.do",
+				{},
+				function(data){
+					var xAxisdata = [];
+					var seriesData = [];
+					for(var i =0;i<data.length;i++){
+						xAxisdata.push(data[i].trades);
+						seriesData.push(data[i].analysisNum);
+					}
+					option.xAxis[0].data = xAxisdata;
+					option.series[0].data = seriesData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return option;
+				});
+			},
+			qiye:function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/shouming/qiye.do",
+				{},
+				function(data){
+					var xAxisdata = [];
+					var seriesData = [];
+					for(var i =0;i<data.length;i++){
+						xAxisdata.push(data[i].trades);
+						seriesData.push(data[i].analysisNum);
+					}
+					option.xAxis[0].data = xAxisdata;
+					option.series[0].data = seriesData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return option;
+				});
+			}
+		};
+	</script>
+</body>
+</html>

+ 396 - 0
src/main/webapp/WEB-INF/jsp/graph/analysis/zhuxiao.jsp

@@ -0,0 +1,396 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+    <%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/analysisCss/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body class="bg1">
+       <jsp:include page="../top.jsp">
+       <jsp:param name="index" value="2" />
+       </jsp:include>
+       <jsp:include page="../left.jsp">
+       <jsp:param name="index" value="3" />
+       </jsp:include>
+		<div class="main">
+			<div class="chartTable" id="chartTable">
+				<div class="rowForLive">
+					 <div>   
+					    <div style="margin-left: 428px;">注销分析/行业类型</div>
+					   <div  id="chart1" class="bottomRowForLive" style="height:400px;"></div>			 
+					</div>
+				</div>
+				<div class="rowForLive">
+					<div >
+					        <div style="margin-left: 200px;">
+					             <span>注销分析/经济体系</span>
+					             <span style="margin-left:400px;">注销分析/存活时间段</span>
+					        </div>
+					        <div  id="chart2" class="LiveItemLeft" style="height:350px;"></div>		
+					</div>
+					<div>
+					       <div  id="chart3" class="LiveItemRight" style="height:350px;"></div>		
+					</div>
+				</div>
+				<div class="clear"></div>
+					<!-- <img class="imgChart" src="../images/indexNew/chart5.png"> -->
+					<div >
+					        <div style="margin-left:420px;margin-top: 20px;">
+					             <span>市场主体注销趋势分析</span>
+					        </div>
+					        <div  id="chart4" class="bottomRowForLive" style="height:400px;"></div>		
+				   </div>
+			</div>
+		</div>
+		<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+		<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+		<script src="${ctx}/js/echarts-plain.js" ></script>
+		<script>
+			resize();
+			$(window).resize(function(){
+				resize();
+			});
+			function resize(){
+				//获取窗口高度
+				var windowheight=$(window).height();
+				var searchCon = windowheight-40-146;
+				$(".searchCon").css("height",windowheight-40);
+				$(".main").css("height",windowheight-40);
+				$(".chartTable").css("height",windowheight-80);
+			}
+			//perfect-scrollbar滚动条插件
+			$('#chartTable').perfectScrollbar();
+			
+		  	
+          	
+          	
+		 </script>
+         
+         <script type="text/javascript">
+             //业务处理   
+             $(function(){
+             bar();//柱状图
+ 	         pie1();//饼状图1
+ 	         pie2();//饼状图2
+ 	         line();//曲线图
+             });
+ 	         
+            //柱状图
+      	  function bar(){
+      		  
+      		  option = {
+      				    tooltip : {
+      				        trigger: 'axis'
+      				    },
+      				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+      				    calculable : true,
+      				    xAxis : [
+      				        {
+      				            type : 'category',
+      				            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    yAxis : [
+      				        {
+      				            type : 'value',
+      				            axisLabel :{
+      						    	textStyle:{
+      						    		 color: 'white'
+      						    	}
+      						    },
+      				        }
+      				    ],
+      				    series : [
+      				        {
+      				            name:'注销量',
+      				            type:'bar',
+      				            itemStyle: {
+      				                normal: {
+      				                    color: function(params,a,b) {
+      				                        // build a color map as your need.
+      				                        var colorList = [
+      				                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
+      				                           '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+      				                           '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+      				                        ];
+      				                        return colorList[a]
+      				                    },
+      				                    label: {
+      				                        show: true,
+      				                        position: 'top',
+      				                        formatter: '{b}\n{c}'
+      				                    }
+      				                }
+      				            },
+      				            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
+      				         
+      				        }
+      				    ]
+      				};
+      		  var myChart = echarts.init(document.getElementById("chart1"));
+      	      //myChart.setOption(option);	
+      		  echartData.hangye(myChart,option);
+      	  }
+ 	         
+      	//饼状图1
+      	  function pie1(){
+      		  
+      		option = {
+      			    tooltip : {
+      			        trigger: 'item',
+      			        formatter: "{a} <br/>{b} : {c} ({d}%)"
+      			    },
+      			  color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+      			    legend: {
+      			        orient : 'vertical',
+      			        x : 'left',
+      			        data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
+      			        textStyle : {
+      					   fontSize : 12,
+      					   fontWeight : 'bolder',
+      					   color : 'white'
+      				    }
+      			    }, 
+      			    calculable : true,
+      			    series : [
+      			        {
+      			            name:'访问来源',
+      			            type:'pie',
+      			            radius : '55%',
+      			            center: ['50%', '60%'],
+      			            data:[
+      			                {value:335, name:'直接访问'},
+      			                {value:310, name:'邮件营销'},
+      			                {value:234, name:'联盟广告'},
+      			                {value:135, name:'视频广告'},
+      			                {value:1548, name:'搜索引擎'}
+      			            ]
+      			        }
+      			    ]
+      			};	                    
+      		  var myChart = echarts.init(document.getElementById("chart2"));
+      	      //myChart.setOption(option);	
+      		  echartData.jingjitixi(myChart,option);
+      	  }
+      	
+          //饼图展示2
+    	  function pie2(){
+    	
+    		  option = {
+    				    tooltip : {
+    				        trigger: 'item',
+    				        formatter: "{a} <br/>{b} : {c} ({d}%)"
+    				    },
+    				    color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+    				    legend: {
+    				        orient : 'vertical',
+    				        x : 'left',
+    				        data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
+    				        textStyle : {
+           					   fontSize : 12,
+           					   fontWeight : 'bolder',
+           					   color : 'white'
+           				    }
+    				    },
+    				    calculable : true,
+    				    series : [
+    				        {
+    				            name:'存活时间段',
+    				            type:'pie',
+    				            radius : ['50%', '70%'],
+    				            itemStyle : {
+    				                normal : {
+    				                    label : {
+    				                        show : false
+    				                    },
+    				                    labelLine : {
+    				                        show : false
+    				                    }
+    				                },
+    				                emphasis : {
+    				                    label : {
+    				                        show : true,
+    				                        position : 'center',
+    				                        textStyle : {
+    				                            fontSize : '30',
+    				                            fontWeight : 'bold'
+    				                        }
+    				                    }
+    				                }
+    				            },
+    				            data:[
+    				                {value:335, name:'直接访问'},
+    				                {value:310, name:'邮件营销'},
+    				                {value:234, name:'联盟广告'},
+    				                {value:135, name:'视频广告'},
+    				                {value:1548, name:'搜索引擎'}
+    				            ]
+    				        }
+    				    ]
+    				};
+    		  var myChart = echarts.init(document.getElementById("chart3"));
+    	      //myChart.setOption(option);
+    	      echartData.nianling(myChart,option);		                    
+    	  }
+          
+    	   //曲线图
+    	  function line(){
+    	
+    		  option = {
+    				   tooltip: {
+    				       trigger: "item",
+    				       formatter: "{a} <br/>{b} : {c}"
+    				   },
+    				   color:["#00B7EF","#FF392A","#FFC200","#00B692","#2070DA"],
+    				   legend: {
+    				       x: 'left',
+    				       data: ["今年", "去年"]
+    				   },
+    				   xAxis: [
+    				       {
+    				           type: "category",
+    				           name: "",
+    				           splitLine: {show: false},
+    				           data: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月","十月","十一月","十二月"],
+    				           axisLabel :{
+     						    	textStyle:{
+     						    		 color: 'white'
+     						    	}
+     						    }
+    				       }
+    				   ],
+    				   yAxis: [
+    				       {
+    				           type: "log",
+    				           name: "数量",
+    				           axisLabel :{
+    						    	textStyle:{
+    						    		 color: 'white'
+    						    	}
+    						    }
+    				       }
+    				   ],  
+    				   calculable: false,
+    				   series: [
+    				       {
+    				           name: "今年",
+    				           type: "line",
+    				           data: [1, 3, 9, 27, 81, 247, 741, 2223, 6669,'-','-','-']
+
+    				       },
+    				       {
+    				           name: "去年",
+    				           type: "line",
+    				           data: [1, 2, 4, 8, 16, 32, 64, 128, 256,'-','-','-']
+
+    				       }
+    				   ]
+    				};
+    				                
+    		  var myChart = echarts.init(document.getElementById("chart4"));
+    	      //myChart.setOption(option);
+    	      echartData.qushi(myChart,option);
+    	  }
+         </script>
+         <script>
+		var echartData = {
+			hangye : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/zhuxiao/hangyeleixing.do",
+				{},
+				function(data){
+					var barData = [];
+					var xAsitData = [];
+					for(var i=0;i<data.length;i++){
+						barData.push(data[i].leaveEntitys);
+						xAsitData.push(data[i].trades);
+					}
+					option.xAxis[0].data = xAsitData;
+					option.series[0].data = barData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return barData;
+				});
+			},
+			jingjitixi : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/zhuxiao/jingjileixing.do",
+				{},
+				function(data){
+					var legendData = [];
+					var pieData = [];
+					for(var i=0;i<data.length;i++){
+						legendData.push(data[i].xAsit);
+						pieData.push({
+							name: data[i].xAsit,value: data[i].leaveEntitys
+						});
+					}
+					option.series[0].data = pieData;
+					option.legend.data = legendData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return {legendData:legendData,pieData:pieData};
+				});
+			},
+			nianling : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/zhuxiao/nianling.do",
+				{},
+				function(data){
+					console.log(data);
+					var legendData = [];
+					var pieData = [];
+					for(var i=0;i<data.length;i++){
+						legendData.push(data[i].xAsit);
+						pieData.push({
+							name: data[i].xAsit,value: data[i].leaveEntitys
+						});
+					}
+					option.series[0].data = pieData;
+					option.legend.data = legendData;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return {legendData:legendData,pieData:pieData};
+				});
+			},
+			qushi : function(ec,option){
+				ec.showLoading();
+				$.post("${ctx}/enterpriseAnalysis/zhuxiao/shijian.do",
+				{},
+				function(data){
+					var lineData = [];
+					var lineData1 = [];
+					var xAsitData = [];
+					for(var i=0;i<data.jn.length;i++){
+						lineData.push(data.jn[i].leaveEntitys);
+					}
+					for(var i=0;i<data.qn.length;i++){
+						lineData1.push(data.qn[i].leaveEntitys);
+					}
+					for(;lineData.length<12;){
+						lineData.push("-");
+					}
+					for(;lineData1.length<12;){
+						lineData1.push("-");
+					}
+					option.series[0].data = lineData;
+					option.series[1].data = lineData1;
+					ec.setOption(option,true);
+					ec.hideLoading();
+					return lineData;
+				});
+			}
+		};
+	</script>
+</body>
+</html>

+ 29 - 0
src/main/webapp/WEB-INF/jsp/graph/common/error/error404.jsp

@@ -0,0 +1,29 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>404异常</title>
+</head>
+<body bgcolor="#FFFFFF">
+	
+	<br/><br/><br/><br/><br/>
+	<table border="0" cellspacing="0" cellpadding="0" width="60%" align="center">
+		<tr>
+			<td class="t_l"><font size="4" color="red"> <!-- <b>500异常</b> -->
+			</font></td>
+		</tr>
+		<tr>
+			<td class="b_cf" style="text-align: center;">
+		</tr>
+		<tr>
+			<td class="t_c" style="text-align: center;">
+				<font color="red">很抱歉,您要访问的页面不存在!404异常!</font> 
+				<input type="button" value="返回" onclick="javascript:history.go(-1);" />
+			</td>
+		</tr>
+	</table>
+	</div>
+</body>
+</html>

+ 35 - 0
src/main/webapp/WEB-INF/jsp/graph/common/error/error500.jsp

@@ -0,0 +1,35 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+
+<title>500异常</title>
+</head>
+<body bgcolor="#FFFFFF">
+	<br />
+	<br />
+	<br />
+	<br />
+	<br />
+	<br />
+	<table border="0" cellspacing="0" cellpadding="0" width="100%" align="center">
+		<tr>
+			<td class="t_l"><font size="4" color="red"> <!-- <b>500异常</b> -->
+			</font></td>
+		</tr>
+		<tr>
+			<td class="b_cf" style="text-align: center;">
+		</tr>
+		<tr>
+			<td class="t_c" style="text-align: center;">
+				<font color="red">程序出现(500)异常,请与管理员联系!</font> 
+				<!-- <input type="button" value="返回" onclick="javascript:history.go(-1);" /> -->
+			</td>
+		</tr>
+	</table>
+	</div>
+</body>
+</html>

+ 35 - 0
src/main/webapp/WEB-INF/jsp/graph/common/message.jsp

@@ -0,0 +1,35 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ include file="/include/taglib.jsp" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>信息</title>
+<%@ include file="/include/js.jsp" %>
+<%@ include file="/include/css.jsp" %>
+</head>
+<body>
+	<br/><br/><br/><br/><br/><br/>
+	<input type="hidden" id="permission" value="${mess.permission}" />
+	<div class="a_box" style="width:36%;">
+	<table border="0" cellspacing="0" cellpadding="0" class="add_table">
+		<tr>
+			<td class="t_l"><b>${mess.title}</b></td>
+		</tr>
+		<tr>
+			<td class="b_cf" style="height:160px;">
+				<font size="5"><b>${mess.content}</b></font>
+			</td>
+		</tr>
+		
+		<c:if test="${mess.permission }">
+			<tr><td class="t_c"><input type="button" value="确定" class="btn" onclick="window.parent.location='${ctx}/${mess.link}'"/></td></tr>
+		</c:if>
+		<c:if test="${!mess.permission }">
+			<tr><td class="t_c"><input type="button" value="确定" class="btn" onclick="location.href='${ctx}/${mess.link}'"/></td></tr>
+		</c:if>
+	</table>
+	</div>
+
+</body>
+</html>

+ 73 - 0
src/main/webapp/WEB-INF/jsp/graph/common/pager.jspf

@@ -0,0 +1,73 @@
+<%@ page language="java" pageEncoding="UTF-8"%>
+<div class="page">
+	<input type="hidden" name="pager.currentPage" value="${pager.currentPage}">
+	
+	每页${pager.limit}条/共${pager.total}条记录&nbsp;
+	
+	<!-- 只有一页 -->
+	<c:if test="${pager.currentPage==1 && pager.currentPage==pager.totalPage}">
+		首页&nbsp;&nbsp;
+		上一页&nbsp;&nbsp;
+		下一页&nbsp;&nbsp;
+		尾页&nbsp;&nbsp;
+	</c:if>
+	
+	<!-- 首页 -->
+	<c:if test="${pager.currentPage==1 && pager.currentPage!=pager.totalPage}">
+		首页&nbsp;&nbsp;
+		上一页&nbsp;&nbsp;
+		<a href="javascript:goToPage(${pager.nextPage});">下一页</a>&nbsp;&nbsp;
+		<a href="javascript:goToPage(${pager.totalPage});">尾页</a>&nbsp;&nbsp;
+	</c:if>
+	
+	<!-- 尾页 -->
+	<c:if test="${pager.currentPage!=1 && pager.currentPage==pager.totalPage}">
+		<a href="javascript:goToPage(1);">首页</a>&nbsp;&nbsp;
+		<a href="javascript:goToPage(${pager.prePage});">上一页</a>&nbsp;&nbsp;
+		下一页&nbsp;&nbsp;
+		尾页&nbsp;&nbsp;
+	</c:if>
+	
+	<!-- 中间页 -->
+	<c:if test="${pager.currentPage!=1 && pager.currentPage!=pager.totalPage}">
+		<a href="javascript:goToPage(1);">首页</a>&nbsp;&nbsp;
+		<a href="javascript:goToPage(${pager.prePage});">上一页</a>&nbsp;&nbsp;
+		<a href="javascript:goToPage(${pager.nextPage});">下一页</a>&nbsp;&nbsp;
+		<a href="javascript:goToPage(${pager.totalPage});">尾页</a>&nbsp;&nbsp;
+	</c:if>
+	
+	<input type="text" id="textFieldPageNum" value="${pager.currentPage}" class="page_txt" />&nbsp;页
+	<input type="button" class="go_btn" value="GO" onclick="checkGoToPage($('#textFieldPageNum').val(),${pager.totalPage});"/>
+	<script type="text/javascript">$("[name=pager.currentPage]").focus();</script>
+	
+	&nbsp;${pager.currentPage}/${pager.totalPage}页&nbsp;
+</div>
+
+<script type="text/javascript">
+//=========================================================================
+//分页
+//=========================================================================
+function goToPage(currentPage) {
+	//$("#currentPage").val(currentPage);
+	$("[name=pager.currentPage]").val(currentPage);
+	document.forms[0].submit();
+}
+function checkGoToPage(pageNum,totalPage) {
+	if(pageNum==null || pageNum.trim()=="") {
+		alert("请输入要去到的页数");
+		$("#textFieldPageNum").val("").focus();
+		return;
+	}
+	if(!isPos(pageNum)) {
+		alert("你输入的页数不正确");
+		$("#textFieldPageNum").focus();
+		return;
+	}
+	if(pageNum>totalPage){
+		alert("你输入的页数大于总页数");
+		$("#textFieldPageNum").focus();
+		return;
+	}
+	goToPage(pageNum);
+}
+</script>

+ 196 - 0
src/main/webapp/WEB-INF/jsp/graph/detail/detail.jsp

@@ -0,0 +1,196 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>赔案基本案例</title>
+    <script src="../js/lib/jquery-1.11.1.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="../compass/app/js/jquery-ui/bootstrap.min.css"/>
+    <link rel="stylesheet" type="text/css" href="../cssGraph/detail.css">
+</head>
+<body>
+<div class="container detailTop">
+    <div class="row">
+        <div class="col-md-5 topLeft">
+            <div class="title">赔案基本信息</div>
+            <div class="container-fluid topLeftMain commonBorder">
+                <div class="col-md-3 imgWrapper">
+                    <img src="../images/userAvatar.png" alt="">
+                </div>
+                <div class="container-fluid col-md-9">
+                    <div class="userDetail">
+                        <div class="userDetailItem col-md-6">姓名:<span id="name"></span></div>
+                        <div class="userDetailItem col-md-6">性别:<span id="sex"></span></div>
+                        <div class="userDetailItem col-md-6">年龄:<span id="age"></span>岁</div>
+                        <div class="userDetailItem col-md-6">赔偿事故:<span id="claimnAcc"></span></div>
+                        <div class="userDetailItem col-md-6">事故日期:<span id="accdate"></span></div>
+                        <div class="userDetailItem col-md-6">立案日期:<span id="recdate"></span></div>
+                        <div class="userDetailItem col-md-12">案件号:<span id="current"></span></div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="col-md-7">
+            <div class="title">风险提示</div>
+            <div class="tableWrapper commonBorder">
+                <table class="table_right" border="0" cellspacing="0">
+                    <tr class="table_title">
+                        <td>决策结果</td>
+                        <td>详细说明</td>
+                    </tr>
+                    <tr>
+                        <td id="decisionResult"></td>
+                        <td id="detailedDescription"></td>
+                    </tr>
+                </table>
+                <div class="container-fluid scoreOutWrapper">
+                    <div class="col-md-2">
+                        快赔评分
+                    </div>
+                    <div class="col-md-10">
+                        <div class="flexCenter">
+                            <div class="scoreWrapper">
+                                <div class="score" id="score">
+                                    <span class="scorePencent"></span>
+                                </div>
+                            </div>
+                            <span class="scoreNumber" id="fastCompensateScore"></span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="row sameMsg">
+        <div class="title">同类案件信息</div>
+        <div id="sameMsg">
+        </div>
+    </div>
+</div>
+<script>
+    $(function () {
+        // 初始化页面数据
+        var claimno = 'CHD1830000303355';
+        $('#current').html(claimno);
+        initData()
+
+        function initData() {
+            $.ajax({
+                url: "/dgt/graph/getDetailByClaimno",
+                async: false,
+                dataType: "json",
+                type: "get",
+                data: {
+                    claimno: claimno
+                },
+                success: function (res) {
+                    // console.log(res)
+                    if (res.resultCode === '0000') {
+                        renderMsg(res)
+                    }
+                }
+            });
+        }
+
+        function renderMsg(res) {
+            // 循环基本信息和风险提示
+            var basicClaimno = res.data.basicClaimno;
+            var riskTip = res.data.riskTip;
+            var similarTypeClaimnos = res.data.similarTypeClaimnos;
+            var similarHtml = '';
+            for (var i in basicClaimno) {
+                if ($('#' + i)) {
+                    if (i == 'accdate' || i == 'recdate') {
+                        basicClaimno[i] = formate(basicClaimno[i])
+                    }
+                    $('#' + i).html(basicClaimno[i])
+                }
+            }
+            for (var i in riskTip) {
+                if ($('#' + i)) {
+                    $('#' + i).html(riskTip[i])
+                }
+            }
+            initScoreNumber()
+
+            for (var i = 0, len = similarTypeClaimnos.length; i < len; i++) {
+                var jumpParam = '';
+                similarHtml += '<div class="commonBorder sameMsgItem">';
+                similarHtml += '<div class="flexCenter">';
+                similarHtml += '<div class="number">' + (i + 1) + '</div>';
+                similarHtml += '<div class="litter-title-wrapper">';
+                similarHtml += '<div class="litter-title row">';
+                similarHtml += '<div class="col-md-4 container-fluid">';
+                similarHtml += '<div class="col-md-6 left-title">赔案号</div>';
+                similarHtml += '<div class="col-md-6  right-title">' + similarTypeClaimnos[i].historyClaimno + '</div>';
+                similarHtml += '</div>';
+                similarHtml += '<div class="col-md-4 container-fluid">';
+                similarHtml += '<div class="col-md-6 left-title">案件结论</div>';
+                similarHtml += '<div class="col-md-6 right-title">' + similarTypeClaimnos[i].claimnoConclusion + '</div>';
+                similarHtml += '</div>';
+                similarHtml += '<div class="col-md-4 container-fluid">';
+                similarHtml += '<div class="col-md-6 left-title">相似因子个数</div>';
+                similarHtml += '<div class="col-md-6 right-title">' + similarTypeClaimnos[i].similarFactorNum + '</div>';
+                similarHtml += '</div>';
+                similarHtml += '</div>';
+                similarHtml += '<div class="flexCenter picShowWrapper commonBorder">';
+                similarHtml += '<div class="picDetail">';
+                similarHtml += '<div class="row picDetailTitle">';
+                similarHtml += '<div class="col-md-4">相似因子类别</div>';
+                similarHtml += '<div class="col-md-4">相似因子明细</div>';
+                similarHtml += '</div>';
+                for (var j = 0; j < similarTypeClaimnos[i].similarFactorList.length; j++) {
+                    var factorListItem = similarTypeClaimnos[i].similarFactorList[j];
+                    similarHtml += '<div class="row commonBorderBottom">';
+                    similarHtml += '<div class="col-md-4">' + factorListItem.similarityFactorType + ':</div>';
+                    similarHtml += '<div class="col-md-4">' + factorListItem.similarityFactorDetail + '</div>';
+                    if (factorListItem.remark) {
+                        similarHtml += '<div class="col-md-4">' + factorListItem.remark + '</div>';
+                    }
+                    similarHtml += '</div>';
+                }
+                similarHtml += '<div class="row">';
+                similarHtml += '<div class="col-md-4">';
+                similarHtml += '<a href="#">案件详细信息</a>';
+                similarHtml += '</div>';
+                similarHtml += '</div>';
+                similarHtml += '</div>';
+                jumpParam = 'caseNow=' + similarTypeClaimnos[i].claimno + '&caseSame=' + similarTypeClaimnos[i].historyClaimno;
+                similarHtml += '<a href="/graph/index.do?' + jumpParam + '" class="picShow">';
+                similarHtml += '<div class="picShowImg">';
+                similarHtml += '<img src="../images/pic.png" alt="">';
+                similarHtml += '</div>';
+                similarHtml += '<p class="pic-text">图谱展示</p>';
+                similarHtml += '</a>';
+                similarHtml += '</div>';
+                similarHtml += '</div>';
+                similarHtml += '<div class="samePencent">';
+                similarHtml += '<div class="pencent">' + similarTypeClaimnos[i].similarityFactor * 100 + '%</div>';
+                similarHtml += '<div class="text">相似度</div>';
+                similarHtml += '</div>';
+                similarHtml += '</div>';
+                similarHtml += '</div>';
+            }
+            $('#sameMsg').html(similarHtml)
+        }
+
+        function initScoreNumber() {
+            // 显示对应的进度条进度
+            var $score = $('#score');
+            var scoreNumber = $('.scoreNumber').text();
+            $score.width($score.parent().width() * scoreNumber + 'px')
+            $('.scorePencent').html(scoreNumber * 100 + '%')
+        }
+
+
+        function formate(dateTime) {
+            var time = new Date(dateTime);
+            var y = time.getFullYear(),
+                m = time.getMonth() + 1,
+                d = time.getDay();
+            return y + '-' + m + '-' + d
+        }
+    })
+</script>
+</body>
+</html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3355 - 0
src/main/webapp/WEB-INF/jsp/graph/fLoop/index.jsp


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 683 - 0
src/main/webapp/WEB-INF/jsp/graph/fLoop/indexBack.jsp


+ 4 - 0
src/main/webapp/WEB-INF/jsp/graph/index.jsp

@@ -0,0 +1,4 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<% 
+	response.sendRedirect("login/checkLogin.do");
+%>

+ 159 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/ImportDS.html

@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="./css/base.css" />
+<link rel="stylesheet"  type="text/css" href="./css/all.css" />
+<link rel="stylesheet"  type="text/css" href="./css/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+<style>
+	*{
+		box-sizing: border-box;
+	}
+</style>
+</head>
+<body class="bg1">
+<div class="headCon">
+	<div class="logo">
+		<img src="./images/indexNew/logo3.png">
+	</div>
+	<ul class="nav">
+		<li class="navActive">项目</li>
+		<li>数据源</li>
+		<li>模型</li>
+	</ul>
+</div>
+<div class="searchCon">
+	<div class="sunNavCom">
+		<div class="subNavForDS">
+			<p class="subNavForDSHead">数据导入</p>
+			<span class="subNavForDSSubHead">请选择文件类型</span>
+			<ul>
+				<li class="subNavForDSActive"><i class="excel"></i>Excel</li>
+				<li><i class="text"></i>文本文件</li>
+				<li><i class="stats"></i>统计文件</li>
+			</ul>
+			<input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();" multiple hidden/>
+		</div>
+	</div>
+	<div class="DShistoryCon">
+		<p>已保存数据</p>
+		<div class="DShistory">
+			<ul>
+				<li>海南人口统计</li>
+				<li>海南人口统计</li>
+			</ul>
+		</div>
+	</div>
+</div>
+<div class="main" id="main" style="position:relative;padding-bottom: 12px;padding-right: 22px;">
+	<div class="DSOpen">
+		<p>打开</p>
+		<ul>
+			<li>
+				<div class="DSItem">
+					<img src="./images/indexNew/11.png">
+				</div>
+				<span>海南人口统计</span>
+			</li>
+			<li>
+				<div class="DSItem">
+					<img src="./images/indexNew/22.png">
+				</div>
+				<span>海南人口统计</span>
+			</li>
+			<li>
+				<div class="DSItem">
+					<img src="./images/indexNew/33.png">
+				</div>
+				<span>海南人口统计</span>
+			</li>
+		</ul>
+	</div>
+</div>
+<script src="./js/lib/jquery-1.11.1.min.js"></script>
+<script src="./js/lib/perfect-scrollbar.jquery.js"></script>
+<script>
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		var searchCon = windowheight-40-146;
+		$(".searchCon").css("height",windowheight-40);
+		$(".main").css("height",windowheight-40-12-12);
+	}
+	//perfect-scrollbar滚动条插件
+	$('#main').perfectScrollbar();
+
+	//
+	$(".subNavForDS ul li").click(function(){
+		$("#fileToUpload").click();
+	})
+	function fileSelected() {
+		var files = document.getElementById('fileToUpload').files;
+		for(var i=0;i<files.length;i++){
+			var file = files[i];
+			var fd = new FormData();
+        	fd.append("fileToUpload", document.getElementById('fileToUpload').files[i]);
+			console.log([file.name,fd]);
+		}   
+    }
+</script>
+<script type="text/javascript">/*
+      function fileSelected() {
+        var file = document.getElementById('fileToUpload').files[0];
+        if (file) {
+          var fileSize = 0;
+          if (file.size > 1024 * 1024)
+            fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
+          else
+            fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
+
+          document.getElementById('fileName').innerHTML = 'Name: ' + file.name;
+          document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;
+          document.getElementById('fileType').innerHTML = 'Type: ' + file.type;
+        }
+		console.log(file);
+      }
+
+      function uploadFile() {
+        var fd = new FormData();
+        fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
+        var xhr = new XMLHttpRequest();
+        xhr.upload.addEventListener("progress", uploadProgress, false);
+        xhr.addEventListener("load", uploadComplete, false);
+        xhr.addEventListener("error", uploadFailed, false);
+        xhr.addEventListener("abort", uploadCanceled, false);
+        console.log(fd);
+		xhr.open("POST", "/KnowledgeGraph/KG/uploadFile.do");
+        xhr.send(fd);
+      }
+
+      function uploadProgress(evt) {
+        if (evt.lengthComputable) {
+          var percentComplete = Math.round(evt.loaded * 100 / evt.total);
+          document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
+        }
+        else {
+          document.getElementById('progressNumber').innerHTML = 'unable to compute';
+        }
+      }
+
+      function uploadComplete(evt) {
+        alert(evt.target.responseText);
+      }
+
+      function uploadFailed(evt) {
+        alert("There was an error attempting to upload the file.");
+      }
+
+      function uploadCanceled(evt) {
+        alert("The upload has been canceled by the user or the browser dropped the connection.");
+      }
+      */
+    </script>
+</body>
+</html>

+ 119 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/connectDS.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="./css/base.css" />
+<link rel="stylesheet"  type="text/css" href="./css/all.css" />
+<link rel="stylesheet"  type="text/css" href="./css/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+<style>
+	*{
+		box-sizing: border-box;
+	}
+</style>
+</head>
+<body class="bg1">
+<div class="headCon">
+	<div class="logo">
+		<img src="./images/indexNew/logo3.png">
+	</div>
+	<ul class="nav">
+		<li class="navActive">项目</li>
+		<li>数据源</li>
+		<li>模型</li>
+	</ul>
+</div>
+<div class="searchCon">
+	<div class="subNavUp">
+		<div class="upPart">
+			<div class="btns">
+				<i class="prev"></i>
+				<i class="next"></i>
+				<i class="save"></i>
+			</div>
+			<div class="connect">
+				连接<span><i></i>+  添加</span>
+			</div>
+			<ul id="connList" class="connList">
+				<li>
+					<p>海南易建科技</p>
+				</li>
+			</ul>
+		</div>
+	</div>
+	<div class="sunNavDown">
+		<div class="downPart">
+			<p>文件</p>
+			<div>
+				<ul>
+					<li>
+						<div>
+							<i></i>
+							海航集团有限公司
+						</div>
+						<li>
+							<div>
+								<i></i>
+								海航集团有限公司
+							</div>
+						</li>
+					</li>
+				</ul>
+			</div>
+		</div>
+	</div>
+	<div class="DShistoryCon">
+		<p>已保存数据</p>
+		<div class="DShistory">
+			<ul>
+				<li>海南人口统计</li>
+				<li>海南人口统计</li>
+			</ul>
+		</div>
+	</div>
+</div>
+<div class="main" id="main" style="position:relative;padding:0;">
+	<div class="connectArea">
+		 
+	</div>
+	<div class="tableArea">
+		<div class="tableAreaHead"></div>
+		<div class="table">
+			<table>
+				<thead>
+					<tr><th>名称</th><th>地址</th><th>id</th></tr>		
+				</thead>
+				<tbody>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+					<tr><td>张总</td><td>张总</td><td>张总</td></tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+</div>
+<script src="./js/lib/jquery-1.11.1.min.js"></script>
+<script src="./js/lib/perfect-scrollbar.jquery.js"></script>
+<script>
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		var searchCon = windowheight-40-146;
+		$(".searchCon").css("height",windowheight-40);
+		$(".main").css("height",windowheight-40-3);
+		$(".table").css("height",windowheight-40-333-42);
+	}
+	//perfect-scrollbar滚动条插件
+	$('.table').perfectScrollbar();
+
+</script>	
+</body>
+</html>

+ 664 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/connectDS.jsp

@@ -0,0 +1,664 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+<style>
+	*{
+		box-sizing: border-box;
+	}
+</style>
+</head>
+<body class="bg1">
+<div class="headCon">
+	<jsp:include page="../top.jsp">
+	<jsp:param name="index" value="1" />
+	</jsp:include>
+</div>
+<div class="searchCon">
+	<div class="subNavUp">
+		<div class="upPart">
+			<div class="btns">
+				<i class="prev"></i>
+				<i class="next"></i>
+				<i class="save"></i>
+			</div>
+			<div class="connect">
+				连接<span><i></i>+  添加</span>
+			</div>
+			<ul id="connList" class="connList">
+				<li>
+					<p>海南易建科技</p>
+				</li>
+			</ul>
+		</div>
+	</div>
+	<div class="sunNavDown">
+		<div class="downPart">
+			<p>文件</p>
+			<div>
+				<ul id="filesList">
+				</ul>
+			</div>
+		</div>
+	</div>
+	<div class="DShistoryCon">
+		<p>已保存数据</p>
+		<div class="DShistory">
+			<ul>
+				<li>海南人口统计</li>
+				<li>海南人口统计</li>
+			</ul>
+		</div>
+	</div>
+</div>
+<div class="main" id="main" style="position:relative;padding:0;">
+	<div class="connectArea" id="connectArea" style="position:relative;">
+		<div class="connectCon">
+			<div class="connectionClear" id="connectionClear">清空</div>
+			<div class="connectDetail" hidden id="connectDetail">
+				<div class="detailHead">
+					联接<i class="close1"></i>
+				</div>
+				<div class="connType">
+					<ul>
+						<li class="connTypeActive"><img src="${ctx}/images/indexNew/inside.png"><span>内部</span></li>
+						<li><img src="${ctx}/images/indexNew/leftJoin.png"><span>左侧</span></li>
+						<li><img src="${ctx}/images/indexNew/rightJoin.png"><span>右侧</span></li>
+						<li><img src="${ctx}/images/indexNew/outside.png"><span>外部</span></li>
+					</ul>
+				</div>
+				<div class="detailList">
+					<table>
+						<thead>
+							<tr>
+								<th style="width:40%;">数据源</th>
+								<th style="width:12%;"></th>
+								<th style="width:40%;">people.txt</th>
+								<th style="width:8%;"></th>
+							</tr>
+						</thead>
+						<tbody>
+							<tr>
+								<td style="position:relative">
+									<input type="text" id="source" placeholder="添加关联" />
+									<ul id="chooseSourceItem" hidden>
+
+									</ul>
+								</td>
+								<td>=</td>
+								<td style="position:relative">
+									<input type="text" id="thisSource" placeholder="添加关联" />
+									<ul id="chooseThisItem" hidden>
+
+									</ul>
+								</td>
+								<td class="connectClear">X</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<ul class="connectAreaRow" id="connectAreaRow" style="width:1300px">
+			<!-- 
+				<li>
+					<ul class="connectAreaCol">
+						<li>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+					</ul>
+				</li>
+				<li>
+					<ul class="connectAreaCol">
+						<li>
+							<div class="link1"><i></i></div>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+						<li>
+							<div class="link2"><i></i></div>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+					</ul>
+				</li>
+				<li>
+					<ul class="connectAreaCol">
+						<li>
+							<div class="link1"><i></i></div>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+					</ul>
+				</li>
+				  -->
+			</ul>
+		</div>
+	</div>
+	<div class="tableArea">
+		<div class="tableAreaHead"></div>
+		<div class="table" id="table">
+			<div class="tableListInfo">没有关联信息</div>
+		</div>
+	</div>
+</div>
+
+<script type="text/html" id="filesList_template"> 
+<!for(var i=0;i<data.length;i++){!>
+			<li data-file="<!=data[i].name!>" data-index="<!=i!>" draggable="true">
+						<div>
+							<i></i>
+							<!=data[i].name!>
+						</div>
+					</li>
+<!}!>
+</script>
+<script type="text/html" id="firstNode_template"> 
+<li data-file="<!=name!>">
+	<div class="DSTableItem"><!=name!></div>
+</li>
+</script>
+<script type="text/html" id="link1_template"> 
+<li data-file="<!=name!>" data-linkindex="<!=data.connPoolIndex!>">
+	<div class="link1" data-link=""><i></i></div>
+	<div class="DSTableItem"><!=name!></div>
+</li>
+</script>
+<script type="text/html" id="link2_template"> 
+<li data-file="<!=name!>" data-linkindex="<!=data.connPoolIndex!>">
+	<div class="link2" data-link=""><i></i></div>
+	<div class="DSTableItem"><!=name!></div>
+</li>
+</script>
+<script type="text/html" id="source_template"> 
+<!for(var i=0;i<data.length;i++){!>
+	<li class="sourceName" data-name="<!=data[i].name!>"><!=data[i].name!></li>
+	<!for(var j=0;j<data[i].cols.length;j++){!>
+		<li class="sourceItem" data-file="<!=data[i].name!>" data-item="<!=data[i].cols[j]!>"><!=data[i].cols[j]!></li>
+	<!}!>
+<!}!>
+</script>
+<script type="text/html" id="tableData_template"> 
+<!if(data.length==0){!>
+<div class="tableListInfo">没有关联信息</div>
+<!}else{!>
+<table id="connTable">
+	<thead>
+					<tr>
+						<!for(var props in data[0]){!>
+							<th style="width:200px;"><!=props!></th>
+						<!}!>
+ 					</tr>		
+				</thead>
+				<tbody>
+					<!for(var i=0;i<data.length;i++){!>
+						<tr>
+							<!for(var props in data[i]){!>
+								<td title="<!=data[i][props]!>"><!=(data[i][props].length>20?data[i][props].substring(0,20)+"...":data[i][props])!></td>
+							<!}!>					
+						</tr>
+					<!}!>
+				</tbody>
+			</table>
+<!}!>
+</script>
+
+<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+<script src="${ctx}/js/lib/core.js"></script>
+<script src="${ctx}/js/lib/baiduTemplate.js"></script>
+<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+<script src="${ctx}/js/component/data.js"></script>
+<script>
+/*
+	var json = {
+			data:[
+			      {
+			    	  name:"enterprise.txt",
+			    	  key:["enterpriseID","name","date","address","investment","presidentID","presidentName"],
+			    	  value:[
+			    	         {"enterpriseID":"001","name":"易建科技股份有限公司","date":"2006-9-10","address":"国贸嘉陵大厦17层","investment":"3500万","presidentID":"46010019760905","presidentName":"喻龑冰"},
+			    	         {"enterpriseID":"002","name":"海航集团有限公司","date":"1996-4-1","address":"国兴大道海航大厦","investment":"900亿","presidentID":"46010119650708","presidentName":"陈峰"}
+			    	         ]
+			      },
+			      {
+			    	  name:"enterpriseManagers.txt",
+			    	  key:["enterpriseID","peopleID","position"],
+			    	  value:[
+			    	         {"enterpriseID":"001","peopleID":"46010019760905","position":"董事长"},
+			    	         {"enterpriseID":"002","peopleID":"46010119650708","position":"董事长"}
+			    	         ]
+			      },
+			      {
+			    	  name:"people.txt",
+			    	  key:["ID","peoName","gender"],
+			    	  value:[
+			    	         {"ID":"46010019760905","peoName":"喻龑冰","gender":"male"},
+			    	         {"ID":"46010119650708","peoName":"陈峰","gender":"male"}
+			    	         ]
+			      }
+			      ]
+	};
+	*/
+	
+	var connPool = []; //链接数目
+	var connData = [];
+	var connLink = [];
+	var connName = [];
+	console.log(json);
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		var searchCon = windowheight-40-146;
+		$(".searchCon").css("height",windowheight-40);
+		$(".main").css("height",windowheight-40-3);
+		$(".table").css("height",windowheight-40-333-42);
+	}
+	//perfect-scrollbar滚动条插件
+	$('.table').perfectScrollbar();
+	$('#chooseSourceItem').perfectScrollbar();
+	$('#chooseThisItem').perfectScrollbar();
+	$("#table").perfectScrollbar();
+	//返回数据导入页面
+	$(".prev").click(function(){
+		 window.location.href="/KnowledgeGraph/KG/importDS.do";
+	});
+	//清空链接区域
+	$("#connectionClear").click(function(){
+		//初始化全局变量,清空连线
+		connPool.splice(0,connPool.length);
+		connData.splice(0,connData.length);
+		connLink.splice(0,connLink.length);
+		connName.splice(0,connName.length);
+		$("#table").html("<div class='tableListInfo'>没有关联信息</div>");//清空表格
+		$("#connectAreaRow").html("");//清空实体链接
+		$("#connectDetail").hide();//隐藏弹出框
+	});
+	//打开弹窗
+	$("#connectAreaRow").delegate("i","click",function(e){
+		var thisFileName = $(this).parent().parent().data("file");
+		var linkIndex = $(this).parent().parent().data("linkindex");
+		$("#connectDetail #source").val(connPool[linkIndex].sourceFactor).data("file",connPool[linkIndex].sourceName);
+		$("#connectDetail #thisSource").val(connPool[linkIndex].targetFactor).data("file",connPool[linkIndex].targetName);
+		$("#connectDetail").css("left",e.clientX-465).css("top",e.clientY-40);
+		$("#connectDetail .detailList th").eq(2).html(thisFileName);
+		$("#connectDetail").show().data("linkindex",linkIndex);
+		$('#chooseSourceItem').hide();
+		$('#chooseThisItem').hide();
+	});
+	//关闭弹窗
+	$("#connectDetail .close1").click(function(){
+		$("#connectDetail").hide();
+	});
+	//选择匹配字段列表
+	$("#connectDetail #source").focus(function(){
+		var thisFileName = $("#connectDetail .detailList th").eq(2).html();
+		var colsMap = getCols(thisFileName,false);
+		var ht = baidu.template("source_template",{data:colsMap});
+		$(this).parent().find("#chooseSourceItem").html(ht);
+		$('#chooseSourceItem').perfectScrollbar('update');
+		$('#chooseSourceItem').show();
+	}).blur(function(){
+		$('#chooseSourceItem').hide();
+	});
+	$("#connectDetail #thisSource").focus(function(){
+		var thisFileName = $("#connectDetail .detailList th").eq(2).html();
+		var colsMap = getCols(thisFileName,true);
+		var ht = baidu.template("source_template",{data:colsMap});
+		$(this).parent().find("#chooseThisItem").html(ht);
+		$('#chooseThisItem').perfectScrollbar('update');
+		$('#chooseThisItem').show();
+	}).blur(function(){
+		$('#chooseThisItem').hide();
+	});
+	//选择字段
+	$("#chooseSourceItem").delegate(".sourceItem","mousedown",function(){
+		$('#chooseSourceItem').hide();
+		$("#source").val($(this).html()).data("file",$(this).data("file"));
+		changeConnect($('#connectDetail').data("linkindex"));
+	});
+	$("#chooseThisItem").delegate(".sourceItem","mousedown",function(){
+		$('#chooseThisItem').hide();
+		$("#thisSource").val($(this).html()).data("file",$(this).data("file"));
+		changeConnect($('#connectDetail').data("linkindex"));
+	});
+	//清空联接
+	$(".detailList .connectClear").click(function(){
+		$("#connectDetail #source").val("");
+		$("#connectDetail #thisSource").val("");
+	});
+	//获取文件名和字段map
+	function getCols(thisFileName,flag){
+		var colsMap = [];
+		for(var i=0;i<json.data.length;i++){
+			if(flag){
+				console.log("getData:");
+				console.log(connName)
+				if(thisFileName==json.data[i].name && connName.indexOf(json.data[i].name)>=0){
+					colsMap.push({
+						name:json.data[i].name,
+						cols:json.data[i].key
+					});
+				}
+			}else{
+				if(thisFileName!=json.data[i].name && connName.indexOf(json.data[i].name)>=0){
+					colsMap.push({
+						name:json.data[i].name,
+						cols:json.data[i].key
+					});
+				}	
+			}
+		}
+		return colsMap;
+	}
+	//数据源列表,为每一个list绑定文件数据
+	function getDSList(){
+		var ht = baidu.template("filesList_template",json);
+		$("#filesList").html(ht);
+		$("#filesList li").each(function(){
+			$(this).data("content",json.data[$(this).data("index")]);
+		});
+	}
+	/*数据源拖拽*/
+	$("#filesList").delegate("li","dragstart",function(e){
+		e.originalEvent.dataTransfer.setData("file",$(this).data("file"));
+	});
+	$("#main").delegate("#connectArea","dragover",function(e){
+		e.preventDefault();
+	});
+	$("#main").delegate("#connectArea","drop",function(e){
+		e.preventDefault();
+		e.stopPropagation(); 
+		//接收files数据
+		var content = e.originalEvent.dataTransfer.getData("file");
+		addFiles(content);
+	});
+	function addFiles(name){
+		if(connName.indexOf(name)>=0){
+			return;
+		}
+		var files = null;
+		for(var i=0;i<json.data.length;i++){
+			if(json.data[i].name==name){
+				files = json.data[i];
+				break;
+			}
+		}
+		connData.push(files);
+		connName.push(name);
+		//选择连线,链接列表
+		autoChoose();
+		//实体链接
+		entityConn();
+	}
+	//自动选择
+	function autoChoose(){
+		connPool.splice(0, connPool.length);//清除当前的连线
+		if(connName.length==1){
+			showTable(connData[0].value);
+		}else{
+			var sourceName = connName[0];
+			for(var k=1;k<connData.length;k++){
+				var targetName = connName[k];
+				var isConn = false;
+				for(var i=0;i<connData[0].key.length;i++){//第一个实体的列
+					if(isConn) break;//如果比配上,退出循环
+					
+					for(var j=0;j<connData[k].key.length;j++){//第n个实体的列
+						if(connData[0].key[i]==connData[k].key[j]){
+							connPool.push({
+								sourceName:sourceName,
+								targetName:targetName,
+								sourceFactor:connData[0].key[i],
+								targetFactor:connData[k].key[j]
+							});
+							isConn = true;
+							break;//进行第一个实体和下一个实体的列比较
+						}else{
+							if(j==connData[k].key.length-1 && i==connData[0].key.length-1){
+								connPool.push({
+									sourceName:sourceName,
+									targetName:targetName,
+									sourceFactor:connData[0].key[0],
+									targetFactor:connData[k].key[0]
+								});
+							}
+						}//end of if
+					}//end of 3th for
+				}//end of second for
+			}//end of first for
+			console.log(connPool);
+			var tableData = buildConnection();
+			console.log(tableData);
+			showTable(tableData);
+		}//end of if
+	}
+	//链接实体
+	function entityConn(){
+		$(".connectAreaRow").html("");
+		if(connName.length==1){//只有一个实体
+			var ht = baidu.template("firstNode_template",connData[0]);
+			$(".connectAreaRow").append("<li><ul class='connectAreaCol'>"+ht+"</ul></li>");
+		}else{//多余一个实体
+			for(var i=0;i<connPool.length;i++){
+				var $source = $(".connectAreaRow").find("[data-file='"+connPool[i].sourceName+"']");
+				var sourceOutLiIndex = 0;
+				if($source[0]==null || $source[0]==undefined){
+					var ht = baidu.template("firstNode_template",getFileAll(connPool[i].sourceName));
+					$(".connectAreaRow").append("<li><ul class='connectAreaCol'>"+ht+"</ul></li>");
+				}else{
+					sourceOutLiIndex = $source.parent().parent().index();
+				}
+				var targetOutLiIndex = sourceOutLiIndex+1;
+				var outLiNum = $(".connectAreaRow>li").length;
+				var targetData = getFileAll(connPool[i].targetName);
+				targetData.connPoolIndex = i;
+				if(outLiNum>targetOutLiIndex){
+					var ht = baidu.template("link2_template",targetData);
+					$(".connectAreaRow>li:nth-child("+(targetOutLiIndex+1)+") .connectAreaCol").append(ht);
+				}else{
+					var ht = baidu.template("link1_template",targetData);
+					$(".connectAreaRow").append("<li><ul class='connectAreaCol'>"+ht+"</ul></li>");
+				}
+			}
+		}
+	}
+	//建立链接
+	function changeConnect(linkIndex){
+		console.log("linkIndex:"+linkIndex);
+		var sourceName = $("#source").data("file");
+		var targetName = $("#thisSource").data("file");
+		var sourceFactor = $("#source").val();
+		var targetFactor = $("#thisSource").val();
+		//备份改变之前的数据
+		var prevLinkStatus = Object.assign({},connPool[linkIndex]);
+		console.log(prevLinkStatus);
+		
+		if(sourceName!="" && sourceFactor!="" && targetName!="" && targetFactor!=""){
+			connPool.splice(linkIndex,1,{
+				sourceName:sourceName,
+				sourceFactor:sourceFactor,
+				targetName:targetName,
+				targetFactor:targetFactor
+			});
+			console.log(["before",connPool]);
+			var flag = false;
+			//判断第一个表是否被关联到,如果没有关联提示错误,关联的话将关联的连线提到第一个
+			for(var i=0;i<connPool.length;i++){
+				if(connPool[i].sourceName==connName[0]){
+					flag = true;
+					if(i>0){
+						var tmp = Object.assign({},connPool[i]);
+						connPool.splice(i,1);
+						connPool.splice(0,0,tmp);
+					}
+					break;
+				}
+			}
+			console.log(["after",connPool]);
+			if(flag){
+				//刷新表格和实体连线
+				var tableData = buildConnection();
+				console.log(tableData);
+				showTable(tableData);
+				entityConn();
+			}else{
+				//恢复成原来的边
+				connPool.splice(linkIndex,1,{
+					sourceName:prevLinkStatus.sourceName,
+					sourceFactor:prevLinkStatus.sourceFactor,
+					targetName:prevLinkStatus.targetName,
+					targetFactor:prevLinkStatus.targetFactor
+				});
+				//恢复弹出框的内容
+				$("#connectDetail #source").val(prevLinkStatus.sourceFactor).data("file",prevLinkStatus.sourceName);
+				$("#connectDetail #thisSource").val(prevLinkStatus.targetFactor).data("file",prevLinkStatus.targetName);
+				alert("无法更改"+targetName+"的联接子句信息");
+			}
+		}
+	}
+	function showTable(tableData){
+		var ht = baidu.template("tableData_template",{data:tableData});
+		$("#table").html(ht);
+		$("#connTable").css("width",200*$("#connTable tbody tr").eq(0).find("td").length);
+		$('#table').perfectScrollbar('update');
+	}
+	function buildConnection2(){
+		console.log("链接条数:"+connPool.length);
+		if(connPool.length<=0){
+			return null;
+		}
+		var result = new Object();
+		for(var i=0;i<connPool.length;i++){
+			var oneConn = connPool[i];
+			
+			
+		}
+		return entries;
+	}
+	function buildConnection(){
+		console.log("链接条数:"+connPool.length);
+		if(connPool.length<=0){
+			return null;
+		}
+		var entries = (getFileData(connPool[0].sourceName)).concat();
+		var fileNames = [];
+		for(var i=0;i<connPool.length;i++){
+			var tmp = [];
+			var oneConn = connPool[i];
+			var oneSourceValue,
+				oneTargetValue,
+				sourceFactor,
+				targetFactor;
+			if(i==0){
+				fileNames.push(oneConn.sourceName);
+				fileNames.push(oneConn.targetName);
+				oneSourceValue = entries;
+				oneTargetValue = getFileData(oneConn.targetName);
+				sourceFactor = oneConn.sourceFactor;
+				targetFactor = oneConn.targetFactor;
+			}else{
+				if(fileNames.indexOf(oneConn.sourceName)>=0){
+					oneSourceValue = entries;
+					oneTargetValue = getFileData(oneConn.targetName);
+					fileNames.push(oneConn.targetName);
+					sourceFactor = oneConn.sourceFactor;
+					targetFactor = oneConn.targetFactor;
+				}else if(fileNames.indexOf(oneConn.targetName)>=0){
+					oneSourceValue = getFileData(oneConn.sourceName);
+					oneTargetValue = entries;			
+					fileNames.push(oneConn.sourceName);
+					sourceFactor = oneConn.targetFactor;
+					targetFactor = oneConn.sourceFactor;
+				}else{
+					return null;
+				}
+			}
+			
+			if(oneSourceValue!=null && oneTargetValue!=null){
+				for(var j=0;j<oneSourceValue.length;j++){
+					var sourceItem = oneSourceValue[j][sourceFactor];
+					for(var k=0;k<oneTargetValue.length;k++){
+						var targetItem = oneTargetValue[k][targetFactor];
+						if(sourceItem == targetItem){
+							//var res = mergeEntry(oneSourceValue[j],oneTargetValue[k]);
+							tmp.push(Object.assign(clone(oneSourceValue[j]),clone(oneTargetValue[k])));
+							//tmp.push(res);
+							//break;
+						}
+					}
+				}
+				entries = tmp.concat();
+			}
+		}
+		return entries;
+	}
+	function mergeEntry(sourceEntry,targetEntry){
+		
+	}
+	function getFileData(name){
+		for(var i=0;i<json.data.length;i++){
+			if(json.data[i].name==name){
+				return json.data[i].value;
+			}
+		}
+		return null;
+	}
+	function getFileAll(name){
+		for(var i=0;i<json.data.length;i++){
+			if(json.data[i].name==name){
+				return json.data[i];
+			}
+		}
+		return null;
+	}
+	function clone(obj){
+		var o,i,j,k;
+		if(typeof(obj)!="object" || obj===null)return obj;
+		if(obj instanceof(Array))
+		{
+			o=[];
+			i=0;j=obj.length;
+			for(;i<j;i++)
+			{
+				if(typeof(obj[i])=="object" && obj[i]!=null)
+				{
+					o[i]=arguments.callee(obj[i]);
+				}
+				else
+				{
+					o[i]=obj[i];
+				}
+			}
+		}
+		else
+		{
+			o={};
+			for(i in obj)
+			{
+				if(typeof(obj[i])=="object" && obj[i]!=null)
+				{
+					o[i]=arguments.callee(obj[i]);
+				}
+				else
+				{
+					o[i]=obj[i];
+				}
+			}
+		}
+	 
+		return o;
+	}
+	//初始化
+	function init(){
+		getDSList();
+	}
+	init();
+</script>	
+</body>
+</html>

+ 525 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/connectDSBackUp.jsp

@@ -0,0 +1,525 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+<style>
+	*{
+		box-sizing: border-box;
+	}
+</style>
+</head>
+<body class="bg1">
+<div class="headCon">
+	<div class="logo">
+		<img src="${ctx}/images/indexNew/logo3.png">
+	</div>
+	<ul class="nav">
+		<li class="navActive">项目</li>
+		<li>数据源</li>
+		<li>模型</li>
+	</ul>
+</div>
+<div class="searchCon">
+	<div class="subNavUp">
+		<div class="upPart">
+			<div class="btns">
+				<i class="prev"></i>
+				<i class="next"></i>
+				<i class="save"></i>
+			</div>
+			<div class="connect">
+				连接<span><i></i>+  添加</span>
+			</div>
+			<ul id="connList" class="connList">
+				<li>
+					<p>海南易建科技</p>
+				</li>
+			</ul>
+		</div>
+	</div>
+	<div class="sunNavDown">
+		<div class="downPart">
+			<p>文件</p>
+			<div>
+				<ul id="filesList">
+				</ul>
+			</div>
+		</div>
+	</div>
+	<div class="DShistoryCon">
+		<p>已保存数据</p>
+		<div class="DShistory">
+			<ul>
+				<li>海南人口统计</li>
+				<li>海南人口统计</li>
+			</ul>
+		</div>
+	</div>
+</div>
+<div class="main" id="main" style="position:relative;padding:0;">
+	<div class="connectArea" id="connectArea">
+		<div class="connectCon">
+			<div class="connectDetail" hidden id="connectDetail">
+				<div class="detailHead">
+					联接<i class="close1"></i>
+				</div>
+				<div class="connType">
+					<ul>
+						<li class="connTypeActive"><img src="${ctx}/images/indexNew/inside.png"><span>内部</span></li>
+						<li><img src="${ctx}/images/indexNew/leftJoin.png"><span>左侧</span></li>
+						<li><img src="${ctx}/images/indexNew/rightJoin.png"><span>右侧</span></li>
+						<li><img src="${ctx}/images/indexNew/outside.png"><span>外部</span></li>
+					</ul>
+				</div>
+				<div class="detailList">
+					<table>
+						<thead>
+							<tr>
+								<th style="width:40%;">数据源</th>
+								<th style="width:12%;"></th>
+								<th style="width:40%;">people.txt</th>
+								<th style="width:8%;"></th>
+							</tr>
+						</thead>
+						<tbody>
+							<tr>
+								<td style="position:relative">
+									<input type="text" id="source" placeholder="添加关联" />
+									<ul id="chooseSourceItem" hidden>
+
+									</ul>
+								</td>
+								<td>=</td>
+								<td style="position:relative">
+									<input type="text" id="thisSource" placeholder="添加关联" />
+									<ul id="chooseThisItem" hidden>
+
+									</ul>
+								</td>
+								<td class="connectClear">X</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<ul class="connectAreaRow" id="connectAreaRow">
+			<!-- 
+				<li>
+					<ul class="connectAreaCol">
+						<li>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+					</ul>
+				</li>
+				<li>
+					<ul class="connectAreaCol">
+						<li>
+							<div class="link1"><i></i></div>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+						<li>
+							<div class="link2"><i></i></div>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+					</ul>
+				</li>
+				<li>
+					<ul class="connectAreaCol">
+						<li>
+							<div class="link1"><i></i></div>
+							<div class="DSTableItem">yijiankeji</div>
+						</li>
+					</ul>
+				</li>
+				 -->
+			</ul>
+		</div>
+	</div>
+	<div class="tableArea">
+		<div class="tableAreaHead"></div>
+		<div class="table" id="table">
+			<table id="connTable">
+				
+			</table>
+		</div>
+	</div>
+</div>
+
+<script type="text/html" id="filesList_template"> 
+<!for(var i=0;i<data.length;i++){!>
+			<li data-file="<!=data[i].name!>" data-index="<!=i!>" draggable="true">
+						<div>
+							<i></i>
+							<!=data[i].name!>
+						</div>
+					</li>
+<!}!>
+</script>
+<script type="text/html" id="firstNode_template"> 
+<li data-file="<!=name!>">
+	<div class="DSTableItem"><!=name!></div>
+</li>
+</script>
+<script type="text/html" id="link1_template"> 
+<li data-file="<!=name!>">
+	<div class="link1" data-link=""><i></i></div>
+	<div class="DSTableItem"><!=name!></div>
+</li>
+</script>
+<script type="text/html" id="link2_template"> 
+<li data-file="<!=name!>">
+	<div class="link2" data-link=""><i></i></div>
+	<div class="DSTableItem"><!=name!></div>
+</li>
+</script>
+<script type="text/html" id="source_template"> 
+<!for(var i=0;i<data.length;i++){!>
+	<li class="sourceName" data-name="<!=data[i].name!>"><!=data[i].name!></li>
+	<!for(var j=0;j<data[i].cols.length;j++){!>
+		<li class="sourceItem" data-file="<!=data[i].name!>" data-item="<!=data[i].cols[j]!>"><!=data[i].cols[j]!></li>
+	<!}!>
+<!}!>
+</script>
+<script type="text/html" id="tableData_template"> 
+	<thead>
+					<tr>
+						<!for(var props in data[0]){!>
+							<th style="width:200px;"><!=props!></th>
+						<!}!>
+ 					</tr>		
+				</thead>
+				<tbody>
+					<!for(var i=0;i<data.length;i++){!>
+						<tr>
+							<!for(var props in data[i]){!>
+								<td><!=data[i][props]!></td>
+							<!}!>					
+						</tr>
+					<!}!>
+				</tbody>
+</script>
+
+<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+<script src="${ctx}/js/lib/core.js"></script>
+<script src="${ctx}/js/lib/baiduTemplate.js"></script>
+<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+<script>
+	var json = {
+			data:[
+			      {
+			    	  name:"enterprise.txt",
+			    	  key:["enterpriseID","name","date","address","investment","presidentID","presidentName"],
+			    	  value:[
+			    	         {"enterpriseID":"001","name":"易建科技股份有限公司","date":"2006-9-10","address":"国贸嘉陵大厦17层","investment":"3500万","presidentID":"46010019760905","presidentName":"喻龑冰"},
+			    	         {"enterpriseID":"002","name":"海航集团有限公司","date":"1996-4-1","address":"国兴大道海航大厦","investment":"900亿","presidentID":"46010119650708","presidentName":"陈峰"}
+			    	         ]
+			      },
+			      {
+			    	  name:"enterpriseManagers.txt",
+			    	  key:["enterpriseID","peopleID","position"],
+			    	  value:[
+			    	         {"enterpriseID":"001","peopleID":"46010019760905","position":"董事长"},
+			    	         {"enterpriseID":"002","peopleID":"46010119650708","position":"董事长"}
+			    	         ]
+			      },
+			      {
+			    	  name:"people.txt",
+			    	  key:["ID","name","gender"],
+			    	  value:[
+			    	         {"ID":"46010019760905","peoName":"喻龑冰","gender":"male"},
+			    	         {"ID":"46010119650708","peoName":"陈峰","gender":"male"}
+			    	         ]
+			      }
+			      ]
+	};
+	var connPool = []; //链接数目
+	var connData = [];
+	var connLink = [];
+	var connName = [];
+	console.log(json);
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		var searchCon = windowheight-40-146;
+		$(".searchCon").css("height",windowheight-40);
+		$(".main").css("height",windowheight-40-3);
+		$(".table").css("height",windowheight-40-333-42);
+	}
+	//perfect-scrollbar滚动条插件
+	$('.table').perfectScrollbar();
+	$('#chooseSourceItem').perfectScrollbar();
+	$('#chooseThisItem').perfectScrollbar();
+	$("#table").perfectScrollbar();
+	//打开弹窗
+	$("#connectAreaRow").delegate("i","click",function(e){
+		var thisFileName = $(this).parent().parent().data("file");
+		$("#connectDetail #source").val("");
+		$("#connectDetail #thisSource").val("");
+		$("#connectDetail").css("left",e.clientX-465).css("top",e.clientY-40);
+		$("#connectDetail .detailList th").eq(2).html(thisFileName);
+		$("#connectDetail").show();
+		$('#chooseSourceItem').hide();
+		$('#chooseThisItem').hide();
+	});
+	//关闭弹窗
+	$("#connectDetail .close1").click(function(){
+		$("#connectDetail").hide();
+	});
+	//选择匹配字段列表
+	$("#connectDetail #source").focus(function(){
+		var thisFileName = $("#connectDetail .detailList th").eq(2).html();
+		var colsMap = getCols(thisFileName,false);
+		var ht = baidu.template("source_template",{data:colsMap});
+		$(this).parent().find("#chooseSourceItem").html(ht);
+		$('#chooseSourceItem').perfectScrollbar('update');
+		$('#chooseSourceItem').show();
+	}).blur(function(){
+		$('#chooseSourceItem').hide();
+	});
+	$("#connectDetail #thisSource").focus(function(){
+		var thisFileName = $("#connectDetail .detailList th").eq(2).html();
+		var colsMap = getCols(thisFileName,true);
+		var ht = baidu.template("source_template",{data:colsMap});
+		$(this).parent().find("#chooseThisItem").html(ht);
+		$('#chooseThisItem').perfectScrollbar('update');
+		$('#chooseThisItem').show();
+	}).blur(function(){
+		$('#chooseThisItem').hide();
+	});
+	//选择字段
+	$("#chooseSourceItem").delegate(".sourceItem","mousedown",function(){
+		$('#chooseSourceItem').hide();
+		$("#source").val($(this).html()).data("file",$(this).data("file"));
+		doConnect();
+	});
+	$("#chooseThisItem").delegate(".sourceItem","mousedown",function(){
+		$('#chooseThisItem').hide();
+		$("#thisSource").val($(this).html()).data("file",$(this).data("file"));
+		doConnect();
+	});
+	//清空联接
+	$(".detailList .connectClear").click(function(){
+		$("#connectDetail #source").val("");
+		$("#connectDetail #thisSource").val("");
+	});
+	//获取文件名和字段map
+	function getCols(thisFileName,flag){
+		var colsMap = [];
+		for(var i=0;i<json.data.length;i++){
+			if(flag){
+				if(thisFileName==json.data[i].name){
+					colsMap.push({
+						name:json.data[i].name,
+						cols:json.data[i].key
+					});
+				}
+			}else{
+				if(thisFileName!=json.data[i].name){
+					colsMap.push({
+						name:json.data[i].name,
+						cols:json.data[i].key
+					});
+				}	
+			}
+		}
+		return colsMap;
+	}
+	//数据源列表,为每一个list绑定文件数据
+	function getDSList(){
+		var ht = baidu.template("filesList_template",json);
+		$("#filesList").html(ht);
+		$("#filesList li").each(function(){
+			$(this).data("content",json.data[$(this).data("index")]);
+		});
+	}
+	/*数据源拖拽*/
+	$("#filesList").delegate("li","dragstart",function(e){
+		e.originalEvent.dataTransfer.setData("file",$(this).data("file"));
+	});
+	$("#main").delegate("#connectArea","dragover",function(e){
+		e.preventDefault();
+	});
+	$("#main").delegate("#connectArea","drop",function(e){
+		e.preventDefault();
+		e.stopPropagation(); 
+		//接收files数据
+		var content = e.originalEvent.dataTransfer.getData("file");
+		addFiles(content);
+	});
+	function addFiles(name){
+		if(connName.indexOf(name)>=0){
+			return;
+		}
+		var files = null;
+		for(var i=0;i<json.data.length;i++){
+			if(json.data[i].name==name){
+				files = json.data[i];
+				break;
+			}
+		}
+		console.log(files);
+		connData.push(files);
+		connName.push(name);
+		//显示数据源实体
+		if(connName.length==1){
+			var ht = baidu.template("firstNode_template",files);
+			$(".connectAreaRow").append("<li><ul class='connectAreaCol'>"+ht+"</ul></li>");
+		}else if(connName.length==2){
+			var ht = baidu.template("link1_template",files);
+			$(".connectAreaRow").append("<li><ul class='connectAreaCol'>"+ht+"</ul></li>");
+		}else if(connName.length>2){
+			var ht = baidu.template("link2_template",files);
+			$(".connectAreaRow>li:nth-child(2) .connectAreaCol").append(ht);
+		}
+		//显示表格
+		if(connName.length==1){
+			showTable(files.value);
+		}else if(connName.length==2){
+			twoEntity();
+		}
+	}
+	//两个实体时
+	function twoEntity(){
+		var sourceName = connName[0];
+		var targetName = connName[1];
+		for(var i=0;i<connData[0].key.length;i++){
+			for(var j=0;j<connData[1].key.length;j++){
+				if(connData[0].key[i]==connData[1].key[j]){
+					connPool.push({
+						sourceName:sourceName,
+						targetName:targetName,
+						sourceFactor:connData[0].key[i],
+						targetFactor:connData[0].key[j]
+					});
+					var tableData = buildConnection();
+					console.log(tableData);
+					showTable(tableData);
+					return true;
+				}
+			}
+		}
+	}
+	//建立链接
+	function doConnect(){
+		var sourceName = $("#source").data("file");
+		var targetName = $("#thisSource").data("file");
+		var sourceFactor = $("#source").val();
+		var targetFactor = $("#thisSource").val();
+		
+		if(sourceName!="" && sourceFactor!="" && targetName!="" && targetFactor!=""){
+			connPool.push({
+				sourceName:sourceName,
+				sourceFactor:sourceFactor,
+				targetName:targetName,
+				targetFactor:targetFactor
+			});
+			var tableData = buildConnection();
+			console.log(tableData);
+			showTable(tableData);
+		}
+	}
+	function showTable(tableData){
+		var ht = baidu.template("tableData_template",{data:tableData});
+		$("#connTable").html(ht);
+		$("#connTable").css("width",200*$("#connTable tbody tr").eq(0).find("td").length);
+		$('#table').perfectScrollbar('update');
+	}
+	function buildConnection2(){
+		console.log("链接条数:"+connPool.length);
+		if(connPool.length<=0){
+			return null;
+		}
+		var result = new Object();
+		for(var i=0;i<connPool.length;i++){
+			var oneConn = connPool[i];
+			
+			
+		}
+		return entries;
+	}
+	function buildConnection(){
+		console.log("链接条数:"+connPool.length);
+		if(connPool.length<=0){
+			return null;
+		}
+		var entries = (getFileData(connPool[0].sourceName)).concat();
+		var fileNames = [];
+		for(var i=0;i<connPool.length;i++){
+			var tmp = [];
+			var oneConn = connPool[i];
+			var oneSourceValue,
+				oneTargetValue,
+				sourceFactor,
+				targetFactor;
+			if(i==0){
+				fileNames.push(oneConn.sourceName);
+				fileNames.push(oneConn.targetName);
+				oneSourceValue = entries;
+				oneTargetValue = getFileData(oneConn.targetName);
+				sourceFactor = oneConn.sourceFactor;
+				targetFactor = oneConn.targetFactor;
+			}else{
+				if(fileNames.indexOf(oneConn.sourceName)>=0){
+					oneSourceValue = entries;
+					oneTargetValue = getFileData(oneConn.targetName);
+					fileNames.push(oneConn.targetName);
+					sourceFactor = oneConn.sourceFactor;
+					targetFactor = oneConn.targetFactor;
+				}else if(fileNames.indexOf(oneConn.targetName)>=0){
+					oneSourceValue = getFileData(oneConn.sourceName);
+					oneTargetValue = entries;			
+					fileNames.push(oneConn.sourceName);
+					sourceFactor = oneConn.targetFactor;
+					targetFactor = oneConn.sourceFactor;
+				}else{
+					return null;
+				}
+			}
+			
+			if(oneSourceValue!=null && oneTargetValue!=null){
+				for(var j=0;j<oneSourceValue.length;j++){
+					var sourceItem = oneSourceValue[j][sourceFactor];
+					for(var k=0;k<oneTargetValue.length;k++){
+						var targetItem = oneTargetValue[k][targetFactor];
+						if(sourceItem == targetItem){
+							//var res = mergeEntry(oneSourceValue[j],oneTargetValue[k]);
+							tmp.push(Object.assign(oneSourceValue[j],oneTargetValue[k]));
+							//tmp.push(res);
+							break;
+						}
+					}
+				}
+				entries = tmp.concat();
+			}
+		}
+		return entries;
+	}
+	function mergeEntry(sourceEntry,targetEntry){
+		
+	}
+	function getFileData(name){
+		for(var i=0;i<json.data.length;i++){
+			if(json.data[i].name==name){
+				return json.data[i].value;
+			}
+		}
+		return null;
+	}
+	//初始化
+	function init(){
+		getDSList();
+	}
+	init();
+</script>	
+</body>
+</html>

+ 201 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/importDS.jsp

@@ -0,0 +1,201 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+<style>
+	*{
+		box-sizing: border-box;
+	}
+</style>
+</head>
+<body class="bg1">
+<div class="headCon">
+	<div class="headCon">
+		<jsp:include page="../top.jsp">
+		<jsp:param name="index" value="1" />
+		</jsp:include>
+	</div>
+</div>
+<div class="searchCon">
+	<div class="sunNavCom">
+		<div class="subNavForDS">
+			<p class="subNavForDSHead">数据导入</p>
+			<span class="subNavForDSSubHead">请选择文件类型</span>
+			<ul>
+				<li><i class="excel"></i>Excel</li>
+				<li><i class="text"></i>文本文件</li>
+				<li><i class="stats"></i>统计文件</li>
+			</ul>
+			<input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();" multiple hidden/>
+		</div>
+	</div>
+	<div class="DShistoryCon">
+		<p>已保存数据</p>
+		<div class="DShistory">
+			<ul>
+				<li>海南人口统计</li>
+				<li>海南人口统计</li>
+			</ul>
+		</div>
+	</div>
+</div>
+<div class="main" id="main" style="position:relative;padding-bottom: 12px;padding-right: 22px;">
+	<div class="DSOpen">
+		<p>打开</p>
+		<ul id="DSList">
+			
+		</ul>
+	</div>
+</div>
+
+<script type="text/html" id="DSList_template"> 
+<!for(var i=0;i<data.length;i++){!>
+			<li>
+				<div class="DSItem">
+					<img src="${ctx}/images/indexNew/33.png">
+				</div>
+				<span><!=data[i]!></span>
+			</li>
+<!}!>
+</script>
+
+<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+<script src="${ctx}/js/lib/core.js"></script>
+<script src="${ctx}/js/lib/baiduTemplate.js"></script>
+<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+<script>
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		var searchCon = windowheight-40-146;
+		$(".searchCon").css("height",windowheight-40);
+		$(".main").css("height",windowheight-40-12-12);
+	}
+	//perfect-scrollbar滚动条插件
+	$('#main').perfectScrollbar();
+
+	//
+	$(".subNavForDS ul").delegate("li","click",function(){
+		$("#fileToUpload").click();
+	});
+	$("#DSList").delegate("li","click",function(){
+		uploadFiles();
+	});
+	
+	function fileSelected(){
+		var files = document.getElementById('fileToUpload').files;
+		var filesData = {
+				data:[]
+		};
+		for(var i=0;i<files.length;i++){
+			if(allFilesName.indexOf(files[i].name)<0){
+				allFilesName.push(files[i].name);
+				allFiles.push(files[i]);
+			}
+			/*
+			filesData.data.push({
+				name:files[i].name,
+			});
+			*/
+			//var file = files[i];
+			//fd.append("fileToUpload", file);
+		}
+		var ht = baidu.template("DSList_template",{data:allFilesName});
+		$("#DSList").html(ht);
+	}
+	var allFiles = [];
+	var allFilesName = [];
+	
+	function uploadFiles(){	
+		// window.location.href="/KnowledgeGraph/KG/connectDS.do";
+		
+		var fd = new FormData();
+		for(var i=0;i<allFiles.length;i++){
+			fd.append("fileToUpload", allFiles[i]);
+		}
+        var xhr = new XMLHttpRequest();
+        xhr.addEventListener("load", uploadComplete, false);
+        xhr.addEventListener("error", uploadFailed, false);
+        xhr.addEventListener("abort", uploadCanceled, false);
+		xhr.open("POST", "/KnowledgeGraph/KG/uploadFile.do");
+        xhr.send(fd);
+      }
+
+      function uploadComplete(evt) {
+        //alert(evt.target.responseText);
+    	window.location.href="/KnowledgeGraph/KG/connectDS.do";
+      }
+
+      function uploadFailed(evt) {
+        alert("There was an error attempting to upload the file.");
+      }
+
+      function uploadCanceled(evt) {
+        alert("The upload has been canceled by the user or the browser dropped the connection.");
+      }
+</script>
+<script type="text/javascript">/*
+      function fileSelected() {
+        var file = document.getElementById('fileToUpload').files[0];
+        if (file) {
+          var fileSize = 0;
+          if (file.size > 1024 * 1024)
+            fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
+          else
+            fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
+
+          document.getElementById('fileName').innerHTML = 'Name: ' + file.name;
+          document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;
+          document.getElementById('fileType').innerHTML = 'Type: ' + file.type;
+        }
+		console.log(file);
+      }
+
+      function uploadFile() {
+        var fd = new FormData();
+        fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
+        var xhr = new XMLHttpRequest();
+        xhr.upload.addEventListener("progress", uploadProgress, false);
+        xhr.addEventListener("load", uploadComplete, false);
+        xhr.addEventListener("error", uploadFailed, false);
+        xhr.addEventListener("abort", uploadCanceled, false);
+        console.log(fd);
+		xhr.open("POST", "/KnowledgeGraph/KG/uploadFile.do");
+        xhr.send(fd);
+      }
+
+      function uploadProgress(evt) {
+        if (evt.lengthComputable) {
+          var percentComplete = Math.round(evt.loaded * 100 / evt.total);
+          document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
+        }
+        else {
+          document.getElementById('progressNumber').innerHTML = 'unable to compute';
+        }
+      }
+
+      function uploadComplete(evt) {
+        alert(evt.target.responseText);
+      }
+
+      function uploadFailed(evt) {
+        alert("There was an error attempting to upload the file.");
+      }
+
+      function uploadCanceled(evt) {
+        alert("The upload has been canceled by the user or the browser dropped the connection.");
+      }
+      */
+    </script>
+</body>
+</html>

+ 246 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/index.html

@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="./css/base.css" />
+<link rel="stylesheet"  type="text/css" href="./css/all.css" />
+<title>知识图谱平台</title>
+</head>
+<body>
+<div class="headCon">
+	<div class="logo">
+		<img src="./images/logo.png">
+	</div>
+	<ul class="nav">
+		<li>项目</li>
+		<li>数据源</li>
+		<li>模型</li>
+	</ul>
+</div>
+<div class="searchCon">
+	<div class="searchDetail">
+		<ul class="searchType">
+			<li class="active">全部</li>
+			<li>查公司</li>
+			<li>查人物</li>
+			<li style="margin-right:0px">查关系</li>
+		</ul>
+		<input id="input" type="text" />
+		<div id="search-Btn">查询</div>
+	</div>
+	<div class="history">
+		<p>最近搜索</p>
+		<ul class="">
+			<li>海航集团有限公司</li>
+			<li>海南易建科技股份有限公司</li>
+			<li>刘元弘</li>
+		</ul>
+	</div>
+</div>
+<div class="itemCon">
+	<div class="filter">
+		<div class="filterItem">
+			<label>注册资本</label>
+			<input id="" class="condition" type="text" />
+			<img src="./images/sel.png">
+		</div>
+		<div class="filterItem">
+			<label>注册时间</label>
+			<input id="" class="condition" type="text" />
+			<img src="./images/sel.png">
+		</div>
+	</div>
+	<div class="allResult">
+		<p>找到<span>540</span>家相关企业</p>
+	</div>
+	<div id="allResultContainer">
+		<ul class="allResultList">
+			<li class="choose">
+				<div class="allResultItem">
+					<p class="itemName">海航集团有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航集团有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li><li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+			<li>
+				<div class="allResultItem">
+					<p class="itemName">海航<span>集团</span>有限公司</p>
+					<p class="itemDetail">法定代表人:<span>陈锋</span>
+						行业:<span>商务服务</span>
+						状态:<span>存续</span>
+					</p>
+				</div>
+			</li>
+		</ul>
+	</div>
+</div>
+<div class="resultCon">
+	<div class="resultHead">
+		<img src="./images/headpic.png">
+		<div>
+			<p class="resultName">海航集团有限公司</p>
+			<p>电话:0898-66739698   邮箱:groupoffice@hnair.com</p>
+			<p>网址:http://www.hnagroup.com</p>
+			<p>地址:海口市美兰区国兴大道7号新海航大厦25层</p>
+		</div>
+	</div>
+	<div class="resultInfo">
+		<p class="resultInfoTitle">高管信息12</p>
+		<div class="resultInfoList">
+			<ul>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+				<li>
+					<p>陈锋</p>
+					<p>负责人</p>
+				</li>
+			</ul>
+		</div>
+	</div>
+	<div class="result">
+		<div class="fullScreen-btn">全屏</div>
+	</div>
+</div>
+
+<script src="./js/jquery-1.11.1.min.js"></script>
+<script>
+(function(){
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		$(".searchCon").css("height",windowheight-40);
+		$(".itemCon").css("height",windowheight-40);
+		$(".resultCon").css("height",windowheight-40);
+		$("#allResultContainer").css("height",windowheight-153);
+	}
+})()
+</script>
+</body>
+</html>

+ 524 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/index.jsp

@@ -0,0 +1,524 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/base.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/all.css" />
+<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/perfect-scrollbar.css" />
+<title>知识图谱平台</title>
+</head>
+<body>
+<div class="headCon">
+	<div class="logo">
+		<img src="${ctx}/images/indexNew/logo2.png">
+	</div>
+	<ul class="nav">
+		<li>项目</li>
+		<li>数据源</li>
+		<li>模型</li>
+	</ul>
+</div>
+<div class="searchCon">
+	<div class="searchDetail" id="searchDetail">
+		<ul class="searchType" id="searchType">
+			<li class="active">全部</li>
+			<!-- <li>查公司</li>
+			<li>查人物</li>
+			<li style="margin-right:0px">查关系</li> -->
+		</ul>
+		<input id="input" type="text" placeholder="请输入关键字"/>
+		<div id="search-Btn">查询</div>
+		<div id="reset">重置</div>
+	</div>
+	<div class="history" style="height:180px;">
+		<ul class="">
+		</ul>
+	</div>
+	<div class="dataSource">
+		<p>数据源</p>
+		<div id="dragDS">
+			<span class="dataSourceActive" data-id="news" draggable="true">新闻数据源</span>
+			<span data-id="people" draggable="true">人口数据源</span>
+		</div>
+		<img src="${ctx}/images/indexNew/ds.png" style="margin-top:15px;">
+		<div class="dsList">
+			<ul>
+				
+			</ul>
+		</div>
+	</div>
+</div>
+<div class="itemCon" hidden style="left:-82px">
+	<img src="${ctx}/images/indexNew/x.png" class="searchConClose">
+	<div class="filter">
+		<div class="filterItem">
+			<label>注册资本</label>
+			<input id="" class="condition" type="text" />
+			<img src="${ctx}/images/indexNew/sel.png">
+		</div>
+		<div class="filterItem">
+			<label>注册时间</label>
+			<input id="" class="condition" type="text" />
+			<img src="${ctx}/images/indexNew/sel.png">
+		</div>
+	</div>
+	<div class="allResult">
+		<p>找到<span>0</span>家相关企业</p>
+	</div>
+	<div id="allResultContainer">
+		<ul class="allResultList" id="allResultList">
+			
+		</ul>
+	</div>
+</div>
+<div id="resultCon1" class="resultCon" style="margin-left:255px;" >
+	<ul>
+		<li>
+			<div>
+				<img src="${ctx}/images/indexNew/pad1.png">
+				<p>深度挖掘</p>
+				<span>企业关系人物关系深度挖掘</span>
+			</div>
+		</li>
+		<li>
+			<div>
+				<img src="${ctx}/images/indexNew/pad2.png">
+				<p>数据维度</p>
+				<pan>丰富数据只能便捷的查询操作</span>
+			</div>
+		</li>
+		<li>
+			<div>
+				<img src="${ctx}/images/indexNew/pad3.png">
+				<p>全量数据</p>
+				<span>企业信息股东信息全网罗</span>
+			</div>
+		</li>
+	</ul>
+</div>
+<div id="resultCon2" class="resultCon" style="margin-left:255px;" hidden>
+	<div class="cateCon" id="cateCon">
+		<ul>
+			<li>
+				<div class="divc cateConHover" data-target="resultHead" data-image="1">
+					<img src="${ctx}/images/indexNew/catea1.png">
+					<p>企业信息</p>
+				</div>
+			</li>
+			<li>
+				<div class="divc" data-target="resultHead2" data-image="2">
+					<img src="${ctx}/images/indexNew/cate2.png">
+					<p>股东信息</p>
+				</div>
+			</li>
+			<li>
+				<div  class="divc" data-target="resultHead3" data-image="3">
+					<img src="${ctx}/images/indexNew/cate3.png">
+					<p>高管信息</p>
+				</div>
+			</li>
+		</ul>
+	</div>
+	<div class="resultContainer">
+		<div class="resultHead" id="resultHead">
+			<img src="${ctx}/images/indexNew/company.png">
+			<div class="infoDetail" style="margin-left:95px">
+				<p class="infoName"></p>
+				<ul>
+					<li  style="border-right: 1px solid #e9e9e9; margin-right: 1%; width: 20%;">
+						<p>法定代表人:<span></span></p>
+						<p>行业:<span></span></p>
+						<p>状态:<span></span></p>
+					</li>
+					<li  style="border-right: 1px solid #e9e9e9; margin-right: 1%; width: 25%;">
+						<p>企业类型:<span></span></p>
+						<p>工商注册号:<span></span></p>
+						<p>注册资本:<span></span></p>
+					</li>
+					<li  style="margin-right: 1%; width: 47%;">
+						<p style="line-height: 22px;">经营范围:<span></span></p>
+					</li>
+				</ul>
+			</div>
+			<div class="infoFoot">
+				<ul>
+					<li><p>电话:<span></span></p></li>
+					<li><p>网址:<span></span></p></li>
+					<li><p>地址:<span></span></p></li>
+				</ul>
+			</div>
+		</div>
+		<div class="resultHead" id="resultHead2" hidden>
+			<p class="resultInfoTitle">股东人数<span id="invertorNum"></span></p>
+			<div class="resultInfoList">
+				<ul id="InvestorList">
+					
+				</ul>
+			</div>
+		</div>
+		<div class="resultHead" id="resultHead3" hidden>
+			<p class="resultInfoTitle">高管人数<span id="managerNum"></span></p>
+			<div class="resultInfoList">
+				<ul id="managerList">
+					
+				</ul>
+			</div>
+		</div>
+		<div class="result">
+			<div class="fullScreen-btn"></div>
+			<div class="control-btns">
+				<ul>
+					<li>
+						<div class="control-btn" data-type="sameType" data-level="2">
+							<img src="${ctx}/images/indexNew/type1.png"> 企业
+						</div>
+					</li>
+					<li>
+						<div class="control-btn control-btnActive" data-type="normalType" data-level="2">
+							<img src="${ctx}/images/indexNew/type3.png"> 展示
+						</div>
+					</li>
+					
+				</ul>
+			</div>
+			<div id="draw" style="height:500px;overflow: hidden;position: relative;width: 100%;">
+		</div>
+	</div>
+</div>
+
+<!--实体列表模板-->
+<script type="text/html" id="managerList_template">
+<!for(var i=0;i<data.length;i++){!>
+					<li>
+						<p><!=data[i].Name!></p>
+						<p><!=data[i].Positions.join(";")!></p>
+					</li>
+<!}!>
+</script>
+<!--实体列表模板-->
+<script type="text/html" id="investorList_template">
+<!for(var i=0;i<name.length;i++){!>
+					<li title="<!=name[i]!>">
+						<p><!=subName[i]!></p>
+						<p>投资方</p>
+					</li>
+<!}!>
+</script>
+
+<!--实体列表模板-->
+<script type="text/html" id="allResultList_template">
+<!for(var i=0;i<data.length;i++){!>
+	<li data-id="<!=data[i].QYZCH!>" data-name="<!=data[i].QYMC!>">
+		<div class="allResultItem" title="<!=data[i].QYMC!>">
+			<p id="itemName<!=i!>" class="itemName"><!=data[i].subName!></p>
+			<p class="itemDetail">法定代表人:<span><!=data[i].JYZXM!></span>
+				行业:<span></span>
+				状态:<span></span>
+			</p>
+		</div>
+	</li>
+<!}!>
+</script>
+
+<!--实体详情模板-->
+<script type="text/html" id="infoDetail_template">
+			<img src="${ctx}/images/indexNew/company.png">
+			<div class="infoDetail" style="margin-left:95px">
+				<p class="infoName"><!=(data.name==""?"无记录":data.name)!></p>
+				<ul>
+					<li  style="border-right: 1px solid #e9e9e9; margin-right: 1%; width: 20%;">
+							<p>法定代表人:<span><!=(data.frdb==""?"无记录":data.frdb)!></span></p>
+							<p>行业:<span><!=(data.Field==""?"无记录":data.Field)!></span></p>
+							<p>状态:<span><!="无记录"!></span></p>
+					</li>
+					<li  style="border-right: 1px solid #e9e9e9; margin-right: 1%; width: 25%;">
+							<p>企业类型:<span><!="无记录"!></span></p>
+							<p>工商注册号:<span><!=(data.ID==""?"无记录":data.ID)!></span></p>
+							<p>注册资本:<span><!=(data.invest==""?"无记录":data.invest)!></span></p>
+					</li>
+					<li  style="margin-right: 1%; width: 47%;">
+							<p style="max-height: 66px;" title="<!=(data.range==""?"无记录":data.range)!>">经营范围:<span><!=(data.range==""?"无记录":data.range)!></span><p>
+					</li>
+				</ul>
+			</div>
+			<div class="infoFoot">
+				<ul>
+					<li><p>电话:<span><!="无记录"!></span></p></li>
+					<li><p>网址:<span><!="无记录"!></span></p></li>
+					<li><p>地址:<span><!=(data.address==""?"无记录":data.address)!></span></p></li>
+				</ul>
+			</div>
+</script>
+
+<script src="${ctx}/js/lib/d3.v4.js"></script>
+<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+<script src="${ctx}/js/lib/perfect-scrollbar.js"></script>
+<script src="${ctx}/js/lib/core.js"></script>
+<script src="${ctx}/js/lib/baiduTemplate.js"></script>
+<script src="${ctx}/js/lib/core.js"></script>
+<script src="${ctx}/js/component/graph.v2.js"></script>
+
+<script>
+(function(){
+	/*初始化图*/
+	var searchIds = new Array(); 
+	var searchNames = new Array();
+	var opt = {con:"draw",width:$("#draw").width(),height:$("#draw").height()};
+	var graph = new Graph(opt);
+	graph.init();
+	/*信息切换*/
+	$("#cateCon .divc").click(function(){
+		$("#cateCon").find(".divc").removeClass("cateConHover");
+		$(this).addClass("cateConHover");
+		var targetHead = $(this).data("target");
+		$(".resultHead").hide();
+		$("#"+targetHead).show();
+		var index = $(this).data("image");
+		$(".divc img").each(function(i,that){
+			if((i+1)==index){
+				$(that).attr("src","/KnowledgeGraph/images/indexNew/catea"+(i+1)+".png");
+			}else{
+				$(that).attr("src","/KnowledgeGraph/images/indexNew/cate"+(i+1)+".png");
+			}
+		});
+	});
+	/*数据源拖拽*/
+	$("#dragDS").find("span").each(function(){
+		$(this)[0].ondragstart = function(e){
+			e.dataTransfer.setData("Text",$(this).data("id"));
+		};
+	});
+	$("#draw")[0].ondragover = function(e){
+		e.preventDefault();
+	};
+	$("#draw")[0].ondrop = function(e){
+		e.preventDefault();
+		e.stopPropagation(); 
+		var id = e.dataTransfer.getData("Text");
+		_.MessageManager.fire("addDataSource",id);
+	};
+	/*初始化数据源*/
+	$(".control-btns li div").click(function(){
+		if($(this).hasClass("control-btnActive")){
+			return;
+		}
+		$(".control-btns li div").removeClass("control-btnActive");
+		$(this).addClass("control-btnActive");
+		console.log($(this).data("type"));
+		_.MessageManager.fire("changeModel",{type:$(this).data("type")});
+	});
+	$(".dsList").delegate(".close","click",function(){
+		$(this).parent().remove();
+		_.MessageManager.fire("dataProcess");
+	});
+	/*重置*/
+	$("#reset").click(function(){
+		$("#resultCon2").hide();
+		$("#resultCon1").show();
+		searchIds.splice(0, searchIds.length);
+		searchNames.splice(0, searchNames.length);
+		$("#allResultList").html("");
+		$(".allResult span").html("0");
+		$(".searchConClose").click();
+		$("#input").val("");
+		$(".history ul").html("");
+		$(".dsList ul").html("");
+	});
+	/*根据窗口大小调整页面*/
+	resize();
+	$(window).resize(function(){
+		resize();
+	});
+	function resize(){
+		//获取窗口高度
+		var windowheight=$(window).height();
+		var searchCon = windowheight-40-146;
+		$(".searchCon").css("height",windowheight-40);
+		//$(".history").css("height",searchCon*0.64-27);
+		$(".dsList").css("height",windowheight-40-107-27-402+70-33);
+		$(".itemCon").css("height",windowheight-40);
+		$(".resultCon").css("height",windowheight-40);
+		$("#allResultContainer").css("height",windowheight-153);
+		$("#draw").css("height",windowheight-343+162);
+		var pt = (windowheight-40)/2-90;
+		$("#resultCon1").css("padding-top",pt);
+		$(".cateCon").css("height",windowheight-40);
+		graph.resize($("#draw").width(),$("#draw").height());
+	}
+	/*切换查询类型*/
+	$("#searchType li").click(function(){
+		$("#searchType").children().removeClass("active");
+		$(this).addClass("active");
+	});
+	/*搜索实体*/
+	$("#search-Btn").click(function(){
+		var inputValue = $("#input").val();
+		if(inputValue==null || inputValue==""){
+			alert("请输入公司名字!");
+			$("#input").focus();
+		}else{
+			$.post("/KnowledgeGraph/KG/showByKey.do",{QYMC:inputValue},function(result){
+				for(var i=0;i<result.length;i++){
+					result[i].subName = stringLimit(result[i].QYMC,14,13);
+				}
+				var ht = baidu.template("allResultList_template",{data:result});
+				$("#allResultList").html(ht);
+				$(".allResult p span").html(result.length);
+				$(".itemCon").show().animate({left:"255px"},750,function(){
+					$(this).css({"z-index":1});
+					resize();
+				});
+				$(".resultCon").animate({"margin-left":"592px"},750);
+				for(var i=0;i<result.length;i++){
+					SearchHighlight("itemName"+i,inputValue);
+				}
+			},"json"); 
+		}
+	});
+	/*回车触发搜索实体*/
+	$("#input").keydown(function(e){
+		if(e.keyCode==13){
+			$("#search-Btn").click();
+		}
+	});
+	/*收起搜索结果*/
+	$(".searchConClose").click(function(){
+		$(".itemCon").css({"z-index":-1}).animate({left:"-82px"},750,function(){
+			$(this).hide();
+			resize();
+		});
+		$(".resultCon").animate({"margin-left":"255px"},750);
+	});
+	/*点击结果列表查询实体*/
+	$("#allResultList").delegate("li","click",function(){
+		var thisId = $(this).data("id");
+		var thisName = $(this).data("name");
+		if(searchIds.indexOf(thisId)<0){
+			searchNames.push(thisName);
+			searchIds.push(thisId);
+			var searchType = $(".control-btnActive").data("type");
+			//$(".dsList ul").html("");
+			$(".history ul").append("<li data-id='"+thisId+"' title='"+thisName+"'>"+stringLimit(thisName,13,11)+"<img class='close' src='${ctx}/images/close2.png'></li>");
+			var data={
+					ids:searchIds.join(";"),
+					level:2,
+					names:searchNames.join(";"),
+					searchType:searchType
+			};
+			graph.loadData("/KnowledgeGraph/KG/getGraphd3rel.do",data);
+			getDetail(thisId);
+			getCompanyManager(thisId);
+			getCompanyInvester(thisId);
+			$("#resultCon1").hide();
+			$("#resultCon2").show();
+			$(".searchConClose").click();
+		}else{
+			alert("已添加!");	
+		}
+	});
+	/*删除搜索项*/
+	$(".history").delegate(".close","click",function(){
+		var item = $(this).parent();
+		item.remove();
+		var itemId = item.data("id");
+		var itemIndex = searchIds.indexOf(itemId);
+		searchIds.splice(itemIndex,1);
+		searchNames.splice(itemIndex,1);
+		$(".dsList ul").html("");
+		if(searchIds.length==0){
+			graph.clear();
+		}else{
+			var data={
+					ids:searchIds.join(";"),
+					level:2
+			};
+			graph.loadData("/KnowledgeGraph/KG/getGraphd3rel.do",data);	
+		}
+	});
+	//图中双击查询
+	_.MessageManager.on("extend",function($ev,node){
+		console.log(node);
+		//graph.clear();
+		//graph.loadData("/KnowledgeGraph/KG/getGraphd3rel.do",data);
+	});
+	//图中单击查询详情
+	_.MessageManager.on("infoDetail",function($ev,data){
+		getDetail(data.id);
+		getCompanyManager(data.id);
+		getCompanyInvester(data.id);
+	});
+	/*限制字符串长度*/
+	function stringLimit(item,maxLength,limitLength){
+		if(item.length<maxLength){
+			return item;
+		}else{
+			return item.substring(0,limitLength)+"...";
+		}
+	}
+	/*查找企业详情*/
+	function getDetail(id){
+		$.post("/KnowledgeGraph/KG/getEntityInfo.do",{key:id},function(result){
+			console.log(result.data.invest);
+			result.data.invest = (result.data.invest+"").replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g,',$1'); 
+			console.log(result.data.invest);
+			var ht = baidu.template("infoDetail_template",result);
+			$("#resultHead").html(ht);
+		},"json");
+	}
+	/*查找高管信息*/
+	function getCompanyManager(id){
+		$.post("/KnowledgeGraph/KG/getEntityManager.do",{key:id},function(result){
+			$("#managerNum").html(result.data.length);
+			var ht = baidu.template("managerList_template",result);
+			$("#managerList").html(ht);
+		},"json");
+	}
+	/*查找投资人信息*/
+	function getCompanyInvester(id){
+		$.post("/KnowledgeGraph/KG/getEntityInvestor.do",{key:id},function(result){
+			$("#invertorNum").html(result.data.length);
+			var input = {name:[],subName:[]};
+			for(var i=0;i<result.data.length;i++){
+				input.name[i] = result.data[i];
+				input.subName[i] = stringLimit(result.data[i],10,8);
+			}
+			console.log(input)
+			var ht = baidu.template("investorList_template",input);
+			$("#InvestorList").html(ht);
+		},"json");
+	}
+	/*高亮关键字*/
+	function SearchHighlight(idVal,keyword){ 
+	    var $pucl = $("#"+idVal); 
+	    if("" == keyword) return; 
+	    var temp=$pucl.html(); 
+	    var htmlReg = new RegExp("\<.*?\>","i"); 
+	    var arrA = new Array(); 
+	    //替换HTML标签 
+	    for(var i=0;true;i++){ 
+	        var m=htmlReg.exec(temp); 
+	        if(m){ 
+	            arrA[i]=m; 
+	        }else{ 
+	            break; 
+	        } 
+	        temp=temp.replace(m,"{[("+i+")]}"); 
+	    } 
+	    words = unescape(keyword.replace(/\+/g,' ')).split(/\s+/); 
+	    //替换关键字 
+	    for (w=0;w<words.length;w++){ 
+	        var r = new RegExp("("+words[w].replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&")+")","ig"); 
+	        temp = temp.replace(r,"<span>$1</span>"); 
+	    } 
+	    //恢复HTML标签 
+	    for(var i=0;i<arrA.length;i++){ 
+	        temp=temp.replace("{[("+i+")]}",arrA[i]); 
+	    } 
+        $pucl.html(temp); 
+	} 
+})();
+</script>
+</body>
+</html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3217 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/index.v3.jsp


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3539 - 0
src/main/webapp/WEB-INF/jsp/graph/indexNew/newIndex.v3.jsp


+ 22 - 0
src/main/webapp/WEB-INF/jsp/graph/left.jsp

@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<html>
+  <script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+  <div class="searchCon">
+			<div class="subNav">
+				<ul>
+					<li><a style="color: #7A8BAA" href="./fenbu.do" >市场主体分布</a></li>
+					<li><a style="color: #7A8BAA" href="./huoyuedu.do">市场主体活跃度</a></li>
+					<li><a style="color: #7A8BAA" href="./bianhua.do">市场主体变化</a></li>
+					<li><a style="color: #7A8BAA" href="./zhuxiao.do">市场主体注销</a></li>
+					<li><a style="color: #7A8BAA" href="./fazhan.do">市场主体发展</a></li>
+					<li><a style="color: #7A8BAA" href="./shouming.do">市场主体寿命</a></li>
+				</ul>
+			</div>
+	</div>
+<script type="text/javascript">
+    var num="${param.index}";
+    $(".subNav").find("li").eq(num).addClass("subNavActive");
+    $(".subNav").find("li").eq(num).find("a").css("color","white");
+</script>
+</html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2975 - 0
src/main/webapp/WEB-INF/jsp/graph/machine/machineLearn.jsp


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 3318 - 0
src/main/webapp/WEB-INF/jsp/graph/model/specialModel.jsp


+ 301 - 0
src/main/webapp/WEB-INF/jsp/graph/model/specialModel2.jsp

@@ -0,0 +1,301 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<%@ include file="/include/taglib.jsp" %>
+<%@page import="java.util.*"%>
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/base.css" />
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/all.css" />
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/perfect-scrollbar.css" />		
+		<title>打假通</title>
+		<style>
+			.bg1{
+				background-image: url("${ctx}/images/indexNew/body_bg5.jpg");
+			    background-repeat: no-repeat;
+			 	background-size: 100% 100%;
+			    color: #7a8baa;
+			    width:100%;
+			    background-attachment: fixed;
+				min-width: 1000px;
+			}
+			body{
+				overflow:auto;
+			}
+			.container2 {
+				color: #8fa1c1;
+			    width: 90%;
+			    margin: 20px auto;
+			}
+			.search_con {
+			    background-color: rgba(28, 102, 114, 0.21);
+			    padding: 15px;
+			    border-radius: 5px;
+			    border: 1px solid rgba(0,222,223,0.2);
+			    overflow: hidden;
+			}
+			.sel_con {
+			    width: 80%;
+			}
+			select {
+			    color: #000;
+			}
+			.lf{
+				float: left;
+			}
+			.rt{
+				float: right;
+			}
+			input.btn {
+			    background: #00B591;
+			    border: none;
+			    color: #fff;
+			}
+			.main_con {
+			    background-color: rgba(28, 102, 114, 0.21);
+			    border-radius: 5px;
+			    border: 1px solid rgba(0,222,223,0.2);
+			    overflow: hidden;
+			    margin-top: 10px;
+			}
+			.selected {
+			    background-color: rgba(28, 102, 114, 0.27);
+			}
+			.selected span {
+			    display: inline-block;
+			    padding: 10px 20px;
+			}
+			.on{
+				background-color: #081f2b;
+			    color: #fff;
+			    font-weight: bold;
+			}
+			.main_model {
+			    padding: 10px 20px;
+			}
+			dt {
+			    color: #fff;
+			    font-size: 16px;
+			}
+			dd {
+			    text-indent: 2em;
+			}
+			/* 手风琴功能 */
+			/* .listBox {
+				width:100%;
+			}
+			.aa{
+				background-color: rgba(28, 102, 114, 0.27);
+				display: block;
+				height: 35px;
+			   				line-height: 35px;
+			   				color: #fff;
+			   				border-bottom: 1px solid rgba(0,222,223,0.2);
+			   				padding-left: 10px;
+			}
+			.boxLi:hover,.boxLi:target {
+				cursor: pointer;
+			}
+			.fU li {
+			    height: 30px;
+			    line-height: 30px;
+			    text-indent: 2em;
+			}
+			.boxLi:last-child {
+				border-bottom: none;
+			}
+			
+			.fU {
+				height: 0;
+				overflow: hidden;
+				transition: all .2s ease-in-out;
+				-moz-transition: all .2s ease-in-out;
+				-webkit-transition: all .2s ease-in-out;
+				-ms-transition: all .2s ease-in-out;
+				-o-transition: all .2s ease-in-out;
+			}
+			
+			.boxLi:target .fU {
+				height: 10em;
+			}
+			a{
+				color: #fff;
+			}
+			.fL:hover {
+				background-color: rgba(28, 102, 114, 0.25);
+			} */
+		</style>
+	</head>
+	<body class="bg1">
+		<!--头部-->
+		<div class="headCon">
+			<jsp:include page="../top.jsp">
+				<jsp:param name="index" value="专项模型" />
+			</jsp:include>
+		</div>
+		<div class="clear"></div>		
+		<!--主要内容-->
+		<div class="fullScren">
+			<div class="container2">
+			<!-- 查询 -->
+				<div class="search_con">
+					 <div class="sel_con lf">
+		                <span>专项模型:</span>
+		                <span id="search_sel">
+		                    <select class="prov"></select>
+		                    <select class="city" disabled="disabled"></select>
+		                </span>
+		                <pre></pre>
+		            </div>
+		            <div class="rt">
+						<input type="button" value="查询" class="btn"></button>
+		            </div>
+				</div>
+			<!--内容-->
+				<div class="main_con">
+					<!--手风琴的功能-->
+					<!-- <ul class="listBox">
+						<li class="boxLi" id="one"><a class="aa" href="#one">人伤</a>
+							<ul class="fU">
+								<li class="fL"><a href="javascript:void(0);">同一电话报案2次及以上人伤案件</a></li>
+								<li class="fL"><a href="javascript:void(0);">同一伤者在不同案件中出现</a></li>
+								<li class="fL"><a href="javascript:void(0);">三者2同一车辆出险次数3次以上的人伤案件</a></li>
+							</ul>
+						</li>
+						<li class="boxLi" id="two"><a class="aa" href="#two">人伤2</a>
+							<ul class="fU">
+								<li class="fL"><a href="javascript:void(0);">同一电话报案2次及以上人伤案件</a></li>
+								<li class="fL"><a href="javascript:void(0);">同一伤者在不同案件中出现</a></li>
+								<li class="fL"><a href="javascript:void(0);">三者2同一车辆出险次数3次以上的人伤案件</a></li>
+							</ul>
+						</li>
+						<li class="boxLi" id="three"><a class="aa" href="#three">人伤3</a>
+							<ul class="fU">
+								<li class="fL"><a href="javascript:void(0);">同一电话报案2次及以上人伤案件</a></li>
+								<li class="fL"><a href="javascript:void(0);">同一伤者在不同案件中出现</a></li>
+								<li class="fL"><a href="javascript:void(0);">三者2同一车辆出险次数3次以上的人伤案件</a></li>
+							</ul>
+						</li>
+						<li class="boxLi" id="four"><a class="aa" href="#four">人伤4</a>
+							<ul class="fU">
+								<li class="fL"><a href="javascript:void(0);">同一电话报案2次及以上人伤案件</a></li>
+								<li class="fL"><a href="javascript:void(0);">同一伤者在不同案件中出现</a></li>
+								<li class="fL"><a href="javascript:void(0);">三者2同一车辆出险次数3次以上的人伤案件</a></li>
+							</ul>
+						</li>
+					</ul> -->
+					<!--选项卡-->		
+					<div class="selected">
+						<span class="on" data-id="manInjured">人伤</span>
+						<span data-id="manInjured2">人伤2</span>
+					</div> 
+					<!--选项卡对应内容-->
+					<div>
+						<div class="main_model" id="manInjured">
+							<dl>
+								<dt>同一电话报案2次及以上人伤案件</dt>
+								<dd>是否存在同一电话多次报案的人为制造虚假事故</dd>
+							</dl>
+							<dl>
+								<dt>同一伤者在不同案件中出现</dt>
+								<dd>是否存在伤者个人多次索赔,或制造虚假人伤</dd>
+							</dl>
+						</div>
+						<div class="main_model" id="manInjured2" hidden>人伤的内容</div>
+					</div>
+				</div>
+			</div>				
+		</div>
+		
+		<script type="text/html" id="searchSel_template">
+			<!for(var i=0;i<data.length;i++){!>
+				<option value="<!=data[i].model!>" data-index="<!=i!>" data-id="<!=data[i].id!>"><!=data[i].model!></option>
+			<!}!>
+		</script>
+		<script type="text/html" id="searchSel2_template">		
+			<!for(var i=0;i<data.length;i++){!>
+				<option value="<!=data[i].name!>" data-id="<!=data[i].id!>"><!=data[i].name!></option>
+			<!}!>				
+		</script>
+
+		<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+		<script type="text/javascript" src="${ctx}/js/lib/jquery.select.js"></script>
+		<script src="${ctx}/js/lib/baiduTemplate.js"></script>
+		<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+		<script type="text/javascript" src="${ctx}/js/lib/clipboard.min.js"></script>
+		<script src="${ctx}/js/lib/core.js"></script>
+		
+		<script type="text/javascript">
+			$(function(){
+				var result={"citylist": [
+	                {"p": "人伤","id":"1","c": [{"n": "同一电话报案2次及以上人伤案件"}, {"n": "同一伤者在不同案件中出现"}, {"n": "同一车辆出险次数3次以上的人伤案件"},{"n": "三者2同一车辆出险次数3次以上的人伤案件"}]},
+	                {"p": "人伤2","id":"2", "c": [{"n": "三者2"}, {"n": "电话2"}, {"n": "保单2"}]},
+	                {"p": "人伤3","id":"3", "c": [{"n": "三者3"}, {"n": "电话3"}, {"n": "保单3"}]}
+	            ]};
+		     	$("#search_sel").citySelect({
+                    url: result,
+                    prov: "人伤",
+                    city: "同一电话报案2次及以上人伤案件",
+                    dist: "",
+                    nodata: "none"
+                });
+                //给下拉菜单加titel
+				var select_val = $("#search_sel .prov").find("option:selected").val();
+				var select_val2 = $("#search_sel .city").find("option:selected").val();
+				$("#search_sel .prov").attr("title",select_val);
+				$("#search_sel .city").attr("title",select_val2);
+				//判断二级菜单是否改变
+				$("#search_sel .prov").bind("change",function(){
+					var ids = $(this).find("option:selected").data("id");
+					select_val=$(this).find("option:selected").val();
+					$(".selected span").each(function(i){
+						if(select_val==this.innerHTML){
+							$(".main_model").hide();
+							$(this).addClass("on").siblings().removeClass("on");
+							var id = $(this).data("id");
+							$("#"+id).show();
+						}
+					})
+					
+					select_val2 = $("#search_sel .city").find("option:selected").val();
+					$("#search_sel .prov").attr("title",select_val);
+					$("#search_sel .city").attr("title",select_val2);
+				})
+				$("#search_sel .city").bind("change",function(){
+					select_val=$("#search_sel .prov").find("option:selected").val();
+					select_val2 = $(this).find("option:selected").val();
+					$("#search_sel .prov").attr("title",select_val);
+					$("#search_sel .city").attr("title",select_val2);
+				})//以上都是专项模型
+
+		     	//选项卡
+		     	$(".selected span").click(function(){
+		     		$(".main_model").hide();
+					$(this).addClass("on").siblings().removeClass("on");
+					var id = $(this).data("id");
+					$("#"+id).show();
+					
+				});
+
+			});
+		</script>
+		<!-- 控制窗口高度 -->
+		<script>
+		    $(function () {
+				$(".main_model").perfectScrollbar();
+				resize();
+	            $(window).resize(function(){
+					resize();
+				});
+		    });
+		    function resize(){
+				//获取窗口高度
+				var windowheight=$(window).height();
+				var leftList = windowheight-152;
+				$(".main_con").css({"height":leftList+"px"});
+				$(".main_model").perfectScrollbar("update");
+			}
+	</script>
+	</body>
+</html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2914 - 0
src/main/webapp/WEB-INF/jsp/graph/model/specialModel3.jsp


+ 166 - 0
src/main/webapp/WEB-INF/jsp/graph/statistics/branch.html

@@ -0,0 +1,166 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<%@ include file="/include/taglib.jsp" %>
+<%@page import="java.util.*"%>
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<link rel="stylesheet" type="text/css" href="${ctx}/css/indexNew/jquery.monthpicker.css"> <!--选月份的样式-->
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/base.css" />
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/all.css" />
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/perfect-scrollbar.css" />
+		<link rel="stylesheet"  type="text/css" href="${ctx}/css/indexNew/static.css" />
+		
+		<title>打假通</title>
+		<style>
+			#statisExport{
+				position: absolute;
+				right: 20px;
+				top: 60px;
+				background-color: rgba(0,222,223,0.5);
+				color: #fff;
+				padding: 5px;
+				width: 30px;
+				height: 30px;
+				border-radius: 30px;
+				line-height: 30px;
+				cursor: pointer;
+			}
+		</style>
+	</head>
+	<body class="bg1">
+		<!--头部-->
+		<div class="headCon">
+			<jsp:include page="../top.jsp">
+				<jsp:param name="index" value="6" />
+			</jsp:include>
+		</div>
+		<hna:permission privilege="sysTask.statisExport">
+		<div id="statisExport">
+			导出
+		</div>
+		</hna:permission>
+		<div class="clear"></div>
+		
+		<!--内容-->
+		<div class="fullScren">
+			<div class="container">
+				<div class="block">
+					<div class="backg2">
+						<p class="title"><span id="dateRange">当天</sapn>上海分公司处理情况</p>
+						<div class="timeRange">
+							<span class="active" data-time="7" data-string="Day">当天</span>
+							<span data-time="1" data-string="Week">近一个周</span>
+							<span data-time="1" data-string="Month">近一个月</span>
+						</div>
+						<div class="basicTab" style="margin: 10px 0;">
+							<table border="1">
+								<thead>
+									<tr>
+										<th>排名</th>
+										<th>姓名</th>
+										<th>操作次数</th>
+										<th>涉案金额</th>
+										<th>分配量</th>
+										<th>处理量</th>
+										<th>处理率</th>
+									</tr>								
+								</thead>
+								<tbody id="tbodyCon">
+									
+								</tbody>
+							</table>
+						</div>
+					</div>
+				</div>				
+			</div>
+		</div>
+		
+		<!--分公司数据模板-->
+		<script type="text/html" id="tab_template">
+			<!for(var i=0;i<data.length;i++){!>
+				<tr>
+					<td><!=(i+1)!></td>
+					<td><!=data[i].name!></td>
+					<td><!=data[i].operateNum!></td>
+					<td><!=data[i].money!></td>
+					<td><!=data[i].taskNum!></td>
+					<td><!=data[i].dealNum!></td>
+					<td><!=data[i].dealRate!></td>
+				</tr>
+			<!}!>
+		</script>
+		
+		<script src="${ctx}/js/lib/jquery-1.11.1.min.js"></script>
+		<script src="${ctx}/js/lib/perfect-scrollbar.jquery.js"></script>
+		<script src="${ctx}/js/lib/baiduTemplate.js"></script>
+		<!--<script src="js/lib/echarts.min.js"></script>
+		<script src="js/lib/countUp.js"></script>
+		<script src="js/page/macarons.js"></script>-->
+		
+		<script>
+			(function(){
+				//时间的切换
+				$(".timeRange span").click(function(){
+					$(".timeRange").children().removeClass("active");
+					$(this).addClass("active");
+					/*var timeval = $(this).data("timeval");
+					var st = $(this).data("string");
+					$.ajax({
+						type:"POST",
+						url:"",
+						data:{timeval:timeval,st:st},
+						success:function(result){
+							alert("刷新页面");
+						}
+					});*/
+					var spanCon=$(".active").text();
+					$("#dateRange").text(spanCon+"上海分公司处理情况"); //请求成功的时候要
+				})
+								
+			})();
+			resize();
+			$(window).resize(function(){	
+				resize();
+			});
+			function resize(){
+				//获取窗口高度
+				var windowheight=$(window).height();
+				 
+			}
+			
+			/*var result={
+				date:[
+					{
+						name:"荣茎",
+						p13账号:"rongjin",
+						operateNum:100,
+						money:"1000.00",
+						taskNum:100,
+						dealNum:40,
+						dealRate:"40%"
+					},
+					{
+						name:"荣茎",
+						p13账号:"rongjin",
+						operateNum:100,
+						money:"1000.00",
+						taskNum:100,
+						dealNum:40,
+						dealRate:"40%"
+					}
+				]
+			};*/
+			//表格数据请求
+			$.ajax({
+				type:"POST",
+				url:"${ctx}/sysTask/analyzePage3/1.do",
+				success:function(result){
+					var ht=baidu.template("tab_template",{data:result});
+					$("#tbodyCon").html(ht);
+				}
+			});
+		</script>
+	</body>
+</html>

+ 0 - 0
src/main/webapp/WEB-INF/jsp/graph/statistics/branch.jsp


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác