工业级运维app手机api
沈斌
2017-10-27 187676ab75aebabf0e5813b2686d8537f4f6c750
RabbitMQ & Redis 操作
1 files renamed
5 files added
6 files modified
753 ■■■■■ changed files
.idea/artifacts/task_war_exploded.xml 3 ●●●● patch | view | raw | blame | history
.idea/libraries/Maven__com_alibaba_fastjson_1_2_39.xml 8 ●●●● patch | view | raw | blame | history
.idea/libraries/Maven__org_springframework_spring_test_4_1_6_RELEASE.xml 13 ●●●●● patch | view | raw | blame | history
.idea/workspace.xml 536 ●●●● patch | view | raw | blame | history
pom.xml 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/dao/JobDao.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/listener/TaskListener.java 94 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/util/RedisUtil.java 21 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/JobDao.xml 22 ●●●●● patch | view | raw | blame | history
src/main/resources/rabbitmq.xml 21 ●●●● patch | view | raw | blame | history
src/test/java/Test.java 13 ●●●●● patch | view | raw | blame | history
task.iml 3 ●●●● patch | view | raw | blame | history
.idea/artifacts/task_war_exploded.xml
@@ -17,7 +17,7 @@
          <element id="library" level="project" name="Maven: org.springframework:spring-jdbc:4.3.7.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-tx:4.3.7.RELEASE" />
          <element id="library" level="project" name="Maven: javax.servlet:jstl:1.2" />
          <element id="library" level="project" name="Maven: com.alibaba:fastjson:1.2.7" />
          <element id="library" level="project" name="Maven: com.alibaba:fastjson:1.2.39" />
          <element id="library" level="project" name="Maven: com.alibaba:druid:1.0.18" />
          <element id="library" level="project" name="Maven: mysql:mysql-connector-java:5.1.30" />
          <element id="library" level="project" name="Maven: org.mybatis:mybatis:3.4.1" />
@@ -64,6 +64,7 @@
          <element id="library" level="project" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" />
          <element id="library" level="project" name="Maven: redis.clients:jedis:2.9.0" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-pool2:2.4.2" />
          <element id="library" level="project" name="Maven: org.springframework:spring-test:4.1.6.RELEASE" />
        </element>
      </element>
      <element id="directory" name="META-INF">
.idea/libraries/Maven__com_alibaba_fastjson_1_2_39.xml
File was renamed from .idea/libraries/Maven__com_alibaba_fastjson_1_2_7.xml
@@ -1,13 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.alibaba:fastjson:1.2.7">
  <library name="Maven: com.alibaba:fastjson:1.2.39">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.7/fastjson-1.2.7.jar!/" />
      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.39/fastjson-1.2.39.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.7/fastjson-1.2.7-javadoc.jar!/" />
      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.39/fastjson-1.2.39-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.7/fastjson-1.2.7-sources.jar!/" />
      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.39/fastjson-1.2.39-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_spring_test_4_1_6_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-test:4.1.6.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.1.6.RELEASE/spring-test-4.1.6.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.1.6.RELEASE/spring-test-4.1.6.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.1.6.RELEASE/spring-test-4.1.6.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/workspace.xml
@@ -6,16 +6,18 @@
    </artifacts-to-build>
  </component>
  <component name="ChangeListManager">
    <list default="true" id="59bc3ffe-0657-438a-9fae-fbbdeee84a24" name="Default" comment="">
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_all_4_1_7_Final.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/TestController.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/redis-config.properties" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/redis.xml" />
    <list default="true" id="59bc3ffe-0657-438a-9fae-fbbdeee84a24" name="Default" comment="代码更新">
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_test_4_1_6_RELEASE.xml" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/JobDao.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/TaskListener.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/moral/monitor/util/RedisUtil.java" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/mapper/JobDao.xml" />
      <change type="MOVED" beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_7.xml" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_39.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/artifacts/task_war_exploded.xml" afterPath="$PROJECT_DIR$/.idea/artifacts/task_war_exploded.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/compiler.xml" afterPath="$PROJECT_DIR$/.idea/compiler.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/Listener.java" afterPath="$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/Listener.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/application.xml" afterPath="$PROJECT_DIR$/src/main/resources/application.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pom.xml" afterPath="$PROJECT_DIR$/pom.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/rabbitmq.xml" afterPath="$PROJECT_DIR$/src/main/resources/rabbitmq.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/Test.java" afterPath="$PROJECT_DIR$/src/test/java/Test.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/task.iml" afterPath="$PROJECT_DIR$/task.iml" />
    </list>
    <ignored path="$PROJECT_DIR$/out/" />
@@ -29,21 +31,33 @@
  </component>
  <component name="FileEditorManager">
    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
      <file leaf-file-name="redis.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/main/resources/redis.xml">
      <file leaf-file-name="TaskListener.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/TaskListener.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="345">
              <caret line="23" column="36" lean-forward="false" selection-start-line="23" selection-start-column="14" selection-end-line="23" selection-end-column="36" />
            <state relative-caret-position="348">
              <caret line="74" column="8" lean-forward="false" selection-start-line="74" selection-start-column="8" selection-end-line="74" selection-end-column="8" />
              <folding>
                <element signature="imports" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="Test.java" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/src/test/java/Test.java">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="225">
              <caret line="21" column="0" lean-forward="true" selection-start-line="12" selection-start-column="44" selection-end-line="12" selection-end-column="52" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="redis-config.properties" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/src/main/resources/redis-config.properties">
      <file leaf-file-name="rabbitmq.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/main/resources/rabbitmq.xml">
          <provider selected="true" editor-type-id="text-editor">
            <state relative-caret-position="120">
              <caret line="8" column="0" lean-forward="true" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
            <state relative-caret-position="286">
              <caret line="43" column="8" lean-forward="true" selection-start-line="43" selection-start-column="8" selection-end-line="43" selection-end-column="8" />
              <folding />
            </state>
          </provider>
@@ -54,6 +68,7 @@
  <component name="FileTemplateManagerImpl">
    <option name="RECENT_TEMPLATES">
      <list>
        <option value="Interface" />
        <option value="Class" />
      </list>
    </option>
@@ -68,6 +83,8 @@
      <find>jedis</find>
      <find>Monitorpoint</find>
      <find>sysConfig.properties</find>
      <find>resultMap</find>
      <find>monitors_storage_data</find>
    </findStrings>
  </component>
  <component name="Git.Settings">
@@ -84,14 +101,11 @@
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/service/LoginService.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/service/ApiService.java" />
        <option value="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" />
        <option value="$PROJECT_DIR$/src/test/java/Test.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/message/Captcha.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/ApiController.java" />
        <option value="$PROJECT_DIR$/src/main/resources/rabbitmq.xml" />
        <option value="$PROJECT_DIR$/src/main/resources/database.xml" />
        <option value="$PROJECT_DIR$/src/main/resources/mybatis.xml" />
        <option value="$PROJECT_DIR$/src/main/resources/quartz.xml" />
        <option value="$PROJECT_DIR$/pom.xml" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/entity/MonitorPoint.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/service/impl/MonitorpointServiceImpl.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/util/RedisManager.java" />
@@ -100,6 +114,15 @@
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/TestController.java" />
        <option value="$PROJECT_DIR$/src/main/resources/redis.xml" />
        <option value="$PROJECT_DIR$/src/main/resources/redis-config.properties" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/util/RedisUtil.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/entity/job/Adjust.java" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/JobDao.java" />
        <option value="$PROJECT_DIR$/src/main/resources/mapper/JobDao.xml" />
        <option value="$PROJECT_DIR$/pom.xml" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/Test.java" />
        <option value="$PROJECT_DIR$/src/test/java/Test.java" />
        <option value="$PROJECT_DIR$/src/main/resources/rabbitmq.xml" />
        <option value="$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/TaskListener.java" />
      </list>
    </option>
  </component>
@@ -118,7 +141,7 @@
  </component>
  <component name="ProjectFrameBounds">
    <option name="y" value="23" />
    <option name="width" value="1406" />
    <option name="width" value="1404" />
    <option name="height" value="877" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -137,9 +160,9 @@
      <foldersAlwaysOnTop value="true" />
    </navigator>
    <panes>
      <pane id="PackagesPane" />
      <pane id="Scratches" />
      <pane id="AndroidView" />
      <pane id="PackagesPane" />
      <pane id="Scope" />
      <pane id="ProjectPane">
        <subPane>
@@ -156,15 +179,7 @@
            <path>
              <item name="task" type="b2602c69:ProjectViewProjectNode" />
              <item name="task" type="462c0819:PsiDirectoryNode" />
              <item name="src" type="462c0819:PsiDirectoryNode" />
              <item name="main" type="462c0819:PsiDirectoryNode" />
            </path>
            <path>
              <item name="task" type="b2602c69:ProjectViewProjectNode" />
              <item name="task" type="462c0819:PsiDirectoryNode" />
              <item name="src" type="462c0819:PsiDirectoryNode" />
              <item name="main" type="462c0819:PsiDirectoryNode" />
              <item name="resources" type="462c0819:PsiDirectoryNode" />
              <item name="target" type="462c0819:PsiDirectoryNode" />
            </path>
          </expand>
          <select />
@@ -396,7 +411,10 @@
      <workItem from="1508824729673" duration="781000" />
      <workItem from="1508900264535" duration="3612000" />
      <workItem from="1508911116546" duration="7028000" />
      <workItem from="1508977804904" duration="5414000" />
      <workItem from="1508977804904" duration="22579000" />
      <workItem from="1509026048007" duration="2710000" />
      <workItem from="1509030446574" duration="3006000" />
      <workItem from="1509056858319" duration="2841000" />
    </task>
    <task id="LOCAL-00001" summary="updates">
      <created>1508484578874</created>
@@ -503,17 +521,24 @@
      <option name="project" value="LOCAL" />
      <updated>1508920850416</updated>
    </task>
    <option name="localTasksCounter" value="16" />
    <task id="LOCAL-00016" summary="代码更新">
      <created>1508987038075</created>
      <option name="number" value="00016" />
      <option name="presentableId" value="LOCAL-00016" />
      <option name="project" value="LOCAL" />
      <updated>1508987038075</updated>
    </task>
    <option name="localTasksCounter" value="17" />
    <servers />
  </component>
  <component name="TimeTrackingManager">
    <option name="totallyTimeSpent" value="27199000" />
    <option name="totallyTimeSpent" value="52921000" />
  </component>
  <component name="ToolWindowManager">
    <frame x="0" y="23" width="1406" height="877" extended-state="0" />
    <frame x="0" y="23" width="1404" height="877" extended-state="0" />
    <layout>
      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.45140666" sideWeight="0.50587374" order="8" side_tool="true" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.68414325" sideWeight="0.5117474" order="8" side_tool="true" content_ui="tabs" />
      <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32893288" sideWeight="0.49706313" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@@ -522,20 +547,19 @@
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39897698" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.49706313" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.48237884" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.45268542" sideWeight="0.4941263" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5639386" sideWeight="0.48825258" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32992327" sideWeight="0.48237884" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24486804" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2444934" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -543,7 +567,41 @@
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
    </layout>
    <layout-to-restore>
      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.68414325" sideWeight="0.5117474" order="8" side_tool="true" content_ui="tabs" />
      <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32893288" sideWeight="0.49706313" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39897698" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.49706313" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.5639386" sideWeight="0.48825258" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.48237884" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2444934" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32992327" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
    </layout-to-restore>
  </component>
  <component name="TypeScriptGeneratedFilesManager">
    <option name="version" value="1" />
@@ -603,127 +661,6 @@
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/VerificationCodeController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-209">
          <caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/MgrController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="120">
          <caret line="20" column="13" lean-forward="false" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/test/java/Tmap.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="210">
          <caret line="20" column="0" lean-forward="true" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/webapp/login.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-297">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/LoginDao.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/util/Crypto.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/LoginDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="120">
          <caret line="8" column="24" lean-forward="false" selection-start-line="8" selection-start-column="19" selection-end-line="8" selection-end-column="24" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/service/LoginService.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="180">
          <caret line="17" column="59" lean-forward="false" selection-start-line="17" selection-start-column="59" selection-end-line="17" selection-end-column="59" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/test/java/Test.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="150">
          <caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="-3">
          <caret line="37" column="20" lean-forward="false" selection-start-line="37" selection-start-column="20" selection-end-line="37" selection-end-column="20" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/entity/Equipment.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="15">
          <caret line="22" column="28" lean-forward="false" selection-start-line="22" selection-start-column="19" selection-end-line="22" selection-end-column="28" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/ApiDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="240">
          <caret line="22" column="21" lean-forward="false" selection-start-line="22" selection-start-column="21" selection-end-line="22" selection-end-column="21" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/ApiDao.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="15">
          <caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
          <folding>
            <marker date="1507622125000" expanded="true" signature="339:380" ph="select * fro... equipment" />
            <marker date="1507622125000" expanded="true" signature="449:562" ph="UPDATE equip... " />
            <marker date="1507622125000" expanded="true" signature="627:769" ph="INSERT INTO equipment... " />
            <marker date="1507622125000" expanded="true" signature="908:969" ph="SELECT * fro... user" />
            <marker date="1507622125000" expanded="true" signature="1107:1162" ph="SELECT * fro... user" />
            <marker date="1507622125000" expanded="true" signature="1224:1271" ph="UPDATE `user... " />
            <marker date="1507622125000" expanded="true" signature="1430:1473" ph="select * fro... user" />
            <marker date="1507622125000" expanded="true" signature="1550:1596" ph="UPDATE `user... " />
            <marker date="1507622125000" expanded="true" signature="1745:1807" ph="select * fro... equipment" />
            <marker date="1507622125000" expanded="true" signature="2793:2831" ph="select * fro... equipment" />
            <marker date="1507622125000" expanded="true" signature="2958:2991" ph="select * fro... user" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/ApiController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="71" column="47" lean-forward="false" selection-start-line="71" selection-start-column="23" selection-end-line="71" selection-end-column="47" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/quartz/EquipmentCheck.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="104">
          <caret line="26" column="19" lean-forward="false" selection-start-line="26" selection-start-column="12" selection-end-line="26" selection-end-column="19" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="75">
@@ -767,20 +704,6 @@
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/Dashboard.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="135">
          <caret line="22" column="24" lean-forward="true" selection-start-line="22" selection-start-column="24" selection-end-line="22" selection-end-column="24" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/EquController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="61">
          <caret line="24" column="13" lean-forward="false" selection-start-line="24" selection-start-column="13" selection-end-line="24" selection-end-column="13" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/Go.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="134">
@@ -802,28 +725,6 @@
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/message/Tomq.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="390">
          <caret line="32" column="11" lean-forward="false" selection-start-line="32" selection-start-column="11" selection-end-line="32" selection-end-column="11" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/rabbitmq.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="435">
          <caret line="29" column="73" lean-forward="false" selection-start-line="29" selection-start-column="69" selection-end-line="29" selection-end-column="73" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/TaskDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="105">
          <caret line="13" column="17" lean-forward="false" selection-start-line="13" selection-start-column="17" selection-end-line="13" selection-end-column="17" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/quartz/MessageNotice.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="160">
@@ -831,26 +732,10 @@
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="203">
          <caret line="183" column="18" lean-forward="false" selection-start-line="183" selection-start-column="18" selection-end-line="183" selection-end-column="18" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/entity/Sensor.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="102">
          <caret line="11" column="25" lean-forward="false" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="25" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/MonitorListener.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="135">
          <caret line="23" column="75" lean-forward="false" selection-start-line="23" selection-start-column="75" selection-end-line="23" selection-end-column="75" />
          <folding />
        </state>
      </provider>
    </entry>
@@ -865,13 +750,6 @@
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="0">
          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/service/ApiService.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="80">
          <caret line="16" column="25" lean-forward="true" selection-start-line="16" selection-start-column="25" selection-end-line="16" selection-end-column="25" />
        </state>
      </provider>
    </entry>
@@ -911,14 +789,6 @@
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/RedisDao.java" />
    <entry file="file://$PROJECT_DIR$/src/main/resources/quartz.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="465">
          <caret line="31" column="25" lean-forward="false" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="25" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/application.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="567">
@@ -927,14 +797,7 @@
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/util/RedisManager.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="90">
          <caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/util/RedisManager.java" />
    <entry file="file://$PROJECT_DIR$/src/main/resources/database.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="32">
@@ -943,31 +806,17 @@
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/Listener.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="229">
          <caret line="60" column="19" lean-forward="true" selection-start-line="60" selection-start-column="19" selection-end-line="60" selection-end-column="19" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/message/Captcha.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="345">
          <caret line="30" column="44" lean-forward="false" selection-start-line="30" selection-start-column="44" selection-end-line="30" selection-end-column="44" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/TestController.java">
    <entry file="file://$PROJECT_DIR$/src/main/resources/redis-config.properties">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="570">
          <caret line="38" column="0" lean-forward="true" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        <state relative-caret-position="105">
          <caret line="7" column="23" lean-forward="false" selection-start-line="7" selection-start-column="23" selection-end-line="7" selection-end-column="23" />
        </state>
      </provider>
    </entry>
@@ -979,10 +828,185 @@
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/redis-config.properties">
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/Dashboard.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="120">
          <caret line="8" column="0" lean-forward="true" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
        <state relative-caret-position="135">
          <caret line="22" column="24" lean-forward="true" selection-start-line="22" selection-start-column="24" selection-end-line="22" selection-end-column="24" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/EquController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="61">
          <caret line="24" column="13" lean-forward="false" selection-start-line="24" selection-start-column="13" selection-end-line="24" selection-end-column="13" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/MonitorListener.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="135">
          <caret line="23" column="75" lean-forward="false" selection-start-line="23" selection-start-column="75" selection-end-line="23" selection-end-column="75" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/amqp/spring-amqp/1.6.3.RELEASE/spring-amqp-1.6.3.RELEASE.jar!/org/springframework/amqp/core/MessageListener.class">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="60">
          <caret line="7" column="32" lean-forward="false" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="32" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/quartz.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="129">
          <caret line="31" column="25" lean-forward="false" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="25" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/service/ApiService.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="95">
          <caret line="17" column="13" lean-forward="true" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="13" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaskDao.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="602">
          <caret line="132" column="0" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="134" selection-end-column="9" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/TaskDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="493">
          <caret line="66" column="50" lean-forward="true" selection-start-line="65" selection-start-column="4" selection-end-line="66" selection-end-column="50" />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.39/fastjson-1.2.39.jar!/com/alibaba/fastjson/JSON.class">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="90">
          <caret line="48" column="22" lean-forward="false" selection-start-line="48" selection-start-column="22" selection-end-line="48" selection-end-column="22" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/ApiController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="15">
          <caret line="71" column="47" lean-forward="false" selection-start-line="71" selection-start-column="23" selection-end-line="71" selection-end-column="47" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/ApiDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="315">
          <caret line="27" column="15" lean-forward="false" selection-start-line="27" selection-start-column="11" selection-end-line="27" selection-end-column="15" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/entity/apientity/Report.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="75">
          <caret line="5" column="19" lean-forward="false" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="19" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/ApiDao.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="298">
          <caret line="89" column="60" lean-forward="false" selection-start-line="89" selection-start-column="60" selection-end-line="89" selection-end-column="60" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/controller/TestController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="165">
          <caret line="16" column="47" lean-forward="false" selection-start-line="16" selection-start-column="4" selection-end-line="16" selection-end-column="47" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/entity/job/Adjust.java" />
    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/src.zip!/java/util/Map.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="173">
          <caret line="211" column="6" lean-forward="false" selection-start-line="211" selection-start-column="6" selection-end-line="211" selection-end-column="6" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/Test.java" />
    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/JobDao.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="105">
          <caret line="7" column="51" lean-forward="false" selection-start-line="7" selection-start-column="51" selection-end-line="7" selection-end-column="51" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/dao/JobDao.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="15">
          <caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/util/RedisUtil.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="75">
          <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="261">
          <caret line="203" column="38" lean-forward="false" selection-start-line="203" selection-start-column="38" selection-end-line="203" selection-end-column="38" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/message/Tomq.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="345">
          <caret line="29" column="106" lean-forward="false" selection-start-line="29" selection-start-column="50" selection-end-line="29" selection-end-column="106" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/Listener.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="321">
          <caret line="114" column="51" lean-forward="false" selection-start-line="114" selection-start-column="37" selection-end-line="114" selection-end-column="51" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/resources/rabbitmq.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="286">
          <caret line="43" column="8" lean-forward="true" selection-start-line="43" selection-start-column="8" selection-end-line="43" selection-end-column="8" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/main/java/com/moral/monitor/listener/TaskListener.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="348">
          <caret line="74" column="8" lean-forward="false" selection-start-line="74" selection-start-column="8" selection-end-line="74" selection-end-column="8" />
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/test/java/Test.java">
      <provider selected="true" editor-type-id="text-editor">
        <state relative-caret-position="225">
          <caret line="21" column="0" lean-forward="true" selection-start-line="12" selection-start-column="44" selection-end-line="12" selection-end-column="52" />
          <folding />
        </state>
      </provider>
pom.xml
@@ -193,12 +193,19 @@
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>4.1.6.RELEASE</version>
    </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.39</version>
        </dependency>
    </dependencies>
src/main/java/com/moral/monitor/dao/JobDao.java
New file
@@ -0,0 +1,12 @@
package com.moral.monitor.dao;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface JobDao {
    public List<Map<String, String>> findAdjustByMac(String mac);
}
src/main/java/com/moral/monitor/listener/TaskListener.java
New file
@@ -0,0 +1,94 @@
package com.moral.monitor.listener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.moral.monitor.dao.JobDao;
import com.moral.monitor.util.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.Connection;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.data.redis.core.RedisTemplate;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TaskListener implements MessageListener {
    @Resource
    RabbitTemplate rabbitTemplate;
    @Resource
    CachingConnectionFactory rabbitConnectionFactory;
    @Resource
    JobDao jobDao;
    @Resource
    RedisTemplate<String, String> redisTemplate;
    private Logger logger = LoggerFactory.getLogger(TaskListener.class);
    @Override
    public void onMessage(Message msg) {
        String message = null;
        try {
            message = new String(msg.getBody(), "utf-8");
        } catch (UnsupportedEncodingException e) {
            logger.warn(e.getMessage());
        }
        Map<String, String> msgData = JSON.parseObject(message, new TypeReference<Map<String, String>>() {});
        String mac = msgData.get("mac");
        Map<String, Float> adjustMap;
        if(RedisUtil.hasKey(redisTemplate, mac)) {
            adjustMap = JSON.parseObject(RedisUtil.get(redisTemplate, mac), new TypeReference<Map<String, Float>>() {});
        } else {
            adjustMap = getAdjustData(mac);
            RedisUtil.set(redisTemplate, mac, JSON.toJSONString(adjustMap));
        }
        if(!adjustMap.isEmpty()) {
            for (Map.Entry<String, Float> entry : adjustMap.entrySet()) {
                String key = entry.getKey();
                if(msgData.containsKey(key)) {
                    Float value = entry.getValue();
                    Float dataValue = Float.valueOf(msgData.get(key)) ;
                    msgData.put(key, String.valueOf(dataValue + value));
                }
            }
        }
        System.out.println(message);
        System.out.println(JSON.toJSONString(msgData));
        rabbitTemplate.convertAndSend("monitors_data_2", "", JSON.toJSONString(msgData).getBytes());
//        rabbitTemplate.send("monitors_data_3", "", new Message(JSON.toJSONString(msgData).getBytes(), new MessageProperties()));
    }
    private Map<String, Float> getAdjustData(String mac) {
        List<Map<String, String>> adjusts = jobDao.findAdjustByMac(mac);
        Map<String, Float> dataMap = new HashMap<String, Float>();
        for (int i = 0; i < adjusts.size(); i++) {
            Map adjust = adjusts.get(i);
            if(adjust.get("value") != null) {
                String key = String.valueOf(adjust.get("key"));
                String data = String.valueOf(adjust.get("value"));
                BigDecimal value = new BigDecimal(data);
                value.setScale(3, BigDecimal.ROUND_HALF_UP);
                dataMap.put(key, value.floatValue());
            }
        }
        return dataMap;
    }
}
src/main/java/com/moral/monitor/util/RedisUtil.java
New file
@@ -0,0 +1,21 @@
package com.moral.monitor.util;
import org.springframework.data.redis.core.RedisTemplate;
public class RedisUtil {
    public static boolean hasKey(RedisTemplate<String, String> redis, String key) {
        return redis.hasKey(key);
    }
    public static void set(RedisTemplate<String, String> redis, String key, String value) {
        redis.opsForValue().set(key, value);
    }
    public static String get(RedisTemplate<String, String> redis, String key) {
        return redis.opsForValue().get(key);
    }
}
src/main/resources/mapper/JobDao.xml
New file
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC  "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.monitor.dao.JobDao">
    <resultMap type="HashMap" id="adjustResultMap">
        <result column="mac_key"   property="key" javaType="java.lang.String" />
        <result column="value"   property="value" javaType="java.lang.Float" />
    </resultMap>
    <select id="findAdjustByMac" resultMap="adjustResultMap">
        select c.mac_key, d.`value`
        from equipment a
        inner join mac b on a.id = b.equipment_id
        inner join sensor c on b.sensor = c.id
        left join sensoradjust d on b.id = d.sen_dev_id
        where a.mac = #{0}
    </select>
</mapper>
src/main/resources/rabbitmq.xml
@@ -17,19 +17,28 @@
    <rabbit:admin connection-factory="rabbitConnectionFactory"/>
    <bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
        <constructor-arg ref="rabbitConnectionFactory"></constructor-arg>
    </bean>
    <rabbit:queue  name="monitors_storage_data" durable="false" exclusive="false" auto-delete="true"/>
    <!--<bean id="amqpMsgListener" class="com.moral.monitor.listener.MonitorListener"/>-->
    <bean id="amqpMsgListener" class="com.moral.monitor.listener.Listener"/>
    <!--<bean id="amqpMsgListener" class="com.moral.monitor.listener.Listener"/>-->
    <bean id="amqpMsgListener" class="com.moral.monitor.listener.TaskListener"/>
    <rabbit:listener-container connection-factory="rabbitConnectionFactory" acknowledge="auto" >
        <rabbit:listener  queues="monitors_storage_data"   ref="amqpMsgListener" />
    </rabbit:listener-container>
    <bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
        <constructor-arg ref="rabbitConnectionFactory"></constructor-arg>
    </bean>
    <rabbit:queue name="monitors_storage_data_2" durable="true" auto-delete="false" exclusive="false" />
    <rabbit:fanout-exchange name="exchange_alarm" durable="false"  xmlns="http://www.springframework.org/schema/rabbit"></rabbit:fanout-exchange>
    <rabbit:fanout-exchange name="monitors_data_2" durable="true" auto-delete="false">
        <rabbit:bindings>
            <rabbit:binding queue="monitors_storage_data_2"></rabbit:binding>
        </rabbit:bindings>
    </rabbit:fanout-exchange>
    <!--http://blog.csdn.net/u012204058/article/details/54292888-->
    <!--http://blog.csdn.net/itmrchen/article/details/53285648-->
</beans>
src/test/java/Test.java
@@ -1,10 +1,21 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.moral.monitor.listener.message.Captcha;
import com.taobao.api.ApiException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.Map;
public class Test {
    public static void main(String[] args) throws ApiException {
        Captcha.captcha("15950198162", "123456");
        new ClassPathXmlApplicationContext("rabbitmq.xml");
//        String message = "{\"mac\":\"898602b8191630065889\",\"time\":1509008923461,\"ver\":2,\"e1\":66,\"e2\":70,\"e3\":7839,\"e4\":20,\"e5\":0,\"e6\":59,\"e7\":23,\"e8\":19.96,\"e9\":0,\"e10\":0,\"e11\":0,\"e12\":28,\"e13\":45,\"e14\":0,\"e15\":0,\"e16\":0,\"e17\":0.004,\"e18\":0,\"e19\":487,\"warn\":\"00000001\"}";
//        Map<String, String> msgData = JSON.parseObject(message, new TypeReference<Map<String, String>>() {});
//        System.out.println(msgData.get("e1").getClass());
        //Captcha.captcha("15950198162", "123456");
    }
}
task.iml
@@ -43,7 +43,7 @@
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.7.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.7" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.39" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:druid:1.0.18" level="project" />
    <orderEntry type="module-library">
      <library name="Maven: com.alibaba:jconsole:1.8.0">
@@ -117,5 +117,6 @@
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" level="project" />
    <orderEntry type="library" name="Maven: redis.clients:jedis:2.9.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.1.6.RELEASE" level="project" />
  </component>
</module>