MSI\liwei %!s(int64=7) %!d(string=hai) anos
pai
achega
7d955c3f4d
Modificáronse 55 ficheiros con 5269 adicións e 0 borrados
  1. 25 0
      Visuallnspection_qzd/.gitignore
  2. BIN=BIN
      Visuallnspection_qzd/.mvn/wrapper/maven-wrapper.jar
  3. 1 0
      Visuallnspection_qzd/.mvn/wrapper/maven-wrapper.properties
  4. 225 0
      Visuallnspection_qzd/mvnw
  5. 143 0
      Visuallnspection_qzd/mvnw.cmd
  6. 296 0
      Visuallnspection_qzd/pom.xml
  7. 27 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/SystemInit.java
  8. 22 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/VisuallnspectionFjqApplication.java
  9. 23 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/bean/Log.java
  10. 180 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/controller/BaseController.java
  11. 105 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/controller/FileExcelController_Q.java
  12. 20 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/CheckAppealDao.java
  13. 22 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/CheckApplyDao.java
  14. 16 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqAreaDao.java
  15. 17 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqCheckDeptStatisticsDao.java
  16. 23 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqCheckOtherDao.java
  17. 40 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqStatisticsDao.java
  18. 22 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqTaskDao.java
  19. 15 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/LogDao.java
  20. 26 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/ScoreDao.java
  21. 19 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/druidTools/DruidStatFilter.java
  22. 23 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/druidTools/DruidStatViewServlet.java
  23. 79 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/druidTools/MasterDataSourceConfig.java
  24. 31 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/PageHelperConfiguration.java
  25. 16 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/AreaMapper.xml
  26. 83 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckAppealMapper.xml
  27. 91 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckApplylMapper.xml
  28. 75 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckDeptStatisticsMapper.xml
  29. 63 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckOtherMapper.xml
  30. 13 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/LogMapper.xml
  31. 114 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/ScoreMapper.xml
  32. 382 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/StatisticsMapper.xml
  33. 30 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/securityTools/CorsConfig.java
  34. 43 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/securityTools/ThreadConfig.java
  35. 71 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/securityTools/WebSecurityConfig.java
  36. 35 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/CheckOtherService_F.java
  37. 16 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/StatisticsService_F.java
  38. 27 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/AreaInfoServiceImpl.java
  39. 77 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckAppealServiceImpl.java
  40. 87 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckApplyServiceImpl.java
  41. 268 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckOtherServiceImpl.java
  42. 283 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckOtherService_FImpl.java
  43. 144 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/ScoreServiceImpl.java
  44. 1152 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/StatisticsServiceImpl.java
  45. 644 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/StatisticsService_FImpl.java
  46. 61 0
      Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/ThreadTaskServiceImpl.java
  47. 42 0
      Visuallnspection_qzd/src/main/resources/application.properties
  48. BIN=BIN
      Visuallnspection_qzd/src/main/resources/fwq_checked_item_info.xls
  49. BIN=BIN
      Visuallnspection_qzd/src/main/resources/fwq_dept_statistic.xls
  50. BIN=BIN
      Visuallnspection_qzd/src/main/resources/fwq_duty_check.xls
  51. BIN=BIN
      Visuallnspection_qzd/src/main/resources/fwq_operation_info.xls
  52. BIN=BIN
      Visuallnspection_qzd/src/main/resources/fwq_other_check_info_anfang.xls
  53. BIN=BIN
      Visuallnspection_qzd/src/main/resources/fwq_third_check.xls
  54. 36 0
      Visuallnspection_qzd/src/main/resources/logback.xml
  55. 16 0
      Visuallnspection_qzd/src/test/java/com/xintong/visualinspection/visuallnspection_qzd/VisuallnspectionFjqApplicationTests.java

+ 25 - 0
Visuallnspection_qzd/.gitignore

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

BIN=BIN
Visuallnspection_qzd/.mvn/wrapper/maven-wrapper.jar


+ 1 - 0
Visuallnspection_qzd/.mvn/wrapper/maven-wrapper.properties

@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip

+ 225 - 0
Visuallnspection_qzd/mvnw

@@ -0,0 +1,225 @@
+#!/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
+#
+#    http://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 Migwn, 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
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+echo $MAVEN_PROJECTBASEDIR
+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 "$@"

+ 143 - 0
Visuallnspection_qzd/mvnw.cmd

@@ -0,0 +1,143 @@
+@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    http://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 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
+
+%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%

+ 296 - 0
Visuallnspection_qzd/pom.xml

@@ -0,0 +1,296 @@
+<?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>
+
+    <groupId>com.xintong.visualInspection</groupId>
+    <artifactId>visuallnspection_qzd</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <name>visuallnspection_qzd</name>
+    <description>Demo project for Spring Boot</description>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>1.5.2.RELEASE</version>
+        <relativePath /> <!-- lookup parent from repository -->
+    </parent>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.xintong.visuallnspection.inteface</groupId>
+            <artifactId>visuallnspectioninteface</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <exclusions>  <exclusion>
+                <artifactId>spring-boot-starter-parent</artifactId>
+                <groupId>org.springframework.boot</groupId>
+            </exclusion>
+                <exclusion>
+                    <artifactId>spring-boot-starter-web</artifactId>
+                    <groupId>org.springframework.boot</groupId>
+                </exclusion>
+
+                <exclusion>
+                    <groupId>org.projectlombok</groupId>
+                    <artifactId>lombok</artifactId></exclusion></exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>1.3.0</version>
+        </dependency>
+
+
+
+
+
+
+
+
+
+
+
+
+        <!--<dependency> -->
+        <!--<groupId>org.springframework.session</groupId> -->
+        <!--<artifactId>spring-session-data-redis</artifactId> -->
+        <!--</dependency> -->
+
+
+
+        <!--<dependency> -->
+        <!--<groupId>redis.clients</groupId> -->
+        <!--<artifactId>jedis</artifactId> -->
+        <!--<version>2.9.0</version> -->
+        <!--</dependency> -->
+
+
+        <!--<dependency> -->
+        <!--<groupId>org.springframework.boot</groupId> -->
+        <!--<artifactId>spring-boot-starter-data-jpa</artifactId> -->
+        <!--</dependency> -->
+
+        <!-- http://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-springsecurity4 -->
+        <dependency>
+            <groupId>org.thymeleaf.extras</groupId>
+            <artifactId>thymeleaf-extras-springsecurity4</artifactId>
+            <version>2.1.2.RELEASE</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring4 -->
+        <!--<dependency> -->
+        <!--<groupId>org.thymeleaf</groupId> -->
+        <!--<artifactId>thymeleaf-spring4</artifactId> -->
+        <!--<version>3.0.5.RELEASE</version> -->
+        <!--</dependency> -->
+
+
+
+        <!--<dependency> -->
+        <!--<groupId>org.springframework.security</groupId> -->
+        <!--<artifactId>spring-security-taglibs</artifactId> -->
+        <!--<version>4.2.1.RELEASE</version> -->
+        <!--</dependency> -->
+
+
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper</artifactId>
+            <version>4.2.1</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.41</version><!--$NO-MVN-MAN-VER$-->
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.0.29</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.31</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjrt</artifactId>
+            <version>1.8.10</version>
+        </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
+            <version>1.8.10</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.12</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jxls</groupId>
+            <artifactId>jxls</artifactId>
+            <version>2.3.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jxls</groupId>
+            <artifactId>jxls-poi</artifactId>
+            <version>1.0.9</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+
+
+
+
+        <!--dubbo-->
+        <dependency>
+            <groupId>org.apache.zookeeper</groupId>
+            <artifactId>zookeeper</artifactId>
+            <version>3.4.11</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.sgroschupf</groupId>
+            <artifactId>zkclient</artifactId>
+            <version>0.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba.boot</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>Dalston.RELEASE</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                </configuration>
+            </plugin>
+        </plugins>
+        <resources>
+            <resource>
+                <directory>${basedir}/src/main/resources</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/application*.yml</include>
+                    <include>**/application*.properties</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>${basedir}/src/main/resources</directory>
+                <excludes>
+                    <exclude>**/application*.yml</exclude>
+                    <exclude>**/application*.properties</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.properties</include>
+                    <include>**/*.xml</include>
+                </includes>
+                <filtering>false</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <targetPath>BOOT-INF/lib/</targetPath>
+                <includes>
+                    <include>**/*.jar</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>lib</directory>
+                <targetPath>BOOT-INF/lib/</targetPath>
+                <includes>
+                    <include>*.jar</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-releases</id>
+            <name>Spring Releases</name>
+            <url>https://repo.spring.io/libs-release</url>
+        </repository>
+
+        <repository>
+            <id>xt-snapshots</id>
+            <name>snapshots</name>
+            <url>http://xt.wenhq.top:8084/nexus/content/repositories/snapshots</url>
+        </repository>
+    </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>spring-releases</id>
+            <name>Spring Releases</name>
+            <url>https://repo.spring.io/libs-release</url>
+        </pluginRepository>
+    </pluginRepositories>
+
+
+</project>

+ 27 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/SystemInit.java

@@ -0,0 +1,27 @@
+package com.xintong.visualinspection.visuallnspection_qzd;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.xintong.visualinspection.service.*;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SystemInit implements CommandLineRunner {
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+
+	private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SystemInit.class);
+
+
+    @Override
+    public void run(String... strings) throws Exception {
+
+        System.out.println("_________________________________________________________________");
+
+       // System.out.println(commonService.getCodeFlagMap().toString());
+    }
+}

+ 22 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/VisuallnspectionFjqApplication.java

@@ -0,0 +1,22 @@
+package com.xintong.visualinspection.visuallnspection_qzd;
+
+import com.alibaba.fastjson.parser.ParserConfig;
+import org.apache.ibatis.logging.LogFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+
+@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
+@ServletComponentScan
+public class VisuallnspectionFjqApplication {
+
+    public static void main(String[] args) {
+        ParserConfig.getGlobalInstance().addAccept("com.xintong.");
+        ParserConfig.getGlobalInstance().addAccept("org.springframework.security.core.");
+
+        LogFactory.useLog4JLogging();
+        SpringApplication.run(VisuallnspectionFjqApplication.class, args);
+    }
+}

+ 23 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/bean/Log.java

@@ -0,0 +1,23 @@
+package com.xintong.visualinspection.visuallnspection_qzd.bean;
+
+import lombok.Data;
+
+/**
+ * 文件名:Job
+ * 版本信息:日期:2017/4/18 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Data
+public class Log {
+    //编号
+    private Integer id;
+    //内容
+    private String content;
+    // 更改人
+    private Long update_user;
+    // 部门id
+    private Long dept_id;
+    // 任务id
+    private Long task_id;
+    //扣分id
+    private Long score_id;
+}

+ 180 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/controller/BaseController.java

@@ -0,0 +1,180 @@
+package com.xintong.visualinspection.visuallnspection_qzd.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.github.pagehelper.PageInfo;
+import org.slf4j.LoggerFactory;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:TestController
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@ControllerAdvice
+public class BaseController {
+	
+	private static final org.slf4j.Logger logger = LoggerFactory.getLogger(BaseController.class);
+
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnResult(int result_code,String result_desc, Object o){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", result_code);
+    	result.put("result_desc", result_desc);
+    	result.put("result_data", o);
+        return JSON.toJSON(result).toString();
+    }
+    
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessResult(String result_desc){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", result_desc);
+        return JSON.toJSON(result).toString();
+    }
+    
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessResult(){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", "success");
+        return JSON.toJSONStringWithDateFormat(result,"yyyy-MM-dd HH:mm");
+    }
+    
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessResult(Object o){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", "success");
+    	result.put("result_data", o);
+        return JSON.toJSONStringWithDateFormat(result,"yyyy-MM-dd HH:mm");
+    }
+    
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessResultTime(Object o){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", "success");
+    	result.put("result_data", o);
+        return JSON.toJSONStringWithDateFormat(result,"yyyy-MM-dd HH:mm:00");
+    }
+    
+    /**
+     * 返回前台结果分页结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessPageResult(Object o){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", "success");
+    	result.put("result_data", new PageInfo((List)o));
+        return JSON.toJSONStringWithDateFormat(result,"yyyy-MM-dd HH:mm");
+    }
+    
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessResult(String result_desc, Object o){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", result_desc);
+    	result.put("result_data", o);
+        return JSON.toJSONStringWithDateFormat(result,"yyyy-MM-dd HH:mm");
+    }
+    
+    /**
+     * 返回前台结果结构体
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    public String returnSuccessResult(String result_desc, Object o, String dateFormat){
+    	Map<String,Object> result = new HashMap<>();
+    	result.put("result_code", 0);
+    	result.put("result_desc", result_desc);
+    	result.put("result_data", o);
+        return JSON.toJSONStringWithDateFormat(result,dateFormat);
+    }
+    /** 基于@ExceptionHandler异常处理 *//*
+    @ExceptionHandler  
+    public String exp(HttpServletRequest request, Exception ex) {  
+        // 根据不同错误提示不同的错误  
+    	ErrorCode code;
+        if(ex instanceof NullPointerException) {  
+        	code = new ErrorCode(10001);
+        } else if (ex instanceof NumberFormatException) {  
+        	code = new ErrorCode(10002);
+        } else if (ex instanceof IndexOutOfBoundsException) {  
+        	code = new ErrorCode(10003);  
+        } else if (ex instanceof ArithmeticException) {  
+        	code = new ErrorCode(10004);  
+        } else if (ex instanceof FileNotFoundException) {  
+        	code = new ErrorCode(10005);  
+        } else if (ex instanceof IllegalArgumentException) {  
+        	code = new ErrorCode(10006); 
+        } else if (ex instanceof HttpMessageNotReadableException) {
+        	code = new ErrorCode(10007); 
+        } else if (ex instanceof BusinessException) {
+        	code = ((BusinessException) ex).getErrCode();
+        } else if(ex.getCause() instanceof TooManyResultsException){
+        	code = new ErrorCode(10008);
+        } else if (ex instanceof MethodArgumentNotValidException) {
+        	BindingResult bindingResult = ((MethodArgumentNotValidException) ex).getBindingResult();
+        	code = new ErrorCode(20001,getValidatorErrors(bindingResult)); 
+        } else{
+        	code = new ErrorCode(11000);  
+        }
+        logger.error(code.getDesc(), ex);
+        return returnResult(code.getCode(),code.getDesc(),null);
+    }*/
+    
+    public static String getValidatorErrors(BindingResult bindingResult){
+    	StringBuffer sb = new StringBuffer();
+    	for(ObjectError err:bindingResult.getAllErrors()){
+   		 	sb.append("["+err.getDefaultMessage()+"]");
+       	}
+       	return sb.toString();
+    }
+}

+ 105 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/controller/FileExcelController_Q.java

@@ -0,0 +1,105 @@
+package com.xintong.visualinspection.visuallnspection_qzd.controller;
+
+import com.xintong.visualinspection.bean.FwqCheckOther;
+import com.xintong.visualinspection.bean.FwqDeptStatistic;
+import com.xintong.visualinspection.bean.FwqStatisticsBean;
+import com.xintong.visualinspection.util.DateUtil;
+import com.xintong.visualinspection.visuallnspection_qzd.service.CheckOtherService_F;
+import com.xintong.visualinspection.visuallnspection_qzd.service.StatisticsService_F;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+
+@RestController
+@RequestMapping("/f/file")
+public class FileExcelController_Q extends BaseController {
+
+    @Autowired
+    private CheckOtherService_F checkOtherService_f;
+    @Autowired
+    private StatisticsService_F statisticsService_f;
+
+    /**
+     * 稽查管理导出
+     * @param req
+     * @param resp
+     * @param fwqCheckOther
+     * @return
+     */
+    @RequestMapping(value = "/other/check/excel",method=RequestMethod.GET)
+    public String getOtherCheck(HttpServletRequest req,HttpServletResponse resp,
+                                FwqCheckOther fwqCheckOther){
+        checkOtherService_f.getOtherCheckExcel(fwqCheckOther, req, resp);
+        return super.returnSuccessResult(null);
+    }
+
+    /**
+     * 稽查统计-导出
+     * @param req
+     * @param resp
+     * @param fwqCheckOther
+     * @returnE
+     */
+    @RequestMapping(value = "/other/check/static/excel",method= RequestMethod.GET)
+    public String getOtherCheckststic(HttpServletRequest req,HttpServletResponse resp,
+                                      FwqCheckOther fwqCheckOther){
+        checkOtherService_f.getExcel(fwqCheckOther, req, resp);
+        return super.returnSuccessResult(null);
+    }
+
+    /**
+     * 服务区-营运管理综合检查情况统计导出
+     * @param req
+     * @param resp
+     * @param start_date
+     * @param end_date
+     * @return
+     */
+    @RequestMapping(value = "/operation/manage/integration",method=RequestMethod.GET)
+    public String getOperationInfo(HttpServletRequest req, HttpServletResponse resp,
+                                   @RequestParam String start_date, @RequestParam String end_date){
+        FwqStatisticsBean obj = new FwqStatisticsBean();
+        Date start = DateUtil.strParseDate(start_date);
+        Date end = DateUtil.strParseDate(end_date);
+        obj.setStart_date(start);
+        obj.setEnd_date(end);
+        statisticsService_f.getOperationInfo(obj, req, resp);
+        return super.returnSuccessResult(null);
+    }
+
+    /**
+     * 营运管理提升综合成绩汇总表导出
+     * @param req
+     * @param resp
+     * @param fwqDeptStatistic
+     * @return
+     */
+    @RequestMapping(value = "/dept/static/excel",method=RequestMethod.GET)
+    public String getDeptCheckststic(HttpServletRequest req,HttpServletResponse resp,
+                                     FwqDeptStatistic fwqDeptStatistic){
+        statisticsService_f.getDeptStatisticExcel(fwqDeptStatistic, req, resp);
+        return super.returnSuccessResult(null);
+    }
+
+    /**
+     * 考核问题分布报表
+     */
+    @RequestMapping(value = "/score/item/info",method=RequestMethod.GET)
+    public String getScoreItemInfo(HttpServletRequest req,HttpServletResponse resp,
+                                   @RequestParam String start_date,@RequestParam String end_date){
+        FwqStatisticsBean obj = new FwqStatisticsBean();
+        Date start = DateUtil.strParseDate(start_date);
+        Date end = DateUtil.strParseDate(end_date);
+        obj.setStart_date(start);
+        obj.setEnd_date(end);
+        statisticsService_f.getFeeStationCheckItemScore(obj, req, resp);
+        return super.returnSuccessResult(null);
+    }
+
+}

+ 20 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/CheckAppealDao.java

@@ -0,0 +1,20 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.CheckAppeal_F;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 文件名:UserInfoDao
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Mapper
+public interface CheckAppealDao  {
+    public List<CheckAppeal_F> getList(CheckAppeal_F param);
+    public CheckAppeal_F getOne(Long id);
+    public void insert(CheckAppeal_F checkAppeal);
+    public void update(CheckAppeal_F checkAppeal);
+    public void delete(Long id);
+    public CheckAppeal_F getByTaskId(Long id);
+}

+ 22 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/CheckApplyDao.java

@@ -0,0 +1,22 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.CheckApply_F;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:UserInfoDao
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Mapper
+public interface CheckApplyDao  {
+    public List<CheckApply_F> getList(CheckApply_F param);
+    public CheckApply_F getOne(Long id);
+    public CheckApply_F getOneByTaskId(Long id);
+    public void insert(CheckApply_F checkApply);
+    public void update(CheckApply_F checkApply);
+    public void delete(Long id);
+    public List<CheckApply_F> getTopReasonList(Map<String, Object> param);
+}

+ 16 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqAreaDao.java

@@ -0,0 +1,16 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.AreaInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 文件名:FwqAreaDao
+ * 版本信息:日期:2018/5/7 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+@Mapper
+public interface FwqAreaDao {
+    public List<AreaInfo> getall(AreaInfo areaInfo);
+
+}

+ 17 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqCheckDeptStatisticsDao.java

@@ -0,0 +1,17 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.FwqDeptStatistic;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 文件名:FwqCheckDeptStatisticsDao
+ * 版本信息:日期:2018/5/2 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+@Mapper
+public interface FwqCheckDeptStatisticsDao {
+    void saveandupdate(FwqDeptStatistic ss);
+
+    List<FwqDeptStatistic> selectdepts(FwqDeptStatistic obj);
+}

+ 23 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqCheckOtherDao.java

@@ -0,0 +1,23 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.FwqCheckOther;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 文件名:FwqCheckOtherDao
+ * 版本信息:日期:2018/5/2 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+@Mapper
+public interface FwqCheckOtherDao {
+    List<FwqCheckOther> getAllCheckOther(FwqCheckOther fwqCheckOther);
+
+    void addCheckOther(FwqCheckOther fwqOtherCheck);
+
+    void deleteCheckOther(Long id);
+
+    void updateCheckOther(FwqCheckOther fwqCheckOther);
+
+    FwqCheckOther selectCheckById(Long id);
+}

+ 40 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqStatisticsDao.java

@@ -0,0 +1,40 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.FwqStatisticsBean;
+import com.xintong.visualinspection.pojo.fwq.ServiceAreaStatistic;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 文件名:FwqCheckOtherDao
+ * 版本信息:日期:2018/5/2 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+@Mapper
+public interface FwqStatisticsDao {
+    List<FwqStatisticsBean> getselectFeeStationOperationScoreDetail(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectFeeStationCheckNum(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectFeeStationCheckedPersonScoreDetail(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectStatistics(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectCheckedTimes(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectOneCheckedDetailInfo(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectOneCheckedInfoData(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectOneCheckedItemInfo(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectYearScoreInfo(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectFeeStationCheckedScore(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectFeeStationScoreInfo(FwqStatisticsBean obj);
+
+    List<FwqStatisticsBean> selectCheckedItemScoreInfo(FwqStatisticsBean obj);
+
+    List<ServiceAreaStatistic> selectlimituser(ServiceAreaStatistic obj);
+}

+ 22 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/FwqTaskDao.java

@@ -0,0 +1,22 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.FwqCheckTask;
+import com.xintong.visualinspection.bean.TaskStatus;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 文件名:FwqTaskDao
+ * 版本信息:日期:2018/4/11 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+@Mapper
+public interface FwqTaskDao {
+    public void addtask(FwqCheckTask fwqCheckTask);
+    public List<FwqCheckTask> getall(FwqCheckTask fwqCheckTask);
+    public void updateStatus(FwqCheckTask fwqCheckTask);
+    public FwqCheckTask getone(FwqCheckTask fwqCheckTask);
+    public void insertStatus(TaskStatus taskStatus);
+    public void insertStatusBatch(List<TaskStatus> taskStatusList);
+    public List<TaskStatus> getTaskStatusList(Long id);
+}

+ 15 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/LogDao.java

@@ -0,0 +1,15 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.visuallnspection_qzd.bean.Log;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 文件名:JobDao
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Mapper
+public interface LogDao  {
+    
+	public void insert(Log log);
+   
+}

+ 26 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/dao/ScoreDao.java

@@ -0,0 +1,26 @@
+package com.xintong.visualinspection.visuallnspection_qzd.dao;
+
+import com.xintong.visualinspection.bean.FwqScore;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:UserInfoDao
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Mapper
+public interface ScoreDao  {
+    public List<FwqScore> getAll();
+    public FwqScore getOne(Long id);
+    public List<FwqScore> getScoreList(FwqScore score);
+    public List<FwqScore> getScoreListByTaskId(Long task_id);
+    public void insert(FwqScore score);
+    public void update(FwqScore score);
+    public void updateByTaskIdAndPerson(FwqScore score);
+    public void delete(Long id);
+    public List<FwqScore> getTopRemarkList(Map<String, Object> param);
+    public void updateFormerScore(FwqScore score);
+    public void updateNowScore(FwqScore score);
+}

+ 19 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/druidTools/DruidStatFilter.java

@@ -0,0 +1,19 @@
+package com.xintong.visualinspection.visuallnspection_qzd.druidTools;
+
+import com.alibaba.druid.support.http.WebStatFilter;
+
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.annotation.WebInitParam;
+
+/**
+ * 文件名:DruidStatFilter
+ * 版本信息:日期:2017/3/31 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
+        initParams={
+                @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
+        }
+)
+public class DruidStatFilter extends WebStatFilter{
+
+}

+ 23 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/druidTools/DruidStatViewServlet.java

@@ -0,0 +1,23 @@
+package com.xintong.visualinspection.visuallnspection_qzd.druidTools;
+
+import com.alibaba.druid.support.http.StatViewServlet;
+
+import javax.servlet.annotation.WebInitParam;
+import javax.servlet.annotation.WebServlet;
+
+/**
+ * 文件名:DruidStatViewServlet
+ * 版本信息:日期:2017/3/31 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@SuppressWarnings("serial")
+@WebServlet(urlPatterns = "/druid/*",
+        initParams={
+                @WebInitParam(name="allow",value=""),// IP白名单 (没有配置或者为空,则允许所有访问)
+                @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)
+                @WebInitParam(name="loginUsername",value="wen"),// 用户名
+                @WebInitParam(name="loginPassword",value="123456"),// 密码
+                @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
+        })
+public class DruidStatViewServlet extends StatViewServlet {
+
+}

+ 79 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/druidTools/MasterDataSourceConfig.java

@@ -0,0 +1,79 @@
+package com.xintong.visualinspection.visuallnspection_qzd.druidTools;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.github.pagehelper.PageHelper;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+
+/**
+ * 文件名:MasterDataSourceConfig
+ * 版本信息:日期:2017/4/21 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Configuration
+// 扫描 Mapper 接口并容器管理
+@MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
+public class MasterDataSourceConfig {
+
+    // 精确到 master 目录,以便跟其他数据源隔离
+    static final String PACKAGE = "com.xintong.visualinspection.dao.master";
+//    static final String MAPPER_LOCATION = "classpath:mapper/master/*.xml";
+    @Value("${master.mapper-locations}")
+    private String  MAPPER_LOCATION;
+
+    @Value("${master.datasource.url}")
+    private String url;
+
+    @Value("${master.datasource.username}")
+    private String user;
+
+    @Value("${master.datasource.password}")
+    private String password;
+
+    @Value("${master.datasource.driver-class-name}")
+    private String driverClass;
+
+    @Autowired
+    private PageHelper pageHelper;
+    
+    @Bean(name = "masterDataSource")
+    @Primary
+    public DataSource masterDataSource() {
+        DruidDataSource dataSource = new DruidDataSource();
+        dataSource.setDriverClassName(driverClass);
+        dataSource.setUrl(url);
+        dataSource.setUsername(user);
+        dataSource.setPassword(password);
+        return dataSource;
+    }
+
+    @Bean(name = "masterTransactionManager")
+    @Primary
+    public DataSourceTransactionManager masterTransactionManager() {
+        return new DataSourceTransactionManager(masterDataSource());
+    }
+
+    @Bean(name = "masterSqlSessionFactory")
+    @Primary
+    public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)
+            throws Exception {
+        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+        sessionFactory.setDataSource(masterDataSource);
+        Interceptor[] plugins =  new Interceptor[]{pageHelper};
+        sessionFactory.setPlugins(plugins);
+        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
+                .getResources(MAPPER_LOCATION));
+        return sessionFactory.getObject();
+    }
+}

+ 31 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/PageHelperConfiguration.java

@@ -0,0 +1,31 @@
+package com.xintong.visualinspection.visuallnspection_qzd.mapper;
+
+import com.github.pagehelper.PageHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * 文件名:PageHelperConfiguration
+ * 版本信息:日期:2017/3/31 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Configuration
+public class PageHelperConfiguration {
+    private static final Logger log = LoggerFactory.getLogger(PageHelperConfiguration.class);
+    @Bean
+    public PageHelper pageHelper() {
+        log.info("------Register MyBatis PageHelper");
+        PageHelper pageHelper = new PageHelper();
+        Properties p = new Properties();
+        p.setProperty("offsetAsPageNum", "true");
+        p.setProperty("rowBoundsWithCount", "true");
+        p.setProperty("reasonable", "true");
+        //通过设置pageSize=0或者RowBounds.limit = 0就会查询出全部的结果。
+        p.setProperty("pageSizeZero", "true");
+        pageHelper.setProperties(p);
+        return pageHelper;
+    }
+}

+ 16 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/AreaMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.FwqAreaDao">
+
+
+    <select id="getall" parameterType="com.xintong.visualinspection.bean.AreaInfo" resultType="com.xintong.visualinspection.bean.AreaInfo">
+        select * from area_info where 1=1
+        <if test="id != null">AND id = #{id}</if>
+        <if test="dept_id != null">AND dept_id = #{dept_id}</if>
+        <if test="name != null ">AND name = #{name}  </if>
+        <if test="type != null">AND type = #{type}</if>
+    </select>
+
+
+</mapper>
+

+ 83 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckAppealMapper.xml

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.CheckAppealDao" >
+    <resultMap id="BaseResultMap" type="com.xintong.visualinspection.bean.CheckAppeal_F" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="file_src" property="file_src" jdbcType="VARCHAR" />
+        <result column="check_status" property="check_status" jdbcType="INTEGER" />
+        <result column="appeal_time" property="appeal_time" jdbcType="DATE" />
+        <result column="update_time" property="update_time" jdbcType="DATE" />
+        <result column="appeal_man" property="appeal_man" jdbcType="INTEGER" />
+        <result column="verify_person" property="verify_person" jdbcType="INTEGER" />
+        <result column="appeal_dept" property="appeal_dept" jdbcType="INTEGER" />
+        <result column="task_id" property="task_id" jdbcType="INTEGER" />
+        <result column="appeal_reason" property="appeal_reason" jdbcType="VARCHAR" />
+        <result column="recheck_result" property="recheck_result" jdbcType="VARCHAR" />
+        <result column="remark" property="remark" jdbcType="VARCHAR" />
+        <result column="appeal_result" property="appeal_result" jdbcType="VARCHAR" />
+        
+        
+        <result column="name" property="name" jdbcType="VARCHAR" />
+        <result column="start_time" property="start_time" jdbcType="DATE" />
+        <result column="end_time" property="end_time" jdbcType="DATE" />
+        <result column="check_period" property="check_period" jdbcType="VARCHAR" />
+        <result column="checkman" property="checkman" jdbcType="INTEGER" />
+        <result column="recheckman" property="recheckman" jdbcType="INTEGER" />
+        
+        <result column="code_name" property="code_name" jdbcType="VARCHAR" />
+        <result column="code_flag" property="code_flag" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <select id="getList" resultMap="BaseResultMap" parameterType="com.xintong.visualinspection.bean.CheckAppeal_F" >
+        SELECT ca.*,ct.name,ct.start_time,ct.end_time,ct.checkman,ct.recheckman,ct.check_status as check_status,
+        		CONCAT(substr(ct.start_time,1,16),'-',substr(ct.end_time,12,5)) as check_period,
+        		(select a.code_name from sys_code a where a.code_flag='task_status' and a.code_value=ct.check_status) as check_status_name    		
+        FROM check_appeal ca LEFT JOIN check_task ct ON ca.task_id=ct.id 
+        WHERE 1=1 
+        <if test="start_time != null">AND ct.start_time >= #{start_time}</if>
+        <if test="end_time != null">
+        	<![CDATA[ AND ct.end_time < #{end_time}]]>
+        </if>
+        <if test="appeal_dept != null">AND ca.appeal_dept = #{appeal_dept}</if>
+        <if test="check_status != null">AND ct.check_status = #{check_status}</if>
+        ORDER BY ct.start_time DESC
+    </select>
+
+    <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *
+        FROM check_appeal
+        WHERE id = #{id}
+    </select>
+    
+    <select id="getByTaskId" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *
+        FROM check_appeal
+        WHERE task_id = #{task_id}
+    </select>
+    
+    <insert id="insert" parameterType="com.xintong.visualinspection.bean.CheckAppeal_F" >
+        INSERT INTO
+        check_appeal
+        (file_src,check_status1,appeal_time,update_time,appeal_man,verify_person,appeal_dept,task_id,remark,appeal_reason,recheck_result)
+        VALUES
+        (#{file_src}, #{check_status},now(),now(),#{appeal_man},#{verify_person},#{appeal_dept},#{task_id},#{remark},#{appeal_reason},#{recheck_result})
+    </insert>
+
+    <update id="update" parameterType="com.xintong.visualinspection.bean.CheckAppeal_F" >
+        UPDATE
+        check_appeal
+        SET
+        <if test="check_status != null">check_status = #{check_status}</if>
+        <if test="recheck_result != null">recheck_result = #{recheck_result}</if>
+        <if test="appeal_result != null">appeal_result = #{appeal_result}</if>
+        WHERE
+        id = #{id}
+    </update>
+
+    <delete id="delete" parameterType="java.lang.Long" >
+        DELETE FROM
+        check_appeal
+        WHERE
+        id =#{id}
+    </delete>
+</mapper>

+ 91 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckApplylMapper.xml

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.CheckApplyDao" >
+    <resultMap id="BaseResultMap" type="com.xintong.visualinspection.bean.CheckApply_F" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="apply_reason" property="apply_reason" jdbcType="VARCHAR" />
+        <result column="check_status" property="check_status" jdbcType="INTEGER" />
+        <result column="apply_time" property="apply_time" jdbcType="DATE" />
+        <result column="update_time" property="update_time" jdbcType="DATE" />
+        <result column="apply_man" property="apply_man" jdbcType="INTEGER" />
+        <result column="verify_person" property="verify_person" jdbcType="INTEGER" />
+        <result column="apply_dept" property="apply_dept" jdbcType="INTEGER" />
+        <result column="task_id" property="task_id" jdbcType="INTEGER" />
+        <result column="remark" property="remark" jdbcType="VARCHAR" />
+        
+        
+        <result column="name" property="name" jdbcType="VARCHAR" />
+        <result column="start_time" property="start_time" jdbcType="DATE" />
+        <result column="end_time" property="end_time" jdbcType="DATE" />
+        
+        <result column="code_name" property="code_name" jdbcType="VARCHAR" />
+        <result column="count" property="count" jdbcType="INTEGER" />
+    </resultMap>
+
+    <select id="getList" resultMap="BaseResultMap" parameterType="com.xintong.visualinspection.bean.CheckApply_F" >
+        SELECT ca.*,ct.name,ct.start_time,ct.end_time
+        FROM check_apply ca LEFT JOIN check_task ct ON ca.task_id=ct.id
+        WHERE 1=1 
+        <if test="start_time != null">AND ct.start_time >= #{start_time}</if>
+        <if test="end_time != null">
+        	<![CDATA[ AND ct.end_time < #{end_time}]]>
+        </if>
+        <if test="apply_dept != null">AND ca.apply_dept = #{apply_dept}</if>
+        <if test="apply_man != null">AND ct.checkman = #{apply_man}</if>
+        <if test="apply_ids != null and apply_ids.length > 0">AND
+       		ct.id in 
+       		<foreach collection="apply_ids" item="apply_id" index="index"
+	            open="(" close=")" separator=",">
+	            #{apply_id}
+	        </foreach>
+       	</if>
+        ORDER BY ct.start_time DESC
+    </select>
+
+    <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *
+        FROM check_apply
+        WHERE id = #{id}
+    </select>
+    
+    <select id="getOneByTaskId" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *
+        FROM check_apply
+        WHERE task_id = #{id}
+    </select>
+    
+    <insert id="insert" parameterType="com.xintong.visualinspection.bean.CheckApply_F" >
+        INSERT INTO
+        check_apply
+        (apply_reason,check_status,apply_time,update_time,apply_man,verify_person,apply_dept,task_id,remark)
+        VALUES
+        (#{apply_reason}, #{check_status},now(),now(),#{apply_man},#{verify_person},#{apply_dept},#{task_id},#{remark})
+    </insert>
+
+    <update id="update" parameterType="com.xintong.visualinspection.bean.CheckApply_F" >
+        UPDATE
+        	check_apply
+        SET
+	        <if test="check_status != null">check_status = #{check_status},</if>
+	        <if test="verify_person != null">verify_person = #{verify_person},</if>
+	        update_time = now()
+        WHERE
+        id = #{id}
+    </update>
+
+    <delete id="delete" parameterType="java.lang.Long" >
+        DELETE FROM
+        check_apply
+        WHERE
+        id =#{id}
+    </delete>
+    
+    <select id="getTopReasonList" parameterType="map" resultMap="BaseResultMap">
+    	SELECT count(*) as count,apply_reason
+		FROM check_apply
+		WHERE apply_reason!=''
+		GROUP BY apply_reason
+		ORDER BY count desc
+		LIMIT 0,#{num}
+    </select>
+</mapper>

+ 75 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckDeptStatisticsMapper.xml

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckDeptStatisticsDao">
+
+    <resultMap id="BaseResultMap" type="com.xintong.visualinspection.bean.FwqDeptStatistic">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="period_id" property="period_id" jdbcType="INTEGER"/>
+        <result column="score" property="score" jdbcType="DOUBLE"/>
+        <result column="integral" property="integral" jdbcType="INTEGER"/>
+        <result column="dept_id" property="dept_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+
+    <!--<select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >-->
+    <!--SELECT *-->
+    <!--FROM check_dept_score-->
+    <!--WHERE id = #{id}-->
+    <!--</select>-->
+    <!---->
+    <!--<select id="getByDept" parameterType="com.xintong.visualinspection.bean.DeptStatistic" resultMap="BaseResultMap" >-->
+    <!--SELECT *-->
+    <!--FROM check_dept_score-->
+    <!--WHERE dept_id = #{dept_id} and period_id = #{period_id}-->
+    <!--</select>-->
+    <!---->
+    <!--<insert id="insert" useGeneratedKeys="true" keyProperty="id"  parameterType="com.xintong.visualinspection.bean.DeptStatistic" >-->
+    <!--<include refid="insertc"/>-->
+    <!--</insert>-->
+
+    <!--<update id="update" parameterType="com.xintong.visualinspection.bean.DeptStatistic" >-->
+    <!--<include refid="updatec"/>-->
+    <!--</update>-->
+
+    <!--<delete id="delete" parameterType="java.lang.Long" >-->
+    <!--DELETE FROM-->
+    <!--check_dept_score-->
+    <!--WHERE-->
+    <!--id =#{id}-->
+    <!--</delete>-->
+
+    <insert id="saveandupdate" useGeneratedKeys="true" keyProperty="id" parameterType="com.xintong.visualinspection.bean.FwqDeptStatistic">
+        <selectKey keyProperty="count" resultType="int" order="BEFORE">
+            select count(*) as count from check_dept_score where dept_id = #{dept_id} and period_id = #{period_id}
+        </selectKey>
+        <if test="count>0">
+            <include refid="updatec"/>
+        </if>
+        <if test="count==0">
+            <include refid="insertc"/>
+        </if>
+    </insert>
+
+    <sql id="updatec">
+        UPDATE
+        check_dept_score
+        SET
+        <if test="score != null">score = #{score},</if>
+        <if test="integral != null">integral = #{integral},</if>
+        id = id
+        WHERE
+        dept_id = #{dept_id} and period_id = #{period_id}
+    </sql>
+    <sql id="insertc">
+         INSERT INTO
+        check_dept_score
+        (dept_id,period_id,score,integral)
+        VALUES
+        (#{dept_id}, #{period_id},#{score},#{integral})
+    </sql>
+
+    <select id="selectdepts" parameterType="com.xintong.visualinspection.bean.FwqDeptStatistic" resultMap="BaseResultMap">
+      select * from check_dept_score where  period_id >= #{startperiod_id} AND period_id &lt;= #{endperiod_id}
+    </select>
+
+</mapper>

+ 63 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/CheckOtherMapper.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckOtherDao">
+
+    <select id="getAllCheckOther" parameterType="com.xintong.visualinspection.bean.FwqCheckOther" resultType="com.xintong.visualinspection.bean.FwqCheckOther">
+        SELECT *
+        FROM other_check
+        WHERE check_type = #{check_type}
+        <if test="check_time_name != null and check_time_name != ''">
+            AND check_time_name = #{check_time_name}
+        </if>
+        <if test="dept_id != null">
+            AND dept_id = #{dept_id}
+        </if>
+        <if test="special_check_type != null">
+            AND special_check_type = #{special_check_type}
+        </if>
+        ORDER BY check_time DESC
+    </select>
+
+    <insert id="addCheckOther" parameterType="com.xintong.visualinspection.bean.FwqCheckOther">
+        INSERT INTO
+        other_check
+        (dept_id,check_person_id,check_score,check_item_id,remark,check_type,file_ids,check_num,check_time,check_time_name,update_time,wrecker_check_type, special_check_type)
+        VALUES
+        (#{dept_id},#{check_person_id},#{check_score},#{check_item_id},#{remark},#{check_type},#{file_ids},#{check_num},#{check_time},#{check_time_name},now(),#{wrecker_check_type},#{special_check_type})
+    </insert>
+
+    <delete id="deleteCheckOther" parameterType="java.lang.Long" >
+        DELETE FROM other_check WHERE id =#{id}
+    </delete>
+
+    <update id="updateCheckOther" parameterType="com.xintong.visualinspection.bean.FwqCheckOther" >
+        UPDATE
+        other_check
+        SET
+        <if test="dept_id != null">dept_id = #{dept_id}</if>
+        <if test="check_person_id != null">,check_person_id = #{check_person_id}</if>
+        <if test="check_type != null">,check_type = #{check_type}</if>
+        <if test="check_type != null">,check_type = #{check_type}</if>
+        <if test="check_item_id != null">,check_item_id = #{check_item_id}</if>
+        <if test="remark != null and remark !='' " >,remark = #{remark}</if>
+        <if test="check_score != null">,check_score = #{check_score}</if>
+        <if test="file_ids != null">,file_ids = #{file_ids}</if>
+        <if test="check_time != null">,check_time = #{check_time}</if>
+        <if test="check_time_name !=  null">,check_time_name= #{check_time_name} </if>
+        <if test="check_num != null">,check_num = #{check_num}</if>
+        <if test="wrecker_check_type != null">,wrecker_check_type = #{wrecker_check_type}</if>
+        <if test="special_check_type != null">,special_check_type = #{special_check_type}</if>
+        WHERE
+        id = #{id}
+    </update>
+
+    <select id="selectCheckById" parameterType="java.lang.Long" resultType="com.xintong.visualinspection.bean.FwqCheckOther" >
+        SELECT o.id,o.dept_id,o.check_person_id,o.check_score,o.check_item_id,o.remark,o.check_type,o.file_ids,o.check_num,o.check_time,
+        o.check_time_name,o.delete_flag,o.update_time, o.wrecker_check_type,o.special_check_type
+        FROM other_check o
+        WHERE o.id = #{id}
+    </select>
+
+</mapper>
+
+

+ 13 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/LogMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.LogDao" >
+
+  <insert id="insert" parameterType="com.xintong.visualinspection.visuallnspection_qzd.bean.Log" >
+       INSERT INTO
+       sys_log
+       (content,update_user,dept_id,task_id,score_id)
+       VALUES
+       (#{content},#{update_user},#{dept_id},#{task_id},#{score_id})
+   </insert>
+    
+</mapper>

+ 114 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/ScoreMapper.xml

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.ScoreDao" >
+    <resultMap id="BaseResultMap" type="com.xintong.visualinspection.bean.FwqScore" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="task_id" property="task_id" jdbcType="INTEGER" />
+        <result column="update_time" property="update_time" jdbcType="DATE" />
+        <result column="pics" property="pics" jdbcType="VARCHAR" />
+        <result column="videos" property="videos" jdbcType="VARCHAR" />
+        <result column="check_item_id" property="check_item_id" jdbcType="INTEGER" />
+        <result column="check_item_name" property="check_item_name" jdbcType="VARCHAR" />
+        <result column="check_item_score" property="check_item_score" jdbcType="INTEGER" />
+        <result column="content" property="content" jdbcType="VARCHAR" />
+        <result column="checkman" property="checkman" jdbcType="VARCHAR" />
+        <result column="checked_area" property="checked_area" jdbcType="INTEGER" />
+        <result column="checked_dept" property="checked_dept" jdbcType="INTEGER" />
+
+        <result column="remark" property="remark" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <select id="getAll" resultMap="BaseResultMap"  >
+        SELECT *
+        FROM check_score
+    </select>
+
+    <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *,(select name from area_info where id = checked_area) as checked_area_name
+        FROM check_score
+        WHERE id = #{id}
+    </select>
+    
+    <select id="getScoreList" parameterType="com.xintong.visualinspection.bean.FwqScore" resultMap="BaseResultMap" >
+        SELECT *,(select name from area_info where id = checked_area) as checked_area_name
+        FROM check_score
+        WHERE 1=1
+        	 <if test="task_id != null">AND task_id = #{task_id}</if>
+        	 <if test="checked_area != null">AND checked_area = #{checked_area}</if>
+        	 <if test="check_item_id != null">AND check_item_id = #{check_item_id}</if>
+        	 <if test="checked_dept != null">AND checked_dept = #{checked_dept}</if>
+        	 <if test="start_time != null">AND update_time &gt;= #{start_time}</if>
+        	 <if test="end_time != null">AND update_time &lt;= #{end_time}</if>
+    </select>
+    
+    <select id="getScoreListByTaskId" parameterType="java.lang.Long" resultMap="BaseResultMap" >
+        SELECT *,(select name from area_info where id = checked_area) as checked_area_name
+        FROM check_score
+        WHERE task_id = #{task_id}
+    </select>
+
+    <insert id="insert" parameterType="com.xintong.visualinspection.bean.FwqScore" >
+        INSERT INTO
+        check_score
+        (task_id,update_time,pics,videos,check_item_id,content,checkman,checked_area,checked_dept,remark,check_item_score)
+        VALUES
+        (#{task_id}, #{update_time},#{pics},#{videos},#{check_item_id},#{content},#{checkman},#{checked_area},#{checked_dept},#{remark},#{check_item_score})
+    </insert>
+
+    <update id="update" parameterType="com.xintong.visualinspection.bean.FwqScore" >
+        UPDATE
+        check_score
+        SET
+        <if test="update_time != null">update_time = #{update_time},</if>
+        <if test="pics != null">pics = #{pics},</if>
+        <if test="videos != null">videos = #{videos},</if>
+        <if test="checkman != null">checkman = #{checkman},</if>
+        <if test="checked_area != null">checked_area = #{checked_area},</if>
+        <if test="check_item_score != null">check_item_score = #{check_item_score},</if>
+        remark=#{remark}
+        WHERE
+        id = #{id}
+    </update>
+
+	<update id="updateByTaskIdAndPerson" parameterType="com.xintong.visualinspection.bean.FwqScore" >
+        UPDATE
+        	check_score
+        SET
+        	checked_area = #{checked_area}
+        WHERE
+        	  task_id = #{task_id}
+          and checked_area=#{checked_area}
+    </update>
+    
+    <delete id="delete" parameterType="java.lang.Long" >
+        DELETE FROM
+        check_score
+        WHERE
+        id =#{id}
+    </delete>
+    <select id="getTopRemarkList" parameterType="map" resultMap="BaseResultMap">
+    	SELECT count(*) as count,remark
+		FROM check_score
+		WHERE remark !=''
+		GROUP BY remark
+		ORDER BY count desc
+		LIMIT 0,#{num}
+    </select>
+    
+    <update id="updateFormerScore" parameterType="com.xintong.visualinspection.bean.FwqScore" >
+        UPDATE
+        	check_score
+        SET
+        	former_score=check_item_score
+        WHERE
+        id = #{id}
+    </update>
+    <update id="updateNowScore" parameterType="com.xintong.visualinspection.bean.FwqScore" >
+        UPDATE
+        	check_score
+        SET
+        	check_item_score=#{check_item_score}
+        WHERE
+        id = #{id}
+    </update>
+</mapper>

+ 382 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/mapper/master/StatisticsMapper.xml

@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xintong.visualinspection.visuallnspection_qzd.dao.FwqStatisticsDao">
+
+    <select id="getselectFeeStationOperationScoreDetail"
+            parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        o.dept_id,
+        COUNT(1) checked_num,
+        SUM(o.check_score) check_total_score
+        FROM
+        other_check o
+        WHERE
+        o.check_type = #{check_type}
+        <if test="start_date!=null and end_date != null">
+            AND o.check_time &gt;= #{start_date} AND o.check_time &lt; #{end_date}
+        </if>
+        GROUP BY
+        dept_id
+    </select>
+
+    <select id="selectFeeStationCheckNum" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        COUNT(t.checked_dept) AS checked_num,
+        t.checked_dept AS dept_id
+        FROM view_check_task t
+        WHERE 1=1
+        <if test="start_date!=null and end_date != null">
+            AND t.start_time &gt;= #{start_date} AND t.end_time &lt; #{end_date}
+        </if>
+        <if test="period_id != null and period_id != ''">
+            AND t.period_id = #{period_id}
+        </if>
+        GROUP BY t.checked_dept
+    </select>
+
+    <select id="selectFeeStationCheckedPersonScoreDetail"
+            parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        t.checked_dept     AS dept_id,
+        t.check_item_id,
+        t.check_item_score AS score
+        FROM check_score t
+        JOIN view_check_task ct ON ct.id = t.task_id
+        WHERE t.check_item_score IS NOT NULL
+        <if test="start_date!=null and end_date != null">
+            AND ct.start_time &gt;= #{start_date} AND ct.end_time &lt; #{end_date}
+        </if>
+        <if test="period_id != null and period_id != ''">
+            AND ct.period_id = #{period_id}
+        </if>
+    </select>
+
+    <select id="selectStatistics" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        u.dept_id,
+        u.check_item_id,
+        sum(u.score) AS score
+        FROM (
+        SELECT
+        t.checked_dept  dept_id,
+        t.check_item_id,
+        t.check_item_score AS score
+        FROM check_score t
+        JOIN view_check_task ct ON ct.id = t.task_id
+        WHERE 1 = 1
+        <if test="start_date!=null and end_date != null">
+            AND ct.start_time &gt;= #{start_date} AND ct.end_time &lt; #{end_date}
+        </if>
+        <if test="dept_id!=null">
+            AND t.checked_dept =#{dept_id}
+        </if>
+        )
+        u GROUP BY check_item_id
+    </select>
+
+    <select id="selectCheckedTimes" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT COUNT(1) AS checked_num , t.checked_dept dept_id FROM view_check_task t
+        WHERE 1=1
+        <if test="dept_id != null and dept_id != ''">
+            AND t.checked_dept =#{dept_id}
+        </if>
+        <if test="start_date!=null and end_date != null">
+            AND t.start_time &gt;= #{start_date} AND t.end_time &lt; #{end_date}
+        </if>
+    </select>
+
+    <select id="selectOneCheckedDetailInfo" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        t.name              AS check_task_name,
+        t.start_time        AS start_date,
+        t.end_time          AS end_date,
+        cs.check_item_score AS score,
+        cs.pics,
+        t.checkman          AS checkman_id,
+        t.checked_dept      AS dept_id,
+        cs.check_item_id
+        <if test="queryType!=null and queryType==1">
+            ,cst.update_time,t.id as task_id
+        </if>
+        FROM
+        <if test="queryType!=null and queryType==0">
+            view_check_task
+        </if>
+        <if test="queryType==null or (queryType!=null and queryType==1) ">
+            v_check_task
+        </if>
+        t
+        LEFT JOIN check_score cs ON t.id = cs.task_id
+        <if test="queryType!=null and queryType==1">
+            left join ( select task_id,max(update_time) as update_time from check_task_status where check_status =4 or
+            check_status = 14 GROUP BY task_id ) cst on t.id = cst.task_id
+        </if>
+        where 1=1
+        <if test="dept_id != null and dept_id != ''">
+            AND t.checked_dept = #{dept_id}
+        </if>
+        <if test="start_date !=null and end_date !=null and queryType ==1">
+            AND t.check_time >= #{start_date} AND t.check_time &lt; #{end_date}
+        </if>
+        <if test="start_date !=null and queryType == 0">
+            AND t.start_time >= #{start_date}
+        </if>
+        <if test="end_date !=null and queryType == 0">
+            AND t.end_time &lt; #{end_date}
+        </if>
+        <if test="score_flag!=null and score_flag == 1">
+            AND cs.check_item_score IS NOT NULL
+        </if>
+        <if test="score_flag!=null and score_flag == 0">
+            AND cs.check_item_score IS NULL
+        </if>
+
+        <if test="queryType!=null and queryType==1">
+            ORDER BY cst.update_time desc
+        </if>
+    </select>
+
+    <select id="selectOneCheckedInfoData" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT * FROM (
+        <include refid="selectOneAllCheckedInfoData"/>
+        ) t
+    </select>
+
+    <select id="selectOneCheckedItemInfo" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        a.*
+        FROM (
+        SELECT
+        count(t.id)     AS checked_num,
+        sum(cs.check_item_score) AS all_check_score,
+        cs.check_item_id,
+        cs.checked_dept as dept_id
+        FROM
+        view_check_task t
+        LEFT JOIN check_score cs ON cs.task_id = t.id
+        WHERE
+        1 = 1
+        and cs.checked_dept = #{dept_id}
+        <if test="start_date !=null">
+            AND t.start_time >= #{start_date}
+        </if>
+        <if test="end_date !=null">
+            AND t.end_time &lt; #{end_date}
+        </if>
+        GROUP BY
+        check_item_id
+        ) a where a.all_check_score is not null
+    </select>
+
+    <select id="selectYearScoreInfo" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        sum(tab.checkd_all_score) AS all_check_score,
+        sum(tab.checked_num)      AS checked_num,
+        tab.mth
+        FROM (
+        <include refid="selectAllCheckedInfoAllCheck"/>
+        ) tab
+        WHERE 1=1
+        <if test="dept_list!=null and queryType == 1 and dept_list.size()>0 ">
+            AND tab.checked_dept IN
+            <foreach item="obj" collection="dept_list" open="("
+                     separator="," close=")">
+                #{obj.id}
+            </foreach>
+        </if>
+        <if test="dept_id!=null and queryType ==2">
+            AND tab.checked_dept=#{dept_id}
+        </if>
+        GROUP BY tab.mth
+    </select>
+
+    <select id="selectFeeStationCheckedScore" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        IFNULL(sum(ct.check_item_score), 0) AS score,
+        t.checked_dept                      AS dept_id
+        FROM view_check_task t
+        LEFT JOIN check_score ct ON t.id = ct.task_id
+        WHERE 1 = 1
+        <if test="start_date!=null and end_date != null">
+            AND t.start_time &gt;= #{start_date} AND t.end_time &lt; #{end_date}
+        </if>
+        <if test="period_id !=null and period_id != '' ">
+            AND t.period_id =  #{period_id}
+        </if>
+        GROUP BY t.checked_dept
+    </select>
+
+    <select id="selectFeeStationScoreInfo" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+        sum(tab.checkd_all_score) AS all_check_score,
+        sum(tab.checked_num)      AS checked_num,
+        tab.checked_dept          AS dept_id
+        FROM (
+        <include refid="selectAllCheckedInfoAllCheck"/>
+        ) tab
+        WHERE 1=1
+        GROUP BY tab.checked_dept
+    </select>
+
+    <select id="selectCheckedItemScoreInfo" parameterType="com.xintong.visualinspection.bean.FwqStatisticsBean"
+            resultType="com.xintong.visualinspection.bean.FwqStatisticsBean">
+        SELECT
+          count(DISTINCT m.task_id)   AS checked_num,
+          sum(m.check_item_score)     AS all_check_score,
+          m.check_item_id,
+          m.checked_dept              AS dept_id
+        FROM view_check_task t INNER JOIN
+          check_score m ON t.id = m.task_id
+        WHERE 1=1
+        AND monthfunc(t.start_time) = #{mth}
+        GROUP BY  m.check_item_id,m.checked_dept
+        ORDER BY m.checked_dept
+    </select>
+
+    <select id="selectlimituser"   parameterType="com.xintong.visualinspection.pojo.fwq.ServiceAreaStatistic" resultType="com.xintong.visualinspection.pojo.fwq.ServiceAreaStatistic">
+
+        select a.* from (
+        <include refid="selectc"/>
+        ) a where a.dept_id IN ( select d.dept_id from  (select p.dept_id,
+        COUNT(dept_id) AS COUNT from (<include refid="selectc"/>) p GROUP BY p.dept_id ) d where d.count >= #{limitnumber} )
+
+    </select>
+
+    <sql id="selectc">
+        SELECT *
+        FROM
+        check_dept_score AS user_total_score
+        WHERE
+        period_id >= #{startperiod_id}
+        AND period_id &lt;= #{endperiod_id}
+        AND score >= #{limitscore} AND score &lt;= #{limitscore2}
+        GROUP BY dept_id, period_id
+    </sql>
+
+
+    <sql id="selectOneAllCheckedInfoData">
+        SELECT
+        check_num_t.checked_num,
+        check_num_t.mth,
+        IFNULL(checked_score_t.checkd_all_score, 0) AS all_check_score,
+        check_num_t.checked_dept
+        FROM
+        (
+        SELECT
+        COUNT(t.id)             AS checked_num,
+        monthfunc(t.start_time) AS mth,
+        t.checked_dept
+        FROM
+        view_check_task t
+        WHERE 1 = 1
+        <if test="start_date !=null">
+            AND t.start_time &gt;= #{start_date}
+        </if>
+        <if test="end_date !=null">
+            AND t.end_time &lt; #{end_date}
+        </if>
+        <if test="dept_id !=null ">
+            AND t.checked_dept = #{dept_id}
+        </if>
+        GROUP BY mth
+        ) check_num_t
+            LEFT JOIN (
+            SELECT
+            monthfunc(t.start_time) AS mth,
+            sum(m.check_item_score) AS checkd_all_score,
+            m.*
+            FROM
+            check_score m INNER JOIN
+            (SELECT *
+            FROM view_check_task t
+            WHERE 1 = 1
+        <if test="start_date !=null">
+            AND t.start_time &gt;= #{start_date}
+        </if>
+        <if test="end_date !=null">
+            AND t.end_time &lt; #{end_date}
+        </if>
+        ) t
+        ON m.task_id = t.id
+        WHERE 1=1
+        <if test="dept_id !=null ">
+            AND m.checked_dept = #{dept_id}
+        </if>
+        GROUP BY mth
+
+        ) checked_score_t ON checked_score_t.checked_dept = check_num_t.checked_dept
+        AND check_num_t.mth = checked_score_t.mth
+    </sql>
+
+    <!--包含未扣分的-->
+    <sql id="selectAllCheckedInfoAllCheck">
+        SELECT
+        check_num_t.checked_num,
+        check_num_t.mth,
+        IFNULL(checked_score_t.checkd_all_score, 0) AS checkd_all_score,
+        check_num_t.checked_dept
+        FROM
+        (
+        SELECT
+        COUNT(t.checked_dept)   AS checked_num,
+        monthfunc(t.start_time) AS mth,
+        t.id,
+        t.checked_dept
+        FROM
+        view_check_task t
+        WHERE
+        t.checked_dept IS NOT NULL
+        <if test="start_date !=null">
+            AND t.start_time >= #{start_date}
+        </if>
+        <if test="end_date !=null">
+            AND t.end_time &lt; #{end_date}
+        </if>
+        <if test="mth!=null and mth!=''">
+            AND monthfunc (t.start_time) =#{mth}
+        </if>
+        GROUP BY
+        t.checked_dept,
+        mth
+        ) check_num_t
+        LEFT JOIN (
+        SELECT
+        monthfunc(t.start_time) AS mth,
+        sum(m.check_item_score) AS checkd_all_score,
+        m.*
+        FROM
+        check_score m INNER JOIN
+        (SELECT *
+        FROM view_check_task t
+        WHERE 1 = 1
+        <if test="start_date !=null">
+            AND t.start_time >= #{start_date}
+        </if>
+        <if test="end_date !=null">
+            AND t.end_time &lt; #{end_date}
+        </if>
+        <if test="mth!=null and mth!=''">
+            AND monthfunc (t.start_time) =#{mth}
+        </if>
+        ) t
+        ON m.task_id = t.id
+        WHERE 1 = 1
+        GROUP BY mth, m.checked_dept
+        ) checked_score_t ON checked_score_t.checked_dept = check_num_t.checked_dept
+        AND check_num_t.mth = checked_score_t.mth
+    </sql>
+
+</mapper>
+
+

+ 30 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/securityTools/CorsConfig.java

@@ -0,0 +1,30 @@
+package com.xintong.visualinspection.visuallnspection_qzd.securityTools;
+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;
+
+/**
+ * 文件名:CorsConfig
+ * 版本信息:日期:2017/4/7 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+
+
+@Configuration
+public class CorsConfig {
+    private CorsConfiguration buildConfig() {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        corsConfiguration.addAllowedOrigin("*"); // 1
+        corsConfiguration.addAllowedHeader("*"); // 2
+        corsConfiguration.addAllowedMethod("*"); // 3
+        return corsConfiguration;
+    }
+
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", buildConfig()); // 4
+        return new CorsFilter(source);
+    }
+}

+ 43 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/securityTools/ThreadConfig.java

@@ -0,0 +1,43 @@
+package com.xintong.visualinspection.visuallnspection_qzd.securityTools;
+
+/**
+ * 文件名:ThreadConfig
+ * 版本信息:日期:2018/2/5 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Configuration
+@EnableAsync
+public class ThreadConfig {
+
+    private int corePoolSize = 10;//线程池维护线程的最少数量
+
+    private int maxPoolSize = 30;//线程池维护线程的最大数量
+
+    private int queueCapacity = 8; //缓存队列
+
+    private int keepAlive = 60;//允许的空闲时间
+
+    @Bean
+    public Executor threadExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(corePoolSize);
+        executor.setMaxPoolSize(maxPoolSize);
+        executor.setQueueCapacity(queueCapacity);
+        executor.setThreadNamePrefix("myExecutor-");
+        // rejection-policy:当pool已经达到max size的时候,如何处理新任务
+        // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略
+        executor.setKeepAliveSeconds(keepAlive);
+        executor.initialize();
+        return executor;
+    }
+
+}

+ 71 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/securityTools/WebSecurityConfig.java

@@ -0,0 +1,71 @@
+package com.xintong.visualinspection.visuallnspection_qzd.securityTools;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpMethod;
+import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+
+/**
+ * 文件名:WebSecurityConfig
+ * 版本信息:日期:2017/3/31 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Configuration
+@EnableWebSecurity
+@EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled=true)
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+    @Override
+    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+    }
+
+    @Override
+    public void configure(WebSecurity web) throws Exception {
+        super.configure(web);
+        web.ignoring().antMatchers("/css/**","/js/**");
+    }
+
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+    	
+    	http
+         // 由于使用的是JWT,我们这里不需要csrf
+         .csrf().disable()
+         .cors().and()
+         // 基于token,所以不需要session
+         .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
+         .authorizeRequests()
+         // 允许对于网站静态资源的无授权访问
+         .antMatchers(
+                 HttpMethod.GET,
+                 "/",
+                 "/*.html",
+                 "/favicon.ico",
+                 "/**/*.html",
+                 "/**/*.css",
+                 "/**/*.js"
+         ).permitAll()
+         .antMatchers("/**").permitAll()
+         // 除上面外的所有请求全部需要鉴权认证
+         .anyRequest().authenticated();
+    	// 禁用缓存
+        http.headers().cacheControl();
+    }
+
+    /**
+     * 设置用户密码的加密方式为MD5加密
+     * @return
+     */
+    @Bean
+    public Md5PasswordEncoder passwordEncoder() {
+        return new Md5PasswordEncoder();
+
+    }
+    
+  
+}

+ 35 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/CheckOtherService_F.java

@@ -0,0 +1,35 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service;
+
+import com.xintong.visualinspection.bean.FwqCheckOther;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+public interface CheckOtherService_F {
+
+    /**
+     * 统计数据
+     *
+     * @param fwqOtherCheck
+     * @return
+     */
+    Map<String, Object> getCheckOtherStatistics(FwqCheckOther fwqOtherCheck);
+
+    /**
+     * 统计数据导出
+     *
+     * @param fwqOtherCheck
+     * @param req
+     * @param resp
+     */
+    void getExcel(FwqCheckOther fwqOtherCheck, HttpServletRequest req, HttpServletResponse resp);
+
+    /**
+     * 第三方暗访稽查导出excel
+     * @param fwqOtherCheck
+     * @param req
+     * @param resp
+     */
+    void getOtherCheckExcel(FwqCheckOther fwqOtherCheck, HttpServletRequest req, HttpServletResponse resp);
+}

+ 16 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/StatisticsService_F.java

@@ -0,0 +1,16 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service;
+
+import com.xintong.visualinspection.bean.FwqDeptStatistic;
+import com.xintong.visualinspection.bean.FwqStatisticsBean;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public interface StatisticsService_F {
+
+    void getOperationInfo(FwqStatisticsBean obj, HttpServletRequest req, HttpServletResponse resp);
+
+    void getDeptStatisticExcel(FwqDeptStatistic fwqDeptStatistic, HttpServletRequest req, HttpServletResponse resp);
+
+    void getFeeStationCheckItemScore(FwqStatisticsBean obj, HttpServletRequest req, HttpServletResponse resp);
+}

+ 27 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/AreaInfoServiceImpl.java

@@ -0,0 +1,27 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.xintong.visualinspection.bean.AreaInfo;
+import com.xintong.visualinspection.service.AreaInfoService_F;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqAreaDao;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 文件名:AreaInfoServiceImpl
+ * 版本信息:日期:2018/5/8 Copyright 江苏省交通规划设计院 Corporation 2018 版权所有.
+ */
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}"
+)
+public class AreaInfoServiceImpl implements AreaInfoService_F {
+
+    @Autowired
+    private FwqAreaDao fwqAreaDao;
+
+    @Override
+    public Object getAllArea(AreaInfo areaInfo) {
+        return fwqAreaDao.getall(areaInfo);
+    }
+}

+ 77 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckAppealServiceImpl.java

@@ -0,0 +1,77 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.xintong.visualinspection.bean.CheckAppeal_F;
+import com.xintong.visualinspection.service.CheckAppealService_F;
+import com.xintong.visualinspection.util.CacheUtil;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.CheckAppealDao;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 文件名:UserServiceImpl
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Service
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}"
+)
+public class CheckAppealServiceImpl implements CheckAppealService_F {
+
+    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(CheckAppealServiceImpl.class);
+
+
+    @Autowired
+    private CheckAppealDao checkAppealDao;
+
+
+	@Override
+	public List<CheckAppeal_F> getList(CheckAppeal_F param) {
+		List<CheckAppeal_F> list = checkAppealDao.getList(param);
+		return getList(list) ;
+	}
+	public List<CheckAppeal_F> getList(List<CheckAppeal_F> checkAppeallist){
+		for (CheckAppeal_F checkAppeal : checkAppeallist) {
+			checkAppeal.setAppeal_man_name(CacheUtil.getUserTurenameFromMap(checkAppeal.getAppeal_man()));
+			checkAppeal.setVerify_person_name(CacheUtil.getUserTurenameFromMap(checkAppeal.getVerify_person()));
+			checkAppeal.setCheckman_name(CacheUtil.getUserTurenameFromMap(checkAppeal.getCheckman()));
+			checkAppeal.setRecheckman_name(CacheUtil.getUserTurenameFromMap(checkAppeal.getRecheckman()));
+			checkAppeal.setAppeal_dept_name(CacheUtil.getOrgannameFromMap(checkAppeal.getAppeal_dept()));
+		}
+		return checkAppeallist;
+	}
+
+	@Override
+	public CheckAppeal_F getById(Long id) {
+		return checkAppealDao.getOne(id);
+	}
+
+
+	@Override
+	public void insert(CheckAppeal_F checkAppeal) {
+		checkAppealDao.insert(checkAppeal);
+	}
+
+
+	@Override
+	public void update(CheckAppeal_F checkAppeal) {
+		checkAppealDao.update(checkAppeal);
+	}
+
+
+	@Override
+	public void delete(Long id) {
+		checkAppealDao.delete(id);
+	}
+	@Override
+	public CheckAppeal_F getByTaskId(Long id) {
+		// TODO Auto-generated method stub
+		return checkAppealDao.getByTaskId(id);
+	}
+
+}

+ 87 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckApplyServiceImpl.java

@@ -0,0 +1,87 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.xintong.visualinspection.bean.CheckApply_F;
+import com.xintong.visualinspection.bean.Constant;
+import com.xintong.visualinspection.service.CheckApplyService_F;
+import com.xintong.visualinspection.service.CommonService;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.CheckApplyDao;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:UserServiceImpl
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@Service
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}"
+)
+public class CheckApplyServiceImpl  implements CheckApplyService_F {
+
+    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(CheckApplyServiceImpl.class);
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+    @Autowired
+    private CheckApplyDao checkApplyDao;
+
+	@Override
+	public List<CheckApply_F> getList(CheckApply_F param) {
+		// TODO Auto-generated method stub
+        Map<String,Constant> codeMap =commonService.getCodeMap();
+
+        List<CheckApply_F> checkApply_fs = checkApplyDao.getList(param);
+        if(checkApply_fs!=null && checkApply_fs.size()>0){
+            for (CheckApply_F f:checkApply_fs
+                 ) {
+               Constant c =  (codeMap.get("task_status_"+f.getCheck_status()));
+               if(c!=null){
+                   f.setCode_name(c.getCode_name());
+               }
+
+            }
+        }
+
+		return checkApply_fs;
+	}
+	@Override
+	public CheckApply_F getById(Long id) {
+		// TODO Auto-generated method stub
+		return checkApplyDao.getOne(id);
+	}
+	@Override
+	public void insert(CheckApply_F checkApply) {
+		// TODO Auto-generated method stub
+		checkApplyDao.insert(checkApply);
+	}
+	@Override
+	public void update(CheckApply_F checkApply) {
+		// TODO Auto-generated method stub
+		checkApplyDao.update(checkApply);
+	}
+	@Override
+	public void delete(Long id) {
+		// TODO Auto-generated method stub
+		checkApplyDao.delete(id);
+	}
+	@Override
+	public CheckApply_F getByTaskId(Long id) {
+		// TODO Auto-generated method stub
+		return checkApplyDao.getOneByTaskId(id);
+	}
+	@Override
+	public List<CheckApply_F> getTopReasonList(Map<String, Object> param) {
+		// TODO Auto-generated method stub
+		return checkApplyDao.getTopReasonList(param);
+	}
+}

+ 268 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckOtherServiceImpl.java

@@ -0,0 +1,268 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.xintong.visualinspection.bean.Constant;
+import com.xintong.visualinspection.bean.FeeStation;
+import com.xintong.visualinspection.bean.FwqCheckOther;
+import com.xintong.visualinspection.bean.FwqCheckOtherStatistics;
+import com.xintong.visualinspection.bean.Item;
+import com.xintong.visualinspection.bean.Organ;
+import com.xintong.visualinspection.service.CheckOtherService_F;
+import com.xintong.visualinspection.service.CommonService;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckOtherDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:OtherCheckServiceImpl_F
+ * 版本信息:日期:2017/4/7 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ *
+ * @author wenhongquan
+ * @date 2018/05/02
+ */
+
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}"
+)
+public class CheckOtherServiceImpl implements CheckOtherService_F {
+
+    private static final Logger logger = LoggerFactory.getLogger(CheckOtherServiceImpl.class);
+
+    @Autowired
+    private FwqCheckOtherDao fwqCheckOtherDao;
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+
+    /**
+     * 第三方暗访稽查查询(查询条件:时间,道管,服务区)
+     *
+     * @param page
+     * @param size
+     * @param fwqCheckOther
+     * @return
+     */
+    @Override
+    public Object getAllCheckOther(Integer page, Integer size, FwqCheckOther fwqCheckOther) {
+        if (!(page.equals(0) && size.equals(0))) {
+            PageHelper.startPage(page, size);
+        }
+        List<FwqCheckOther> checkOtherList = fwqCheckOtherDao.getAllCheckOther(fwqCheckOther == null ? new FwqCheckOther() : fwqCheckOther);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<String, Constant> codeMap = commonService.getCodeMap();
+        for (FwqCheckOther data : checkOtherList) {
+            if (deptMap.get(data.getDept_id()) != null) {
+                data.setOrgan_name(deptMap.get(data.getDept_id()).getOrganname());
+            }
+            if (itemMap.get(data.getCheck_item_id()) != null) {
+                data.setCheck_item_name(itemMap.get(data.getCheck_item_id()).getName());
+                if (itemMap.get(data.getCheck_item_id()).getParent_id() != null) {
+                    if (itemMap.get(data.getCheck_item_id()).getScore() == null) {
+                        data.setPcheckname(itemMap.get(data.getCheck_item_id()).getName());
+                    } else {
+                        data.setPcheckname(itemMap.get(itemMap.get(data.getCheck_item_id()).getParent_id()).getName());
+                    }
+                }
+            }
+            if (codeMap.get(data.getWrecker_check_type()) != null) {
+                data.setWrecker_check_type_name(codeMap.get(data.getWrecker_check_type()).getCode_name());
+            }
+            if (codeMap.get(data.getSpecial_check_type()) != null) {
+                data.setSpecial_check_type_name(codeMap.get(data.getSpecial_check_type()).getCode_name());
+            }
+        }
+        if (!(page.equals(0) && size.equals(0))) {
+            return new PageInfo<FwqCheckOther>(checkOtherList);
+        }
+        return checkOtherList;
+    }
+
+    /**
+     * 第三方暗访稽查查询(查询条件:时间,道管,服务区),<无分页>
+     *
+     * @param fwqCheckOther
+     * @return
+     */
+    private Object getAllCheckOther(FwqCheckOther fwqCheckOther) {
+
+        List<FwqCheckOther> checkOtherList = fwqCheckOtherDao.getAllCheckOther(fwqCheckOther == null ? new FwqCheckOther() : fwqCheckOther);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<String, Constant> codeMap = commonService.getCodeMap();
+        for (FwqCheckOther data : checkOtherList) {
+            if (deptMap.get(data.getDept_id()) != null) {
+                data.setOrgan_name(deptMap.get(data.getDept_id()).getOrganname());
+            }
+            if (itemMap.get(data.getCheck_item_id()) != null) {
+                data.setCheck_item_name(itemMap.get(data.getCheck_item_id()).getName());
+                if (itemMap.get(data.getCheck_item_id()).getParent_id() != null) {
+                    if (itemMap.get(data.getCheck_item_id()).getScore() == null) {
+                        data.setPcheckname(itemMap.get(data.getCheck_item_id()).getName());
+                    } else {
+                        data.setPcheckname(itemMap.get(itemMap.get(data.getCheck_item_id()).getParent_id()).getName());
+                    }
+                }
+            }
+            if (codeMap.get(data.getWrecker_check_type()) != null) {
+                data.setWrecker_check_type_name(codeMap.get(data.getWrecker_check_type()).getCode_name());
+            }
+            if (codeMap.get(data.getSpecial_check_type()) != null) {
+                data.setSpecial_check_type_name(codeMap.get(data.getSpecial_check_type()).getCode_name());
+            }
+        }
+        return checkOtherList;
+    }
+
+    /**
+     * 新增稽查数据
+     *
+     * @param fwqOtherCheck
+     */
+    @Override
+    public void addCheckOther(FwqCheckOther fwqOtherCheck) {
+        fwqCheckOtherDao.addCheckOther(fwqOtherCheck);
+    }
+
+    @Override
+    public void deleteCheckOther(Long id) {
+        fwqCheckOtherDao.deleteCheckOther(id);
+    }
+
+    @Override
+    public void updateCheckOther(FwqCheckOther fwqCheckOther) {
+        fwqCheckOtherDao.updateCheckOther(fwqCheckOther);
+    }
+
+    @Override
+    public FwqCheckOther selectCheckById(Long id) {
+        FwqCheckOther fwqCheckOther = fwqCheckOtherDao.selectCheckById(id);
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        fwqCheckOther.setCheck_item_name(itemMap.get(fwqCheckOther.getCheck_item_id()).getName());
+        return fwqCheckOther;
+    }
+
+    /**
+     * 统计数据
+     *
+     * @param fwqCheckOther
+     * @return
+     */
+    @Override
+    public Map<String, Object> getCheckOtherStatistics(FwqCheckOther fwqCheckOther) {
+
+        Map<String, Object> datas = new HashMap<>();
+        List<FwqCheckOtherStatistics> fwqCheckOtherStatisticses = new ArrayList<>();
+
+        fwqCheckOther.setCheck_time_name(fwqCheckOther.getCheck_period());
+        List<FwqCheckOther> checkOtherList = fwqCheckOtherDao.getAllCheckOther(fwqCheckOther);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<String, Constant> codeMap = commonService.getCodeMap();
+        for (FwqCheckOther data : checkOtherList) {
+            if (deptMap.get(data.getDept_id()) != null) {
+                data.setOrgan_name(deptMap.get(data.getDept_id()).getOrganname());
+            }
+            if (itemMap.get(data.getCheck_item_id()) != null) {
+                data.setCheck_item_name(itemMap.get(data.getCheck_item_id()).getName());
+                if (itemMap.get(data.getCheck_item_id()).getParent_id() != null) {
+                    if (itemMap.get(data.getCheck_item_id()).getScore() == null) {
+                        data.setPcheckname(itemMap.get(data.getCheck_item_id()).getName());
+                    } else {
+                        data.setPcheckname(itemMap.get(itemMap.get(data.getCheck_item_id()).getParent_id()).getName());
+                    }
+                }
+            }
+            if (codeMap.get(data.getWrecker_check_type()) != null) {
+                data.setWrecker_check_type_name(codeMap.get(data.getWrecker_check_type()).getCode_name());
+            }
+            if (codeMap.get(data.getSpecial_check_type()) != null) {
+                data.setSpecial_check_type_name(codeMap.get(data.getSpecial_check_type()).getCode_name());
+            }
+        }
+
+        // 获得所有服务区数据
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        // 获得所有道管中心数据
+        List<FeeStation> rmList = commonService.getAllDeptByLayer("RM");
+
+        int checkType = fwqCheckOther.getCheck_type();
+        if (checkType == 8 || checkType == 9) {
+            Long id = 26L;
+            if (checkType == 8) {
+                id = 26L;
+            }
+            if (checkType == 9) {
+                id = 27L;
+            }
+            //获取考核办法对应的考核项
+            List<String> itemName = commonService.getCheckItemName(id);
+
+            for (FwqCheckOther c : checkOtherList) {
+                if (!itemName.contains(c.getPcheckname())) {
+                    itemName.add(c.getPcheckname());
+                }
+            }
+
+            for (FeeStation station : saList) {
+                FwqCheckOtherStatistics fwqCheckOtherStatistics = new FwqCheckOtherStatistics();
+                fwqCheckOtherStatistics.setDeptid(station.getDeptid());
+                fwqCheckOtherStatistics.setDeptname(station.getName().replaceAll("服务区", ""));
+                fwqCheckOtherStatistics.setPdeptid(station.getParentid());
+                HashMap<String, Integer> s = new HashMap<>();
+                for (String i : itemName) {
+                    s.put(i, 0);
+                }
+                for (FwqCheckOther c : checkOtherList) {
+                    if (c.getDept_id().toString().equals(station.getDeptid())) {
+                        Integer i = s.get(c.getPcheckname());
+                        if (i == null) {
+                            i = 0;
+                        }
+//                        if (checkType == 2) {
+                        s.put(c.getPcheckname(), Integer.valueOf((int) (i + c.getCheck_score())));
+//                        } else {
+//                            if (c.getOrgan_name() == null || "".equals(c.getOrgan_name())) {
+//                                s.put(c.getPcheckname(), Integer.valueOf((int) (i + c.getCheck_score())));
+//                            } else {
+//                                s.put(c.getPcheckname(), i);
+//                            }
+//                        }
+                    }
+                }
+                fwqCheckOtherStatistics.setScoremap(s);
+                fwqCheckOtherStatisticses.add(fwqCheckOtherStatistics);
+            }
+
+            for (FeeStation a : rmList) {
+                List<FwqCheckOtherStatistics> s = new ArrayList<>();
+                for (FwqCheckOtherStatistics o : fwqCheckOtherStatisticses) {
+                    if (o.getPdeptid().equals(a.getDeptid())) {
+                        o.setPdeptname(a.getName());
+                        s.add(o);
+                    }
+                }
+                datas.put(a.getName().replaceAll("道管中心", ""), s);
+            }
+
+        }
+
+        return datas;
+    }
+
+
+
+}

+ 283 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/CheckOtherService_FImpl.java

@@ -0,0 +1,283 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.xintong.visualinspection.bean.Constant;
+import com.xintong.visualinspection.bean.FeeStation;
+import com.xintong.visualinspection.bean.FwqCheckOther;
+import com.xintong.visualinspection.bean.FwqCheckOtherStatistics;
+import com.xintong.visualinspection.bean.Item;
+import com.xintong.visualinspection.bean.Organ;
+import com.xintong.visualinspection.service.CommonService;
+import com.xintong.visualinspection.util.DateUtil;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckOtherDao;
+import com.xintong.visualinspection.visuallnspection_qzd.service.CheckOtherService_F;
+import org.jxls.common.Context;
+import org.jxls.util.JxlsHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:OtherCheckServiceImpl_F
+ * 版本信息:日期:2017/4/7 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ *
+ * @author wenhongquan
+ * @date 2018/05/02
+ */
+@Service
+public class CheckOtherService_FImpl implements CheckOtherService_F {
+
+    private static final Logger logger = LoggerFactory.getLogger(CheckOtherService_FImpl.class);
+
+    @Autowired
+    private FwqCheckOtherDao fwqCheckOtherDao;
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+
+    /**
+     * 第三方暗访稽查查询(查询条件:时间,道管,服务区),<无分页>
+     *
+     * @param fwqCheckOther
+     * @return
+     */
+    private Object getAllCheckOther(FwqCheckOther fwqCheckOther) {
+
+        List<FwqCheckOther> checkOtherList = fwqCheckOtherDao.getAllCheckOther(fwqCheckOther == null ? new FwqCheckOther() : fwqCheckOther);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<String, Constant> codeMap = commonService.getCodeMap();
+        for (FwqCheckOther data : checkOtherList) {
+            if (deptMap.get(data.getDept_id()) != null) {
+                data.setOrgan_name(deptMap.get(data.getDept_id()).getOrganname());
+            }
+            if (itemMap.get(data.getCheck_item_id()) != null) {
+                data.setCheck_item_name(itemMap.get(data.getCheck_item_id()).getName());
+                if (itemMap.get(data.getCheck_item_id()).getParent_id() != null) {
+                    if (itemMap.get(data.getCheck_item_id()).getScore() == null) {
+                        data.setPcheckname(itemMap.get(data.getCheck_item_id()).getName());
+                    } else {
+                        data.setPcheckname(itemMap.get(itemMap.get(data.getCheck_item_id()).getParent_id()).getName());
+                    }
+                }
+            }
+            if (codeMap.get(data.getWrecker_check_type()) != null) {
+                data.setWrecker_check_type_name(codeMap.get(data.getWrecker_check_type()).getCode_name());
+            }
+            if (codeMap.get(data.getSpecial_check_type()) != null) {
+                data.setSpecial_check_type_name(codeMap.get(data.getSpecial_check_type()).getCode_name());
+            }
+        }
+        return checkOtherList;
+    }
+
+    /**
+     * 统计数据
+     *
+     * @param fwqCheckOther
+     * @return
+     */
+    @Override
+    public Map<String, Object> getCheckOtherStatistics(FwqCheckOther fwqCheckOther) {
+
+        Map<String, Object> datas = new HashMap<>();
+        List<FwqCheckOtherStatistics> fwqCheckOtherStatisticses = new ArrayList<>();
+
+        fwqCheckOther.setCheck_time_name(fwqCheckOther.getCheck_period());
+        List<FwqCheckOther> checkOtherList = fwqCheckOtherDao.getAllCheckOther(fwqCheckOther);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<String, Constant> codeMap = commonService.getCodeMap();
+        for (FwqCheckOther data : checkOtherList) {
+            if (deptMap.get(data.getDept_id()) != null) {
+                data.setOrgan_name(deptMap.get(data.getDept_id()).getOrganname());
+            }
+            if (itemMap.get(data.getCheck_item_id()) != null) {
+                data.setCheck_item_name(itemMap.get(data.getCheck_item_id()).getName());
+                if (itemMap.get(data.getCheck_item_id()).getParent_id() != null) {
+                    if (itemMap.get(data.getCheck_item_id()).getScore() == null) {
+                        data.setPcheckname(itemMap.get(data.getCheck_item_id()).getName());
+                    } else {
+                        data.setPcheckname(itemMap.get(itemMap.get(data.getCheck_item_id()).getParent_id()).getName());
+                    }
+                }
+            }
+            if (codeMap.get(data.getWrecker_check_type()) != null) {
+                data.setWrecker_check_type_name(codeMap.get(data.getWrecker_check_type()).getCode_name());
+            }
+            if (codeMap.get(data.getSpecial_check_type()) != null) {
+                data.setSpecial_check_type_name(codeMap.get(data.getSpecial_check_type()).getCode_name());
+            }
+        }
+
+        // 获得所有服务区数据
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        // 获得所有道管中心数据
+        List<FeeStation> rmList = commonService.getAllDeptByLayer("RM");
+
+        int checkType = fwqCheckOther.getCheck_type();
+        if (checkType == 8 || checkType == 9) {
+            Long id = 26L;
+            if (checkType == 8) {
+                id = 26L;
+            }
+            if (checkType == 9) {
+                id = 27L;
+            }
+            //获取考核办法对应的考核项
+            List<String> itemName = commonService.getCheckItemName(id);
+
+            for (FwqCheckOther c : checkOtherList) {
+                if (!itemName.contains(c.getPcheckname())) {
+                    itemName.add(c.getPcheckname());
+                }
+            }
+
+            for (FeeStation station : saList) {
+                FwqCheckOtherStatistics fwqCheckOtherStatistics = new FwqCheckOtherStatistics();
+                fwqCheckOtherStatistics.setDeptid(station.getDeptid());
+                fwqCheckOtherStatistics.setDeptname(station.getName().replaceAll("服务区", ""));
+                fwqCheckOtherStatistics.setPdeptid(station.getParentid());
+                HashMap<String, Integer> s = new HashMap<>();
+                for (String i : itemName) {
+                    s.put(i, 0);
+                }
+                for (FwqCheckOther c : checkOtherList) {
+                    if (c.getDept_id().toString().equals(station.getDeptid())) {
+                        Integer i = s.get(c.getPcheckname());
+                        if (i == null) {
+                            i = 0;
+                        }
+//                        if (checkType == 2) {
+                        s.put(c.getPcheckname(), Integer.valueOf((int) (i + c.getCheck_score())));
+//                        } else {
+//                            if (c.getOrgan_name() == null || "".equals(c.getOrgan_name())) {
+//                                s.put(c.getPcheckname(), Integer.valueOf((int) (i + c.getCheck_score())));
+//                            } else {
+//                                s.put(c.getPcheckname(), i);
+//                            }
+//                        }
+                    }
+                }
+                fwqCheckOtherStatistics.setScoremap(s);
+                fwqCheckOtherStatisticses.add(fwqCheckOtherStatistics);
+            }
+
+            for (FeeStation a : rmList) {
+                List<FwqCheckOtherStatistics> s = new ArrayList<>();
+                for (FwqCheckOtherStatistics o : fwqCheckOtherStatisticses) {
+                    if (o.getPdeptid().equals(a.getDeptid())) {
+                        o.setPdeptname(a.getName());
+                        s.add(o);
+                    }
+                }
+                datas.put(a.getName().replaceAll("道管中心", ""), s);
+            }
+
+        }
+
+        return datas;
+    }
+
+    @Override
+    public void getExcel(FwqCheckOther fwqCheckOther, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
+        String title = fwqCheckOther.getCheck_time_name();
+        int checkType = fwqCheckOther.getCheck_type();
+        fwqCheckOther.setCheck_period(title);
+        if (checkType == 8 || checkType == 9) {
+            Map<String, Object> m = getCheckOtherStatistics(fwqCheckOther);
+            Map<String, Object> map = new HashMap<>();
+            map.put("datas", m);
+
+            if (checkType == 8) {
+                title += "月份服务区第三方暗访情况";
+            }
+            if (checkType == 9) {
+                title += "月份服务区现场检查情况";
+            }
+            map.put("title", title.replaceAll("/", "-"));
+
+            exportExcel(title.replaceAll("/", "-"), "fwq_other_check_info_anfang", map, httpServletResponse);
+        }
+    }
+
+    @Override
+    public void getOtherCheckExcel(FwqCheckOther fwqCheckOther, HttpServletRequest req, HttpServletResponse resp) {
+        List<FwqCheckOther> checkOtherList = (List<FwqCheckOther>) getAllCheckOther(fwqCheckOther);
+
+        Long id = 1L;
+        for (FwqCheckOther co : checkOtherList) {
+            co.setId(id++);
+            co.setCheck_time_name(DateUtil.DateFormatStr(co.getCheck_time()));
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", checkOtherList);
+        if (fwqCheckOther.getCheck_type() == 8) {
+            exportExcel("服务区第三方暗访稽查", "fwq_third_check", map, resp);
+        } else if (fwqCheckOther.getCheck_type() == 9) {
+            exportExcel("服务区现场稽查", "fwq_duty_check", map, resp);
+        }
+    }
+
+    private void exportExcel(String fileName, String excelTemplateName, Map<String, Object> map,
+                             HttpServletResponse resp) {
+        String path = "./" + fileName + ".xls";
+        try (InputStream is = this.getClass().getResourceAsStream("/" + excelTemplateName + ".xls")) {
+            try (OutputStream os = new FileOutputStream(path)) {
+                Context context = new Context();
+                // context.putVar("list", map.get("list"));
+                // context.putVar("totalMan", map.get("totalMan"));
+                for (String key : map.keySet()) {
+                    context.putVar(key, map.get(key));
+                }
+                JxlsHelper.getInstance().processTemplate(is, os, context);
+            }
+            Thread.sleep(1000);
+            // path是指欲下载的文件的路径。
+            File file = new File(path);
+            // 取得文件名。
+            String filename = file.getName();
+            // 以流的形式下载文件。
+            InputStream bis = new BufferedInputStream(new FileInputStream(file));
+            byte[] buffer = new byte[bis.available()];
+            bis.read(buffer);
+            bis.close();
+            // 清空response
+            resp.reset();
+            // 设置response的Header
+            resp.addHeader("Content-Disposition",
+                    "attachment;filename=" + new String(filename.getBytes("gb2312"), "ISO8859-1"));
+            resp.addHeader("Content-Length", "" + file.length());
+            OutputStream toClient = new BufferedOutputStream(resp.getOutputStream());
+            resp.setContentType("application/vnd.ms-excel;charset=gb2312");
+            toClient.write(buffer);
+            toClient.flush();
+            toClient.close();
+            // 删除生成的临时文件
+            if (file.exists()) {
+                file.delete();
+            }
+
+        } catch (Exception e) {
+            logger.error(e.toString());
+        }
+    }
+}

+ 144 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/ScoreServiceImpl.java

@@ -0,0 +1,144 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.xintong.visualinspection.bean.FwqScore;
+import com.xintong.visualinspection.bean.Item;
+import com.xintong.visualinspection.service.ItemService;
+import com.xintong.visualinspection.service.ScoreService_F;
+import com.xintong.visualinspection.visuallnspection_qzd.bean.Log;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.LogDao;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.ScoreDao;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 文件名:ScoreServiceImpl
+ * 版本信息:日期:2017/3/30 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ */
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}"
+)
+@Service
+public class ScoreServiceImpl  implements ScoreService_F {
+
+    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ScoreServiceImpl.class);
+
+
+    @Autowired
+    private ScoreDao scoreDao;
+    @Autowired
+    private LogDao logDao;
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private ItemService itemService;
+
+	@Override
+	public List<FwqScore> getAll() {
+		// TODO Auto-generated method stub
+		return scoreDao.getAll();
+	}
+
+	@Override
+	public FwqScore getOne(Long id) {
+		// TODO Auto-generated method stub
+		return scoreDao.getOne(id);
+	}
+
+	@Override
+	public List<FwqScore> getScoreList(FwqScore score) {
+		// TODO Auto-generated method stub
+		List<FwqScore> scoreList = scoreDao.getScoreList(score);
+        List<Item> items = itemService.getAll();
+        for (FwqScore s:scoreList
+                ) {
+            for (Item i:items
+                 ) {
+                if(s.getCheck_item_id().equals(i.getId())){
+                    s.setCheck_item_name(i.getName());
+                    s.setCheck_item_score(i.getScore());
+                }
+
+            }
+
+        }
+		return scoreList;
+	}
+
+	@Override
+	public List<FwqScore> getScoreListByTaskId(Long task_id) {
+		// TODO Auto-generated method stub
+		return scoreDao.getScoreListByTaskId(task_id);
+	}
+
+	@Override
+	public void insert(FwqScore score) {
+		// TODO Auto-generated method stub
+		score.setUpdate_time(new Date());
+		scoreDao.insert(score);
+	}
+
+	@Override
+	public void update(FwqScore score) {
+        FwqScore oldScore = getOne(score.getId());
+		// TODO Auto-generated method stub
+		scoreDao.update(score);
+
+		//扣分不一致保存日志
+		if(score.getCheck_item_score()!=null && !oldScore.getCheck_item_score().equals(score.getCheck_item_score())){
+			Log log = new Log();
+			log.setTask_id(oldScore.getTask_id());
+			log.setUpdate_user(score.getUpdate_user());
+			log.setDept_id(oldScore.getChecked_dept());
+			log.setScore_id(score.getId());
+			log.setContent("更改扣分:"+oldScore.getCheck_item_score()+"-->"+score.getCheck_item_score());
+			logDao.insert(log);
+		}
+	}
+
+	@Override
+	public void delete(Long id) {
+		// TODO Auto-generated method stub
+		scoreDao.delete(id);
+	}
+
+	@Override
+	public List<FwqScore> getTopRemarkList(Map<String, Object> param) {
+		// TODO Auto-generated method stub
+		return scoreDao.getTopRemarkList(param);
+	}
+
+	@Override
+	public void updateByTaskIdAndPerson(FwqScore score) {
+		// TODO Auto-generated method stub
+		scoreDao.updateByTaskIdAndPerson(score);
+	}
+
+	@Override
+	public void backoutScore(FwqScore score) {
+		// TODO Auto-generated method stub
+        FwqScore oldScore = getOne(score.getId());
+		//记录之前扣分
+		scoreDao.updateFormerScore(score);
+		//之前扣分撤销
+		scoreDao.updateNowScore(score);
+		
+		//保存日志
+		Log log = new Log();
+		log.setTask_id(oldScore.getTask_id());
+		log.setUpdate_user(score.getUpdate_user());
+		log.setDept_id(oldScore.getChecked_dept());
+		log.setScore_id(score.getId());
+		log.setContent("撤销扣分:"+oldScore.getCheck_item_score()+"-->"+score.getCheck_item_score());
+		logDao.insert(log);
+	}
+}

+ 1152 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/StatisticsServiceImpl.java

@@ -0,0 +1,1152 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.xintong.visualinspection.bean.CheckTaskPeriod;
+import com.xintong.visualinspection.bean.FeeStation;
+import com.xintong.visualinspection.bean.FwqDeptStatistic;
+import com.xintong.visualinspection.bean.FwqStatisticsBean;
+import com.xintong.visualinspection.bean.FwqStatisticsBo;
+import com.xintong.visualinspection.bean.Item;
+import com.xintong.visualinspection.bean.Organ;
+import com.xintong.visualinspection.pojo.fwq.FwqRankingData;
+import com.xintong.visualinspection.pojo.fwq.FwqStatisiticPojo;
+import com.xintong.visualinspection.pojo.fwq.ServiceAreaStatistic;
+import com.xintong.visualinspection.service.CommonService;
+import com.xintong.visualinspection.service.StatisticsService_F;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckDeptStatisticsDao;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqStatisticsDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 文件名:StatisticsServiceImpl
+ * 版本信息:日期:2017/4/7 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ *
+ * @author huangcheng
+ * @date 2018/05/02
+ */
+
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}",
+        timeout = 3000
+)
+public class StatisticsServiceImpl implements StatisticsService_F {
+
+    private static final Logger logger = LoggerFactory.getLogger(StatisticsServiceImpl.class);
+
+    @Autowired
+    private FwqStatisticsDao fwqStatisticsDao;
+    @Autowired
+    private FwqCheckDeptStatisticsDao fwqCheckDeptStatisticsDao;
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+
+    @Override
+    public List<FwqStatisticsBean> getOperationInfo(FwqStatisticsBean obj) {
+
+        // 获得所有服务区数据
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        Map<Long, FwqStatisticsBean> mapStationInfos = new HashMap<>();
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            mapStationInfos.put(Long.valueOf(sta.getDeptid()), obj2);
+        }
+
+        // 获取公司检查的某个收费站的受检次数和扣分合计
+        List<FwqStatisticsBean> company_beans =  getFeeStationCheckItemScore(obj);
+        // 获取第三方暗访稽查的某个服务区的受检次数和扣分合计
+        obj.setCheck_type(8);
+        List<FwqStatisticsBean> third_beans = fwqStatisticsDao.getselectFeeStationOperationScoreDetail(obj);
+        // 获取现场稽查的某个服务区的受检次数和扣分合计
+        obj.setCheck_type(9);
+        List<FwqStatisticsBean> onsite_beans = fwqStatisticsDao.getselectFeeStationOperationScoreDetail(obj);
+
+        for (FwqStatisticsBean company_bean : company_beans) {
+            mapStationInfos.get(company_bean.getDept_id()).setCompany_check_num(company_bean.getChecked_num());
+            mapStationInfos.get(company_bean.getDept_id()).setCompany_total_score(company_bean.getAll_check_score());
+        }
+        for (FwqStatisticsBean third_bean : third_beans) {
+            mapStationInfos.get(third_bean.getDept_id()).setThird_check_num(third_bean.getChecked_num() > 1 ? 1 : third_bean.getChecked_num());
+            mapStationInfos.get(third_bean.getDept_id()).setThird_total_score(third_bean.getCheck_total_score());
+        }
+
+        for (FwqStatisticsBean onsite_bean : onsite_beans) {
+            mapStationInfos.get(onsite_bean.getDept_id()).setOnsite_check_num(onsite_bean.getChecked_num() > 1 ? 1 : onsite_bean.getChecked_num());
+            mapStationInfos.get(onsite_bean.getDept_id()).setOnsite_total_score(onsite_bean.getCheck_total_score());
+        }
+        // 计算出每个收费站的总平均扣分和平均得分
+        Set<Map.Entry<Long, FwqStatisticsBean>> stationInfos = mapStationInfos.entrySet();
+        // 保留二位小数
+        DecimalFormat df = new DecimalFormat("0.00");
+        for (Map.Entry<Long, FwqStatisticsBean> station : stationInfos) {
+            float avg = 0;
+            FwqStatisticsBean value = station.getValue();
+            value.setThird_check_num(1);
+            value.setOnsite_check_num(1);
+            // 设置总平均扣分
+            if (value.getCompany_check_num() > 0 || value.getThird_check_num() > 0) {
+                avg += (value.getCompany_total_score() + value.getThird_total_score()) / 2.0 / (value.getCompany_check_num() + value.getThird_check_num());
+            }
+            if (value.getOnsite_check_num() > 0) {
+                avg += value.getOnsite_total_score() / 2.0 / value.getOnsite_check_num();
+            }
+            value.setCheck_total_avg(df.format(avg));
+            // 设置平均得分
+            Float score_avg = (1000 - Float.valueOf(df.format(avg)));
+            value.setScore_avg(score_avg.toString());
+        }
+        List<FwqStatisticsBean> sortList = new ArrayList<>(mapStationInfos.values());
+        sortList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                return o1.compare3To(o2);
+            }
+        });
+
+        List<FwqStatisticsBean> temp = new ArrayList<>();
+        temp.addAll(sortList);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        for (FwqStatisticsBean aSortList : sortList) {
+            if (deptMap.get(aSortList.getDept_id()) != null) {
+                if (deptMap.get(aSortList.getDept_id()).getCreattime().getTime() > obj.getEnd_date().getTime()) {
+                    temp.remove(aSortList);
+                }
+            }
+
+        }
+        sortList = temp;
+
+        for (int j = 0; j < sortList.size(); j++) {
+            FwqStatisticsBean statisticsBean = sortList.get(j);
+            // 公司排名
+            if (j == 0) {
+                statisticsBean.setCompany_ranking2(1);
+            } else {
+                FwqStatisticsBean bean = sortList.get(j - 1);
+                if (statisticsBean.compare3To(bean) == 0) {
+                    statisticsBean.setCompany_ranking2(bean.getCompany_ranking2());
+                } else {
+                    statisticsBean.setCompany_ranking2(j + 1);
+                }
+            }
+        }
+
+        CheckTaskPeriod period = commonService.getCheckTaskPeriod(obj.getStart_date().getTime()+1 * 1000 * 60 * 60, obj.getEnd_date().getTime()+1 * 1000 * 60 * 60);
+
+        if (period != null) {
+            for (FwqStatisticsBean s : sortList) {
+                FwqDeptStatistic ss = new FwqDeptStatistic();
+                ss.setScore(Double.parseDouble(s.getScore_avg()));
+                ss.setIntegral(sortList.size() - s.getCompany_ranking2() + 1);
+                ss.setDept_id(s.getDept_id());
+                ss.setPeriod_id(period.getId());
+                fwqCheckDeptStatisticsDao.saveandupdate(ss);
+            }
+        }
+
+        return sortList;
+    }
+
+    @Override
+    public Map<String, List<FwqDeptStatistic>> getDeptStatistic(FwqDeptStatistic obj) {
+
+        List<CheckTaskPeriod> checkTaskPeriods = commonService.getAllCheckTaskPeriod();
+        SimpleDateFormat ff = new SimpleDateFormat("yyyy-MM");
+        SimpleDateFormat ff1 = new SimpleDateFormat("MM月");
+
+        for (CheckTaskPeriod p : checkTaskPeriods) {
+            if (obj.getStart_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
+                obj.setStartperiod_id(p.getId());
+            }
+            if (obj.getEnd_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
+                obj.setEndperiod_id(p.getId());
+            }
+        }
+        if (obj.getStart_date() > (checkTaskPeriods.get(checkTaskPeriods.size() - 1).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            return null;
+        }
+        if (obj.getEnd_date() < (checkTaskPeriods.get(0).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            return null;
+        }
+        if (obj.getStart_date() < (checkTaskPeriods.get(0).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            obj.setStartperiod_id(checkTaskPeriods.get(0).getId());
+        }
+        if (obj.getEnd_date() > (checkTaskPeriods.get(checkTaskPeriods.size() - 1).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            obj.setEndperiod_id(checkTaskPeriods.get(checkTaskPeriods.size() - 1).getId());
+        }
+
+        List<FwqDeptStatistic> deptStatistics = fwqCheckDeptStatisticsDao.selectdepts(obj);
+        Map<String, List<FwqDeptStatistic>> listMap = new HashMap<>();
+        Map<Long, List<FwqDeptStatistic>> listMap1 = new HashMap<>();
+        if (deptStatistics.size() > 0) {
+            Map<Long, Organ> deptMap = commonService.getDeptMap();
+            for (FwqDeptStatistic s : deptStatistics) {
+                //按月统计
+                if (listMap.get(s.getPeriod_id() + "") == null) {
+                    List<FwqDeptStatistic> t = new ArrayList<>();
+                    t.add(s);
+                    listMap.put(s.getPeriod_id() + "", t);
+                } else {
+                    List<FwqDeptStatistic> t = listMap.get(s.getPeriod_id() + "");
+                    t.add(s);
+                    listMap.put(s.getPeriod_id() + "", t);
+                }
+
+
+                //按部门统计
+                if (listMap1.get(s.getDept_id()) == null) {
+                    List<FwqDeptStatistic> t = new ArrayList<>();
+                    t.add(s);
+                    listMap1.put(s.getDept_id(), t);
+                } else {
+                    List<FwqDeptStatistic> t = listMap1.get(s.getDept_id());
+                    t.add(s);
+                    listMap1.put(s.getDept_id(), t);
+                }
+            }
+
+            //按月划分
+            for (CheckTaskPeriod p : checkTaskPeriods) {
+                if (p.getId() >= obj.getStartperiod_id() && p.getId() <= obj.getEndperiod_id()) {
+                    //符合要求的周期 计算得分
+                    for (Long tp : listMap1.keySet()
+                            ) {
+                        List<FwqDeptStatistic> deptStatistics1 = listMap1.get(tp);
+                        //该周期每一个部门
+                        //计算累计
+                        Integer s = 0;
+                        for (FwqDeptStatistic ss : deptStatistics1
+                                ) {
+                            if (ss.getPeriod_id() <= p.getId()) {
+                                s += ss.getIntegral();
+                            }
+                        }
+
+                        //赋值
+                        for (FwqDeptStatistic ss : deptStatistics1
+                                ) {
+                            if (ss.getPeriod_id().equals(p.getId())) {
+                                ss.setTotal_integral(s);
+                                ss.setDept_name(deptMap.get(ss.getDept_id()).getOrganname());
+                                ss.setTime(ff.format(p.getEndtime()));
+                            }
+                        }
+                    }
+
+                    //计算排名
+                    List<FwqDeptStatistic> deptStatistics1 = listMap.get(p.getId() + "");
+                    if (deptStatistics1 != null) {
+                        deptStatistics1.sort(new Comparator<FwqDeptStatistic>() {
+                            @Override
+                            public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                                return o1.getTotal_integral() > o2.getTotal_integral() ? -1 : 1;
+                            }
+                        });
+                        for (int j = 0; j < deptStatistics1.size(); j++) {
+                            FwqDeptStatistic statisticsBean = deptStatistics1.get(j);
+                            // 排名
+                            if (j == 0) {
+                                statisticsBean.setTotal_ranking(1);
+                            } else {
+                                FwqDeptStatistic bean = deptStatistics1.get(j - 1);
+                                if (statisticsBean.getTotal_integral().equals(bean.getTotal_integral())) {
+                                    statisticsBean.setTotal_ranking(bean.getTotal_ranking());
+                                } else {
+                                    statisticsBean.setTotal_ranking(j + 1);
+                                }
+                            }
+                        }
+                    }
+
+                }
+            }
+
+            //排序
+            for (String i : listMap.keySet()
+                    ) {
+                listMap.get(i).sort(new Comparator<FwqDeptStatistic>() {
+                    @Override
+                    public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                        return o1.getDept_id() > o2.getDept_id() ? 1 : -1;
+                    }
+                });
+            }
+            listMap.clear();
+            for (Long s : listMap1.keySet()
+                    ) {
+                List<FwqDeptStatistic> l = listMap1.get(s);
+                l.sort(new Comparator<FwqDeptStatistic>() {
+                    @Override
+                    public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                        return o1.getPeriod_id() > o2.getPeriod_id() ? 1 : -1;
+                    }
+                });
+                listMap.put(l.get(0).getDept_id() + "", l);
+            }
+
+            if (obj.getType() != null && obj.getType().equals(1)) {
+                //excel数据
+                for (CheckTaskPeriod p : checkTaskPeriods) {
+                    if (p.getId() >= obj.getStartperiod_id() && p.getId() <= obj.getEndperiod_id()) {
+                        //符合要求的周期 计算得分
+                        for (String i : listMap.keySet()
+                                ) {
+                            //单个部门的
+                            List<FwqDeptStatistic> l = listMap.get(i);
+                            FwqDeptStatistic temp = null;
+                            if (l.size() < 1) {
+                                continue;
+                            }
+                            boolean isin = false;
+                            for (FwqDeptStatistic s : l
+                                    ) {
+                                if (s.getPeriod_id().equals(p.getId())) {
+                                    isin = true;
+                                    temp = s;
+                                    break;
+                                }
+                            }
+                            //不在里面
+                            if (!isin) {
+                                FwqDeptStatistic s = l.get(0).clone();
+                                s.setScore((double) -1);
+                                s.setPeriod_id(p.getId());
+                                s.setIntegral(-1);
+                                s.setTotal_integral(-1);
+                                s.setTotal_ranking(-1);
+                                temp = s;
+                                l.add(s);
+                            }
+
+                            temp.setMString(ff1.format(p.getEndtime()));
+                            listMap.put(i, l);
+
+                        }
+                    }
+                }
+                //再次排序
+                for (String s : listMap.keySet()
+                        ) {
+                    List<FwqDeptStatistic> l = listMap.get(s);
+                    l.sort(new Comparator<FwqDeptStatistic>() {
+                        @Override
+                        public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                            return o1.getPeriod_id() > o2.getPeriod_id() ? 1 : -1;
+                        }
+                    });
+                    listMap.put(l.get(0).getDept_id() + "", l);
+                }
+            }
+        }
+
+
+        return listMap;
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getFeeStationCheckItemScore(FwqStatisticsBean obj) {
+
+        // 获得所有服务区数据
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<Long, FwqStatisticsBean> mapStationInfos = new HashMap<>();
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            // 30:连云港道管;31:盐城道管;32:南通道管
+            if ("30".equals(sta.getParentid())) {
+                obj2.setId(1);
+            } else if ("31".equals(sta.getParentid())) {
+                obj2.setId(2);
+            } else if ("32".equals(sta.getParentid())) {
+                obj2.setId(3);
+            }
+            mapStationInfos.put(Long.valueOf(sta.getDeptid()), obj2);
+        }
+
+        if (obj.getStart_date() != null && obj.getEnd_date() != null) {
+            CheckTaskPeriod p = commonService.getCheckTaskPeriod(obj.getStart_date().getTime()+1 * 1000 * 60 * 60, obj.getEnd_date().getTime()+1 * 1000 * 60 * 60);
+            if (p != null) {
+                obj.setPeriod_id(p.getId());
+            }
+        }
+
+        //服务区检查次数
+        List<FwqStatisticsBean> listCheckNum = fwqStatisticsDao.selectFeeStationCheckNum(obj);
+        for (FwqStatisticsBean sta : listCheckNum) {
+            if (mapStationInfos.containsKey(sta.getDept_id())) {
+                mapStationInfos.get(sta.getDept_id()).setChecked_num(sta.getChecked_num());
+//                mapStationInfos.get(sta.getDept_id()).setChecked_people_num(sta.getChecked_people_num());
+            }
+        }
+
+        List<FwqStatisticsBean> listCheckedScore = fwqStatisticsDao.selectFeeStationCheckedPersonScoreDetail(obj);
+
+        // 处理同一个服务区中,如果item的parent_id是一样的话,将这些数据结合在一起
+        for (FwqStatisticsBean sta : listCheckedScore) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+        }
+        for (int i = 0; i < listCheckedScore.size(); i++) {
+            for (int j = listCheckedScore.size() - 1; j > i; j--) {
+                if (listCheckedScore.get(j).getDept_id().equals(listCheckedScore.get(i).getDept_id()) && listCheckedScore.get(j).getItem_id().equals(listCheckedScore.get(i).getItem_id())) {
+                    listCheckedScore.get(i).setScore(listCheckedScore.get(i).getScore() + listCheckedScore.get(j).getScore());
+                    listCheckedScore.remove(j);
+                }
+            }
+        }
+
+        for (FwqStatisticsBean sta : listCheckedScore) {
+            if (mapStationInfos.containsKey(sta.getDept_id())) {
+                FwqStatisticsBean statis = mapStationInfos.get(sta.getDept_id());
+                statis.setAll_check_score(statis.getAll_check_score() + sta.getScore());
+                // 组装扣分类型内容
+                if (itemMap.get(sta.getCheck_item_id().longValue()).getParent_id() != null) {
+                    sta.setId(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+                    if (itemMap.get(sta.getCheck_item_id().longValue()).getScore() == null) {
+                        sta.setName(itemMap.get(sta.getCheck_item_id().longValue()).getName());
+                    } else {
+                        sta.setName(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+                    }
+                }
+                statis.getChecked_socre_name().add(sta.getName());
+                statis.getChecked_score().add(sta.getScore());
+                statis.getChecked_score_ids().add(sta.getId());
+            }
+        }
+
+        List<FwqStatisticsBean> sortList = new ArrayList<>(mapStationInfos.values());
+
+        sortList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                if (o1.getId() > o2.getId()) {
+                    return 1;
+                } else if (o1.getId().equals(o2.getId())) {
+                    if (o1.getChecked_num() != 0 && o2.getChecked_num() != 0) {
+                        if (o1.getAll_check_score() / (o1.getChecked_num() + 0.0) > o2.getAll_check_score()
+                                / (o2.getChecked_num() + 0.0)) {
+                            return 1;
+                        } else if (o1.getAll_check_score() / (o1.getChecked_num() + 0.0) < o2.getAll_check_score()
+                                / (o2.getChecked_num() + 0.0)) {
+                            return -1;
+                        } else {
+                            return 0;
+                        }
+                    } else {
+                        if (o1.getChecked_num() == 0) {
+                            return -1;
+                        } else if (o2.getChecked_num() == 0) {
+                            return 1;
+                        } else {
+                            return 0;
+                        }
+                    }
+                } else {
+                    return -1;
+                }
+            }
+        });
+
+        return sortList;
+
+    }
+
+    @Override
+    public FwqRankingData getEmployeeRankingData(FwqStatisticsBean obj) {
+        FwqRankingData data = new FwqRankingData();
+
+        CheckTaskPeriod lastTaskPeriod = commonService.getCheckTaskPeriod(obj.getStart_date().getTime()+1 * 1000 * 60 * 60, obj.getEnd_date().getTime()+1 * 1000 * 60 * 60);
+        if (lastTaskPeriod != null) {
+            FwqStatisticsBean temp = new FwqStatisticsBean();
+            temp.setStart_date(new Date(lastTaskPeriod.getStarttime().getTime() - 1 * 1000 * 60 * 60));
+            temp.setEnd_date(new Date(lastTaskPeriod.getEndtime().getTime() - 1 * 1000 * 60 * 60));
+            List<FwqStatisticsBo> list = getEmployeeCheckedInfo(temp);
+            if (list == null || list.size() < 1) {
+                return data;
+            }
+            for (FwqStatisticsBo b : list) {
+                if (b.getDept_id().intValue() == obj.getDept_id().intValue()) {
+                    data.setLastP(b);
+                    break;
+                }
+            }
+        }
+        List<FwqStatisticsBo> list = getEmployeeCheckedInfo(obj);
+        if (list == null || list.size() < 1) {
+            return data;
+        }
+        for (FwqStatisticsBo b : list) {
+            if (b.getDept_id().intValue() == obj.getDept_id().intValue()) {
+                data.setCurrentP(b);
+                break;
+            }
+        }
+
+        return data;
+    }
+
+    @Override
+    public Object getOneCheckedDetailInfo(Integer page, Integer size, FwqStatisticsBean obj) {
+        if (!(page.equals(0) && size.equals(0))) {
+            PageHelper.startPage(page, size);
+        }
+        List<FwqStatisticsBean> list = fwqStatisticsDao.selectOneCheckedDetailInfo(obj);
+        Map<Long, Item> itemMap = commonService.getItemMap();
+
+        for (FwqStatisticsBean sta : list) {
+            // 组装扣分类型内容
+            if (sta.getCheck_item_id() != null) {
+                if (itemMap.get(sta.getCheck_item_id().longValue()) != null) {
+                    sta.setName(itemMap.get(sta.getCheck_item_id().longValue()).getName());
+                    if (itemMap.get(sta.getCheck_item_id().longValue()).getParent_id() != null) {
+                        if (itemMap.get(sta.getCheck_item_id().longValue()).getScore() == null) {
+                            sta.setParent_name(itemMap.get(sta.getCheck_item_id().longValue()).getName());
+                        } else {
+                            sta.setParent_name(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+                        }
+                    }
+                }
+            }
+        }
+
+        if (obj.getQueryType() == 0) {
+            for (FwqStatisticsBean sta : list) {
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                SimpleDateFormat formatter2 = new SimpleDateFormat("- HH:mm");
+                sta.setCheck_task_time_name(
+                        formatter.format(sta.getStart_date()) + formatter2.format(sta.getEnd_date()));
+//                if (sta.getDept_id() != null && obj.getDept_id() != null) {
+//                    sta.setChecked_name(CacheUtil.getUserFromMap(sta.getUser_id()).getTruename()
+//                            + (obj.getUser_id().intValue() == sta.getUser_id().intValue() ? "" : "(组员)"));
+//
+//                }
+            }
+        } /*else if (obj.getQueryType() == 1) {
+            for (FwqStatisticsBean sta : list) {
+                sta.setCheckman_name(CacheUtil.getUserFromMap(sta.getCheckman_id() + 0L).getTruename());
+                sta.setChecked_name(CacheUtil.getUserFromMap(sta.getUser_id() + 0L).getTruename());
+                sta.setFeeStationName(CacheUtil.getOrganFromMap(sta.getDept_id()).getOrganname());
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                SimpleDateFormat formatter2 = new SimpleDateFormat("- HH:mm");
+                sta.setCheck_task_time_name(
+                        formatter.format(sta.getStart_date()) + formatter2.format(sta.getEnd_date()));
+
+                if (sta.getUser_id() != null && obj.getUser_id() != null && obj.getQueryType() != null
+                        && obj.getQueryType().intValue() == 0) {
+                    sta.setChecked_name(CacheUtil.getUserFromMap(sta.getUser_id()).getTruename()
+                            + (obj.getUser_id().intValue() == sta.getUser_id().intValue() ? "" : "(组员)"));
+
+                }
+            }
+        }*/
+
+        if (!(page.equals(0) && size.equals(0))) {
+            return new PageInfo<FwqStatisticsBean>(list);
+        }
+        return list;
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getOneSACheckedInfo(FwqStatisticsBean obj) {
+        return fwqStatisticsDao.selectOneCheckedInfoData(obj);
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getOneCheckedItemInfo(FwqStatisticsBean obj) {
+        List<FwqStatisticsBean> listCheckedScore = fwqStatisticsDao.selectOneCheckedItemInfo(obj);
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        // 处理同一个服务区中,如果item的parent_id是一样的话,将这些数据结合在一起
+        for (FwqStatisticsBean sta : listCheckedScore) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+            if (itemMap.get(sta.getCheck_item_id().longValue()).getScore() == null) {
+                sta.setName(itemMap.get(sta.getCheck_item_id().longValue()).getName());
+            } else {
+                sta.setName(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+            }
+        }
+        for (int i = 0; i < listCheckedScore.size(); i++) {
+            for (int j = listCheckedScore.size() - 1; j > i; j--) {
+                if (listCheckedScore.get(j).getDept_id().equals(listCheckedScore.get(i).getDept_id()) && listCheckedScore.get(j).getItem_id().equals(listCheckedScore.get(i).getItem_id())) {
+                    listCheckedScore.get(i).setAll_check_score(listCheckedScore.get(i).getAll_check_score() + listCheckedScore.get(j).getAll_check_score());
+                    listCheckedScore.remove(j);
+                }
+            }
+        }
+        return listCheckedScore;
+    }
+
+    @Override
+    public List<FwqStatisticsBo> getEmployeeCheckedInfo(FwqStatisticsBean obj) {
+
+        // 将检索出来的数据放到如map中
+        List<FwqStatisticsBean> list = fwqStatisticsDao.selectStatistics(obj);
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        // 将list中的数据找到项目的父项目,然后去除重复的
+        for (FwqStatisticsBean sta : list) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+        }
+        for (int i = 0; i < list.size(); i++) {
+            for (int j = list.size() - 1; j > i; j--) {
+                if (list.get(j).getDept_id().equals(list.get(i).getDept_id()) && list.get(j).getItem_id().equals(list.get(i).getItem_id())) {
+                    list.get(i).setScore(list.get(i).getScore() + list.get(j).getScore());
+                    list.remove(j);
+                }
+            }
+        }
+
+        // 查询服务区受检次数
+        List<FwqStatisticsBean> timesList = fwqStatisticsDao.selectCheckedTimes(obj);
+
+        Map<Long, FwqStatisticsBo> statisticBoMap = new HashMap<>();
+
+        // 获得所有服务区数据,将服务区数据保存在map中
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        for (FeeStation sta : saList) {
+            FwqStatisticsBo obj2 = new FwqStatisticsBo();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            // 30:连云港道管;31:盐城道管;32:南通道管
+            if ("30".equals(sta.getParentid())) {
+                obj2.setId(1);
+            } else if ("31".equals(sta.getParentid())) {
+                obj2.setId(2);
+            } else if ("32".equals(sta.getParentid())) {
+                obj2.setId(3);
+            }
+            statisticBoMap.put(Long.valueOf(sta.getDeptid()), obj2);
+        }
+
+        for (FwqStatisticsBean statisticsBean : list) {
+            if (statisticBoMap.containsKey(statisticsBean.getDept_id())) {
+                FwqStatisticsBo tmp = statisticBoMap.get(statisticsBean.getDept_id());
+                // 组装扣分类型内容
+                if (itemMap.get(statisticsBean.getCheck_item_id().longValue()).getParent_id() != null) {
+                    statisticsBean.setId(itemMap.get(statisticsBean.getCheck_item_id().longValue()).getParent_id().intValue());
+                    if (itemMap.get(statisticsBean.getCheck_item_id().longValue()).getScore() == null) {
+                        statisticsBean.setName(itemMap.get(statisticsBean.getCheck_item_id().longValue()).getName());
+                    } else {
+                        statisticsBean.setName(itemMap.get(itemMap.get(statisticsBean.getCheck_item_id().longValue()).getParent_id()).getName());
+                    }
+                }
+                tmp.getChecked_socre_name().add(statisticsBean.getName());
+                tmp.getChecked_score().add(statisticsBean.getScore());
+                tmp.setCheck_all_score(tmp.getCheck_all_score() + statisticsBean.getScore());
+            }
+        }
+
+        for (FwqStatisticsBean statisticsBean : timesList) {
+            if (statisticBoMap.containsKey(statisticsBean.getDept_id())) {
+                FwqStatisticsBo tmp = statisticBoMap.get(statisticsBean.getDept_id());
+                tmp.setChecked_num(statisticsBean.getChecked_num());
+            }
+        }
+
+        List<FwqStatisticsBo> lists = new ArrayList<>(statisticBoMap.values());
+        // 进行排序
+        lists.sort(new Comparator<FwqStatisticsBo>() {
+            @Override
+            public int compare(FwqStatisticsBo o1, FwqStatisticsBo o2) {
+                return o1.compareTo(o2);
+            }
+        });
+        // 道管Map
+        // 排名
+//        Map<String, Integer> center_ranking = new HashMap<>();
+        // 留last
+//        Map<String, FwqStatisticsBo> center_ranking2 = new HashMap<>();
+//        center_ranking.put("30", 1);
+//        center_ranking.put("31", 1);
+//        center_ranking.put("32", 1);
+//
+//        center_ranking2.put("30", null);
+//        center_ranking2.put("31", null);
+//        center_ranking2.put("32", null);
+
+//        Map<String, Integer> service_area_ranking = new HashMap<>();
+//        Map<String, FwqStatisticsBo> service_area_ranking2 = new HashMap<>();
+        // 这边需要对道管和服务区进行排名
+//        for (FeeStation fee : saList) {
+//            service_area_ranking.put(fee.getDeptid(), 1);
+//            service_area_ranking2.put(fee.getDeptid(), null);
+//        }
+
+        for (int i = 0; i < lists.size(); i++) {
+
+            FwqStatisticsBo statisticsBo = lists.get(i);
+            if (statisticsBo.getChecked_num() + statisticsBo.getChecked_m_num() == 0) {
+                continue;
+            }
+            // 计算平均扣分
+            DecimalFormat df = new DecimalFormat(".##");
+            double count = statisticsBo.getChecked_num() + statisticsBo.getChecked_m_num();
+            Double sc = (statisticsBo.getCheck_all_score() + statisticsBo.getCheck_all_m_score()) * 1.00
+                    / (count == 0 ? 1 : count);
+            statisticsBo.setCheck_score_avg(sc == 0 ? "0" : df.format(sc));
+
+            // 累计道管排名
+            // 获取道管id
+//            String centerId = deptMap.get(statisticsBo.getDept_id()).getParentid().toString();
+//
+//            if (center_ranking2.get(centerId) == null) {
+//                statisticsBo.setCenter_ranking(center_ranking.get(centerId));
+//            } else {
+//                center_ranking.put(centerId, center_ranking.get(centerId) + 1);
+//                if (statisticsBo.compareTo(center_ranking2.get(centerId)) == 0) {
+//                    statisticsBo.setCenter_ranking(center_ranking2.get(centerId).getCenter_ranking());
+//                } else {
+//                    statisticsBo.setCenter_ranking(center_ranking.get(centerId));
+//                }
+//            }
+//            center_ranking2.put(centerId, statisticsBo);
+
+            // 累计服务区的排名
+//            String serviceAreaId = statisticsBo.getDept_id().toString();
+
+//            if (service_area_ranking2.get(serviceAreaId) == null) {
+//                statisticsBo.setService_area_ranking(service_area_ranking.get(serviceAreaId));
+//            } else {
+//                service_area_ranking.put(serviceAreaId, service_area_ranking.get(serviceAreaId) + 1);
+//                if (statisticsBo.compareTo(service_area_ranking2.get(serviceAreaId)) == 0) {
+//                    statisticsBo.setService_area_ranking(service_area_ranking2.get(serviceAreaId).getService_area_ranking());
+//                } else {
+//                    statisticsBo.setService_area_ranking(service_area_ranking.get(serviceAreaId));
+//                }
+//            }
+//            service_area_ranking2.put(serviceAreaId, statisticsBo);
+
+            // 公司排名s
+            if (i == 0) {
+                statisticsBo.setCompany_ranking(1);
+            } else {
+                FwqStatisticsBo lastbo = lists.get(i - 1);
+                if (statisticsBo.compareTo(lastbo) == 0) {
+                    statisticsBo.setCompany_ranking(lastbo.getCompany_ranking());
+                } else {
+                    statisticsBo.setCompany_ranking(i + 1);
+                }
+            }
+        }
+
+        return lists;
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getYearScoreChange(FwqStatisticsBean obj) {
+        List<FwqStatisticsBean> list = fwqStatisticsDao.selectYearScoreInfo(obj);
+        return list;
+
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getFeeStationCheckedScore(FwqStatisticsBean obj) {
+
+        Map<Long, FwqStatisticsBean> mapStationInfos = new HashMap<>();
+        // 获得所有服务区数据,将服务区数据保存在map中
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            // 30:连云港道管;31:盐城道管;32:南通道管
+            if ("30".equals(sta.getParentid())) {
+                obj2.setId(1);
+            } else if ("31".equals(sta.getParentid())) {
+                obj2.setId(2);
+            } else if ("32".equals(sta.getParentid())) {
+                obj2.setId(3);
+            }
+            mapStationInfos.put(Long.valueOf(sta.getDeptid()), obj2);
+        }
+
+        if (obj.getStart_date() != null && obj.getEnd_date() != null) {
+            CheckTaskPeriod p = commonService.getCheckTaskPeriod(obj.getStart_date().getTime()+1 * 1000 * 60 * 60, obj.getEnd_date().getTime()+1 * 1000 * 60 * 60);
+            if (p != null) {
+                obj.setPeriod_id(p.getId());
+            }
+        }
+
+        // 检查次数
+        List<FwqStatisticsBean> listCheckNum = fwqStatisticsDao.selectFeeStationCheckNum(obj);
+        for (FwqStatisticsBean sta : listCheckNum) {
+            if (mapStationInfos.containsKey(sta.getDept_id())) {
+                mapStationInfos.get(sta.getDept_id()).setChecked_num(sta.getChecked_num());
+            }
+        }
+
+        List<FwqStatisticsBo> list = getEmployeeCheckedInfo(obj);
+        Map<Integer, FwqStatisticsBo> listmap = new HashMap<>();
+        for (FwqStatisticsBo b : list) {
+            listmap.put(b.getDept_id().intValue(), b);
+        }
+
+        List<FwqStatisticsBean> listCheckedScore = fwqStatisticsDao.selectFeeStationCheckedScore(obj);
+        for (FwqStatisticsBean sta : listCheckedScore) {
+            if (mapStationInfos.containsKey(sta.getDept_id())) {
+
+                FwqStatisticsBean statis = mapStationInfos.get(sta.getDept_id());
+                statis.setAll_check_score(statis.getAll_check_score() + sta.getScore());
+
+                FwqStatisticsBo b = listmap.get(sta.getDept_id().intValue());
+
+                if (b == null || b.getCheck_score_avg() == null) {
+                    continue;
+                }
+                double sc = Double.parseDouble(b.getCheck_score_avg());
+                if (sc == 0) {
+                    statis.setScore(statis.getScore() + 1);
+                } else if (sc <= 15) {
+                    statis.setScore_fifteen(statis.getScore_fifteen() + 1);
+                } else if (sc <= 50) {
+                    statis.setScore_fifty(statis.getScore_fifty() + 1);
+                } else {
+                    statis.setScore_over_fifty(statis.getScore_over_fifty() + 1);
+                }
+            }
+        }
+
+        List<FwqStatisticsBean> sortList = new ArrayList<>(mapStationInfos.values());
+
+        sortList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                if (o1.getId() > o2.getId()) {
+                    return 1;
+                } else if (o1.getId().equals(o2.getId())) {
+                    if (o1.getChecked_num() != 0 && o2.getChecked_num() != 0) {
+                        if (o1.getAll_check_score() / (o1.getChecked_num() + 0.0) > o2.getAll_check_score()
+                                / (o2.getChecked_num() + 0.0)) {
+                            return 1;
+                        } else if (o1.getAll_check_score() / (o1.getChecked_num() + 0.0) < o2.getAll_check_score()
+                                / (o2.getChecked_num() + 0.0)) {
+                            return -1;
+                        } else {
+                            return 0;
+                        }
+                    } else {
+                        if (o1.getChecked_num() == 0) {
+                            return -1;
+                        } else if (o2.getChecked_num() == 0) {
+                            return 1;
+                        } else {
+                            return 0;
+                        }
+                    }
+                } else {
+                    return -1;
+                }
+            }
+        });
+
+        return sortList;
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getCenterManageScoreInfo(FwqStatisticsBean obj) {
+        // 道管中心
+        List<FwqStatisticsBean> centerManageList = new ArrayList<>();
+        for (int i = 0; i < 3; i++) {
+            FwqStatisticsBean e = new FwqStatisticsBean();
+            centerManageList.add(e);
+        }
+
+        List<FwqStatisticsBean> scoreList = reFeeStationScoreInfo(obj);
+        Map<Long, FwqStatisticsBean> centerManageMap = new HashMap<>();
+        for (FwqStatisticsBean sta : scoreList) {
+            if (!centerManageMap.containsKey(sta.getDept_id())) {
+                centerManageMap.put(sta.getDept_id(), sta);
+            }
+        }
+
+        // 获取所有的服务区
+        List<FwqStatisticsBean> lists = new ArrayList<>();
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            obj2.setParent_dept_id(Long.valueOf(sta.getParentid()));
+            lists.add(obj2);
+        }
+
+        for (FwqStatisticsBean sta : lists) {
+            if (sta.getParent_dept_id() == 30) {
+                centerManageList.get(0).setAll_check_score(centerManageList.get(0).getAll_check_score()
+                        + centerManageMap.get(sta.getDept_id()).getAll_check_score());
+                centerManageList.get(0).setChecked_num(centerManageList.get(0).getChecked_num()
+                        + centerManageMap.get(sta.getDept_id()).getChecked_num());
+                centerManageList.get(0).setFeeStationName("连云港");
+            } else if (sta.getParent_dept_id() == 31) {
+                centerManageList.get(1).setAll_check_score(centerManageList.get(1).getAll_check_score()
+                        + centerManageMap.get(sta.getDept_id()).getAll_check_score());
+                centerManageList.get(1).setChecked_num(centerManageList.get(1).getChecked_num()
+                        + centerManageMap.get(sta.getDept_id()).getChecked_num());
+                centerManageList.get(1).setFeeStationName("盐城");
+            } else if (sta.getParent_dept_id() == 32) {
+                centerManageList.get(2).setAll_check_score(centerManageList.get(2).getAll_check_score()
+                        + centerManageMap.get(sta.getDept_id()).getAll_check_score());
+                centerManageList.get(2).setChecked_num(centerManageList.get(2).getChecked_num()
+                        + centerManageMap.get(sta.getDept_id()).getChecked_num());
+                centerManageList.get(2).setFeeStationName("南通");
+            }
+        }
+
+        // 进行排序
+        centerManageList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                return o1.compareTo(o2);
+            }
+        });
+
+        return centerManageList;
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getFeeStationScoreInfo(FwqStatisticsBean obj) {
+        List<FwqStatisticsBean> scoreList = reFeeStationScoreInfo(obj);
+
+        scoreList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                return o1.compareTo(o2);
+            }
+        });
+
+        return scoreList;
+    }
+
+    @Override
+    public List<FwqStatisticsBean> getCheckedItemScoreInfo(FwqStatisticsBean obj) {
+        List<FwqStatisticsBean> list = fwqStatisticsDao.selectCheckedItemScoreInfo(obj);
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        for (FwqStatisticsBean sta : list) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+            sta.setName(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+            sta.setParent_dept_id(deptMap.get(sta.getDept_id()).getParentid().longValue());
+        }
+        for (int i = 0; i < list.size(); i++) {
+            for (int j = list.size() - 1; j > i; j--) {
+                if (list.get(j).getDept_id().equals(list.get(i).getDept_id()) && list.get(j).getItem_id().equals(list.get(i).getItem_id())) {
+                    list.get(i).setAll_check_score(list.get(i).getAll_check_score() + list.get(j).getAll_check_score());
+                    list.get(i).setChecked_num(list.get(i).getChecked_num() + list.get(j).getChecked_num());
+                    list.remove(j);
+                }
+            }
+        }
+
+        return list;
+    }
+
+    @Override
+    public Map<String, List<FwqStatisticsBean>> get2CheckedItemScoreInfo(FwqStatisticsBean obj) {
+
+        Map<String, List<FwqStatisticsBean>> map = new HashMap<>();
+        List<FwqStatisticsBean> objList = fwqStatisticsDao.selectCheckedItemScoreInfo(obj);
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        for (FwqStatisticsBean sta : objList) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+            sta.setName(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+            sta.setFeeStationName(deptMap.get(sta.getDept_id()).getOrganname());
+            sta.setPfeeStationName(deptMap.get(deptMap.get(sta.getDept_id()).getParentid().longValue()).getOrganname());
+            sta.setParent_dept_id(deptMap.get(sta.getDept_id()).getParentid().longValue());
+        }
+        for (int i = 0; i < objList.size(); i++) {
+            for (int j = objList.size() - 1; j > i; j--) {
+                if (objList.get(j).getDept_id().equals(objList.get(i).getDept_id()) && objList.get(j).getItem_id().equals(objList.get(i).getItem_id())) {
+                    objList.get(i).setAll_check_score(objList.get(i).getAll_check_score() + objList.get(j).getAll_check_score());
+                    objList.get(i).setChecked_num(objList.get(i).getChecked_num() + objList.get(j).getChecked_num());
+                    objList.remove(j);
+                }
+            }
+        }
+
+        map.put("Tmth", objList);
+        obj.setMth(obj.getPrev_mth());
+        objList = fwqStatisticsDao.selectCheckedItemScoreInfo(obj);
+
+        for (FwqStatisticsBean sta : objList) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+            sta.setName(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+            sta.setFeeStationName(deptMap.get(sta.getDept_id()).getOrganname());
+            sta.setPfeeStationName(deptMap.get(deptMap.get(sta.getDept_id()).getParentid().longValue()).getOrganname());
+            sta.setParent_dept_id(deptMap.get(sta.getDept_id()).getParentid().longValue());
+        }
+        for (int i = 0; i < objList.size(); i++) {
+            for (int j = objList.size() - 1; j > i; j--) {
+                if (objList.get(j).getDept_id().equals(objList.get(i).getDept_id()) && objList.get(j).getItem_id().equals(objList.get(i).getItem_id())) {
+                    objList.get(i).setAll_check_score(objList.get(i).getAll_check_score() + objList.get(j).getAll_check_score());
+                    objList.get(i).setChecked_num(objList.get(i).getChecked_num() + objList.get(j).getChecked_num());
+                    objList.remove(j);
+                }
+            }
+        }
+
+        map.put("Pmth", objList);
+
+        return map;
+    }
+
+    @Override
+    public List<FwqStatisiticPojo> getFwqStatistic(ServiceAreaStatistic obj) {
+
+        List<CheckTaskPeriod> checkTaskPeriods = commonService.getAllCheckTaskPeriod();
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+
+        for (CheckTaskPeriod p : checkTaskPeriods) {
+            if (obj.getStart_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
+                obj.setStartperiod_id(p.getId());
+            }
+            if (obj.getEnd_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
+                obj.setEndperiod_id(p.getId());
+            }
+        }
+        if (obj.getStart_date() > (checkTaskPeriods.get(checkTaskPeriods.size() - 1).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            return new ArrayList<>();
+        }
+        if (obj.getEnd_date() < (checkTaskPeriods.get(0).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            return new ArrayList<>();
+        }
+        if (obj.getStart_date() < (checkTaskPeriods.get(0).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            obj.setStartperiod_id(checkTaskPeriods.get(0).getId());
+        }
+        if (obj.getEnd_date() > (checkTaskPeriods.get(checkTaskPeriods.size() - 1).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            obj.setEndperiod_id(checkTaskPeriods.get(checkTaskPeriods.size() - 1).getId());
+        }
+
+        List<CheckTaskPeriod> temp_p = new ArrayList<>();
+        for (CheckTaskPeriod p : checkTaskPeriods) {
+            if (p.getId() >= obj.getStartperiod_id() && p.getId() <= obj.getEndperiod_id()) {
+                temp_p.add(p);
+            }
+        }
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM");
+        //获取满足条件的服务区
+        List<ServiceAreaStatistic> fwqStatistics = fwqStatisticsDao.selectlimituser(obj);
+
+        HashMap<Integer, List<ServiceAreaStatistic>> usm = new HashMap<>();
+
+        for (ServiceAreaStatistic c : fwqStatistics
+                ) {
+            List<ServiceAreaStatistic> s = usm.get(c.getDept_id());
+            if (s == null) {
+                s = new ArrayList<>();
+            }
+            s.add(c);
+            usm.put(c.getDept_id(), s);
+            for (CheckTaskPeriod p : checkTaskPeriods) {
+                if (c.getPeriod_id().equals(p.getId())) {
+                    c.setP_str(simpleDateFormat.format(p.getEndtime()));
+                }
+            }
+        }
+
+        List<FwqStatisiticPojo> fwq_ids = new ArrayList<>();
+
+        //判断是否连续
+        for (Integer k : usm.keySet()) {
+            List<ServiceAreaStatistic> user_temp = new ArrayList<>();
+            boolean isM = false;
+
+            List<ServiceAreaStatistic> pp = new ArrayList<>();
+            //获取得分
+            List<ServiceAreaStatistic> ll = usm.get(k);
+            int count = 0;
+            for (CheckTaskPeriod p : temp_p) {
+                boolean isfond = false;
+                for (ServiceAreaStatistic s : ll) {
+                    if (s.getPeriod_id().equals(p.getId())) {
+                        isfond = true;
+                        pp.add(s);
+                        break;
+                    }
+                }
+                if (isfond) {
+                    count++;
+                    if (count >= obj.getLimitnumber()) {
+                        isM = true;
+                        user_temp.addAll(pp);
+                        pp.clear();
+                    }
+                } else {
+                    if (count >= obj.getLimitnumber()) {
+                        isM = true;
+                        user_temp.addAll(pp);
+                    }
+                    count = 0;
+                    pp.clear();
+                }
+            }
+
+            if (isM) {
+                FwqStatisiticPojo p = new FwqStatisiticPojo();
+                p.setDept_id(k.longValue());
+                p.setDept(deptMap.get(k.longValue()).getOrganname());
+                p.setFwqStatistics(user_temp);
+                fwq_ids.add(p);
+            }
+        }
+
+        return fwq_ids;
+    }
+
+    private List<FwqStatisticsBean> reFeeStationScoreInfo(FwqStatisticsBean obj) {
+        List<FwqStatisticsBean> scoreList = fwqStatisticsDao.selectFeeStationScoreInfo(obj);
+        Map<Long, FwqStatisticsBean> feeStationMap = new HashMap<>();
+
+        for (FwqStatisticsBean feeObj : scoreList) {
+            if (!feeStationMap.containsKey(feeObj.getDept_id())) {
+                feeStationMap.put(feeObj.getDept_id(), feeObj);
+            }
+        }
+        // 需要补充的
+        List<FwqStatisticsBean> reList = new ArrayList<>();
+
+        // 获取所有的服务区
+        List<FwqStatisticsBean> feeStationList = new ArrayList<>();
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            feeStationList.add(obj2);
+        }
+        for (FwqStatisticsBean sta : feeStationList) {
+            if (feeStationMap.containsKey(sta.getDept_id())) {
+                feeStationMap.get(sta.getDept_id()).setFeeStationName(sta.getName());
+            } else {
+                sta.setAll_check_score(0);
+                sta.setChecked_num(0);
+                sta.setFeeStationName(sta.getName());
+                reList.add(sta);
+            }
+        }
+        scoreList.addAll(reList);
+        return scoreList;
+    }
+}

+ 644 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/StatisticsService_FImpl.java

@@ -0,0 +1,644 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.xintong.visualinspection.bean.CheckTaskPeriod;
+import com.xintong.visualinspection.bean.FeeStation;
+import com.xintong.visualinspection.bean.FwqDeptStatistic;
+import com.xintong.visualinspection.bean.FwqStatisticsBean;
+import com.xintong.visualinspection.bean.Item;
+import com.xintong.visualinspection.bean.Organ;
+import com.xintong.visualinspection.service.CommonService;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckDeptStatisticsDao;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqStatisticsDao;
+import com.xintong.visualinspection.visuallnspection_qzd.service.StatisticsService_F;
+import org.jxls.common.Context;
+import org.jxls.util.JxlsHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 文件名:StatisticsService_FImpl
+ * 版本信息:日期:2017/4/7 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ *
+ * @author wenhongquan
+ * @date 2018/05/02
+ */
+
+@Service
+public class StatisticsService_FImpl implements StatisticsService_F {
+
+    private static final Logger logger = LoggerFactory.getLogger(StatisticsService_FImpl.class);
+
+    @Autowired
+    private FwqStatisticsDao fwqStatisticsDao;
+    @Autowired
+    private FwqCheckDeptStatisticsDao fwqCheckDeptStatisticsDao;
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+
+    public List<FwqStatisticsBean> getOperationInfo(FwqStatisticsBean obj) {
+
+        // 获得所有服务区数据
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        Map<Long, FwqStatisticsBean> mapStationInfos = new HashMap<>();
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            mapStationInfos.put(Long.valueOf(sta.getDeptid()), obj2);
+        }
+
+        // 获取公司检查的某个收费站的受检次数和扣分合计
+        List<FwqStatisticsBean> company_beans =  getFeeStationCheckItemScore(obj);
+        // 获取第三方暗访稽查的某个服务区的受检次数和扣分合计
+        obj.setCheck_type(8);
+        List<FwqStatisticsBean> third_beans = fwqStatisticsDao.getselectFeeStationOperationScoreDetail(obj);
+        // 获取现场稽查的某个服务区的受检次数和扣分合计
+        obj.setCheck_type(9);
+        List<FwqStatisticsBean> onsite_beans = fwqStatisticsDao.getselectFeeStationOperationScoreDetail(obj);
+
+        for (FwqStatisticsBean company_bean : company_beans) {
+            mapStationInfos.get(company_bean.getDept_id()).setCompany_check_num(company_bean.getChecked_num());
+            mapStationInfos.get(company_bean.getDept_id()).setCompany_total_score(company_bean.getAll_check_score());
+        }
+        for (FwqStatisticsBean third_bean : third_beans) {
+            mapStationInfos.get(third_bean.getDept_id()).setThird_check_num(third_bean.getChecked_num() > 1 ? 1 : third_bean.getChecked_num());
+            mapStationInfos.get(third_bean.getDept_id()).setThird_total_score(third_bean.getCheck_total_score());
+        }
+
+        for (FwqStatisticsBean onsite_bean : onsite_beans) {
+            mapStationInfos.get(onsite_bean.getDept_id()).setOnsite_check_num(onsite_bean.getChecked_num() > 1 ? 1 : onsite_bean.getChecked_num());
+            mapStationInfos.get(onsite_bean.getDept_id()).setOnsite_total_score(onsite_bean.getCheck_total_score());
+        }
+        // 计算出每个收费站的总平均扣分和平均得分
+        Set<Map.Entry<Long, FwqStatisticsBean>> stationInfos = mapStationInfos.entrySet();
+        // 保留二位小数
+        DecimalFormat df = new DecimalFormat("0.00");
+        for (Map.Entry<Long, FwqStatisticsBean> station : stationInfos) {
+            float avg = 0;
+            FwqStatisticsBean value = station.getValue();
+            value.setThird_check_num(1);
+            value.setOnsite_check_num(1);
+            // 设置总平均扣分
+            if (value.getCompany_check_num() > 0 || value.getThird_check_num() > 0) {
+                avg += (value.getCompany_total_score() + value.getThird_total_score()) / 2.0 / (value.getCompany_check_num() + value.getThird_check_num());
+            }
+            if (value.getOnsite_check_num() > 0) {
+                avg += value.getOnsite_total_score() / 2.0 / value.getOnsite_check_num();
+            }
+            value.setCheck_total_avg(df.format(avg));
+            // 设置平均得分
+            Float score_avg = (1000 - Float.valueOf(df.format(avg)));
+            value.setScore_avg(score_avg.toString());
+        }
+        List<FwqStatisticsBean> sortList = new ArrayList<>(mapStationInfos.values());
+        sortList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                return o1.compare3To(o2);
+            }
+        });
+
+        List<FwqStatisticsBean> temp = new ArrayList<>();
+        temp.addAll(sortList);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        for (FwqStatisticsBean aSortList : sortList) {
+            if (deptMap.get(aSortList.getDept_id()) != null) {
+                if (deptMap.get(aSortList.getDept_id()).getCreattime().getTime() > obj.getEnd_date().getTime()) {
+                    temp.remove(aSortList);
+                }
+            }
+
+        }
+        sortList = temp;
+
+        for (int j = 0; j < sortList.size(); j++) {
+            FwqStatisticsBean statisticsBean = sortList.get(j);
+            // 公司排名
+            if (j == 0) {
+                statisticsBean.setCompany_ranking2(1);
+            } else {
+                FwqStatisticsBean bean = sortList.get(j - 1);
+                if (statisticsBean.compare3To(bean) == 0) {
+                    statisticsBean.setCompany_ranking2(bean.getCompany_ranking2());
+                } else {
+                    statisticsBean.setCompany_ranking2(j + 1);
+                }
+            }
+        }
+
+        return sortList;
+    }
+
+    @Override
+    public void getOperationInfo(FwqStatisticsBean obj, HttpServletRequest req, HttpServletResponse resp) {
+        List<FwqStatisticsBean> lists = getOperationInfo(obj);
+        Map<String, Object> map = new HashMap<>(1);
+        map.put("list", lists);
+        exportExcel("运营管理综合检查情况统计表", "fwq_operation_info", map, resp);
+    }
+
+    public Map<String, List<FwqDeptStatistic>> getDeptStatistic(FwqDeptStatistic obj) {
+
+        List<CheckTaskPeriod> checkTaskPeriods = commonService.getAllCheckTaskPeriod();
+        SimpleDateFormat ff = new SimpleDateFormat("yyyy-MM");
+        SimpleDateFormat ff1 = new SimpleDateFormat("MM月");
+
+        for (CheckTaskPeriod p : checkTaskPeriods) {
+            if (obj.getStart_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
+                obj.setStartperiod_id(p.getId());
+            }
+            if (obj.getEnd_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
+                obj.setEndperiod_id(p.getId());
+            }
+        }
+        if (obj.getStart_date() > (checkTaskPeriods.get(checkTaskPeriods.size() - 1).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            return null;
+        }
+        if (obj.getEnd_date() < (checkTaskPeriods.get(0).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            return null;
+        }
+        if (obj.getStart_date() < (checkTaskPeriods.get(0).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            obj.setStartperiod_id(checkTaskPeriods.get(0).getId());
+        }
+        if (obj.getEnd_date() > (checkTaskPeriods.get(checkTaskPeriods.size() - 1).getEndtime().getTime() - 1 * 1000 * 60 * 60)) {
+            obj.setEndperiod_id(checkTaskPeriods.get(checkTaskPeriods.size() - 1).getId());
+        }
+
+        List<FwqDeptStatistic> deptStatistics = fwqCheckDeptStatisticsDao.selectdepts(obj);
+        Map<String, List<FwqDeptStatistic>> listMap = new HashMap<>();
+        Map<Long, List<FwqDeptStatistic>> listMap1 = new HashMap<>();
+        if (deptStatistics.size() > 0) {
+            Map<Long, Organ> deptMap = commonService.getDeptMap();
+            for (FwqDeptStatistic s : deptStatistics) {
+                //按月统计
+                if (listMap.get(s.getPeriod_id() + "") == null) {
+                    List<FwqDeptStatistic> t = new ArrayList<>();
+                    t.add(s);
+                    listMap.put(s.getPeriod_id() + "", t);
+                } else {
+                    List<FwqDeptStatistic> t = listMap.get(s.getPeriod_id() + "");
+                    t.add(s);
+                    listMap.put(s.getPeriod_id() + "", t);
+                }
+
+
+                //按部门统计
+                if (listMap1.get(s.getDept_id()) == null) {
+                    List<FwqDeptStatistic> t = new ArrayList<>();
+                    t.add(s);
+                    listMap1.put(s.getDept_id(), t);
+                } else {
+                    List<FwqDeptStatistic> t = listMap1.get(s.getDept_id());
+                    t.add(s);
+                    listMap1.put(s.getDept_id(), t);
+                }
+            }
+
+            //按月划分
+            for (CheckTaskPeriod p : checkTaskPeriods) {
+                if (p.getId() >= obj.getStartperiod_id() && p.getId() <= obj.getEndperiod_id()) {
+                    //符合要求的周期 计算得分
+                    for (Long tp : listMap1.keySet()
+                            ) {
+                        List<FwqDeptStatistic> deptStatistics1 = listMap1.get(tp);
+                        //该周期每一个部门
+                        //计算累计
+                        Integer s = 0;
+                        for (FwqDeptStatistic ss : deptStatistics1
+                                ) {
+                            if (ss.getPeriod_id() <= p.getId()) {
+                                s += ss.getIntegral();
+                            }
+                        }
+
+                        //赋值
+                        for (FwqDeptStatistic ss : deptStatistics1
+                                ) {
+                            if (ss.getPeriod_id().equals(p.getId())) {
+                                ss.setTotal_integral(s);
+                                ss.setDept_name(deptMap.get(ss.getDept_id()).getOrganname());
+                                ss.setTime(ff.format(p.getEndtime()));
+                            }
+                        }
+                    }
+
+                    //计算排名
+                    List<FwqDeptStatistic> deptStatistics1 = listMap.get(p.getId() + "");
+                    if (deptStatistics1 != null) {
+                        deptStatistics1.sort(new Comparator<FwqDeptStatistic>() {
+                            @Override
+                            public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                                return o1.getTotal_integral() > o2.getTotal_integral() ? -1 : 1;
+                            }
+                        });
+                        for (int j = 0; j < deptStatistics1.size(); j++) {
+                            FwqDeptStatistic statisticsBean = deptStatistics1.get(j);
+                            // 排名
+                            if (j == 0) {
+                                statisticsBean.setTotal_ranking(1);
+                            } else {
+                                FwqDeptStatistic bean = deptStatistics1.get(j - 1);
+                                if (statisticsBean.getTotal_integral().equals(bean.getTotal_integral())) {
+                                    statisticsBean.setTotal_ranking(bean.getTotal_ranking());
+                                } else {
+                                    statisticsBean.setTotal_ranking(j + 1);
+                                }
+                            }
+                        }
+                    }
+
+                }
+            }
+
+            //排序
+            for (String i : listMap.keySet()
+                    ) {
+                listMap.get(i).sort(new Comparator<FwqDeptStatistic>() {
+                    @Override
+                    public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                        return o1.getDept_id() > o2.getDept_id() ? 1 : -1;
+                    }
+                });
+            }
+            listMap.clear();
+            for (Long s : listMap1.keySet()
+                    ) {
+                List<FwqDeptStatistic> l = listMap1.get(s);
+                l.sort(new Comparator<FwqDeptStatistic>() {
+                    @Override
+                    public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                        return o1.getPeriod_id() > o2.getPeriod_id() ? 1 : -1;
+                    }
+                });
+                listMap.put(l.get(0).getDept_id() + "", l);
+            }
+
+            if (obj.getType() != null && obj.getType().equals(1)) {
+                //excel数据
+                for (CheckTaskPeriod p : checkTaskPeriods) {
+                    if (p.getId() >= obj.getStartperiod_id() && p.getId() <= obj.getEndperiod_id()) {
+                        //符合要求的周期 计算得分
+                        for (String i : listMap.keySet()
+                                ) {
+                            //单个部门的
+                            List<FwqDeptStatistic> l = listMap.get(i);
+                            FwqDeptStatistic temp = null;
+                            if (l.size() < 1) {
+                                continue;
+                            }
+                            boolean isin = false;
+                            for (FwqDeptStatistic s : l
+                                    ) {
+                                if (s.getPeriod_id().equals(p.getId())) {
+                                    isin = true;
+                                    temp = s;
+                                    break;
+                                }
+                            }
+                            //不在里面
+                            if (!isin) {
+                                FwqDeptStatistic s = l.get(0).clone();
+                                s.setScore((double) -1);
+                                s.setPeriod_id(p.getId());
+                                s.setIntegral(-1);
+                                s.setTotal_integral(-1);
+                                s.setTotal_ranking(-1);
+                                temp = s;
+                                l.add(s);
+                            }
+
+                            temp.setMString(ff1.format(p.getEndtime()));
+                            listMap.put(i, l);
+
+                        }
+                    }
+                }
+                //再次排序
+                for (String s : listMap.keySet()
+                        ) {
+                    List<FwqDeptStatistic> l = listMap.get(s);
+                    l.sort(new Comparator<FwqDeptStatistic>() {
+                        @Override
+                        public int compare(FwqDeptStatistic o1, FwqDeptStatistic o2) {
+                            return o1.getPeriod_id() > o2.getPeriod_id() ? 1 : -1;
+                        }
+                    });
+                    listMap.put(l.get(0).getDept_id() + "", l);
+                }
+            }
+        }
+
+
+        return listMap;
+    }
+
+    @Override
+    public void getDeptStatisticExcel(FwqDeptStatistic obj, HttpServletRequest req, HttpServletResponse resp) {
+        obj.setType(1);
+        Map<String, List<FwqDeptStatistic>> listMap = this.getDeptStatistic(obj);
+        SimpleDateFormat d = new SimpleDateFormat("yyyy/MM");
+        List<Integer> temp = new ArrayList<>();
+        for (int i = 1; i <= listMap.keySet().size(); i++) {
+            temp.add(i);
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("datas", listMap);
+        map.put("list", temp);
+        map.put("title", "服务区-营运管理提升综合成绩汇总表" + "(" + d.format(obj.getStart_date()) + "---" + d.format(obj.getEnd_date()) + ")");
+        exportExcel("服务区-营运管理提升综合成绩汇总表", "fwq_dept_statistic", map, resp);
+    }
+
+    public List<FwqStatisticsBean> getFeeStationCheckItemScore(FwqStatisticsBean obj) {
+
+        // 获得所有服务区数据
+        List<FeeStation> saList = commonService.getAllDeptByLayer("SA");
+        Map<Long, Item> itemMap = commonService.getItemMap();
+        Map<Long, FwqStatisticsBean> mapStationInfos = new HashMap<>();
+        for (FeeStation sta : saList) {
+            FwqStatisticsBean obj2 = new FwqStatisticsBean();
+            obj2.setDept_id(Long.valueOf(sta.getDeptid()));
+            obj2.setName(sta.getName());
+            // 30:连云港道管;31:盐城道管;32:南通道管
+            if ("30".equals(sta.getParentid())) {
+                obj2.setId(1);
+            } else if ("31".equals(sta.getParentid())) {
+                obj2.setId(2);
+            } else if ("32".equals(sta.getParentid())) {
+                obj2.setId(3);
+            }
+            mapStationInfos.put(Long.valueOf(sta.getDeptid()), obj2);
+        }
+
+        if (obj.getStart_date() != null && obj.getEnd_date() != null) {
+            CheckTaskPeriod p = commonService.getCheckTaskPeriod(obj.getStart_date().getTime()+1 * 1000 * 60 * 60, obj.getEnd_date().getTime()+1 * 1000 * 60 * 60);
+            if (p != null) {
+                obj.setPeriod_id(p.getId());
+            }
+        }
+
+        //服务区检查次数
+        List<FwqStatisticsBean> listCheckNum = fwqStatisticsDao.selectFeeStationCheckNum(obj);
+        for (FwqStatisticsBean sta : listCheckNum) {
+            if (mapStationInfos.containsKey(sta.getDept_id())) {
+                mapStationInfos.get(sta.getDept_id()).setChecked_num(sta.getChecked_num());
+//                mapStationInfos.get(sta.getDept_id()).setChecked_people_num(sta.getChecked_people_num());
+            }
+        }
+
+        List<FwqStatisticsBean> listCheckedScore = fwqStatisticsDao.selectFeeStationCheckedPersonScoreDetail(obj);
+
+        // 处理同一个服务区中,如果item的parent_id是一样的话,将这些数据结合在一起
+        for (FwqStatisticsBean sta : listCheckedScore) {
+            sta.setItem_id(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+        }
+        for (int i = 0; i < listCheckedScore.size(); i++) {
+            for (int j = listCheckedScore.size() - 1; j > i; j--) {
+                if (listCheckedScore.get(j).getDept_id().equals(listCheckedScore.get(i).getDept_id()) && listCheckedScore.get(j).getItem_id().equals(listCheckedScore.get(i).getItem_id())) {
+                    listCheckedScore.get(i).setScore(listCheckedScore.get(i).getScore() + listCheckedScore.get(j).getScore());
+                    listCheckedScore.remove(j);
+                }
+            }
+        }
+
+        for (FwqStatisticsBean sta : listCheckedScore) {
+            if (mapStationInfos.containsKey(sta.getDept_id())) {
+                FwqStatisticsBean statis = mapStationInfos.get(sta.getDept_id());
+                statis.setAll_check_score(statis.getAll_check_score() + sta.getScore());
+                // 组装扣分类型内容
+                if (itemMap.get(sta.getCheck_item_id().longValue()).getParent_id() != null) {
+                    sta.setId(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id().intValue());
+                    if (itemMap.get(sta.getCheck_item_id().longValue()).getScore() == null) {
+                        sta.setName(itemMap.get(sta.getCheck_item_id().longValue()).getName());
+                    } else {
+                        sta.setName(itemMap.get(itemMap.get(sta.getCheck_item_id().longValue()).getParent_id()).getName());
+                    }
+                }
+                statis.getChecked_socre_name().add(sta.getName());
+                statis.getChecked_score().add(sta.getScore());
+                statis.getChecked_score_ids().add(sta.getId());
+            }
+        }
+
+        List<FwqStatisticsBean> sortList = new ArrayList<>(mapStationInfos.values());
+
+        sortList.sort(new Comparator<FwqStatisticsBean>() {
+            @Override
+            public int compare(FwqStatisticsBean o1, FwqStatisticsBean o2) {
+                if (o1.getId() > o2.getId()) {
+                    return 1;
+                } else if (o1.getId().equals(o2.getId())) {
+                    if (o1.getChecked_num() != 0 && o2.getChecked_num() != 0) {
+                        if (o1.getAll_check_score() / (o1.getChecked_num() + 0.0) > o2.getAll_check_score()
+                                / (o2.getChecked_num() + 0.0)) {
+                            return 1;
+                        } else if (o1.getAll_check_score() / (o1.getChecked_num() + 0.0) < o2.getAll_check_score()
+                                / (o2.getChecked_num() + 0.0)) {
+                            return -1;
+                        } else {
+                            return 0;
+                        }
+                    } else {
+                        if (o1.getChecked_num() == 0) {
+                            return -1;
+                        } else if (o2.getChecked_num() == 0) {
+                            return 1;
+                        } else {
+                            return 0;
+                        }
+                    }
+                } else {
+                    return -1;
+                }
+            }
+        });
+
+        return sortList;
+
+    }
+
+    @Override
+    public void getFeeStationCheckItemScore(FwqStatisticsBean obj, HttpServletRequest req, HttpServletResponse resp) {
+        List<FwqStatisticsBean> list = getFeeStationCheckItemScore(obj);
+        int totalcheckedCount = 0, totalAll = 0;
+        float lygScore = 0.00f, ycScore = 0.00f, ntScore = 0.00f;
+        int lygCheckNum = 0, ycCheckNum = 0, ntCheckNum = 0;
+        Map<String, Integer> scoreTypeMap = new HashMap<>();
+        List<String> itemAll = commonService.getCheckItemName(28L);
+        Map<Long, Organ> deptMap = commonService.getDeptMap();
+        // 处理数据
+        for (FwqStatisticsBean st : list) {
+            // id值设置 seq_checked_score
+            // 平均值
+            st.setCheck_score_avg(
+                    (st.getChecked_num() != 0) ? st.getAll_check_score() / (st.getChecked_num() + 0.00f) : 0.00f);
+            for (String i : itemAll) {
+                st.getSeq_checked_score().add(getItemScore2(st, i));
+            }
+            st.setParent_dept_id(deptMap.get(st.getDept_id()).getParentid().longValue());
+            totalcheckedCount += st.getChecked_num();
+            totalAll += st.getAll_check_score();
+            if (st.getParent_dept_id() == 30) {
+                lygScore += st.getAll_check_score();
+                lygCheckNum += st.getChecked_num();
+            }
+            if (st.getParent_dept_id() == 31) {
+                ycScore += st.getAll_check_score();
+                ycCheckNum += st.getChecked_num();
+            }
+            if (st.getParent_dept_id() == 32) {
+                ntScore += st.getAll_check_score();
+                ntCheckNum += st.getChecked_num();
+            }
+            st.setCheck_total_avg("");
+            st.setParent_name("");
+            List<String> names = st.getChecked_socre_name();
+            List<Integer> scores = st.getChecked_score();
+            for (int j = 0; j < names.size(); j++) {
+                Integer score = scoreTypeMap.get(names.get(j));
+                if (score == null) {
+                    score = 0;
+                }
+                score += scores.get(j);
+                scoreTypeMap.put(names.get(j), score);
+            }
+        }
+        boolean lyg = false, yc = false, nt = false;
+        float lygTemp = 0.00f, ycTemp = 0.00f, ntTemp = 0.00f;
+        for (int i = 0; i < list.size(); i++) {
+            if (list.get(i).getParent_dept_id() == 30 && !lyg) {
+                list.get(i).setParent_name(deptMap.get(deptMap.get(list.get(i).getDept_id()).getParentid().longValue()).getOrganname());
+                list.get(i).setCheck_total_avg(String.format("%.2f", lygCheckNum != 0 ? lygScore / (lygCheckNum + 0.00f) : 0.00));
+                lygTemp = lygCheckNum != 0 ? lygScore / (lygCheckNum + 0.00f) : 0.00f;
+                lyg = true;
+            } else if (list.get(i).getParent_dept_id() == 31 && !yc) {
+                list.get(i).setParent_name(deptMap.get(deptMap.get(list.get(i).getDept_id()).getParentid().longValue()).getOrganname());
+                list.get(i).setCheck_total_avg(String.format("%.2f", ycCheckNum != 0 ? ycScore / (ycCheckNum + 0.00f) : 0.00));
+                ycTemp = ycCheckNum != 0 ? ycScore / (ycCheckNum + 0.00f) : 0.00f;
+                yc = true;
+            } else if (list.get(i).getParent_dept_id() == 32 && !nt) {
+                list.get(i).setParent_name(deptMap.get(deptMap.get(list.get(i).getDept_id()).getParentid().longValue()).getOrganname());
+                list.get(i).setCheck_total_avg(String.format("%.2f", ntCheckNum != 0 ? ntScore / (ntCheckNum + 0.00f) : 0.00));
+                ntTemp = ntCheckNum != 0 ? ntScore / (ntCheckNum + 0.00f) : 0.00f;
+                nt = true;
+            }
+        }
+        int lygOrder = 1, ycOrder = 1, ntOrder = 1;
+        for (int i = 0; i < list.size(); i++) {
+            if (!"".equals(list.get(i).getParent_name()) && list.get(i).getParent_dept_id() == 30) {
+                if (lygTemp > ycTemp) {
+                    lygOrder += 1;
+                }
+                if (lygTemp > ntTemp) {
+                    lygOrder += 1;
+                }
+                list.get(i).setFee_station_ranking2(lygOrder);
+            }
+            if (!"".equals(list.get(i).getParent_name()) && list.get(i).getParent_dept_id() == 31) {
+                if (ycTemp > lygTemp) {
+                    ycOrder += 1;
+                }
+                if (ycTemp > ntTemp) {
+                    ycOrder += 1;
+                }
+                list.get(i).setFee_station_ranking2(ycOrder);
+            }
+            if (!"".equals(list.get(i).getParent_name()) && list.get(i).getParent_dept_id() == 32) {
+                if (ntTemp > lygTemp) {
+                    ntOrder += 1;
+                }
+                if (ntTemp > ycTemp) {
+                    ntOrder += 1;
+                }
+                list.get(i).setFee_station_ranking2(ntOrder);
+            }
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", list);
+        map.put("itemList", itemAll);
+        exportExcel("温馨服务检查情况统计表", "fwq_checked_item_info", map, resp);
+    }
+
+    private void exportExcel(String fileName, String excelTemplateName, Map<String, Object> map,
+                             HttpServletResponse resp) {
+        String path = "./" + fileName + ".xls";
+        try (InputStream is = this.getClass().getResourceAsStream("/" + excelTemplateName + ".xls")) {
+            try (OutputStream os = new FileOutputStream(path)) {
+                Context context = new Context();
+                // context.putVar("list", map.get("list"));
+                // context.putVar("totalMan", map.get("totalMan"));
+                for (String key : map.keySet()) {
+                    context.putVar(key, map.get(key));
+                }
+                JxlsHelper.getInstance().processTemplate(is, os, context);
+            }
+            Thread.sleep(1000);
+            // path是指欲下载的文件的路径。
+            File file = new File(path);
+            // 取得文件名。
+            String filename = file.getName();
+            // 以流的形式下载文件。
+            InputStream bis = new BufferedInputStream(new FileInputStream(file));
+            byte[] buffer = new byte[bis.available()];
+            bis.read(buffer);
+            bis.close();
+            // 清空response
+            resp.reset();
+            // 设置response的Header
+            resp.addHeader("Content-Disposition",
+                    "attachment;filename=" + new String(filename.getBytes("gb2312"), "ISO8859-1"));
+            resp.addHeader("Content-Length", "" + file.length());
+            OutputStream toClient = new BufferedOutputStream(resp.getOutputStream());
+            resp.setContentType("application/vnd.ms-excel;charset=gb2312");
+            toClient.write(buffer);
+            toClient.flush();
+            toClient.close();
+            // 删除生成的临时文件
+            if (file.exists()) {
+                file.delete();
+            }
+
+        } catch (Exception e) {
+            logger.error(e.toString());
+        }
+    }
+
+    private Integer getItemScore2(FwqStatisticsBean obj, String name) {
+        List<String> names = obj.getChecked_socre_name();
+        List<Integer> scores = obj.getChecked_score();
+        for (int i = 0; i < names.size(); i++) {
+            if (names.get(i) == null) {
+                continue;
+            }
+            if (names.get(i).contains(name)) {
+                return scores.get(i);
+            }
+        }
+        return 0;
+    }
+}

+ 61 - 0
Visuallnspection_qzd/src/main/java/com/xintong/visualinspection/visuallnspection_qzd/service/impl/ThreadTaskServiceImpl.java

@@ -0,0 +1,61 @@
+package com.xintong.visualinspection.visuallnspection_qzd.service.impl;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.xintong.visualinspection.bean.CheckTaskPeriod;
+import com.xintong.visualinspection.bean.FwqDeptStatistic;
+import com.xintong.visualinspection.bean.FwqStatisticsBean;
+import com.xintong.visualinspection.service.CommonService;
+import com.xintong.visualinspection.service.ThreadTaskService_F;
+import com.xintong.visualinspection.visuallnspection_qzd.dao.FwqCheckDeptStatisticsDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+
+import java.util.List;
+
+/**
+ * 文件名:ThreadTaskServiceImpl
+ * 版本信息:日期:2018/5/11 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
+ *
+ * @author huangcheng
+ * @since 2018/5/11
+ */
+@com.alibaba.dubbo.config.annotation.Service(
+        version = "1.0.0",
+        application = "${dubbo.application.id}",
+        protocol = "${dubbo.protocol.id}",
+        registry = "${dubbo.registry.id}"
+)
+public class ThreadTaskServiceImpl implements ThreadTaskService_F {
+
+    private static final Logger logger = LoggerFactory.getLogger(ThreadTaskServiceImpl.class);
+
+    @Autowired
+    private FwqCheckDeptStatisticsDao fwqCheckDeptStatisticsDao;
+
+    @Reference(version = "1.0.0",
+            application = "${dubbo.application.id}",
+            registry = "${dubbo.registry.address}")
+    private CommonService commonService;
+
+
+    @Override
+    @Async("threadExecutor")
+    public void saveDeptStatic(List<FwqStatisticsBean> statisticsBos, Long starttime, Long endtime) {
+
+        CheckTaskPeriod period = commonService.getCheckTaskPeriod(starttime, endtime);
+
+        if (period == null) {
+            return;
+        }
+        for (FwqStatisticsBean s : statisticsBos) {
+            FwqDeptStatistic ss = new FwqDeptStatistic();
+            ss.setScore(Double.parseDouble(s.getScore_avg()));
+            ss.setIntegral(statisticsBos.size() - s.getCompany_ranking2() + 1);
+            ss.setDept_id(s.getDept_id());
+            ss.setPeriod_id(period.getId());
+            fwqCheckDeptStatisticsDao.saveandupdate(ss);
+        }
+    }
+}

+ 42 - 0
Visuallnspection_qzd/src/main/resources/application.properties

@@ -0,0 +1,42 @@
+server.port = 9001
+spring.thymeleaf.cache=false
+
+# Base packages to scan Dubbo Components (e.g., @Service, @Reference)
+dubbo.scan.basePackages  =com.xintong.visualinspection.visuallnspection_qzd.service.impl
+
+# Dubbo Config properties
+## ApplicationConfig Bean
+dubbo.application.id = jicha_qzd-provider_consumer
+dubbo.application.name = jicha_qzd-provider_consumer
+
+# ProtocolConfig Bean
+dubbo.protocol.id = dubbo
+dubbo.protocol.name = dubbo
+dubbo.protocol.port = 7685
+dubbo.protocol.status = server
+
+## RegistryConfig Bean
+dubbo.registry.id = qzd_service
+#dubbo.registry.address = zookeeper://git.topm.win:9994
+dubbo.registry.address = zookeeper://192.168.45.158:2181
+dubbo.registry.file = ./output/dubbo1.cache
+dubbo.reference.check=false
+dubbo.consumer.check=false
+
+
+
+#master.datasource.url = jdbc:mysql://10.112.0.199:3306/visualinspection?useUnicode=true&characterEncoding=utf-8
+master.datasource.url = jdbc:mysql://xt.wenhq.top:8082/visualinspection_3?useUnicode=true&characterEncoding=utf-8
+#master.datasource.url = jdbc:mysql://git.topm.win:6381/visualinspection?useUnicode=true&characterEncoding=utf-8
+#master.datasource.url = jdbc:mysql://10.112.0.199:7002/visualinspection_2?useUnicode=true&characterEncoding=utf-8
+master.datasource.username = root
+master.datasource.password = root
+master.datasource.driver-class-name = com.mysql.jdbc.Driver
+master.mapper-locations=classpath:com/xintong/visualinspection/visuallnspection_qzd/mapper/master/*.xml
+
+
+log.path=./visual/
+log.file=visual
+log.lever=info
+log.MaxHistory=20
+log.pattern=%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n

BIN=BIN
Visuallnspection_qzd/src/main/resources/fwq_checked_item_info.xls


BIN=BIN
Visuallnspection_qzd/src/main/resources/fwq_dept_statistic.xls


BIN=BIN
Visuallnspection_qzd/src/main/resources/fwq_duty_check.xls


BIN=BIN
Visuallnspection_qzd/src/main/resources/fwq_operation_info.xls


BIN=BIN
Visuallnspection_qzd/src/main/resources/fwq_other_check_info_anfang.xls


BIN=BIN
Visuallnspection_qzd/src/main/resources/fwq_third_check.xls


+ 36 - 0
Visuallnspection_qzd/src/main/resources/logback.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+	<property resource="application.properties" />
+	
+	<logger name="com.roncoo" level="debug" />
+
+	<!-- 控制台设置 -->
+	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+	<!-- 文件设置 -->
+	<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 文件路径 -->
+		<file>${log.path}${log.file}.log</file>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<!-- 文件名称 -->
+			<fileNamePattern>${log.path}${log.file}.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 文件最大保存历史数量 -->
+			<MaxHistory>${log.maxHistory}</MaxHistory>
+		</rollingPolicy>
+
+		<layout class="ch.qos.logback.classic.PatternLayout">
+			<pattern>${log.pattern}</pattern>
+		</layout>
+	</appender>
+
+	<root level="${log.lever}">
+		<appender-ref ref="CONSOLE" />
+		<appender-ref ref="LOGFILE" />
+	</root>
+	<!-- 打印sql语句 -->
+	<logger name="com.xintong.visualinspection.visuallnspection_qzd.dao" level="DEBUG"></logger>
+</configuration>

+ 16 - 0
Visuallnspection_qzd/src/test/java/com/xintong/visualinspection/visuallnspection_qzd/VisuallnspectionFjqApplicationTests.java

@@ -0,0 +1,16 @@
+package com.xintong.visualinspection.visuallnspection_qzd;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class VisuallnspectionFjqApplicationTests {
+
+    @Test
+    public void contextLoads() {
+    }
+
+}