Преглед на файлове

监视管理和健康管理后台项目

shilin преди 3 години
родител
ревизия
28a43617f3
променени са 36 файла, в които са добавени 5901 реда и са изтрити 0 реда
  1. 281 0
      web/monitor-web-hb/monitor-web-hb.iml
  2. 32 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ApiController.java
  3. 46 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ApiController2.java
  4. 212 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/AutoCodeController.java
  5. 142 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/CaptchaController.java
  6. 181 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/DictDataController.java
  7. 170 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/DictTypeController.java
  8. 175 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/EmailController.java
  9. 251 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/FileController.java
  10. 38 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/JsonController.java
  11. 91 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/LogController.java
  12. 268 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/PermissionController.java
  13. 261 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/PermissionVueController.java
  14. 111 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ProvinceLinkageController.java
  15. 42 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/QuartzController.java
  16. 199 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/QuartzJobController.java
  17. 116 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/QuartzJobLogController.java
  18. 175 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/RoleController.java
  19. 170 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/RoleVueController.java
  20. 47 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ServiceController.java
  21. 46 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SwaggerController.java
  22. 174 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysAreaController.java
  23. 170 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysCityController.java
  24. 218 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysDepartmentController.java
  25. 231 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysNoticeController.java
  26. 167 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysPositionController.java
  27. 175 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysProvinceController.java
  28. 173 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysStreetController.java
  29. 39 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/TestController.java
  30. 39 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ToolController.java
  31. 83 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/UeditorController.java
  32. 239 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/UserController.java
  33. 229 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/UserVueController.java
  34. 320 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/service/weather/WeatherDay5Service.java
  35. 362 0
      web/monitor-web-hb/src/main/java/com/gyee/frame/service/weather/WeatherService.java
  36. 228 0
      web/monitor-web-hb/src/main/resources/application.yml

+ 281 - 0
web/monitor-web-hb/monitor-web-hb.iml

@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.6" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.18" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.18" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:29.0-android" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.21" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.21" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-core:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.5" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.5" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.4" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.0" level="project" />
+    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.45" level="project" />
+    <orderEntry type="library" name="Maven: com.oracle:ojdbc6:11.2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.microsoft.sqlserver:sqljdbc4:4.0" level="project" />
+    <orderEntry type="library" name="Maven: com.taosdata.jdbc:taos-jdbcdriver:2.0.30" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.14" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.10" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.5" level="project" />
+    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
+    <orderEntry type="library" name="Maven: com.github.theborakompanioni:thymeleaf-extras-shiro:2.0.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.4" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-devtools:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.1.12" level="project" />
+    <orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.10" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: javax.mail:mail:1.4.7" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.json:json:20180813" level="project" />
+    <orderEntry type="module-library">
+      <library name="Maven: ueditor:1.4.3:1.8">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/ueditor-1.1.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-integration:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-core:5.3.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.3.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-ip:5.3.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+    <orderEntry type="library" name="Maven: com.qiniu:qiniu-java-sdk:7.2.29" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.squareup.okhttp3:okhttp:3.12.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.squareup.okio:okio:1.15.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.17" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:9.0.35" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.35" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.41" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.35" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.35" level="project" />
+    <orderEntry type="library" name="Maven: redis.clients:jedis:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.8.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.3.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.3.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.55.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.55.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.55.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.55.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.55.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.55.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.18" level="project" />
+    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.05" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
+    <orderEntry type="library" name="Maven: org.pegdown:pegdown:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.parboiled:parboiled-java:1.1.6" level="project" />
+    <orderEntry type="library" name="Maven: org.parboiled:parboiled-core:1.1.6" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm:4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm-tree:4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm-analysis:4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm-util:4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.axiom:axiom-api:1.2.12" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-activation_1.1_spec:1.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-javamail_1.4_spec:1.6" level="project" />
+    <orderEntry type="library" name="Maven: jaxen:jaxen:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.axis2:axis2-kernel:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.axiom:axiom-impl:1.2.12" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.woodstox:wstx-asl:3.2.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:1.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.servlet:servlet-api:2.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+    <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.schema:XmlSchema:1.4.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.woden:woden-api:1.0M9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.woden:woden-impl-dom:1.0M9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.woden:woden-impl-commons:1.0M9" level="project" />
+    <orderEntry type="library" name="Maven: javax.ws.rs:jsr311-api:1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.axis2:axis2-adb:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.feign:feign-core:8.18.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.jvnet:animal-sniffer-annotation:1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.feign:feign-jackson:8.18.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.14" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.4.1" level="project" />
+    <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.3.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.64" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.64" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.12.21" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.3.0" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
+    <orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
+  </component>
+</module>

+ 32 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ApiController.java

@@ -0,0 +1,32 @@
+package com.gyee.frame.controller.admin;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.shiro.util.ShiroUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 该接口为了前后端分离or手机端服务不用登录的接口  访问地址:localhot:8080/ApiController/test
+ * 如何还需要其他 接口不登陆就能访问:ShiroFilterMapFactory.java里面配置开放自己的controller
+ * @ClassName: ApiController
+ * @author gyee
+ * @date 2020-04-15 22:59
+ */
+@Api(value = "接口API")
+@Controller
+@RequestMapping("/ApiController")
+public class ApiController {
+	
+	//@Log(title = "${TsysTables.tableComment}集合查询", action = "111")
+	@ApiOperation(value = "测试方法", notes = "测试方法")
+	@GetMapping("/test")
+	@ResponseBody
+	public AjaxResult test() {
+		return AjaxResult.successData(200, ShiroUtils.getLoginName());
+	}
+}

+ 46 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ApiController2.java

@@ -0,0 +1,46 @@
+package com.gyee.frame.controller.admin;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.shiro.util.ShiroUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * token测试   
+ * 
+ * head 参数
+ * authToken:4acf8612-d66c-4770-a775-c9418c65bacd
+ * @ClassName: ApiController2
+ * @author gyee
+ * @date 2020-12-07 00:56
+ */
+@Api(value = "iphoneAPI")
+@Controller
+@RequestMapping("/api")
+public class ApiController2 {
+	/**
+	 * 第一步:token获取
+	 * post:http://localhost:8080/admin/API/loginvue
+	 * body参数:
+	 * username:admin
+	 * password:admin
+	 * 返回 {"code":200,"data":"1487913f-5a64-488d-9fc7-243d004faae2"}
+	 * 第二步:请求测试
+	 * get:请求地址:http://localhost:8080/api/test
+	 * head参数:
+	 * authToken:1487913f-5a64-488d-9fc7-243d004faae2
+	 * 返回信息
+	 * {"code":200,"data":"admin"}
+	 */
+	@ApiOperation(value = "token测试方法", notes = "token测试方法")
+	@GetMapping("/test")
+	@ResponseBody
+	public AjaxResult test() {
+		return AjaxResult.successData(200, ShiroUtils.getLoginName());
+	}
+}

+ 212 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/AutoCodeController.java

@@ -0,0 +1,212 @@
+package com.gyee.frame.controller.admin;
+
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import cn.hutool.json.JSONUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TsysPermission;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.model.custom.TsysTables;
+import com.gyee.frame.model.custom.autocode.AutoCodeConfig;
+import com.gyee.frame.model.custom.autocode.BeanColumn;
+import com.gyee.frame.model.custom.autocode.GlobalConfig;
+import com.gyee.frame.service.GeneratorService;
+import com.gyee.frame.service.SysPermissionService;
+import com.gyee.frame.service.SysUtilService;
+import com.gyee.frame.util.AutoCode.AutoCodeUtil;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * 代码自动生成
+ * 
+ * @ClassName: AutoCodeController
+ * @author gyee
+ * @date 2019-08-13 00:34
+ */
+@Api(value = "代码自动生成")
+@Controller
+@RequestMapping("/autoCodeController")
+public class AutoCodeController extends BaseController {
+
+	private String prefix = "admin/auto_code";
+	@Resource
+	private GeneratorService generatorService;
+	@Resource
+	private SysUtilService sysUtilService;
+	@Resource
+	private SysPermissionService sysPermissionService;
+
+	/**
+	 * 代码自动生成展示首页
+	 * 
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年8月13日 上午12:35:23
+	 */
+	@ApiOperation(value = " 代码自动生成展示首页", notes = " 代码自动生成展示首页")
+	@GetMapping("/one")
+	@RequiresPermissions("system:autocode:one")
+	public String one(ModelMap model) {
+		String str = "单表代码生成";
+		setTitle(model, new TitleVo("生成", str + "管理", true, "欢迎进入" + str + "页面", true, false));
+		List<TsysTables> tables = generatorService.queryList(null);
+		List<TsysPermission> permissions = sysPermissionService.list2(null);
+		model.addAttribute("tables", tables);
+		model.addAttribute("permissions", permissions);
+		return prefix + "/one";
+	}
+
+	/**
+	 * 代码自动生成全局配置
+	 * 
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年8月13日 上午12:34:30
+	 */
+	@ApiOperation(value = " 代码自动生成全局配置", notes = "代码自动生成全局配置")
+	@GetMapping("/global")
+	@RequiresPermissions("system:autocode:global")
+	public String global(ModelMap modelMap) {
+		String str = "全局配置";
+		setTitle(modelMap, new TitleVo("配置", str + "管理", true, "欢迎进入" + str + "页面", true, false));
+
+		modelMap.put("autoConfig", AutoCodeConfig.getGlobalConfig());
+		System.out.println(JSONUtil.toJsonStr(AutoCodeConfig.getGlobalConfig()));
+		return prefix + "/global";
+	}
+
+	/**
+	 * 根据表名查询表信息
+	 * @param tableName
+	 * @return
+	 * @author gyee
+	 * @Date 2019年8月15日 上午1:09:36
+	 */
+	@ApiOperation(value = "根据表名查询表信息", notes = "根据表名查询表信息")
+	@PostMapping("/queryTable")
+	@ResponseBody
+	public AjaxResult queryTable(String tableName) {
+		List<TsysTables> list = generatorService.queryList(tableName);
+		if (list.size() > 0) {
+			return AjaxResult.successData(200, list);
+		}
+		return AjaxResult.error();
+	}
+
+	/**
+	 * 根据表查询表字段详情
+	 * 
+	 * @param tableName
+	 * @return
+	 * @author gyee
+	 * @Date 2019年8月15日 上午1:10:42
+	 */
+	@ApiOperation(value = "根据表查询表字段详情", notes = "根据表查询表字段详情")
+	@PostMapping("/queryTableInfo")
+	@ResponseBody
+	public AjaxResult queryTableInfo(String tableName) {
+		List<BeanColumn> list = generatorService.queryColumns2(tableName);
+		System.out.println(JSONUtil.toJsonStr(list));
+		if (list.size() > 0) {
+			return AjaxResult.successData(200, list);
+		}
+		return AjaxResult.error();
+	}
+
+	/**
+	 * 保存配置文件
+	 * 
+	 * @param globalConfig
+	 * @param model
+	 * @param request
+	 * @return
+	 * @throws Exception
+	 * @author gyee
+	 * @Date 2019年8月24日 下午3:25:41
+	 */
+	//@Log(title = "保存配置文件", action = "1")
+	@ApiOperation(value = "保存配置文件", notes = "保存配置文件")
+	@PostMapping("/addGlobal")
+	@ResponseBody
+	public AjaxResult addGlobal(GlobalConfig globalConfig, Model model, HttpServletRequest request) throws Exception {
+		AutoCodeConfig.setGlobalConfig(globalConfig);
+		if (globalConfig != null) {
+			return success();
+		} else {
+			return error();
+		}
+	}
+
+	/**
+	 * 保存单表信息
+	 * 
+	 * @param allColumnss  字段列表字符串
+	 * @param tableName 表名
+	 * @param conditionQueryField  条件查询字段
+	 * @param pid 父id
+	 * @param sqlcheck 是否录入数据
+	 * @param vhtml 生成html
+	 * @param vController 生成controller
+	 * @param vservice 生成service
+	 * @param vMapperORdao 生成mapper or dao
+	 * @return
+	 * @throws Exception
+	 * @author gyee
+	 * @Date 2019年8月31日 上午2:49:18
+	 */
+	//@Log(title = "保存单表信息", action = "1")
+	@ApiOperation(value = "保存单表信息", notes = "保存单表信息")
+	@PostMapping("/saveOne")
+	@ResponseBody
+	public AjaxResult saveOne(String allColumnss, String tableName, String conditionQueryField, String pid,
+			int sqlcheck,Boolean vhtml,Boolean vController,Boolean vService,Boolean vMapperORdao) throws Exception {
+		//JSONArray array = JSONUtil.parseArray(allColumnss);
+		// 遗留可用前端修改传入的字段等信息(未完善)
+		//List<BeanColumn> beanColumns2 = JSONUtil.toList(array, BeanColumn.class);
+		List<TsysTables> list = generatorService.queryList(tableName);
+		if (list.size() > 0) {
+			TsysTables tables = list.get(0);
+			List<BeanColumn> beanColumns = generatorService.queryColumns2(tableName);
+			AutoCodeUtil.autoCodeOneModel(sysUtilService, tables, beanColumns, conditionQueryField, pid, sqlcheck, vhtml, vController, vService, vMapperORdao);
+		}
+		return AjaxResult.success();
+	}
+
+	/**
+	 * 根据权限字段查询是否存在
+	 * 
+	 * @param perms
+	 * @return
+	 * @author gyee
+	 * @Date 2019年9月1日 上午2:06:31
+	 */
+	@ApiOperation(value = "根据权限字段查询是否存在", notes = "根据权限字段查询是否存在")
+	@PostMapping("/queryLikePerms")
+	@ResponseBody
+	public AjaxResult queryLikePerms(String tableName) {
+		List<TsysTables> list = generatorService.queryList(tableName);
+		if (list.size() > 0) {
+			TsysTables tables = list.get(0);
+			Boolean boolean1 = sysPermissionService.queryLikePerms(tables.getTableModel_a());
+			if (boolean1) {
+				return AjaxResult.error("数据库已有权限");
+			} else {
+				return AjaxResult.success("ok");
+			}
+		}
+		return AjaxResult.error("请选择表");
+	}
+}

+ 142 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/CaptchaController.java

@@ -0,0 +1,142 @@
+package com.gyee.frame.controller.admin;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.util.List;
+
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.gyee.frame.common.base.BaseController;
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.Producer;
+
+/**
+ * 图片验证码
+ * @author fc
+ */
+@Api(value = "验证码")
+@Controller
+@RequestMapping("/captcha")
+public class CaptchaController extends BaseController
+{
+	@Resource
+    private Producer captchaProducer;
+    
+    @Resource
+    private Producer captchaProducerMath;
+
+    /**
+     * 生成验证码
+     * @param request
+     * @param response
+     * @param type
+     * @return
+     * @author gyee
+     * @Date 2020年5月22日 上午12:17:03
+     */
+    @ApiOperation(value = "验证码生成", notes = "验证码生成")
+    @GetMapping("/captchaImage")
+    public ModelAndView getKaptchaImage(HttpServletRequest request, HttpServletResponse response,String type)
+    {
+        ServletOutputStream out = null;
+        try
+        {
+            HttpSession session = request.getSession();
+            response.setDateHeader("Expires", 0);
+            //Set standard HTTP/1.1 no-cache headers. 
+            response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
+            //Set IE extended HTTP/1.1 no-cache headers (use addHeader). 
+            response.addHeader("Cache-Control", "post-check=0, pre-check=0");
+            //Set standard HTTP/1.0 no-cache header. 
+            response.setHeader("Pragma", "no-cache");
+            //return a jpeg 
+            response.setContentType("image/jpeg");
+            ///验证码字符串
+            String captStr = null;
+            //答案
+            String answer = null;
+            BufferedImage images = null;
+            if ("math".equals(type))//验证码为算数 8*9 类型
+            {
+            	//验证码加答案8-3=?@5
+                String captText = captchaProducerMath.createText();
+                //验证码8-3=?
+                captStr = captText.substring(0, captText.lastIndexOf("@"));
+                answer = captText.substring(captText.lastIndexOf("@") + 1);
+                //生成图片
+                images = captchaProducerMath.createImage(captStr);
+            }
+            else if ("char".equals(type))//验证码为 abcd类型
+            {
+            	captStr = answer = captchaProducer.createText();
+                images = captchaProducer.createImage(captStr);
+            }
+            session.setAttribute(Constants.KAPTCHA_SESSION_KEY, answer);
+            out = response.getOutputStream();
+            ImageIO.write(images, "jpg", out);
+            out.flush();
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        finally
+        {
+            try
+            {
+                if (out != null)
+                {
+                    out.close();
+                }
+            }
+            catch (IOException e)
+            {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+    
+    /**
+     * 滚动条验证码
+     * @param datas
+     * @return
+     * @author gyee
+     * @Date 2019年11月23日 下午6:12:27
+     */
+    @ApiOperation(value = "滚动条验证码", notes = "滚动条验证码")
+    @PostMapping("/isVerify")
+    @ResponseBody
+	public boolean isVerify(@RequestBody List<Integer> datas) {
+		int sum = 0;  
+		for (Integer data : datas) {
+			sum += data;
+		}
+		double avg = sum * 1.0 / datas.size();
+		
+		double sum2 = 0.0;
+		for (Integer data : datas) {
+			sum2 += Math.pow(data - avg, 2);
+		}
+		
+		double stddev = sum2 / datas.size();
+		return stddev != 0;
+	}
+	
+}

+ 181 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/DictDataController.java

@@ -0,0 +1,181 @@
+package com.gyee.frame.controller.admin;
+
+import com.gyee.frame.model.auto.TSysDictData;
+import com.gyee.frame.service.SysDictDataService;
+import com.gyee.frame.service.SysDictTypeService;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 字典表Controller
+ * @ClassName: DictDataController
+ * @author gyee
+ * @date 2019-11-20 22:46
+ */
+@Api(value = "字典数据表")
+@Controller
+@RequestMapping("/DictDataController")
+public class DictDataController extends BaseController{
+	
+	private String prefix = "admin/dict_data";
+	@Resource
+	private SysDictDataService tSysDictDataService;
+	@Resource
+	private SysDictTypeService sysDictTypeService;
+	
+	/**
+	 * 分页list页面
+	 * @param model
+	 * @param dictId
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:dictData:view")
+    public String view(ModelMap model,String dictId)
+    {
+    	model.addAttribute("dictId",dictId);
+		String str="字典数据表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 字典数据表集合查询
+	 * @param tablepar
+	 * @param searchText
+	 * @param dictId
+	 * @return
+	 */
+	//@Log(title = "字典数据表集合查询", action = "1")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:dictData:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText,String dictId){
+		PageInfo<TSysDictData> page=tSysDictDataService.list(tablepar,searchText,dictId) ;
+		TableSplitResult<TSysDictData> result=new TableSplitResult<TSysDictData>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @param dictId
+	 * @return
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap,String dictId)
+    {
+		modelMap.addAttribute("dictType",sysDictTypeService.selectByPrimaryKey(dictId).getDictType());
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增保存
+     * @param tSysDictData
+     * @param model
+     * @return
+     */
+	//@Log(title = "字典数据表新增", action = "1")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:dictData:add")
+	@ResponseBody
+	public AjaxResult add(TSysDictData tSysDictData, Model model){
+		int b=tSysDictDataService.insertSelective(tSysDictData);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "字典数据表删除", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:dictData:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=tSysDictDataService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TSysDictData tSysDictData){
+		int b=tSysDictDataService.checkNameUnique(tSysDictData);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+		TSysDictData sysDictData= tSysDictDataService.selectByPrimaryKey(id);
+        mmap.put("TSysDictData", sysDictData);
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "字典数据表修改", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:dictData:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TSysDictData record)
+    {
+        return toAjax(tSysDictDataService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    
+
+	
+}

+ 170 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/DictTypeController.java

@@ -0,0 +1,170 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TSysDictType;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysDictTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 字典类型Controller
+ * @ClassName: DictTypeController
+ * @author gyee
+ * @date 2019-11-20 22:45
+ */
+@Api(value = "字典类型表")
+@Controller
+@RequestMapping("/DictTypeController")
+public class DictTypeController extends BaseController{
+	
+	private String prefix = "admin/dict_type";
+	@Resource
+	private SysDictTypeService tSysDictTypeService;
+	
+	/**
+	 * 分页list页面
+	 * @param model
+	 * @param dictId
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:dictType:view")
+    public String view(ModelMap model)
+    {	
+		String str="字典类型表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 字典类型表集合查询
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 */
+	//@Log(title = "字典类型表集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:dictType:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TSysDictType> page=tSysDictTypeService.list(tablepar,searchText) ; 
+		TableSplitResult<TSysDictType> result=new TableSplitResult<TSysDictType>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增保存
+     * @param tSysDictType
+     * @param model
+     * @return
+     */
+	//@Log(title = "字典类型表新增", action = "111")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:dictType:add")
+	@ResponseBody
+	public AjaxResult add(TSysDictType tSysDictType,Model model){
+		int b=tSysDictTypeService.insertSelective(tSysDictType);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除字典类型
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "字典类型表删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:dictType:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=tSysDictTypeService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查字典类型名字相同
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TSysDictType tSysDictType){
+		int b=tSysDictTypeService.checkNameUnique(tSysDictType);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("TSysDictType", tSysDictTypeService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "字典类型表修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:dictType:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TSysDictType record)
+    {
+        return toAjax(tSysDictTypeService.updateByPrimaryKeySelective(record));
+    }
+
+	
+}

+ 175 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/EmailController.java

@@ -0,0 +1,175 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TSysEmail;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.TSysEmailService;
+import com.gyee.frame.util.SimpleEmailUtil;
+import com.github.pagehelper.PageInfo;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 邮件发送Controller
+ * @ClassName: EmailController
+ * @author gyee
+ * @date 2019-06-10 00:39
+ * @version V1.0
+ */
+@Api(value = "邮件发送Controller")
+@Controller
+@RequestMapping("/EmailController")
+public class EmailController extends BaseController{
+		
+	private String prefix = "admin/email";
+	
+	@Resource
+	private TSysEmailService tSysEmailService;
+	
+	/**
+	 * 分页展示页面
+	 * @param model
+	 * @param dictId
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:email:view")
+    public String view(ModelMap model)
+    {	
+		String str="邮件";
+		setTitle(model, new TitleVo("发送", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+
+	/**
+	 * 分页list页面
+	 * @param model
+	 * @param dictId
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:email:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TSysEmail> page=tSysEmailService.list(tablepar,searchText) ; 
+		TableSplitResult<TSysEmail> result=new TableSplitResult<TSysEmail>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+     * 新增跳转
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+	/**
+	 * 新增
+	 * @param tSysEmail
+	 * @param model
+	 * @return
+	 * @throws Exception
+	 * @author gyee
+	 */
+	//@Log(title = "新增邮件", action = "1")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:email:add")
+	@ResponseBody
+	public AjaxResult add(TSysEmail tSysEmail,Model model) throws Exception{
+		int b=tSysEmailService.insertSelective(tSysEmail);
+		SimpleEmailUtil.sendEmail(tSysEmail);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除邮件
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除邮件", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:email:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=tSysEmailService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查邮件同名
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TSysEmail tSysEmail){
+		int b=tSysEmailService.checkNameUnique(tSysEmail);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("TSysEmail", tSysEmailService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+	//@Log(title = "修改保存", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:email:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TSysEmail record)
+    {
+        return toAjax(tSysEmailService.updateByPrimaryKeySelective(record));
+    }
+
+
+}

+ 251 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/FileController.java

@@ -0,0 +1,251 @@
+package com.gyee.frame.controller.admin;
+
+import java.io.IOException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.common.file.FileUtils;
+import com.gyee.frame.model.auto.TsysDatas;
+import com.gyee.frame.model.auto.TsysFile;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.util.StringUtils;
+import com.github.pagehelper.PageInfo;
+
+/**
+ * 文件上传controller
+ * @author gyee
+ * @date: 2018年9月16日 下午4:23:50
+ */
+@Api(value = "文件上传")
+@Controller
+@RequestMapping("/FileController")
+public class FileController extends BaseController{
+
+	//跳转页面参数
+	private String prefix = "admin/file";
+	
+	/**
+	 * 分页展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月20日 下午10:18:32
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:file:view")
+    public String view(ModelMap model)
+    {	
+		String str="上传图片";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 文件列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:file:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TsysFile> page=sysFileService.list(tablepar,searchText) ; 
+		TableSplitResult<TsysFile> result=new TableSplitResult<TsysFile>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 新增文件跳转页面
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月20日 下午10:19:03
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+	
+    
+    
+    /**
+     * 文件上传
+     * @param file
+     * @return
+     * @author gyee
+     * @Date 2019年11月20日 下午10:18:49
+     */
+	//@Log(title = "文件上传", action = "1")
+	@ApiOperation(value = "文件上传", notes = "文件上传")
+    @PostMapping("/upload")
+    @ResponseBody
+    public AjaxResult updateAvatar(@RequestParam("file") MultipartFile file)
+    {
+        try
+        {
+            if (!file.isEmpty())
+            {
+                //插入文件存储表
+            	String id=sysDatasService.insertSelective(file);
+                if(id!=null){
+                	 return AjaxResult.successData(200, id);
+                }
+            }
+            return error();
+        }
+        catch (Exception e)
+        {
+            return error(e.getMessage());
+        }
+    }
+	
+    /**
+     * 文件添加
+     * @param file
+     * @return
+     */
+	//@Log(title = "文件添加", action = "1")
+	@ApiOperation(value = "文件添加", notes = "文件添加")
+	@PostMapping("/add")
+	@RequiresPermissions("system:file:add")
+	@ResponseBody
+	public AjaxResult add(TsysFile file,String dataId){
+		if(StringUtils.isNotEmpty(dataId)) {
+			int b=sysFileService.insertSelective(file,dataId);
+			if(b>0){
+				return success();
+			}
+		}
+		return error("请上传文件");
+	}
+	
+	/**
+	 * 删除文件
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除文件", action = "1")
+	@ApiOperation(value = "删除文件", notes = "删除文件")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:file:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysFileService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	
+	/**
+	 * 删除本地文件
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除本地文件", action = "1")
+	@ApiOperation(value = "删除本地文件", notes = "删除本地文件")
+	@PostMapping("/del_file")
+	@ResponseBody
+	public AjaxResult del_file(String ids){
+		int b=sysFileService.deleteBydataFile(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	
+	/**
+	 * 检查文件名字
+	 * @param tsysFile
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TsysFile tsysFile){
+		int b=sysFileService.checkNameUnique(tsysFile);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改文件
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("tsysFile", sysFileService.selectByPrimaryKey(id));
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存文件
+     */
+	//@Log(title = "修改保存文件", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:user:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TsysFile tsysFile,String dataId)
+    {
+        return toAjax(sysFileService.updateByPrimaryKey(tsysFile,dataId));
+    }
+    
+    /**
+     * 展示文件跳转页面
+     */
+	@ApiOperation(value = "展示文件跳转页面", notes = "展示文件跳转页面")
+    @GetMapping("/viewfile/{id}")
+    public String viewfile(@PathVariable("id") String id,ModelMap mmap){
+    	mmap.put("tsysDatas",sysFileDatasService.queryfileID(id));
+        return prefix + "/viewfile";
+    }
+    
+    /**
+     * 此功能为application.yml 下面的isstatic为N 时候需要的
+     * 逻辑为:根据数据库文件存放地址,读取图片流放入到<ima src>里面展示
+     */
+	@ApiOperation(value = "展示文件跳转页面", notes = "展示文件跳转页面")
+    @GetMapping("/viewImg/{id}")
+    public void viewIMG(@PathVariable("id") String id,HttpServletRequest request,HttpServletResponse response){
+    	TsysDatas datas= sysDatasService.selectByPrimaryKey(id);
+    	try {
+			FileUtils.readIMGTohtml(request, response, datas.getFileAbsolutePath());
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+    }
+    
+    
+}

+ 38 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/JsonController.java

@@ -0,0 +1,38 @@
+package com.gyee.frame.controller.admin;
+
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.custom.TitleVo;
+import io.swagger.annotations.Api;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+/**
+ * jsonController 
+ * @ClassName: JsonController
+ * @author gyee
+ * @date 2019-09-21 17:59
+ */
+@Api(value = "Json格式化")
+@Controller
+@RequestMapping("/Json")
+public class JsonController extends BaseController{
+
+	private String prefix = "admin/json";
+
+	/**
+	 * json格式化展示页面
+	 * @param model
+	 * @return
+	 */
+	@GetMapping("/view")
+    public String view(ModelMap model)
+    {	
+		String str="json";
+		setTitle(model, new TitleVo("json格式化", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+}

+ 91 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/LogController.java

@@ -0,0 +1,91 @@
+package com.gyee.frame.controller.admin;
+
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TsysOperLog;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.github.pagehelper.PageInfo;
+
+/**
+ * 日志记录controller
+ * @author gyee
+ * @date: 2018年9月30日 下午9:28:31
+ */
+@Controller
+@Api(value = "日志记录")
+@RequestMapping("/LogController")
+public class LogController extends BaseController{
+
+	//跳转页面参数
+	private String prefix = "admin/log";
+	
+	/**
+	 * 日志记录展示页面
+	 * @param model
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:log:view")
+    public String view(ModelMap model)
+    {	
+		String str="操作日志";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+		
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 文件列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:log:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TsysOperLog> page=sysOperLogService.list(tablepar,searchText) ; 
+		TableSplitResult<TsysOperLog> result=new TableSplitResult<TsysOperLog>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+
+	
+	/**
+	 * 删除日志
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除日志", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:log:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysOperLogService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	
+
+    
+    
+}

+ 268 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/PermissionController.java

@@ -0,0 +1,268 @@
+package com.gyee.frame.controller.admin;
+
+import java.util.List;
+
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TsysPermission;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * 权限Controller
+ * @author gyee
+ * @date: 2018年9月2日 下午8:08:21
+ */
+@Api(value = "权限")
+@Controller
+@RequestMapping("/PermissionController")
+public class PermissionController  extends BaseController{
+	
+	//跳转页面参数
+	private String prefix = "admin/permission";
+	
+	/**
+	 * 权限列表展示
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午3:43:51
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:permission:view")
+    public String view(ModelMap model)
+    {	
+		String str="权限";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 权限列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:permission:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TsysPermission> page= sysPermissionService.list(tablepar, searchText) ;
+		TableSplitResult<TsysPermission> result=new TableSplitResult<TsysPermission>(page.getPageNum(), page.getTotal(), page.getList());
+		return  result;
+	}
+	/**
+	 * 权限列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list2")
+	@ResponseBody
+	public Object list2(Tablepar tablepar,String searchText){
+		List<TsysPermission> page= sysPermissionService.list2(searchText) ;
+		return  page;
+	}
+	/**
+     * 新增权限
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+	
+	
+    /**
+     * 权限添加
+     * @param role
+     * @return
+     */
+	//@Log(title = "权限添加", action = "1")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:permission:add")
+	@ResponseBody
+	public AjaxResult add(TsysPermission role){
+		int b= sysPermissionService.insertSelective(role);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除权限
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除权限", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:permission:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b= sysPermissionService.deleteByPrimaryKey(ids);
+		if(b==1){
+			return success();
+		}else if(b==-1){
+			return error("该权限有子权限,请先删除子权限");
+		}else if(b==-2){
+			return error("该权限绑定了角色,请解除角色绑定");
+		}else {
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查权限
+	 * @param TsysPermission
+	 * @return
+	 */
+	@ApiOperation(value = "检查权限", notes = "检查权限")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TsysPermission TsysPermission){
+		int b= sysPermissionService.checkNameUnique(TsysPermission);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 检查权限URL
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查权限URL", notes = "检查权限URL")
+	@PostMapping("/checkURLUnique")
+	@ResponseBody
+	public int checkURLUnique(TsysPermission tsysPermission){
+		int b= sysPermissionService.checkURLUnique(tsysPermission);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 检查权限perms字段
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查权限perms字段", notes = "检查权限perms字段")
+	@PostMapping("/checkPermsUnique")
+	@ResponseBody
+	public int checkPermsUnique(TsysPermission tsysPermission){
+		int b= sysPermissionService.checkPermsUnique(tsysPermission);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 修改权限
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{roleId}")
+    public String edit(@PathVariable("roleId") String id, ModelMap mmap)
+    {	
+		//获取自己的权限信息
+		TsysPermission mytsysPermission = sysPermissionService.selectByPrimaryKey(id);
+		//获取父权限信息
+		TsysPermission pattsysPermission = sysPermissionService.selectByPrimaryKey(mytsysPermission.getPid());
+        mmap.put("TsysPermission", mytsysPermission);
+        mmap.put("pattsysPermission", pattsysPermission);
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存权限
+     */
+	//@Log(title = "修改保存权限", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:permission:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TsysPermission TsysPermission)
+    {
+        return toAjax(sysPermissionService.updateByPrimaryKey(TsysPermission));
+    }
+    
+    /**
+     * 获取所有的转换成bootstarp的权限数据
+     * @return
+     */
+	@ApiOperation(value = "获取所有的转换成bootstarp的权限数据", notes = "获取所有的转换成bootstarp的权限数据")
+    @GetMapping("/getTreePerm")
+    @ResponseBody
+    public AjaxResult getbooBootstrapTreePerm(){
+    	
+    	return retobject(200, sysPermissionService.getbooBootstrapTreePerm(null));
+    }
+    
+    
+    /**
+     * 根据角色id获取bootstarp 所有打勾权限
+     * @param roleId 角色id集合
+     * @return
+     */
+	@ApiOperation(value = "根据角色id获取bootstarp 所有打勾权限", notes = "根据角色id获取bootstarp 所有打勾权限")
+    @PostMapping("/getCheckPrem")
+    @ResponseBody
+    public AjaxResult getCheckPrem(String roleId){
+    	
+    	return retobject(200, sysPermissionService.getCheckPrem(roleId));
+    }
+    
+    
+    /**
+     * 跳转到菜单树页面
+     * @return
+     */
+	@ApiOperation(value = "跳转到菜单树页面", notes = "跳转到菜单树页面")
+    @GetMapping("/tree")
+    public String Tree(){
+    	 return prefix + "/tree";
+    }
+    
+    /**
+     * 获取菜单树
+     * @param pid 父id【没用到】
+     * @return
+     */
+	@ApiOperation(value = "获取菜单树", notes = "获取菜单树")
+    @PostMapping("/tree/{pid}")
+    @ResponseBody
+    public AjaxResult Tree(@PathVariable("pid") String pid){
+    	return retobject(200, sysPermissionService.getbooBootstrapTreePerm(null));
+    }
+    
+    
+}

+ 261 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/PermissionVueController.java

@@ -0,0 +1,261 @@
+package com.gyee.frame.controller.admin;
+
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TvuePermission;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * VUE权限Controller
+ * @author gyee
+ * @date: 2018年9月2日 下午8:08:21
+ */
+@Api(value = "VUE权限")
+@Controller
+@RequestMapping("/PermissionVueController")
+public class PermissionVueController extends BaseController{
+	
+	//跳转页面参数
+	private String prefix = "admin/permissionvue";
+	
+	/**
+	 * VUE权限列表展示
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午3:43:51
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:permissionvue:view")
+    public String view(ModelMap model)
+    {	
+		String str="VUE权限";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * VUE权限列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:permissionvue:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TvuePermission> page= vuePermissionService.list(tablepar, searchText) ;
+		TableSplitResult<TvuePermission> result=new TableSplitResult<TvuePermission>(page.getPageNum(), page.getTotal(), page.getList());
+		return  result;
+	}
+	/**
+	 * VUE权限列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list2")
+	@ResponseBody
+	public Object list2(Tablepar tablepar,String searchText){
+		List<TvuePermission> page= vuePermissionService.list2(searchText) ;
+		return  page;
+	}
+	/**
+     * 新增VUE权限
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+	
+	
+    /**
+     * VUE权限添加
+     * @param role
+     * @return
+     */
+	//@Log(title = "VUE权限添加", action = "1")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:permissionvue:add")
+	@ResponseBody
+	public AjaxResult add(TvuePermission role){
+		int b= vuePermissionService.insertSelective(role);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除VUE权限
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除VUE权限", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:permissionvue:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b= vuePermissionService.deleteByPrimaryKey(ids);
+		if(b==1){
+			return success();
+		}else if(b==-1){
+			return error("该VUE权限有子VUE权限,请先删除子VUE权限");
+		}else if(b==-2){
+			return error("该VUE权限绑定了角色,请解除角色绑定");
+		}else {
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查VUE权限
+	 * @param TvuePermission
+	 * @return
+	 */
+	@ApiOperation(value = "检查VUE权限", notes = "检查VUE权限")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TvuePermission TvuePermission){
+		int b= vuePermissionService.checkNameUnique(TvuePermission);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 检查VUE权限URL
+	 * @return
+	 */
+	@ApiOperation(value = "检查VUE权限URL", notes = "检查VUE权限URL")
+	@PostMapping("/checkURLUnique")
+	@ResponseBody
+	public int checkURLUnique(TvuePermission tsysPermission){
+		int b= vuePermissionService.checkURLUnique(tsysPermission);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 检查VUE权限perms字段
+	 * @return
+	 */
+	@ApiOperation(value = "检查VUE权限perms字段", notes = "检查VUE权限perms字段")
+	@PostMapping("/checkPermsUnique")
+	@ResponseBody
+	public int checkPermsUnique(TvuePermission tsysPermission){
+		int b= vuePermissionService.checkPermsUnique(tsysPermission);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 修改VUE权限
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{roleId}")
+    public String edit(@PathVariable("roleId") String id, ModelMap mmap)
+    {	
+		//获取自己的VUE权限信息
+		TvuePermission mytsysPermission = vuePermissionService.selectByPrimaryKey(id);
+		//获取父VUE权限信息
+		TvuePermission pattsysPermission = vuePermissionService.selectByPrimaryKey(mytsysPermission.getPid());
+        mmap.put("TvuePermission", mytsysPermission);
+        mmap.put("pattsysPermission", pattsysPermission);
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存VUE权限
+     */
+	//@Log(title = "修改保存VUE权限", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:permissionvue:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TvuePermission TvuePermission)
+    {
+        return toAjax(vuePermissionService.updateByPrimaryKey(TvuePermission));
+    }
+    
+    /**
+     * 获取所有的转换成bootstarp的VUE权限数据
+     * @return
+     */
+	@ApiOperation(value = "获取所有的转换成bootstarp的VUE权限数据", notes = "获取所有的转换成bootstarp的VUE权限数据")
+    @GetMapping("/getTreePerm")
+    @ResponseBody
+    public AjaxResult getbooBootstrapTreePerm(){
+    	
+    	return retobject(200, vuePermissionService.getbooBootstrapTreePerm(null));
+    }
+    
+    
+    /**
+     * 根据角色id获取bootstarp 所有打勾VUE权限
+     * @param roleId 角色id集合
+     * @return
+     */
+	@ApiOperation(value = "根据角色id获取bootstarp 所有打勾VUE权限", notes = "根据角色id获取bootstarp 所有打勾VUE权限")
+    @PostMapping("/getCheckPrem")
+    @ResponseBody
+    public AjaxResult getCheckPrem(String roleId){
+    	
+    	return retobject(200, vuePermissionService.getCheckPrem(roleId));
+    }
+    
+    
+    /**
+     * 跳转到菜单树页面
+     * @return
+     */
+	@ApiOperation(value = "跳转到菜单树页面", notes = "跳转到菜单树页面")
+    @GetMapping("/tree")
+    public String Tree(){
+    	 return prefix + "/tree";
+    }
+    
+    /**
+     * 获取菜单树
+     * @param pid 父id【没用到】
+     * @return
+     */
+	@ApiOperation(value = "获取菜单树", notes = "获取菜单树")
+    @PostMapping("/tree/{pid}")
+    @ResponseBody
+    public AjaxResult Tree(@PathVariable("pid") String pid){
+    	return retobject(200, vuePermissionService.getbooBootstrapTreePerm(null));
+    }
+    
+    
+}

+ 111 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ProvinceLinkageController.java

@@ -0,0 +1,111 @@
+package com.gyee.frame.controller.admin;
+
+import java.util.List;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.auto.SysArea;
+import com.gyee.frame.model.auto.SysAreaExample;
+import com.gyee.frame.model.auto.SysCity;
+import com.gyee.frame.model.auto.SysCityExample;
+import com.gyee.frame.model.auto.SysProvinceExample;
+import com.gyee.frame.model.auto.SysStreet;
+import com.gyee.frame.model.auto.SysStreetExample;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysAreaService;
+import com.gyee.frame.service.SysCityService;
+import com.gyee.frame.service.SysProvinceService;
+import com.gyee.frame.service.SysStreetService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 省份联动controller
+ * @ClassName: ProvinceLinkageController
+ * @author gyee
+ * @date 2019-10-05 11:19
+ */
+@Api(value = "省份联动controller")
+@Controller
+@RequestMapping("/ProvinceLinkageController")
+public class ProvinceLinkageController  extends BaseController{
+	@Resource
+	private SysProvinceService sysProvinceService;
+	@Resource
+	private SysCityService sysCityService;
+	@Resource
+	private SysAreaService sysAreaService;
+	
+	@Resource
+	private SysStreetService sysStreetService;
+	
+	private String prefix = "admin/province";
+	
+	/**
+	 * 分页list页面
+	 * @param model
+	 * @param dictId
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+    public String view(ModelMap model)
+    {	
+		String str="省份联动";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+		model.addAttribute("provinceList",sysProvinceService.selectByExample(new SysProvinceExample()));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 市查询
+	 * @param pid
+	 * @return
+	 */
+	@ApiOperation(value = "市查询", notes = "市查询")
+	@GetMapping("/getCity")
+	@ResponseBody
+	public List<SysCity> getCity(String pid){
+		SysCityExample example=new SysCityExample();
+		example.createCriteria().andProvinceCodeEqualTo(pid);
+		return sysCityService.selectByExample(example);
+		
+	}
+	
+	/**
+	 * 区查询
+	 * @param pid
+	 * @return
+	 */
+	@ApiOperation(value = "区查询", notes = "区查询")
+	@GetMapping("/getArea")
+	@ResponseBody
+	public List<SysArea> getArea(String pid){
+		SysAreaExample example=new SysAreaExample();
+		example.createCriteria().andCityCodeEqualTo(pid);
+		return sysAreaService.selectByExample(example);
+		
+	}
+	
+	/**
+	 * 街道查询
+	 * @param pid
+	 * @return
+	 */
+	@ApiOperation(value = "街道查询", notes = "街道查询")
+	@GetMapping("/getStreet")
+	@ResponseBody
+	public List<SysStreet> getStreet(String pid){
+		SysStreetExample example=new SysStreetExample();
+		example.createCriteria().andAreaCodeEqualTo(pid);
+		return sysStreetService.selectByExample(example);
+		
+	}
+		
+	
+}

+ 42 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/QuartzController.java

@@ -0,0 +1,42 @@
+package com.gyee.frame.controller.admin;
+
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.custom.TitleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+/**
+ * 定时任务表达式工具生成Controller
+ * @ClassName: QuartzController
+ * @author gyee
+ * @date 2019-11-20 22:44
+ */
+@Api(value = "定时任务工具类")
+@Controller
+@RequestMapping("/quartz")
+public class QuartzController extends BaseController{
+
+	private String prefix = "admin/quartz";
+
+	/**
+	 * 定时页面展示
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午3:45:53
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+    public String view(ModelMap model)
+    {	
+		String str="定时器";
+		setTitle(model, new TitleVo("表达式生成", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+}

+ 199 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/QuartzJobController.java

@@ -0,0 +1,199 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.quartz.SchedulerException;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysQuartzJob;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysQuartzJobService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 
+* @ClassName: QuartzJobController
+* @author Jan 橙寂
+* @date 2019-11-20 22:49
+ */
+@Api(value = "定时任务调度表")
+@Controller
+@RequestMapping("/SysQuartzJobController")
+public class QuartzJobController extends BaseController{
+	
+	private String prefix = "admin/sysQuartzJob";
+	@Resource
+	private SysQuartzJobService sysQuartzJobService;
+	
+	/**
+	 * 展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午3:55:01
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysQuartzJob:view")
+    public String view(ModelMap model)
+    {	
+		String str="定时任务调度表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	/**
+	 * 定时任务调度list
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 */
+	//@Log(title = "定时任务调度表集合查询", action = "111")
+	@ApiOperation(value = "定时任务调度list", notes = "定时任务调度list")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysQuartzJob:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysQuartzJob> page=sysQuartzJobService.list(tablepar,searchText) ; 
+		TableSplitResult<SysQuartzJob> result=new TableSplitResult<SysQuartzJob>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 新增跳转页面
+	 * @param modelMap
+	 * @return
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增保存
+     * @param sysQuartzJob
+     * @return
+     * @author gyee
+     * @Date 2019年11月11日 下午4:00:08
+     */
+	//@Log(title = "定时任务调度表新增", action = "111")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysQuartzJob:add")
+	@ResponseBody
+	public AjaxResult add(SysQuartzJob sysQuartzJob){
+		int b=sysQuartzJobService.insertSelective(sysQuartzJob);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "定时任务调度表删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysQuartzJob:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysQuartzJobService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysQuartzJob sysQuartzJob){
+		int b=sysQuartzJobService.checkNameUnique(sysQuartzJob);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("SysQuartzJob", sysQuartzJobService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "定时任务调度表修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysQuartzJob:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysQuartzJob record)
+    {
+        return toAjax(sysQuartzJobService.updateByPrimaryKeySelective(record));
+    }
+
+    /**
+     * 任务调度状态修改
+     */
+	//@Log(title = "任务调度状态修改", action = "1")
+	@ApiOperation(value = "任务调度状态修改", notes = "任务调度状态修改")
+    @PostMapping("/changeStatus")
+    @ResponseBody
+    public AjaxResult changeStatus(SysQuartzJob job) throws SchedulerException
+    {
+    	SysQuartzJob newJob = sysQuartzJobService.selectByPrimaryKey(job.getId());
+        newJob.setStatus(job.getStatus());
+        return toAjax(sysQuartzJobService.changeStatus(newJob));
+    }
+    
+    /**
+     * 任务调度立即执行一次
+     */
+	//@Log(title = "任务调度立即执行一次", action = "1")
+	@ApiOperation(value = "任务调度立即执行一次", notes = "任务调度立即执行一次")
+    @PostMapping("/run")
+    @ResponseBody
+    public AjaxResult run(SysQuartzJob job) throws SchedulerException
+    {
+    	SysQuartzJob newJob = sysQuartzJobService.selectByPrimaryKey(job.getId());
+    	sysQuartzJobService.run(newJob);
+        return success();
+    }
+
+	
+}

+ 116 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/QuartzJobLogController.java

@@ -0,0 +1,116 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysQuartzJobLog;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysQuartzJobLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 定时任务日志Controller
+* @ClassName: QuartzJobLogController
+* @author gyee
+* @date 2019-11-20 22:51
+ */
+@Api(value = "定时任务调度日志表")
+@Controller
+@RequestMapping("/SysQuartzJobLogController")
+public class QuartzJobLogController extends BaseController{
+	
+	private String prefix = "admin/sysQuartzJobLog";
+	@Resource
+	private SysQuartzJobLogService sysQuartzJobLogService;
+	
+	/**
+	 * 展示跳转页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:01:13
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysQuartzJobLog:view")
+    public String view(ModelMap model)
+    {	
+		String str="定时任务调度日志表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 定时任务调度日志list
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:01:26
+	 */
+	//@Log(title = "定时任务调度日志表集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysQuartzJobLog:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysQuartzJobLog> page=sysQuartzJobLogService.list(tablepar,searchText) ; 
+		TableSplitResult<SysQuartzJobLog> result=new TableSplitResult<SysQuartzJobLog>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 查看详情
+	 * @param modelMap
+	 * @return
+	 * @author gyee
+	 * @Date 2019年9月14日 下午11:50:42
+	 */
+	 @ApiOperation(value = "查看详情", notes = "查看详情")
+	 @GetMapping("/detail/{id}")
+     public String detail(@PathVariable("id") String id,ModelMap modelMap)
+     {
+		SysQuartzJobLog log= sysQuartzJobLogService.selectByPrimaryKey(id);
+		modelMap.put("SysQuartzJobLog", log);
+        return prefix + "/detail";
+     }
+	 
+
+	
+	/**
+	 * 定时任务日志删除
+	 * @param ids id集合
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月20日 下午10:51:52
+	 */
+	//@Log(title = "定时任务调度日志表删除", action = "111")
+	@ApiOperation(value = "定时任务日志删除", notes = "定时任务日志删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysQuartzJobLog:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysQuartzJobLogService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+    
+    
+
+	
+}

+ 175 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/RoleController.java

@@ -0,0 +1,175 @@
+package com.gyee.frame.controller.admin;
+
+import javax.servlet.http.HttpServletRequest;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TsysRole;
+import com.gyee.frame.model.custom.BootstrapTree;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.shiro.util.ShiroUtils;
+import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+
+/**
+ * 角色Controller
+ * @author gyee
+ * @date: 2018年9月2日 下午8:08:21
+ */
+@Api(value = "用户角色")
+@Controller
+@RequestMapping("/RoleController")
+public class RoleController extends BaseController{
+	
+	
+	//跳转页面参数
+	private String prefix = "admin/role";
+	
+	/**
+	 * 展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:01:58
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:role:view")
+    public String view(ModelMap model)
+    {	
+		String str="角色";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 角色列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:user:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TsysRole> page=sysRoleService.list(tablepar,searchText) ; 
+		TableSplitResult<TsysRole> result=new TableSplitResult<TsysRole>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+     * 新增角色
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+	
+	
+    /**
+     * 角色添加
+     * @param role
+     * @return
+     */
+	//@Log(title = "角色添加", action = "1")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:user:add")
+	@ResponseBody
+	public AjaxResult add(TsysRole role,String prem){
+		int b=sysRoleService.insertRoleAndPrem(role,prem);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除角色
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除角色", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:user:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysRoleService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查角色
+	 * @param TsysRole
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TsysRole tsysRole){
+		int b=sysRoleService.checkNameUnique(tsysRole);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改角色
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{roleId}")
+    public String edit(@PathVariable("roleId") String id, ModelMap mmap)
+    {
+        mmap.put("TsysRole", sysRoleService.selectByPrimaryKey(id));
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存角色
+     */
+	//@Log(title = "修改保存角色", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:user:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TsysRole tsysRole,String prem,HttpServletRequest request)
+    {
+    	int i=sysRoleService.updateRoleAndPrem(tsysRole,prem);
+    	if(i>0) {
+    		//大于0刷新权限
+    		ShiroUtils.clearCachedAuthorizationInfo();
+    		//获取菜单栏
+        	BootstrapTree bootstrapTree= sysPermissionService.getbooBootstrapTreePerm(ShiroUtils.getUserId());
+        	request.getSession().setAttribute("bootstrapTree", bootstrapTree);
+    	}
+		
+        return toAjax(i);
+    }
+}

+ 170 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/RoleVueController.java

@@ -0,0 +1,170 @@
+package com.gyee.frame.controller.admin;
+
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.TvueRole;
+import com.gyee.frame.model.custom.BootstrapTree;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.shiro.util.ShiroUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+/**
+ * 角色Controller
+ * @author gyee
+ * @date: 2018年9月2日 下午8:08:21
+ */
+@Api(value = "用户角色")
+@Controller
+@RequestMapping("/RoleVueController")
+public class RoleVueController extends BaseController{
+	
+	
+	//跳转页面参数
+	private String prefix = "admin/rolevue";
+	
+	/**
+	 * 展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:01:58
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:rolevue:view")
+    public String view(ModelMap model)
+    {	
+		String str="VUE角色";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 角色列表
+	 * @param tablepar
+	 * @param searchText 搜索字符
+	 * @return
+	 */
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:rolevue:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TvueRole> page=vueRoleService.list(tablepar,searchText) ; 
+		TableSplitResult<TvueRole> result=new TableSplitResult<TvueRole>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+     * 新增角色
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+	
+	
+    /**
+     * 角色添加
+     * @param rolevue
+     * @return
+     */
+	//@Log(title = "角色添加", action = "1")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:rolevue:add")
+	@ResponseBody
+	public AjaxResult add(TvueRole rolevue,String prem){
+		int b=vueRoleService.insertRoleAndPrem(rolevue,prem);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除角色
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除角色", action = "1")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:rolevue:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=vueRoleService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查角色
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(TvueRole tsysRole){
+		int b=vueRoleService.checkNameUnique(tsysRole);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改角色
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{roleId}")
+    public String edit(@PathVariable("roleId") String id, ModelMap mmap)
+    {
+        mmap.put("TvueRole", vueRoleService.selectByPrimaryKey(id));
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存角色
+     */
+	//@Log(title = "修改保存角色", action = "1")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("system:rolevue:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TvueRole tsysRole,String prem,HttpServletRequest request)
+    {
+    	int i=vueRoleService.updateRoleAndPrem(tsysRole,prem);
+    	if(i>0) {
+    		//大于0刷新权限
+    		ShiroUtils.clearCachedAuthorizationInfo();
+    		//获取菜单栏
+        	BootstrapTree bootstrapTree= sysPermissionService.getbooBootstrapTreePerm(ShiroUtils.getUserId());
+        	request.getSession().setAttribute("bootstrapTree", bootstrapTree);
+    	}
+		
+        return toAjax(i);
+    }
+}

+ 47 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ServiceController.java

@@ -0,0 +1,47 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.custom.Service;
+import com.gyee.frame.model.custom.TitleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 服务器信息Controller
+ * @ClassName: ServiceController
+ * @author gyee
+ * @date 2019-06-23 00:55
+ * @version V1.0
+ */
+@Api(value = "服务器信息")
+@Controller
+@RequestMapping("/ServiceController")
+public class ServiceController extends BaseController{
+
+	//跳转页面参数
+	private String prefix = "admin/service";
+	
+	/**
+	 * 展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:04:03
+	 */
+	@ApiOperation(value = "展示页面", notes = "展示页面")
+	@GetMapping("/view")
+	@RequiresPermissions("system:service:view")
+    public String view(ModelMap model)
+    {	
+		
+		String str="服务器";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+		model.addAttribute("service", new Service());
+        return prefix + "/list";
+    }
+}

+ 46 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SwaggerController.java

@@ -0,0 +1,46 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.custom.TitleVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * SwaggerController
+ * @ClassName: SwaggerController
+ * @author gyee
+ * @date 2019-11-20 22:34
+ */
+@Api(value = "Api接口文档")
+@Controller
+@RequestMapping("/SwaggerController")
+public class SwaggerController  extends BaseController{
+
+	//跳转页面参数
+	private String prefix = "admin/swagger";
+	
+	/**
+	 * 展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:04:20
+	 */
+	@ApiOperation(value = "展示页面", notes = "展示页面")
+	@GetMapping("/view")
+	@RequiresPermissions("system:swagger:view")
+    public String view(ModelMap model)
+    {	
+		String str="API文档";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+
+	
+
+}

+ 174 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysAreaController.java

@@ -0,0 +1,174 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysArea;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysAreaService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 地区Controller
+ * @ClassName: SysAreaController
+ * @author gyee
+ * @date 2019-11-20 22:34
+ */
+@Api(value = "地区设置")
+@Controller
+@RequestMapping("/SysAreaController")
+public class SysAreaController extends BaseController{
+	
+	private String prefix = "admin/province/sysArea";
+	@Resource
+	private SysAreaService sysAreaService;
+	
+	/**
+	 * 地区页面展示
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:05:04
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysArea:view")
+    public String view(ModelMap model)
+    {	
+		String str="地区设置";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * list集合
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:04:53
+	 */
+	//@Log(title = "地区设置集合查询", action = "111")
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysArea:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysArea> page=sysAreaService.list(tablepar,searchText) ; 
+		TableSplitResult<SysArea> result=new TableSplitResult<SysArea>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+     * 新增跳转
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增保存
+     * @param sysArea
+     * @return
+     * @author gyee
+     * @Date 2019年11月11日 下午4:04:41
+     */
+	//@Log(title = "地区设置新增", action = "111")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysArea:add")
+	@ResponseBody
+	public AjaxResult add(SysArea sysArea){
+		int b=sysAreaService.insertSelective(sysArea);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 地区设置删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "地区设置删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysArea:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysAreaService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param SysArea
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysArea sysArea){
+		int b=sysAreaService.checkNameUnique(sysArea);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Integer id, ModelMap mmap)
+    {
+        mmap.put("SysArea", sysAreaService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "地区设置修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysArea:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysArea record)
+    {
+        return toAjax(sysAreaService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    
+
+	
+}

+ 170 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysCityController.java

@@ -0,0 +1,170 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysCity;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysCityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 城市Controller
+ * @ClassName: SysCityController
+ * @author gyee
+ * @date 2019-11-20 22:31
+ */
+@Api(value = "城市设置")
+@Controller
+@RequestMapping("/SysCityController")
+public class SysCityController extends BaseController{
+	
+	private String prefix = "admin/province/sysCity";
+	@Resource
+	private SysCityService sysCityService;
+	
+	/**
+	 * 城市设置展示跳转
+	 * 
+	 * @param model
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysCity:view")
+    public String view(ModelMap model)
+    {	
+		String str="城市设置";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 城市设置list
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 */
+	//@Log(title = "城市设置集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysCity:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysCity> page=sysCityService.list(tablepar,searchText) ; 
+		TableSplitResult<SysCity> result=new TableSplitResult<SysCity>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	/**
+	 * 新增保存
+	 * @param sysCity
+	 * @return
+	 */
+	//@Log(title = "城市设置新增", action = "111")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysCity:add")
+	@ResponseBody
+	public AjaxResult add(SysCity sysCity){
+		int b=sysCityService.insertSelective(sysCity);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "城市设置删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysCity:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysCityService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysCity sysCity){
+		int b=sysCityService.checkNameUnique(sysCity);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Integer id, ModelMap mmap)
+    {
+        mmap.put("SysCity", sysCityService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "城市设置修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysCity:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysCity record)
+    {
+        return toAjax(sysCityService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    
+
+	
+}

+ 218 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysDepartmentController.java

@@ -0,0 +1,218 @@
+package com.gyee.frame.controller.admin;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysDepartment;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysDepartmentService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(value = "部门表")
+@Controller
+@RequestMapping("/SysDepartmentController")
+public class SysDepartmentController extends BaseController{
+	
+	private String prefix = "admin/sysDepartment";
+	@Resource
+	private SysDepartmentService sysDepartmentService;
+	
+	/**
+	 * 分页跳转
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2020年4月18日 下午11:48:55
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysDepartment:view")
+    public String view(ModelMap model)
+    {	
+		String str="部门表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 分页查询
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2020年4月18日 下午11:48:34
+	 */
+	//@Log(title = "部门表集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysDepartment:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysDepartment> page=sysDepartmentService.list(tablepar,searchText) ; 
+		TableSplitResult<SysDepartment> result=new TableSplitResult<SysDepartment>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	@ApiOperation(value = "分页查询2", notes = "分页查询2")
+	@PostMapping("/list2")
+	@ResponseBody
+	public Object list2(Tablepar tablepar,String searchText){
+		List<SysDepartment> page= sysDepartmentService.list2(searchText) ;
+		return  page;
+	}
+	
+	/**
+     * 新增
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增
+     * @param sysDepartment
+     * @return
+     * @author gyee
+     * @Date 2020年4月18日 下午11:47:51
+     */
+	//@Log(title = "部门表新增", action = "111")
+    @ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysDepartment:add")
+	@ResponseBody
+	public AjaxResult add(SysDepartment sysDepartment){
+		int b=sysDepartmentService.insertSelective(sysDepartment);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "部门表删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysDepartment:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysDepartmentService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查用户
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysDepartment sysDepartment){
+		int b=sysDepartmentService.checkNameUnique(sysDepartment);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+		//获取自己的权限信息
+		SysDepartment mytsysPermission = sysDepartmentService.selectByPrimaryKey(id);
+		//获取父权限信息
+		SysDepartment department = sysDepartmentService.selectByPrimaryKey(mytsysPermission.getParentId());
+		if(department==null) {
+			department=new SysDepartment(1, "", "顶级菜单", "", "", "", 0, 1, 1);
+		}
+        mmap.put("SysDepartment", mytsysPermission);
+        mmap.put("perSysDepartment", department);
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "部门表修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysDepartment:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysDepartment record)
+    {
+        return toAjax(sysDepartmentService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    /**
+   	 * 根据主键查询
+   	 * 
+   	 * @param id
+   	 * @param mmap
+   	 * @return
+   	 */
+   	@PostMapping("/get/{id}")
+   	@ApiOperation(value = "根据id查询唯一", notes = "根据id查询唯一")
+   	public SysDepartment edit(@PathVariable("id") String id) {
+   		return sysDepartmentService.selectByPrimaryKey(id);
+   	}
+    
+   	
+   	/**
+     * 跳转到菜单树页面
+     * @return
+     */
+   	@ApiOperation(value = "跳转到菜单树页面", notes = "跳转到菜单树页面")
+    @GetMapping("/tree")
+    public String Tree(){
+    	 return prefix + "/tree";
+    }
+    
+    /**
+     * 获取菜单树
+     * @param pid 父id【没用到】
+     * @return
+     */
+    @ApiOperation(value = "获取菜单树", notes = "获取菜单树")
+    @PostMapping("/tree/{pid}")
+    @ResponseBody
+    public AjaxResult Tree(@PathVariable("pid") String pid){
+    	return retobject(200, sysDepartmentService.getbooBootstrapTreePerm());
+    }
+
+	
+}

+ 231 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysNoticeController.java

@@ -0,0 +1,231 @@
+ package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysNotice;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysNoticeService;
+import com.gyee.frame.shiro.util.ShiroUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 公告Controller
+ * @ClassName: SysNoticeController
+ * @author gyee
+ * @date 2019-11-20 22:31
+ */
+@Api(value = "公告")
+@Controller
+@RequestMapping("/SysNoticeController")
+public class SysNoticeController extends BaseController{
+	
+	private String prefix = "admin/sysNotice";
+	@Resource
+	private SysNoticeService sysNoticeService;
+	
+	
+	/**
+	 * 展示页面跳转
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:09:24
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysNotice:view")
+    public String view(ModelMap model)
+    {	
+		String str="公告";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	/**
+	 * list页面
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:09:35
+	 */
+	//@Log(title = "公告集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysNotice:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysNotice> page=sysNoticeService.list(tablepar,searchText) ; 
+		TableSplitResult<SysNotice> result=new TableSplitResult<SysNotice>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	
+	/**
+	 * 对应的用户的展示页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:09:42
+	 */
+	@ApiOperation(value = "对应的用户的展示页面", notes = "对应的用户的展示页面")
+	@GetMapping("/viewUser")
+    public String viewUser(ModelMap model)
+    {	
+		String str="公告";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list_view";
+    }
+	/**
+	 * 根据公告id查询跳转到公告详情页面
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "table根据公告id查询跳转到公告详情页面", notes = "table根据公告id查询跳转到公告详情页面")
+	@PostMapping("/viewUserlist")
+	@ResponseBody
+    public Object viewUserlist(Tablepar tablepar,String searchText)
+    {
+        
+		PageInfo<SysNotice> page=sysNoticeService.list(ShiroUtils.getUser(), tablepar, searchText);
+		TableSplitResult<SysNotice> result=new TableSplitResult<SysNotice>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+    }
+	
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	/**
+	 * 新增保存
+	 * @param sysNotice
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:07:09
+	 */
+	//@Log(title = "公告新增", action = "111")
+    @ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysNotice:add")
+	@ResponseBody
+	public AjaxResult add(SysNotice sysNotice){
+		int b=sysNoticeService.insertSelective(sysNotice);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 **/
+	//@Log(title = "公告删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysNotice:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysNoticeService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysNotice sysNotice){
+		int b=sysNoticeService.checkNameUnique(sysNotice);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	/**
+	 * 根据公告id查询跳转到公告详情页面
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	//@Log(title = "字典数据表删除", action = "1")
+	@ApiOperation(value = "根据公告id查询跳转到公告详情页面", notes = " 根据公告id查询跳转到公告详情页面")
+	@GetMapping("/viewinfo/{id}")
+    public String viewinfo(@PathVariable("id") String id,ModelMap mmap)
+    {
+        
+		String str="公告";
+		setTitle(mmap, new TitleVo("详情", str+"列表", true,"欢迎进入"+str+"详情页面", true, false));
+		SysNotice notice= sysNoticeService.selectByPrimaryKey(id);
+		mmap.addAttribute("notice", notice);
+		//把推送给该用户的公告设置为已读
+		sysNoticeService.editUserState(id);
+        return prefix + "/view";
+    }
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("SysNotice", sysNoticeService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "公告修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysNotice:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysNotice record)
+    {
+        return toAjax(sysNoticeService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    
+
+	
+}

+ 167 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysPositionController.java

@@ -0,0 +1,167 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysPosition;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysPositionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Controller
+@RequestMapping("/SysPositionController")
+@Api(value = "岗位表")
+public class SysPositionController extends BaseController{
+	
+	private String prefix = "admin/sysPosition";
+	@Resource
+	private SysPositionService sysPositionService;
+	
+	/**
+	 * list展示
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysPosition:view")
+    public String view(ModelMap model)
+    {	
+		String str="岗位表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * 分页集合
+	 */
+	//@Log(title = "岗位表集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysPosition:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysPosition> page=sysPositionService.list(tablepar,searchText) ; 
+		TableSplitResult<SysPosition> result=new TableSplitResult<SysPosition>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+     * 新增跳转
+     */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增
+     */
+	//@Log(title = "岗位表新增", action = "111")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("add")
+	@RequiresPermissions("gen:sysPosition:add")
+	@ResponseBody
+	public AjaxResult add(SysPosition sysPosition){
+		int b=sysPositionService.insertSelective(sysPosition);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除用户
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "岗位表删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysPosition:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysPositionService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查用户
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysPosition sysPosition){
+		int b=sysPositionService.checkNameUnique(sysPosition);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("SysPosition", sysPositionService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "岗位表修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysPosition:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysPosition record)
+    {
+        return toAjax(sysPositionService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    /**
+   	 * 根据主键查询
+   	 * 
+   	 * @param id
+   	 * @param mmap
+   	 * @return
+   	 */
+   	@PostMapping("/get/{id}")
+   	@ApiOperation(value = "根据id查询唯一", notes = "根据id查询唯一")
+   	public SysPosition edit(@PathVariable("id") String id) {
+   		return sysPositionService.selectByPrimaryKey(id);
+   	}
+    
+
+	
+}

+ 175 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysProvinceController.java

@@ -0,0 +1,175 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysProvince;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysProvinceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 省份Controller
+ * @ClassName: SysProvinceController
+ * @author gyee
+ * @date 2019-11-20 22:32
+ */
+@Api(value = "省份表")
+@Controller
+@RequestMapping("/SysProvinceController")
+public class SysProvinceController extends BaseController{
+	
+	private String prefix = "admin/province/sysProvince";
+	@Resource
+	private SysProvinceService sysProvinceService;
+	/**
+	 * 展示页面跳转
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:10:48
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysProvince:view")
+    public String view(ModelMap model)
+    {	
+		String str="省份表";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	/**
+	 *list查询
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:10:39
+	 */
+	//@Log(title = "省份表集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysProvince:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysProvince> page=sysProvinceService.list(tablepar,searchText) ; 
+		TableSplitResult<SysProvince> result=new TableSplitResult<SysProvince>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:10:20
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+    
+	/**
+	 * 新增保存
+	 * @param sysProvince
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:10:26
+	 */
+	//@Log(title = "省份表新增", action = "111")
+    @ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysProvince:add")
+	@ResponseBody
+	public AjaxResult add(SysProvince sysProvince){
+		int b=sysProvinceService.insertSelective(sysProvince);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "省份表删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysProvince:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysProvinceService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysProvince sysProvince){
+		int b=sysProvinceService.checkNameUnique(sysProvince);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Integer id, ModelMap mmap)
+    {
+        mmap.put("SysProvince", sysProvinceService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "省份表修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysProvince:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysProvince record)
+    {
+        return toAjax(sysProvinceService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    
+
+	
+}

+ 173 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/SysStreetController.java

@@ -0,0 +1,173 @@
+package com.gyee.frame.controller.admin;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.SysStreet;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysStreetService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 街道Controller
+ * @ClassName: SysStreetController
+ * @author gyee
+ * @date 2019-11-20 22:32
+ */
+@Api(value = "街道设置")
+@Controller
+@RequestMapping("/SysStreetController")
+public class SysStreetController extends BaseController{
+	
+	private String prefix = "admin/province/sysStreet";
+	@Resource
+	private SysStreetService sysStreetService;
+	
+	/**
+	 * 展示跳转
+	 * @param model
+	 * @return
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("gen:sysStreet:view")
+    public String view(ModelMap model)
+    {	
+		String str="街道设置";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	/**
+	 * list查询
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 */
+	//@Log(title = "街道设置集合查询", action = "111")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("gen:sysStreet:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<SysStreet> page=sysStreetService.list(tablepar,searchText) ; 
+		TableSplitResult<SysStreet> result=new TableSplitResult<SysStreet>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+    /**
+     * 新增保存
+     * @param sysStreet
+     * @return
+     * @author gyee
+     * @Date 2019年11月11日 下午4:13:37
+     */
+	//@Log(title = "街道设置新增", action = "111")
+	@ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("gen:sysStreet:add")
+	@ResponseBody
+	public AjaxResult add(SysStreet sysStreet){
+		int b=sysStreetService.insertSelective(sysStreet);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "街道设置删除", action = "111")
+	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("gen:sysStreet:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysStreetService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(SysStreet sysStreet){
+		int b=sysStreetService.checkNameUnique(sysStreet);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("SysStreet", sysStreetService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	/**
+	 * 修改保存
+	 * @param record
+	 * @return
+	 */
+    //@Log(title = "街道设置修改", action = "111")
+	@ApiOperation(value = "修改保存", notes = "修改保存")
+    @RequiresPermissions("gen:sysStreet:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(SysStreet record)
+    {
+        return toAjax(sysStreetService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    
+
+	
+}

+ 39 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/TestController.java

@@ -0,0 +1,39 @@
+package com.gyee.frame.controller.admin;
+
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.model.auto.SysArea;
+import com.gyee.frame.model.auto.SysAreaExample;
+import com.gyee.frame.model.auto.SysCity;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.service.SysAreaService;
+import com.gyee.frame.service.SysCityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+@Api(value = "区域")
+@Controller
+@RequestMapping("/gyee-query/area")
+public class TestController {
+    @Resource
+    private SysAreaService sysAreaService;
+
+    @ApiOperation(value = "列表", notes = "区域列表")
+    @GetMapping("/list")
+    @ResponseBody
+    public Object list(Tablepar tablepar, String searchText){
+
+        SysAreaExample testExample=new SysAreaExample();
+        List<SysArea> result=sysAreaService.selectByExample(testExample);
+        return  result;
+    }
+}

+ 39 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/ToolController.java

@@ -0,0 +1,39 @@
+package com.gyee.frame.controller.admin;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.custom.TitleVo;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 表单构建Controller
+ * @ClassName: ToolController
+ * @author gyee
+ * @date 2019-11-20 22:32
+ */
+@Api(value = "表单构建工具类")
+@Controller
+@RequestMapping("/ToolController")
+public class ToolController  extends BaseController{
+
+	//跳转页面参数
+	private String prefix = "admin/tool";
+	
+	
+	@ApiOperation(value = "表单构建工具类", notes = "表单构建工具类")
+	@GetMapping("/view")
+    public String view(ModelMap model)
+    {	
+		
+		String str="工具";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+			
+}

+ 83 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/UeditorController.java

@@ -0,0 +1,83 @@
+package com.gyee.frame.controller.admin;
+
+import java.io.IOException;
+import javax.servlet.http.HttpServletRequest;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.model.auto.TsysDatas;
+import com.gyee.frame.model.custom.PublicMsg;
+import com.gyee.frame.model.custom.Ueditor;
+import com.gyee.frame.service.UeditorService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 百度Controller
+ * 
+ * @ClassName: UeditorController
+ * @author gyee
+ * @date 2019-11-20 22:34
+ */
+@Api(value = "百度编辑器")
+@Controller
+@RequestMapping("/UeditorController")
+public class UeditorController extends BaseController {
+	@Resource
+	private UeditorService ueditorService;
+
+	@ApiOperation(value = "百度编辑器配置", notes = "百度编辑器配置")
+	@RequestMapping("/ueditor")
+	@ResponseBody
+	public Object ueditor(HttpServletRequest request, String action, MultipartFile upfile) {
+		if ("config".equals(action)) {
+			return PublicMsg.UEDITOR_CONFIG;
+		}
+		if ("uploadimage".equals(action) || "uploadvideo".equals(action) ) {// 图片-视频(音频)上传
+
+			try {
+				// 添加文件到本地
+				TsysDatas tsysDatas = ueditorService.fileDataByinsert(upfile);
+				// 添加文件信息
+				ueditorService.fileInfoByininsert(tsysDatas.getId());
+				String url2 = request.getScheme() + "://" + request.getServerName() + ":" + request.getLocalPort()
+						+ request.getContextPath() + "/" + tsysDatas.getFilePath();
+				Ueditor ueditor = new Ueditor("SUCCESS", url2, "ssss", "");
+				return ueditor;
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+
+			return null;
+		}
+		return PublicMsg.UeditorMsg.ERROR.get();
+	}
+
+	// @Log(title = "图片上传", action = "1")
+	@ApiOperation(value = "图片上传", notes = "分页查询")
+	@RequestMapping(value = "/imgUpload")
+	@ResponseBody
+	public Ueditor imgUpload(MultipartFile upfile) {
+		Ueditor ueditor = new Ueditor();
+		return ueditor;
+	}
+
+	public String updateAvatar(MultipartFile file) {
+		try {
+			if (!file.isEmpty()) {
+				// 插入文件存储表
+				String id = sysDatasService.insertSelective(file);
+				if (id != null) {
+					return id;
+				}
+			}
+			return null;
+		} catch (Exception e) {
+			return null;
+		}
+	}
+
+}

+ 239 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/UserController.java

@@ -0,0 +1,239 @@
+package com.gyee.frame.controller.admin;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.common.log.Log;
+import com.gyee.frame.model.auto.SysDepartment;
+import com.gyee.frame.model.auto.SysDepartmentExample;
+import com.gyee.frame.model.auto.SysPosition;
+import com.gyee.frame.model.auto.SysPositionExample;
+import com.gyee.frame.model.auto.TsysRole;
+import com.gyee.frame.model.auto.TsysUser;
+import com.gyee.frame.model.custom.RoleVo;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysDepartmentService;
+import com.gyee.frame.service.SysPositionService;
+import com.github.pagehelper.PageInfo;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 用户Controller
+ * @ClassName: UserController
+ * @author gyee
+ * @date 2019-11-20 22:35
+ */
+@Api(value = "用户数据")
+@Controller
+@RequestMapping("/UserController")
+public class UserController extends BaseController{
+	
+	private String prefix = "admin/user";
+	//部门
+	@Resource
+	private SysDepartmentService departmentService;
+	//岗位
+	@Resource
+	private SysPositionService positionService;
+	
+	/**
+	 * 展示跳转页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:34
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:user:view")
+    public String view(ModelMap model)
+    {	
+		String str="用户";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	
+	/**
+	 * list集合
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:40
+	 */
+	//@Log(title = "分页查询", action = "1")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:user:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TsysUser> page=sysUserService.list(tablepar,searchText) ; 
+		TableSplitResult<TsysUser> result=new TableSplitResult<TsysUser>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:51
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+    	//添加角色列表
+		List<TsysRole> tsysRoleList=sysRoleService.queryList();
+		//部门列表
+		List<SysDepartment> departments=departmentService.selectByExample(new SysDepartmentExample());
+		//岗位列表
+		List<SysPosition> sysPositions=positionService.selectByExample(new SysPositionExample());
+		//角色
+		modelMap.put("tsysRoleList",tsysRoleList);
+		//部门
+		modelMap.put("departmentsList",departments);
+		//岗位
+		modelMap.put("sysPositionsList",sysPositions);
+        return prefix + "/add";
+    }
+	/**
+	 * 新增保存
+	 * @param user
+	 * @param model
+	 * @param roles
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:57
+	 */
+    @Log(title = "用户新增", action = "111")
+    @ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:user:add")
+	@ResponseBody
+	public AjaxResult add(TsysUser user,Model model,@RequestParam(value="roles", required = false)List<String> roles){
+		int b=sysUserService.insertUserRoles(user,roles);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除用户
+	 * @param ids
+	 * @return
+	 */
+    //@Log(title = "删除用户", action = "1")
+  	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:user:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=sysUserService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查用户
+	 * @param tsysUser
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkLoginNameUnique")
+	@ResponseBody
+	public int checkLoginNameUnique(TsysUser tsysUser){
+		int b=sysUserService.checkLoginNameUnique(tsysUser);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改用户跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+		//查询所有角色
+		List<RoleVo> roleVos=sysUserService.getUserIsRole(id);
+		//岗位列表
+		List<SysPosition> sysPositions=positionService.selectByExample(new SysPositionExample());
+		mmap.put("roleVos",roleVos);
+        mmap.put("TsysUser", sysUserService.selectByPrimaryKey(id));
+        //岗位
+        mmap.put("sysPositionsList",sysPositions);
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存用户
+     */
+	//@Log(title = "修改保存用户", action = "1")
+    @ApiOperation(value = "修改保存用户", notes = "修改保存用户")
+    @RequiresPermissions("system:user:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TsysUser tsysUser,@RequestParam(value="roles", required = false)List<String> roles)
+    {
+        return toAjax(sysUserService.updateUserRoles(tsysUser,roles));
+    }
+
+    
+    
+    /**
+	 * 修改用户密码跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+    //@Log(title = "修改用户密码", action = "1")
+    @ApiOperation(value = "修改用户密码跳转", notes = "修改用户密码跳转")
+	@GetMapping("/editPwd/{id}")
+    public String editPwd(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("TsysUser", sysUserService.selectByPrimaryKey(id));
+        return prefix + "/editPwd";
+    }
+	/**
+     * 修改保存用户
+     */
+    //@Log(title = "修改用户密码", action = "1")
+    @ApiOperation(value = "修改用户密码", notes = "修改用户密码")
+    @RequiresPermissions("system:user:editPwd")
+    @PostMapping("/editPwd")
+    @ResponseBody
+    public AjaxResult editPwdSave(TsysUser tsysUser)
+    {
+        return toAjax(sysUserService.updateUserPassword(tsysUser));
+    }
+
+	
+}

+ 229 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/controller/admin/UserVueController.java

@@ -0,0 +1,229 @@
+package com.gyee.frame.controller.admin;
+
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.common.log.Log;
+import com.gyee.frame.model.auto.*;
+import com.gyee.frame.model.custom.RoleVo;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.SysDepartmentService;
+import com.gyee.frame.service.SysPositionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 用户Controller
+ * @ClassName: UserVueController
+ * @author gyee
+ * @date 2019-11-20 22:35
+ */
+@Api(value = "用户数据")
+@Controller
+@RequestMapping("/UserVueController")
+public class UserVueController extends BaseController{
+	
+	private String prefix = "admin/uservue";
+	//部门
+	@Resource
+	private SysDepartmentService departmentService;
+	//岗位
+	@Resource
+	private SysPositionService positionService;
+	
+	/**
+	 * 展示跳转页面
+	 * @param model
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:34
+	 */
+	@ApiOperation(value = "分页跳转", notes = "分页跳转")
+	@GetMapping("/view")
+	@RequiresPermissions("system:uservue:view")
+    public String view(ModelMap model)
+    {	
+		String str="VUE用户";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	
+	/**
+	 * list集合
+	 * @param tablepar
+	 * @param searchText
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:40
+	 */
+	//@Log(title = "分页查询", action = "1")
+	@ApiOperation(value = "分页查询", notes = "分页查询")
+	@PostMapping("/list")
+	@RequiresPermissions("system:uservue:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<TvueUser> page=vueUserService.list(tablepar,searchText) ; 
+		TableSplitResult<TvueUser> result=new TableSplitResult<TvueUser>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	/**
+	 * 新增跳转
+	 * @param modelMap
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:51
+	 */
+	@ApiOperation(value = "新增跳转", notes = "新增跳转")
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+    	//添加角色列表
+		List<TsysRole> tsysRoleList=sysRoleService.queryList();
+		//部门列表
+		List<SysDepartment> departments=departmentService.selectByExample(new SysDepartmentExample());
+		//岗位列表
+		List<SysPosition> sysPositions=positionService.selectByExample(new SysPositionExample());
+		//角色
+		modelMap.put("tsysRoleList",tsysRoleList);
+		//部门
+		modelMap.put("departmentsList",departments);
+		//岗位
+		modelMap.put("sysPositionsList",sysPositions);
+        return prefix + "/add";
+    }
+	/**
+	 * 新增保存
+	 * @param uservue
+	 * @param model
+	 * @param roles
+	 * @return
+	 * @author gyee
+	 * @Date 2019年11月11日 下午4:14:57
+	 */
+    @Log(title = "用户新增", action = "111")
+    @ApiOperation(value = "新增", notes = "新增")
+	@PostMapping("/add")
+	@RequiresPermissions("system:uservue:add")
+	@ResponseBody
+	public AjaxResult add(TvueUser uservue,Model model,@RequestParam(value="roles", required = false)List<String> roles){
+		int b=vueUserService.insertUserVueRoles(uservue,roles);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除用户
+	 * @param ids
+	 * @return
+	 */
+    //@Log(title = "删除用户", action = "1")
+  	@ApiOperation(value = "删除", notes = "删除")
+	@PostMapping("/remove")
+	@RequiresPermissions("system:uservue:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=vueUserService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查用户
+	 * @param tsysUserVue
+	 * @return
+	 */
+	@ApiOperation(value = "检查Name唯一", notes = "检查Name唯一")
+	@PostMapping("/checkLoginNameUnique")
+	@ResponseBody
+	public int checkLoginNameUnique(TvueUser tsysUserVue){
+		int b=vueUserService.checkLoginNameUnique(tsysUserVue);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改用户跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@ApiOperation(value = "修改跳转", notes = "修改跳转")
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+		//查询所有角色
+		List<RoleVo> roleVos=vueUserService.getUserVueIsRole(id);
+		//岗位列表
+		List<SysPosition> sysPositions=positionService.selectByExample(new SysPositionExample());
+		mmap.put("roleVos",roleVos);
+        mmap.put("TvueUser", vueUserService.selectByPrimaryKey(id));
+        //岗位
+        mmap.put("sysPositionsList",sysPositions);
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存用户
+     */
+	//@Log(title = "修改保存用户", action = "1")
+    @ApiOperation(value = "修改保存用户", notes = "修改保存用户")
+    @RequiresPermissions("system:uservue:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(TvueUser tsysUserVue,@RequestParam(value="roles", required = false)List<String> roles)
+    {
+        return toAjax(vueUserService.updateUserVueRoles(tsysUserVue,roles));
+    }
+
+    
+    
+    /**
+	 * 修改用户密码跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+    //@Log(title = "修改用户密码", action = "1")
+    @ApiOperation(value = "修改用户密码跳转", notes = "修改用户密码跳转")
+	@GetMapping("/editPwd/{id}")
+    public String editPwd(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("TvueUser", vueUserService.selectByPrimaryKey(id));
+        return prefix + "/editPwd";
+    }
+	/**
+     * 修改保存用户
+     */
+    //@Log(title = "修改用户密码", action = "1")
+    @ApiOperation(value = "修改用户密码", notes = "修改用户密码")
+    @RequiresPermissions("system:uservue:editPwd")
+    @PostMapping("/editPwd")
+    @ResponseBody
+    public AjaxResult editPwdSave(TvueUser tsysUserVue)
+    {
+        return toAjax(vueUserService.updateUserVuePassword(tsysUserVue));
+    }
+
+	
+}

+ 320 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/service/weather/WeatherDay5Service.java

@@ -0,0 +1,320 @@
+package com.gyee.frame.service.weather;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.gyee.frame.common.cache.RedisUtils;
+import com.gyee.frame.common.conf.V2Config;
+import com.gyee.frame.common.spring.InitialRunner;
+import com.gyee.frame.model.auto.Line;
+import com.gyee.frame.model.auto.Project;
+import com.gyee.frame.model.auto.Windpowerstation;
+import com.gyee.frame.model.custom.weather.*;
+import com.gyee.frame.util.MathUtil;
+import com.gyee.frame.util.StringUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+@Service
+public class WeatherDay5Service {
+
+    private RestTemplate restTemplate=new RestTemplate();
+	private final Integer DATABASE=2;
+	@Resource
+	private RedisUtils redisUtils;
+
+	public Map<String,Object> getWeatherRealDay5Info(String id)
+	{
+
+		Map<String,Object> result=new HashMap<>();
+		java.util.List<Map<String,Object>> lsmap=new ArrayList<>();
+
+
+		if(StringUtils.notEmp(id))
+		{
+
+			if (InitialRunner.wpmap.containsKey(id)) {
+				Windpowerstation wp = InitialRunner.wpmap.get(id);
+
+				id=wp.getId();
+
+
+			} else if (InitialRunner.pjmap.containsKey(id)) {
+				Project pj = InitialRunner.pjmap.get(id);
+				Windpowerstation wp = InitialRunner.wpmap.get(pj.getWindpowerstationid());
+				id=wp.getId();
+			} else if (InitialRunner.lnmap.containsKey(id)) {
+				Line ln = InitialRunner.lnmap.get(id);
+				Project pj = InitialRunner.pjmap.get(ln.getProjectid());
+				Windpowerstation wp = InitialRunner.wpmap.get(pj.getWindpowerstationid());
+				id=wp.getId();
+			}
+
+
+            String weatherStr =null;
+            JsonRootBean jsonRootBean   = null;
+            // weather,forecast,onecall
+            try {
+
+
+
+                StringBuilder sb=new StringBuilder();
+                sb.append(V2Config.getWeatherurl()).append("/meteorological/datas?");
+
+                if(id.equals("0") || id.equals("-1")  || id.equals("-2"))
+                {
+                    sb.append("&wpid=").append(V2Config.getWeatherqygs());
+                }else {
+                    sb.append("&wpid=").append(id);
+                }
+
+                sb.append("&model=forecast");
+
+                String url=String.valueOf(sb);
+
+                ResponseEntity<JSONObject> resp = restTemplate.getForEntity(url, JSONObject.class);
+
+                if(StringUtils.notEmp(resp.getBody()))
+                {
+                    weatherStr = resp.getBody().toJSONString();
+                }else
+                {
+                    weatherStr = "";
+                }
+
+
+                jsonRootBean = JSONObject.parseObject(weatherStr, new TypeReference<JsonRootBean>(){});
+
+
+            } catch (HttpClientErrorException exception) {
+
+            }
+
+//			switch(id) {
+//				case "0" :
+//					result.put("name","银川");
+//					weatherStr = redisUtils.get("NX_QYGS_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "-1" :
+//					result.put("name","银川");
+//					weatherStr = redisUtils.get("NX_QYGS_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "-2" :
+//					result.put("name","银川");
+//					weatherStr = redisUtils.get("NX_QYGS_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "MHS_FDC" :
+//					result.put("name","麻黄山");
+//					weatherStr = redisUtils.get("MHS_FDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "NSS_FDC" :
+//					result.put("name","牛首山");
+//					weatherStr = redisUtils.get("NSS_FDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "QS_FDC" :
+//					result.put("name","青山");
+//					weatherStr = redisUtils.get("QS_FDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "SBQ_FDC" :
+//					result.put("name","石板泉");
+//					weatherStr = redisUtils.get("SBQ_FDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "XS_FDC" :
+//					result.put("name","香山");
+//					weatherStr = redisUtils.get("XS_FDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "DWK_GDC" :
+//					result.put("name","大武口");
+//					weatherStr = redisUtils.get("DWK_GDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "PL_GDC" :
+//					result.put("name","平罗");
+//					weatherStr = redisUtils.get("PL_GDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "XH_GDC" :
+//					result.put("name","宣和");
+//					weatherStr = redisUtils.get("XH_GDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "MCH_GDC" :
+//					result.put("name","马场湖");
+//					weatherStr = redisUtils.get("MCH_GDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				case "HZJ_GDC" :
+//					result.put("name","海子井");
+//					weatherStr = redisUtils.get("HZJ_GDC_WEATHER_FORECAST",DATABASE);
+//					break;
+//				default:
+//					break;
+//			}
+
+			if(StringUtils.notEmp(jsonRootBean))
+			{
+//				JsonRootBean jsonRootBean = JSONObject.parseObject(weatherStr, new TypeReference<JsonRootBean>() {
+//				});
+
+				if(null!=jsonRootBean && null!=jsonRootBean.getList() && !jsonRootBean.getList().isEmpty())
+				{
+
+					for(List weatherReal:jsonRootBean.getList())
+					{
+						Map<String,Object> map=new HashMap<>();
+
+						map.put("time",weatherReal.getDt()*1000);
+
+						double qxd=weatherReal.getVisibility();
+						map.put("qxd", MathUtil.twoBit(qxd/1000));
+
+						if(null!=weatherReal.getMain())
+						{
+							Main main=weatherReal.getMain();
+							map.put("wd",main.getTemp());
+							map.put("dqyl",main.getPressure());
+							map.put("sd",main.getHumidity());
+
+						}
+
+
+						if(null!=weatherReal.getClouds())
+						{
+							Clouds clouds=weatherReal.getClouds();
+							//云量
+							map.put("yunliang",clouds.getAll());
+						}
+
+						if(null!=weatherReal.getSys())
+						{
+							Sys sys=weatherReal.getSys();
+							if(StringUtils.notEmp(sys.getSunrise()))
+							{
+								Date date=new Date(sys.getSunrise()*1000);
+								SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
+								//日出时间
+								map.put("richushijian", "05:56");
+//								map.put("richushijian", sdf.format(date));
+							}
+							if(StringUtils.notEmp(sys.getSunset()))
+							{
+								Date date=new Date(sys.getSunset()*1000);
+								SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
+								//日落时间
+								map.put("riluoshijian", "20:05");
+//								map.put("riluoshijian", sdf.format(date));
+							}
+						}
+
+						if(null!=weatherReal.getWind())
+						{
+							Wind wind=weatherReal.getWind();
+							map.put("fs",wind.getSpeed());
+
+							if(StringUtils.notEmp(wind.getDeg()))
+							{
+								double fx=wind.getDeg();
+
+								map.put("fx",fx);
+//								if(fx>= 11.25 && fx<= 348.76)
+//								{
+//									map.put("fx","北");
+//								}else if(fx>= 33.76 && fx<= 56.25)
+//								{
+//									map.put("fx","东北");
+//								}else if(fx>= 78.76 && fx<= 101.25)
+//								{
+//									map.put("fx","东");
+//								}else if(fx>= 123.76 && fx<= 146.25)
+//								{
+//									map.put("fx","东南");
+//								}else if(fx>= 168.76 && fx<= 191.25)
+//								{
+//									map.put("fx","南");
+//								}else if(fx>= 213.76 && fx<= 236.25)
+//								{
+//									map.put("fx","西南");
+//								}else if(fx>= 258.76 && fx<= 281.25)
+//								{
+//									map.put("fx","西");
+//								}else if(fx>= 303.76 && fx<= 326.25)
+//								{
+//									map.put("fx","西北");
+//								}
+
+							}
+
+						}
+
+						if(null!=weatherReal.getWeather() && !weatherReal.getWeather().isEmpty())
+						{
+							Weather weather=weatherReal.getWeather().get(0);
+
+							String icon=weather.getIcon();
+
+							if (StringUtils.notEmp(icon))
+							{
+								if(icon.equals("01d") || icon.equals("01n"))
+								{
+									map.put("tqmc","晴");
+									map.put("tqtp","01");
+								}else if(icon.equals("02d") || icon.equals("02n"))
+								{
+									map.put("tqmc","少云");
+									map.put("tqtp","02");
+								}else if(icon.equals("03d") || icon.equals("03n"))
+								{
+									map.put("tqmc","多云");
+									map.put("tqtp","06");
+								}else if(icon.equals("04d") || icon.equals("04n"))
+								{
+									map.put("tqmc","阴");
+									map.put("tqtp","07");
+								}else if(icon.equals("09d") || icon.equals("09n"))
+								{
+									map.put("tqmc","阵雨");
+									map.put("tqtp","13");
+								}else if(icon.equals("10d") || icon.equals("10n"))
+								{
+									map.put("tqmc","雨");
+									map.put("tqtp","18");
+								}else if(icon.equals("11d") || icon.equals("11n"))
+								{
+									map.put("tqmc","雷雨");
+									map.put("tqtp","15");
+								}else if(icon.equals("13d") || icon.equals("13n"))
+								{
+									map.put("tqmc","雪");
+									map.put("tqtp","19");
+								}else if(icon.equals("50d") || icon.equals("50n"))
+								{
+									map.put("tqmc","雾");
+									map.put("tqtp","32");
+								}else
+								{
+									map.put("description","晴");
+									map.put("tqtp","01");
+								}
+
+							}
+						}
+
+						lsmap.add(map);
+					}
+
+				}
+			}
+
+		}
+
+		result.put("ls",lsmap);
+		return  result;
+	}
+
+
+}

+ 362 - 0
web/monitor-web-hb/src/main/java/com/gyee/frame/service/weather/WeatherService.java

@@ -0,0 +1,362 @@
+package com.gyee.frame.service.weather;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.cache.RedisUtils;
+import com.gyee.frame.common.conf.V2Config;
+import com.gyee.frame.common.spring.InitialRunner;
+import com.gyee.frame.mapper.auto.WeatherfdMapper;
+import com.gyee.frame.model.auto.*;
+import com.gyee.frame.model.custom.PointData;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.weather.*;
+import com.gyee.frame.service.WeatherfdService;
+import com.gyee.frame.util.MathUtil;
+import com.gyee.frame.util.StringUtils;
+import com.gyee.frame.util.golden.timeseries.ErrorRequest;
+import com.gyee.frame.util.golden.timeseries.JsonObjectHelper;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.List;
+
+
+@Service
+public class WeatherService  {
+
+
+    private RestTemplate restTemplate=new RestTemplate();
+    @Value("${spring.redis.database}")
+    private Integer database;
+	@Resource
+	private RedisUtils redisUtils;
+	@Resource
+	private WeatherfdService weatherfdService;
+
+	public Map<String,Object> getWeatherRealInfo(String id)
+	{
+		Map<String,Object> map=new HashMap<>();
+
+
+
+		if(StringUtils.notEmp(id))
+		{
+
+			if (InitialRunner.wpmap.containsKey(id)) {
+				Windpowerstation wp = InitialRunner.wpmap.get(id);
+
+				id=wp.getId();
+
+
+			} else if (InitialRunner.pjmap.containsKey(id)) {
+				Project pj = InitialRunner.pjmap.get(id);
+				Windpowerstation wp = InitialRunner.wpmap.get(pj.getWindpowerstationid());
+				id=wp.getId();
+			} else if (InitialRunner.lnmap.containsKey(id)) {
+				Line ln = InitialRunner.lnmap.get(id);
+				Project pj = InitialRunner.pjmap.get(ln.getProjectid());
+				Windpowerstation wp = InitialRunner.wpmap.get(pj.getWindpowerstationid());
+				id=wp.getId();
+			}
+
+			String weatherStr =null;
+            WeatherReal weatherReal   = null;
+           // weather,forecast,onecall
+            try {
+
+
+
+                StringBuilder sb=new StringBuilder();
+                sb.append(V2Config.getWeatherurl()).append("/meteorological/datas?");
+                if(id.equals("0") || id.equals("-1")  || id.equals("-2"))
+                {
+                    sb.append("&wpid=").append(V2Config.getWeatherqygs());
+                }else {
+                    sb.append("&wpid=").append(id);
+                }
+                sb.append("&model=weather");
+
+                String url=String.valueOf(sb);
+
+                ResponseEntity<JSONObject> resp = restTemplate.getForEntity(url, JSONObject.class);
+                if(StringUtils.notEmp(resp.getBody()))
+                {
+                    weatherStr = resp.getBody().toJSONString();
+                }else
+                {
+                    weatherStr = "";
+                }
+
+                weatherReal = JSONObject.parseObject(weatherStr, new TypeReference<WeatherReal>(){});
+
+
+            } catch (HttpClientErrorException exception) {
+
+            }
+
+            if(InitialRunner.wpmap.containsKey(id))
+            {
+                Windpowerstation wp=InitialRunner.wpmap.get(id);
+                if(wp.getName().indexOf("风电场")!=-1)
+                {
+                    String name=wp.getName().substring(0,wp.getName().indexOf("风电场"));
+                    map.put("name",name);
+                }else  if(wp.getName().indexOf("光电场")!=-1)
+                {
+                    String name=wp.getName().substring(0,wp.getName().indexOf("光电场"));
+                    map.put("name",name);
+                }
+
+            }else
+            {
+                map.put("name","区域公司");
+            }
+//			switch(id) {
+//				case "0" :
+//					map.put("name","银川");
+//					weatherStr = redisUtils.get("NX_QYGS_WEATHER_WEATHER",database);
+//					break;
+//				case "-1" :
+//					map.put("name","银川");
+//					weatherStr = redisUtils.get("NX_QYGS_WEATHER_WEATHER",database);
+//					break;
+//				case "-2" :
+//					map.put("name","银川");
+//					weatherStr = redisUtils.get("NX_QYGS_WEATHER_WEATHER",database);
+//					break;
+//				case "MHS_FDC" :
+//					map.put("name","麻黄山");
+//					weatherStr = redisUtils.get("MHS_FDC_WEATHER_WEATHER",database);
+//					break;
+//				case "NSS_FDC" :
+//					map.put("name","牛首山");
+//					weatherStr = redisUtils.get("NSS_FDC_WEATHER_WEATHER",database);
+//					break;
+//				case "QS_FDC" :
+//					map.put("name","青山");
+//					weatherStr = redisUtils.get("QS_FDC_WEATHER_WEATHER",database);
+//					break;
+//				case "SBQ_FDC" :
+//					map.put("name","石板泉");
+//					weatherStr = redisUtils.get("SBQ_FDC_WEATHER_WEATHER",database);
+//					break;
+//				case "XS_FDC" :
+//					map.put("name","香山");
+//					weatherStr = redisUtils.get("XS_FDC_WEATHER_WEATHER",database);
+//					break;
+//				case "DWK_GDC" :
+//					map.put("name","大武口");
+//					weatherStr = redisUtils.get("DWK_GDC_WEATHER_WEATHER",database);
+//					break;
+//				case "PL_GDC" :
+//					map.put("name","平罗");
+//					weatherStr = redisUtils.get("PL_GDC_WEATHER_WEATHER",database);
+//					break;
+//				case "XH_GDC" :
+//					map.put("name","宣和");
+//					weatherStr = redisUtils.get("XH_GDC_WEATHER_WEATHER",database);
+//					break;
+//				case "MCH_GDC" :
+//					map.put("name","马场湖");
+//					weatherStr = redisUtils.get("MCH_GDC_WEATHER_WEATHER",database);
+//					break;
+//				case "HZJ_GDC" :
+//					map.put("name","海子井");
+//					weatherStr = redisUtils.get("HZJ_GDC_WEATHER_WEATHER",database);
+//					break;
+//				default:
+//					break;
+//			}
+
+			if(StringUtils.notEmp(weatherReal))
+			{
+//				WeatherReal weatherReal = JSONObject.parseObject(weatherStr, new TypeReference<WeatherReal>() {
+//				});
+
+//				if(null!=weatherReal)
+//				{
+					double qxd=weatherReal.getVisibility();
+					//清晰度
+					map.put("qxd", MathUtil.twoBit(qxd/1000));
+
+					if(null!=weatherReal.getMain())
+					{
+						Main main=weatherReal.getMain();
+						//温度
+						map.put("wd",main.getTemp());
+						//大气压强
+						map.put("dqyl",main.getPressure());
+						//湿度
+						map.put("sd",main.getHumidity());
+
+					}
+
+					if(null!=weatherReal.getCoord())
+					{
+						Coord coord=weatherReal.getCoord();
+						//经度
+						map.put("jingdu",coord.getLon());
+						//维度
+						map.put("weidu",coord.getLat());
+					}
+
+					if(null!=weatherReal.getClouds())
+					{
+						Clouds clouds=weatherReal.getClouds();
+						//云量
+						map.put("yunliang",clouds.getAll());
+					}
+
+					if(null!=weatherReal.getSys())
+					{
+						Sys sys=weatherReal.getSys();
+						if(StringUtils.notEmp(sys.getSunrise()))
+						{
+							Date date=new Date(sys.getSunrise()*1000);
+							SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
+							//日出时间
+							map.put("richushijian", sdf.format(date));
+
+						}
+						if(StringUtils.notEmp(sys.getSunset()))
+						{
+							Date date=new Date(sys.getSunset()*1000);
+							SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
+							//日落时间
+							map.put("riluoshijian", sdf.format(date));
+						}
+					}
+
+					if(null!=weatherReal.getWind())
+					{
+						Wind wind=weatherReal.getWind();
+						//风速
+						map.put("fs",wind.getSpeed());
+
+						if(StringUtils.notEmp(wind.getDeg()))
+						{
+							double fx=wind.getDeg();
+							if(fx<= 11.25 || fx>= 348.76)
+							{
+								//风向
+								map.put("fx","北");
+							}else if(fx>= 33.76 && fx<= 56.25)
+							{
+								map.put("fx","东北");
+							}else if(fx>= 78.76 && fx<= 101.25)
+							{
+								map.put("fx","东");
+							}else if(fx>= 123.76 && fx<= 146.25)
+							{
+								map.put("fx","东南");
+							}else if(fx>= 168.76 && fx<= 191.25)
+							{
+								map.put("fx","南");
+							}else if(fx>= 213.76 && fx<= 236.25)
+							{
+								map.put("fx","西南");
+							}else if(fx>= 258.76 && fx<= 281.25)
+							{
+								map.put("fx","西");
+							}else if(fx>= 303.76 && fx<= 326.25)
+							{
+								map.put("fx","西北");
+							}
+
+						}
+
+					}
+
+					if(null!=weatherReal.getWeather() && !weatherReal.getWeather().isEmpty())
+					{
+						Weather weather=weatherReal.getWeather().get(0);
+
+						String icon=weather.getIcon();
+
+						if (StringUtils.notEmp(icon))
+						{
+							if(icon.equals("01d") || icon.equals("01n"))
+							{
+								//天气说明
+								map.put("tqmc","晴");
+								//天气图片编号
+								map.put("tqtp","01");
+							}else if(icon.equals("02d") || icon.equals("02n"))
+							{
+								map.put("tqmc","少云");
+								map.put("tqtp","02");
+							}else if(icon.equals("03d") || icon.equals("03n"))
+							{
+								map.put("tqmc","多云");
+								map.put("tqtp","06");
+							}else if(icon.equals("04d") || icon.equals("04n"))
+							{
+								map.put("tqmc","阴");
+								map.put("tqtp","07");
+							}else if(icon.equals("09d") || icon.equals("09n"))
+							{
+								map.put("tqmc","阵雨");
+								map.put("tqtp","13");
+							}else if(icon.equals("10d") || icon.equals("10n"))
+							{
+								map.put("tqmc","雨");
+								map.put("tqtp","18");
+							}else if(icon.equals("11d") || icon.equals("11n"))
+							{
+								map.put("tqmc","雷雨");
+								map.put("tqtp","15");
+							}else if(icon.equals("13d") || icon.equals("13n"))
+							{
+								map.put("tqmc","雪");
+								map.put("tqtp","19");
+							}else if(icon.equals("50d") || icon.equals("50n"))
+							{
+								map.put("tqmc","雾");
+								map.put("tqtp","32");
+							}else
+							{
+								map.put("description","晴");
+								map.put("tqtp","01");
+							}
+
+						}
+					}
+				}
+			}
+
+//		}
+		return  map;
+	}
+
+	/**
+	 * 分页查询气象历史数据
+	 * @param wpId
+	 * @param startTs
+	 * @param endTs
+	 * @return
+	 */
+	public PageInfo<Weatherfd> getWeatherHistory(Tablepar tablepar, String wpId, Date startTs, Date endTs){
+
+		WeatherfdExample example = new WeatherfdExample();
+		example.createCriteria().andWindpowerstationidEqualTo(wpId)
+								.andRecodedataBetween(startTs, endTs);
+		example.setOrderByClause("recodedata DESC");
+
+		PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize());
+		List<Weatherfd> list = weatherfdService.selectByExample(example);
+		PageInfo<Weatherfd> pageInfo = new PageInfo<>(list);
+
+		return pageInfo;
+	}
+}

Файловите разлики са ограничени, защото са твърде много
+ 228 - 0
web/monitor-web-hb/src/main/resources/application.yml