Compare commits
	
		
			13 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6671cb69c9 | |||
| 7abeffb61a | |||
| 54d73db62f | |||
| 8149e21e2f | |||
| 2847747f53 | |||
| 1231fe3132 | |||
| fbe9f8e532 | |||
| 53849e4f74 | |||
| d1bcb3b956 | |||
| 2dbe40b7a8 | |||
| 566809868a | |||
| e5be1e0b66 | |||
| 5672c83a71 | 
							
								
								
									
										96
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										96
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,99 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					target/*
 | 
				
			||||||
 | 
					*.jar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ---> C++
 | 
				
			||||||
 | 
					# Prerequisites
 | 
				
			||||||
 | 
					*.d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiled Object files
 | 
				
			||||||
 | 
					*.slo
 | 
				
			||||||
 | 
					*.lo
 | 
				
			||||||
 | 
					*.o
 | 
				
			||||||
 | 
					*.obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Precompiled Headers
 | 
				
			||||||
 | 
					*.gch
 | 
				
			||||||
 | 
					*.pch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiled Dynamic libraries
 | 
				
			||||||
 | 
					*.so
 | 
				
			||||||
 | 
					*.dylib
 | 
				
			||||||
 | 
					*.dll
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Fortran module files
 | 
				
			||||||
 | 
					*.mod
 | 
				
			||||||
 | 
					*.smod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiled Static libraries
 | 
				
			||||||
 | 
					*.lai
 | 
				
			||||||
 | 
					*.la
 | 
				
			||||||
 | 
					*.a
 | 
				
			||||||
 | 
					*.lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Executables
 | 
				
			||||||
 | 
					*.exe
 | 
				
			||||||
 | 
					*.out
 | 
				
			||||||
 | 
					*.app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ---> CMake
 | 
				
			||||||
 | 
					CMakeLists.txt.user
 | 
				
			||||||
 | 
					CMakeCache.txt
 | 
				
			||||||
 | 
					CMakeFiles
 | 
				
			||||||
 | 
					CMakeScripts
 | 
				
			||||||
 | 
					Testing
 | 
				
			||||||
 | 
					Makefile
 | 
				
			||||||
 | 
					cmake_install.cmake
 | 
				
			||||||
 | 
					install_manifest.txt
 | 
				
			||||||
 | 
					compile_commands.json
 | 
				
			||||||
 | 
					CTestTestfile.cmake
 | 
				
			||||||
 | 
					_deps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ---> Java
 | 
				
			||||||
 | 
					# Compiled class file
 | 
				
			||||||
 | 
					*.class
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Log file
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# BlueJ files
 | 
				
			||||||
 | 
					*.ctxt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Mobile Tools for Java (J2ME)
 | 
				
			||||||
 | 
					.mtj.tmp/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Package Files #
 | 
				
			||||||
 | 
					*.jar
 | 
				
			||||||
 | 
					*.war
 | 
				
			||||||
 | 
					*.nar
 | 
				
			||||||
 | 
					*.ear
 | 
				
			||||||
 | 
					*.zip
 | 
				
			||||||
 | 
					*.tar.gz
 | 
				
			||||||
 | 
					*.rar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 | 
				
			||||||
 | 
					hs_err_pid*
 | 
				
			||||||
 | 
					replay_pid*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ---> Maven
 | 
				
			||||||
 | 
					target/
 | 
				
			||||||
 | 
					pom.xml.tag
 | 
				
			||||||
 | 
					pom.xml.releaseBackup
 | 
				
			||||||
 | 
					pom.xml.versionsBackup
 | 
				
			||||||
 | 
					pom.xml.next
 | 
				
			||||||
 | 
					release.properties
 | 
				
			||||||
 | 
					dependency-reduced-pom.xml
 | 
				
			||||||
 | 
					buildNumber.properties
 | 
				
			||||||
 | 
					.mvn/timing.properties
 | 
				
			||||||
 | 
					# https://github.com/takari/maven-wrapper#usage-without-binary-jar
 | 
				
			||||||
 | 
					.mvn/wrapper/maven-wrapper.jar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Eclipse m2e generated files
 | 
				
			||||||
 | 
					# Eclipse Core
 | 
				
			||||||
 | 
					.project
 | 
				
			||||||
 | 
					# JDT-specific (Eclipse Java Development Tools)
 | 
				
			||||||
 | 
					.classpath
 | 
				
			||||||
 | 
					
 | 
				
			||||||
code/java/天气灾害预警/target/
 | 
					code/java/天气灾害预警/target/
 | 
				
			||||||
code/java/天气灾害预警/out/
 | 
					code/java/天气灾害预警/out/
 | 
				
			||||||
*.jar
 | 
					*.jar
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								code/java/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								code/java/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,8 +0,0 @@
 | 
				
			|||||||
# Default ignored files
 | 
					 | 
				
			||||||
/shelf/
 | 
					 | 
				
			||||||
/workspace.xml
 | 
					 | 
				
			||||||
# Editor-based HTTP Client requests
 | 
					 | 
				
			||||||
/httpRequests/
 | 
					 | 
				
			||||||
# Datasource local storage ignored files
 | 
					 | 
				
			||||||
/dataSources/
 | 
					 | 
				
			||||||
/dataSources.local.xml
 | 
					 | 
				
			||||||
							
								
								
									
										16
									
								
								code/java/.idea/compiler.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								code/java/.idea/compiler.xml
									
									
									
										generated
									
									
									
								
							@@ -1,16 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="CompilerConfiguration">
 | 
					 | 
				
			||||||
    <annotationProcessing>
 | 
					 | 
				
			||||||
      <profile name="Maven default annotation processors profile" enabled="true">
 | 
					 | 
				
			||||||
        <sourceOutputDir name="target/generated-sources/annotations" />
 | 
					 | 
				
			||||||
        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
 | 
					 | 
				
			||||||
        <outputRelativeToContentRoot value="true" />
 | 
					 | 
				
			||||||
        <module name="disaster_warning" />
 | 
					 | 
				
			||||||
      </profile>
 | 
					 | 
				
			||||||
    </annotationProcessing>
 | 
					 | 
				
			||||||
    <bytecodeTargetLevel>
 | 
					 | 
				
			||||||
      <module name="天气灾害预警" target="17" />
 | 
					 | 
				
			||||||
    </bytecodeTargetLevel>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										25
									
								
								code/java/.idea/disaster_warning.iml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										25
									
								
								code/java/.idea/disaster_warning.iml
									
									
									
										generated
									
									
									
								
							@@ -1,25 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_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" />
 | 
					 | 
				
			||||||
      <excludeFolder url="file://$MODULE_DIR$/target" />
 | 
					 | 
				
			||||||
    </content>
 | 
					 | 
				
			||||||
    <orderEntry type="inheritedJdk" />
 | 
					 | 
				
			||||||
    <orderEntry type="sourceFolder" forTests="false" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8" level="project" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</module>
 | 
					 | 
				
			||||||
							
								
								
									
										7
									
								
								code/java/.idea/encodings.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7
									
								
								code/java/.idea/encodings.xml
									
									
									
										generated
									
									
									
								
							@@ -1,7 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="Encoding">
 | 
					 | 
				
			||||||
    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
 | 
					 | 
				
			||||||
    <file url="PROJECT" charset="UTF-8" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										25
									
								
								code/java/.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										25
									
								
								code/java/.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
								
							@@ -1,25 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="RemoteRepositoriesConfiguration">
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="central" />
 | 
					 | 
				
			||||||
      <option name="name" value="Central Repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://repo.maven.apache.org/maven2" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="central" />
 | 
					 | 
				
			||||||
      <option name="name" value="Maven Central repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://repo1.maven.org/maven2" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="jboss.community" />
 | 
					 | 
				
			||||||
      <option name="name" value="JBoss Community repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="central" />
 | 
					 | 
				
			||||||
      <option name="name" value="Central Repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://maven.aliyun.com/repository/public" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										14
									
								
								code/java/.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										14
									
								
								code/java/.idea/misc.xml
									
									
									
										generated
									
									
									
								
							@@ -1,14 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="ExternalStorageConfigurationManager" enabled="true" />
 | 
					 | 
				
			||||||
  <component name="MavenProjectsManager">
 | 
					 | 
				
			||||||
    <option name="originalFiles">
 | 
					 | 
				
			||||||
      <list>
 | 
					 | 
				
			||||||
        <option value="$PROJECT_DIR$/pom.xml" />
 | 
					 | 
				
			||||||
      </list>
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
 | 
					 | 
				
			||||||
    <output url="file://$PROJECT_DIR$/out" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										29
									
								
								code/java/.idea/runConfigurations/compile.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										29
									
								
								code/java/.idea/runConfigurations/compile.xml
									
									
									
										generated
									
									
									
								
							@@ -1,29 +0,0 @@
 | 
				
			|||||||
<component name="ProjectRunConfigurationManager">
 | 
					 | 
				
			||||||
  <configuration default="false" name="compile" type="MavenRunConfiguration" factoryName="Maven">
 | 
					 | 
				
			||||||
    <MavenSettings>
 | 
					 | 
				
			||||||
      <option name="myGeneralSettings" />
 | 
					 | 
				
			||||||
      <option name="myRunnerSettings" />
 | 
					 | 
				
			||||||
      <option name="myRunnerParameters">
 | 
					 | 
				
			||||||
        <MavenRunnerParameters>
 | 
					 | 
				
			||||||
          <option name="profiles">
 | 
					 | 
				
			||||||
            <set />
 | 
					 | 
				
			||||||
          </option>
 | 
					 | 
				
			||||||
          <option name="goals">
 | 
					 | 
				
			||||||
            <list>
 | 
					 | 
				
			||||||
              <option value="compile" />
 | 
					 | 
				
			||||||
            </list>
 | 
					 | 
				
			||||||
          </option>
 | 
					 | 
				
			||||||
          <option name="pomFileName" />
 | 
					 | 
				
			||||||
          <option name="profilesMap">
 | 
					 | 
				
			||||||
            <map>
 | 
					 | 
				
			||||||
              <entry key="dev" value="true" />
 | 
					 | 
				
			||||||
            </map>
 | 
					 | 
				
			||||||
          </option>
 | 
					 | 
				
			||||||
          <option name="resolveToWorkspace" value="false" />
 | 
					 | 
				
			||||||
          <option name="workingDirPath" value="$PROJECT_DIR$" />
 | 
					 | 
				
			||||||
        </MavenRunnerParameters>
 | 
					 | 
				
			||||||
      </option>
 | 
					 | 
				
			||||||
    </MavenSettings>
 | 
					 | 
				
			||||||
    <method v="2" />
 | 
					 | 
				
			||||||
  </configuration>
 | 
					 | 
				
			||||||
</component>
 | 
					 | 
				
			||||||
							
								
								
									
										124
									
								
								code/java/.idea/uiDesigner.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										124
									
								
								code/java/.idea/uiDesigner.xml
									
									
									
										generated
									
									
									
								
							@@ -1,124 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="Palette2">
 | 
					 | 
				
			||||||
    <group name="Swing">
 | 
					 | 
				
			||||||
      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="Button" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="RadioButton" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="CheckBox" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="Label" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="-1" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="-1" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="-1" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="200" height="200" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="200" height="200" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="-1" height="20" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
    </group>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										6
									
								
								code/java/.idea/vcs.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								code/java/.idea/vcs.xml
									
									
									
										generated
									
									
									
								
							@@ -1,6 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="VcsDirectoryMappings">
 | 
					 | 
				
			||||||
    <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										147
									
								
								code/java/.idea/天气灾害预警.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										147
									
								
								code/java/.idea/天气灾害预警.xml
									
									
									
										generated
									
									
									
								
							@@ -1,147 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="AutoImportSettings">
 | 
					 | 
				
			||||||
    <option name="autoReloadType" value="SELECTIVE" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ChangeListManager">
 | 
					 | 
				
			||||||
    <list default="true" id="e81b1d7b-ad5e-432e-bbb6-6fbbb75430af" name="Changes" comment="">
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/.idea/runConfigurations/compile.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/runConfigurations/compile.xml" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/AppMain.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/AppMain.java" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningItem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningItem.java" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningRefer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/cpic/xim/disaster_warning/QWeatherDisasterWarningRefer.java" afterDir="false" />
 | 
					 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/com/cpic/xim/disaster_warning/WeatherDisasterWarningGrabber.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/cpic/xim/disaster_warning/WeatherDisasterWarningGrabber.java" afterDir="false" />
 | 
					 | 
				
			||||||
    </list>
 | 
					 | 
				
			||||||
    <option name="SHOW_DIALOG" value="false" />
 | 
					 | 
				
			||||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
					 | 
				
			||||||
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
 | 
					 | 
				
			||||||
    <option name="LAST_RESOLUTION" value="IGNORE" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="FileTemplateManagerImpl">
 | 
					 | 
				
			||||||
    <option name="RECENT_TEMPLATES">
 | 
					 | 
				
			||||||
      <list>
 | 
					 | 
				
			||||||
        <option value="Class" />
 | 
					 | 
				
			||||||
      </list>
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="Git.Settings">
 | 
					 | 
				
			||||||
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="MarkdownSettingsMigration">
 | 
					 | 
				
			||||||
    <option name="stateVersion" value="1" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="MavenImportPreferences">
 | 
					 | 
				
			||||||
    <option name="generalSettings">
 | 
					 | 
				
			||||||
      <MavenGeneralSettings>
 | 
					 | 
				
			||||||
        <option name="localRepository" value="$PROJECT_DIR$/../../../../../../DevTools/maven/Repository" />
 | 
					 | 
				
			||||||
        <option name="mavenHome" value="$PROJECT_DIR$/../../../../../../DevTools/maven/apache-maven-3.8.5" />
 | 
					 | 
				
			||||||
        <option name="useMavenConfig" value="true" />
 | 
					 | 
				
			||||||
        <option name="userSettingsFile" value="D:\DevTools\maven\apache-maven-3.8.5\conf\settings.xml" />
 | 
					 | 
				
			||||||
      </MavenGeneralSettings>
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="MavenRunner">
 | 
					 | 
				
			||||||
    <option name="delegateBuildToMaven" value="true" />
 | 
					 | 
				
			||||||
    <option name="jreName" value="1.8" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ProblemsViewState">
 | 
					 | 
				
			||||||
    <option name="selectedTabId" value="ProjectErrors" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ProjectId" id="26PXzlujlRW5evopBaaKpyGjycC" />
 | 
					 | 
				
			||||||
  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
 | 
					 | 
				
			||||||
    <ConfirmationsSetting value="1" id="Add" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ProjectViewState">
 | 
					 | 
				
			||||||
    <option name="hideEmptyMiddlePackages" value="true" />
 | 
					 | 
				
			||||||
    <option name="showLibraryContents" value="true" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="PropertiesComponent">
 | 
					 | 
				
			||||||
    <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
 | 
					 | 
				
			||||||
    <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
 | 
					 | 
				
			||||||
    <property name="WebServerToolWindowFactoryState" value="false" />
 | 
					 | 
				
			||||||
    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
 | 
					 | 
				
			||||||
    <property name="node.js.detected.package.eslint" value="true" />
 | 
					 | 
				
			||||||
    <property name="node.js.detected.package.tslint" value="true" />
 | 
					 | 
				
			||||||
    <property name="node.js.selected.package.eslint" value="(autodetect)" />
 | 
					 | 
				
			||||||
    <property name="node.js.selected.package.tslint" value="(autodetect)" />
 | 
					 | 
				
			||||||
    <property name="nodejs_package_manager_path" value="npm" />
 | 
					 | 
				
			||||||
    <property name="project.structure.last.edited" value="Modules" />
 | 
					 | 
				
			||||||
    <property name="project.structure.proportion" value="0.15" />
 | 
					 | 
				
			||||||
    <property name="project.structure.side.proportion" value="0.2" />
 | 
					 | 
				
			||||||
    <property name="settings.editor.selected.configurable" value="MavenSettings" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="RunAnythingCache">
 | 
					 | 
				
			||||||
    <option name="myCommands">
 | 
					 | 
				
			||||||
      <command value="idea:idea -U" />
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="RunManager" selected="Maven.compile">
 | 
					 | 
				
			||||||
    <configuration name="AppMain" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
 | 
					 | 
				
			||||||
      <option name="MAIN_CLASS_NAME" value="AppMain" />
 | 
					 | 
				
			||||||
      <module name="disaster_warning" />
 | 
					 | 
				
			||||||
      <method v="2">
 | 
					 | 
				
			||||||
        <option name="Make" enabled="true" />
 | 
					 | 
				
			||||||
      </method>
 | 
					 | 
				
			||||||
    </configuration>
 | 
					 | 
				
			||||||
    <configuration default="true" type="JetRunConfigurationType">
 | 
					 | 
				
			||||||
      <method v="2">
 | 
					 | 
				
			||||||
        <option name="Make" enabled="true" />
 | 
					 | 
				
			||||||
      </method>
 | 
					 | 
				
			||||||
    </configuration>
 | 
					 | 
				
			||||||
    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
 | 
					 | 
				
			||||||
      <option name="filePath" />
 | 
					 | 
				
			||||||
      <method v="2">
 | 
					 | 
				
			||||||
        <option name="Make" enabled="true" />
 | 
					 | 
				
			||||||
      </method>
 | 
					 | 
				
			||||||
    </configuration>
 | 
					 | 
				
			||||||
    <recent_temporary>
 | 
					 | 
				
			||||||
      <list>
 | 
					 | 
				
			||||||
        <item itemvalue="Application.AppMain" />
 | 
					 | 
				
			||||||
      </list>
 | 
					 | 
				
			||||||
    </recent_temporary>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
 | 
					 | 
				
			||||||
  <component name="TaskManager">
 | 
					 | 
				
			||||||
    <task active="true" id="Default" summary="Default task">
 | 
					 | 
				
			||||||
      <changelist id="e81b1d7b-ad5e-432e-bbb6-6fbbb75430af" name="Changes" comment="" />
 | 
					 | 
				
			||||||
      <created>1647326463353</created>
 | 
					 | 
				
			||||||
      <option name="number" value="Default" />
 | 
					 | 
				
			||||||
      <option name="presentableId" value="Default" />
 | 
					 | 
				
			||||||
      <updated>1647326463353</updated>
 | 
					 | 
				
			||||||
      <workItem from="1647326471822" duration="6934000" />
 | 
					 | 
				
			||||||
      <workItem from="1647334567225" duration="1649000" />
 | 
					 | 
				
			||||||
      <workItem from="1647338154313" duration="98000" />
 | 
					 | 
				
			||||||
      <workItem from="1647398025447" duration="1714000" />
 | 
					 | 
				
			||||||
      <workItem from="1647399779588" duration="4127000" />
 | 
					 | 
				
			||||||
      <workItem from="1647408946144" duration="1177000" />
 | 
					 | 
				
			||||||
      <workItem from="1647410156413" duration="10520000" />
 | 
					 | 
				
			||||||
      <workItem from="1647479250349" duration="12253000" />
 | 
					 | 
				
			||||||
      <workItem from="1647531294555" duration="2501000" />
 | 
					 | 
				
			||||||
      <workItem from="1647534118478" duration="613000" />
 | 
					 | 
				
			||||||
      <workItem from="1647535499626" duration="591000" />
 | 
					 | 
				
			||||||
      <workItem from="1647536147299" duration="30000" />
 | 
					 | 
				
			||||||
      <workItem from="1647536420955" duration="167000" />
 | 
					 | 
				
			||||||
      <workItem from="1647536652740" duration="1720000" />
 | 
					 | 
				
			||||||
    </task>
 | 
					 | 
				
			||||||
    <servers />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="TypeScriptGeneratedFilesManager">
 | 
					 | 
				
			||||||
    <option name="version" value="3" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="Vcs.Log.Tabs.Properties">
 | 
					 | 
				
			||||||
    <option name="TAB_STATES">
 | 
					 | 
				
			||||||
      <map>
 | 
					 | 
				
			||||||
        <entry key="MAIN">
 | 
					 | 
				
			||||||
          <value>
 | 
					 | 
				
			||||||
            <State />
 | 
					 | 
				
			||||||
          </value>
 | 
					 | 
				
			||||||
        </entry>
 | 
					 | 
				
			||||||
      </map>
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="XSLT-Support.FileAssociations.UIState">
 | 
					 | 
				
			||||||
    <expand />
 | 
					 | 
				
			||||||
    <select />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
							
								
								
									
										3
									
								
								code/java/DisasterWarning/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								code/java/DisasterWarning/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -134,3 +134,6 @@ $RECYCLE.BIN/
 | 
				
			|||||||
*.lnk
 | 
					*.lnk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target/*
 | 
					target/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					logs/*
 | 
				
			||||||
 | 
					logs
 | 
				
			||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
    "key": "fe9fa8eeeb6f4301a92541eed565dd15",
 | 
					    "key": "fe9fa8eeeb6f4301a92541eed565dd15",
 | 
				
			||||||
    "query_url": "https://devapi.qweather.com/v7/warning/now?",
 | 
					    "query_url": "https://devapi.qweather.com/v7/warning/now?",
 | 
				
			||||||
    "wechat_officalaccount_url": "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage",
 | 
					    "wechat_officalaccount_url": "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage",
 | 
				
			||||||
 | 
					    "query_interval": 10,
 | 
				
			||||||
    "cities": [
 | 
					    "cities": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "city_name": "厦门",
 | 
					            "city_name": "厦门",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								code/java/DisasterWarning/logging.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								code/java/DisasterWarning/logging.properties
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.level = INFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.pattern = ./logs/log_%u.log
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.limit = 50000
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.count = 1
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.append = true;
 | 
				
			||||||
@@ -8,9 +8,7 @@
 | 
				
			|||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <groupId>com.oracle</groupId>
 | 
					            <groupId>com.oracle</groupId>
 | 
				
			||||||
            <artifactId>ojdbc8</artifactId>
 | 
					            <artifactId>ojdbc8</artifactId>
 | 
				
			||||||
            <version>1.0</version>
 | 
					            <version>19.3.0.0.0</version>
 | 
				
			||||||
            <scope>system</scope>
 | 
					 | 
				
			||||||
            <systemPath>${project.basedir}/lib/ojdbc8.jar</systemPath>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <groupId>org.apache.httpcomponents</groupId>
 | 
					            <groupId>org.apache.httpcomponents</groupId>
 | 
				
			||||||
@@ -23,37 +21,6 @@
 | 
				
			|||||||
            <version>4.13.2</version>
 | 
					            <version>4.13.2</version>
 | 
				
			||||||
            <scope>test</scope>
 | 
					            <scope>test</scope>
 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-beanutils</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-beanutils</artifactId>
 | 
					 | 
				
			||||||
            <version>1.9.4</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-collections</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-collections</artifactId>
 | 
					 | 
				
			||||||
            <version>20040616</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-lang</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-lang</artifactId>
 | 
					 | 
				
			||||||
            <version>2.6</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-logging</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-logging</artifactId>
 | 
					 | 
				
			||||||
            <version>1.1.1</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>net.sf.ezmorph</groupId>
 | 
					 | 
				
			||||||
            <artifactId>ezmorph</artifactId>
 | 
					 | 
				
			||||||
            <version>1.0.6</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>net.sf.json-lib</groupId>
 | 
					 | 
				
			||||||
            <artifactId>json-lib</artifactId>
 | 
					 | 
				
			||||||
            <version>2.4</version>
 | 
					 | 
				
			||||||
            <classifier>jdk15</classifier>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <groupId>com.fasterxml.jackson.core</groupId>
 | 
					            <groupId>com.fasterxml.jackson.core</groupId>
 | 
				
			||||||
            <artifactId>jackson-core</artifactId>
 | 
					            <artifactId>jackson-core</artifactId>
 | 
				
			||||||
@@ -79,10 +46,39 @@
 | 
				
			|||||||
    </properties>
 | 
					    </properties>
 | 
				
			||||||
    <build>
 | 
					    <build>
 | 
				
			||||||
        <defaultGoal>compile</defaultGoal>
 | 
					        <defaultGoal>compile</defaultGoal>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <plugins>
 | 
					        <plugins>
 | 
				
			||||||
            <!-- <plugin>
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-surefire-plugin</artifactId>
 | 
				
			||||||
 | 
					                <version>3.0.0-M6</version>
 | 
				
			||||||
 | 
					                <configuration>
 | 
				
			||||||
 | 
					                    <skipTests>true</skipTests>
 | 
				
			||||||
 | 
					                </configuration>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
                <artifactId>maven-assembly-plugin</artifactId>
 | 
					                <artifactId>maven-assembly-plugin</artifactId>
 | 
				
			||||||
            </plugin> -->
 | 
					                <configuration>
 | 
				
			||||||
 | 
					                    <descriptorRefs>
 | 
				
			||||||
 | 
					                        <descriptorRef>jar-with-dependencies</descriptorRef>
 | 
				
			||||||
 | 
					                    </descriptorRefs>
 | 
				
			||||||
 | 
					                    <archive>
 | 
				
			||||||
 | 
					                        <manifest>
 | 
				
			||||||
 | 
					                            <mainClass>AppMain</mainClass>
 | 
				
			||||||
 | 
					                        </manifest>
 | 
				
			||||||
 | 
					                    </archive>
 | 
				
			||||||
 | 
					                </configuration>
 | 
				
			||||||
 | 
					                <executions>
 | 
				
			||||||
 | 
					                    <execution>
 | 
				
			||||||
 | 
					                        <id>make-assmenbly</id>
 | 
				
			||||||
 | 
					                        <phase>package</phase>
 | 
				
			||||||
 | 
					                        <goals>
 | 
				
			||||||
 | 
					                            <goal>single</goal>
 | 
				
			||||||
 | 
					                        </goals>
 | 
				
			||||||
 | 
					                    </execution>
 | 
				
			||||||
 | 
					                </executions>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
        </plugins>
 | 
					        </plugins>
 | 
				
			||||||
    </build>
 | 
					    </build>
 | 
				
			||||||
    <profiles>
 | 
					    <profiles>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,18 +2,20 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-04-22 10:53:49
 | 
					 * @Date: 2022-04-22 10:53:49
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2022-05-06 11:08:07
 | 
					 * @LastEditTime: 2022-05-10 19:03:56
 | 
				
			||||||
 * @FilePath: \DisasterWarning\src\main\java\AppMain.java
 | 
					 * @FilePath: \DisasterWarning\src\main\java\AppMain.java
 | 
				
			||||||
 * @Description: 和风天气预警推送厦门太保公众号主程序!
 | 
					 * @Description: 和风天气预警推送厦门太保公众号主程序!
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					import com.cpic.xim.config.AppConfigManager;
 | 
				
			||||||
import com.cpic.xim.config.City;
 | 
					import com.cpic.xim.config.City;
 | 
				
			||||||
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
					import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
				
			||||||
 | 
					import com.cpic.xim.notify.disaster.QWeatherDisasterWarningItem;
 | 
				
			||||||
import com.cpic.xim.notify.disaster.WeatherDisasterWarningGrabber;
 | 
					import com.cpic.xim.notify.disaster.WeatherDisasterWarningGrabber;
 | 
				
			||||||
import com.cpic.xim.wechat.officalAccount.sendMessage;
 | 
					import com.cpic.xim.wechat.officalAccount.sendMessage;
 | 
				
			||||||
import com.cpic.xim.config.WeatherDisasterNotifyConfig;
 | 
					import com.cpic.xim.config.WeatherDisasterNotifyConfig;
 | 
				
			||||||
 | 
					import java.io.FileInputStream;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.sql.SQLException;
 | 
					import java.sql.SQLException;
 | 
				
			||||||
import java.util.Vector;
 | 
					import java.util.Vector;
 | 
				
			||||||
@@ -22,7 +24,7 @@ import java.util.logging.*;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class AppMain
 | 
					public class AppMain
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private final static String LOG_FILE_PATH = "./app.log";
 | 
					    // private final static String LOG_FILE_PATH = "./logs/app%u.log";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void main( String[] args )
 | 
					    public static void main( String[] args )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -45,11 +47,10 @@ public class AppMain
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 读取配置
 | 
					        // 读取配置
 | 
				
			||||||
        try
 | 
					        try
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            config = WeatherDisasterNotifyConfig.getConfig();
 | 
					            config = AppConfigManager.getConfig();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        catch ( IOException error )
 | 
					        catch ( IOException error )
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -66,57 +67,90 @@ public class AppMain
 | 
				
			|||||||
        String userKey = config.getKey();
 | 
					        String userKey = config.getKey();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 遍历所有城市,查询是否有警报,有则推送。
 | 
					        // 遍历所有城市,查询是否有警报,有则推送。
 | 
				
			||||||
        for ( City city : cities )
 | 
					        while (true)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            for ( City city : cities )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                try
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    json = WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( queryURL,
 | 
				
			||||||
 | 
					                            userKey, city.getCityCode() );
 | 
				
			||||||
 | 
					                    warning = WeatherDisasterWarningGrabber.convertWeatherDisasterWarning( json );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    logger.log( Level.INFO, "查询{0}天气预警,结果:{1}。", new Object[]
 | 
				
			||||||
 | 
					                    { city.getCityName(), json} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Vector<QWeatherDisasterWarningItem> warningItems = warning.getWarning();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    // 判断是否有警报,没有警报就结束当前城市的处理
 | 
				
			||||||
 | 
					                    if ( warningItems.isEmpty() == true)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        logger.log( Level.INFO, "查询{0}天气预警,无警报!。", new Object[]
 | 
				
			||||||
 | 
					                        { city.getCityName()} );
 | 
				
			||||||
 | 
					                        continue;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    // 有警报,就遍历警报数组
 | 
				
			||||||
 | 
					                    for ( QWeatherDisasterWarningItem item : warningItems )
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        // 先检查是否已经发送过
 | 
				
			||||||
 | 
					                        if ( sendMessage.checkWarningHasSended( item.getId() ) == false)
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            logger.log( Level.INFO, "查询{0}天气预警,ID:{1},已有发送记录,跳过。", new Object[]
 | 
				
			||||||
 | 
					                            { city.getCityName(), item.getId()} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            continue;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        // 没有发送过
 | 
				
			||||||
 | 
					                        logger.log( Level.INFO, "查询{0}天气预警,发送日志。", new Object[]
 | 
				
			||||||
 | 
					                        { city.getCityName()} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(),
 | 
				
			||||||
 | 
					                                item );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        logger.log( Level.INFO, "{0}天气预警,日志发送成功。", new Object[]
 | 
				
			||||||
 | 
					                        { city.getCityName()} );
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    // 将发送的警报,保存起来
 | 
				
			||||||
 | 
					                    sendMessage.saveWeatherDisasterWarning( city.getCityName(), warning );
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                catch ( IOException error )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    System.out.println( "查询" + city.getCityName() + "出现异常!" );
 | 
				
			||||||
 | 
					                    System.out.println( error.getMessage() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    logger.log( Level.SEVERE, "查询 {0} 出现异常:{1}。", new Object[]
 | 
				
			||||||
 | 
					                    { city.getCityName(), error.getMessage()} );
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                catch ( SQLException error )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    logger.log( Level.SEVERE, "查询 {0} 写入数据库失败:{1}。", new Object[]
 | 
				
			||||||
 | 
					                    { city.getCityName(), error.getMessage()} );
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                catch ( ClassNotFoundException error )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    logger.log( Level.SEVERE, "查询 {0} 加载oracle驱动失败:{1}。", new Object[]
 | 
				
			||||||
 | 
					                    { city.getCityName(), error.getMessage()} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                catch ( Exception error )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    logger.log( Level.SEVERE, "查询 {0} 出现未知错误:{1}。", new Object[]
 | 
				
			||||||
 | 
					                    { city.getCityName(), error.getMessage()} );
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                json = WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( queryURL,
 | 
					                logger.log( Level.INFO, "查询结束,休眠{0}分钟。", config.getQueryInterval() );
 | 
				
			||||||
                        userKey, city.getCityCode() );
 | 
					                Thread.sleep( config.getQueryInterval() * 1000 * 60 );
 | 
				
			||||||
                warning = WeatherDisasterWarningGrabber.convertWeatherDisasterWarning( json );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                logger.log( Level.INFO, "查询{0}天气预警,结果:{1}。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName(), json} );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // 判断是否有警报
 | 
					 | 
				
			||||||
                if ( warning.getWarning().isEmpty() == true)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    continue;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                logger.log( Level.INFO, "查询{0}天气预警,发送日志。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName()} );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(),
 | 
					 | 
				
			||||||
                        warning );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                logger.log( Level.INFO, "{0}天气预警,日志发送成功。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName()} );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                sendMessage.saveWeatherDisasterWarning( city.getCityName(), warning );
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch ( IOException error )
 | 
					            catch ( InterruptedException error )
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                System.out.println( "查询" + city.getCityName() + "出现异常!" );
 | 
					                logger.log( Level.SEVERE, "线程休眠异常,错误信息:{0}", new Object[]
 | 
				
			||||||
                System.out.println( error.getMessage() );
 | 
					                { error.getMessage()} );
 | 
				
			||||||
 | 
					 | 
				
			||||||
                logger.log( Level.SEVERE, "查询 {0} 出现异常:{1}。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName(), error.getMessage()} );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch ( SQLException error )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                logger.log( Level.SEVERE, "查询 {0} 写入数据库失败:{1}。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName(), error.getMessage()} );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch ( ClassNotFoundException error )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                logger.log( Level.SEVERE, "查询 {0} 加载oracle驱动失败:{1}。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName(), error.getMessage()} );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch ( Exception error )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                logger.log( Level.SEVERE, "查询 {0} 出现未知错误:{1}。", new Object[]
 | 
					 | 
				
			||||||
                { city.getCityName(), error.getMessage()} );
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -126,17 +160,15 @@ public class AppMain
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    private static void setRootLogger() throws IOException
 | 
					    private static void setRootLogger() throws IOException
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Logger rootLogger = Logger.getLogger( "com.cpicxim" );
 | 
					        LogManager logManager = LogManager.getLogManager();
 | 
				
			||||||
        ConsoleHandler consoleHandler = new ConsoleHandler();
 | 
					        // 使用外部的配置文件。
 | 
				
			||||||
        FileHandler fileHandler = new FileHandler( LOG_FILE_PATH );
 | 
					        FileInputStream configFile = new FileInputStream( "./logging.properties" );
 | 
				
			||||||
        SimpleFormatter formatter = new SimpleFormatter();
 | 
					        // 使用jar中的配置文件。
 | 
				
			||||||
 | 
					        // InputStream configFile =
 | 
				
			||||||
 | 
					        // AppMain.class.getClassLoader().getResourceAsStream( "logging.properties" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        consoleHandler.setFormatter( formatter );
 | 
					        logManager.readConfiguration( configFile );
 | 
				
			||||||
        fileHandler.setFormatter( formatter );
 | 
					 | 
				
			||||||
        rootLogger.addHandler( consoleHandler );
 | 
					 | 
				
			||||||
        rootLogger.addHandler( fileHandler );
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        rootLogger.setUseParentHandlers( false );
 | 
					        Logger.getLogger( "com.cpicxim" );
 | 
				
			||||||
        rootLogger.setLevel( Level.ALL );
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2022-05-10 16:06:14
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2022-05-10 16:09:07
 | 
				
			||||||
 | 
					 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\AppConfigManager.java
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package com.cpic.xim.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.io.InputStreamReader;
 | 
				
			||||||
 | 
					import java.io.FileInputStream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.databind.ObjectMapper;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class AppConfigManager
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    private static final int BUFFER_SIZE = 1024;
 | 
				
			||||||
 | 
					    private static final String CONFIG_FILE_CHARSET = "UTF-8";
 | 
				
			||||||
 | 
					    private static final String CONFIG_FILE_PATH = "./config.json";
 | 
				
			||||||
 | 
					    private static WeatherDisasterNotifyConfig appConfig = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static WeatherDisasterNotifyConfig getConfig() throws IOException
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ( appConfig != null)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return appConfig;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ObjectMapper mapper = new ObjectMapper();
 | 
				
			||||||
 | 
					        FileInputStream configFile = null;
 | 
				
			||||||
 | 
					        InputStreamReader in = null;
 | 
				
			||||||
 | 
					        StringBuffer json = null;
 | 
				
			||||||
 | 
					        char[] buffer = new char[BUFFER_SIZE];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 设置json属性
 | 
				
			||||||
 | 
					        mapper.setPropertyNamingStrategy( PropertyNamingStrategy.SNAKE_CASE );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            configFile = new FileInputStream( CONFIG_FILE_PATH );
 | 
				
			||||||
 | 
					            in = new InputStreamReader( configFile, CONFIG_FILE_CHARSET );
 | 
				
			||||||
 | 
					            json = new StringBuffer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            int length = in.read( buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            while (length != -1)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                json.append( buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                length = in.read( buffer );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            appConfig = mapper.readValue( json.toString(), WeatherDisasterNotifyConfig.class );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        finally
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( configFile != null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                try
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    configFile.close();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                catch ( IOException e )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    e.printStackTrace();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return appConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,72 +1,22 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2022-04-24 10:21:46
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2022-05-10 16:16:28
 | 
				
			||||||
 | 
					 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\WeatherDisasterNotifyConfig.java
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
package com.cpic.xim.config;
 | 
					package com.cpic.xim.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.InputStreamReader;
 | 
					 | 
				
			||||||
import java.io.FileInputStream;
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.util.Vector;
 | 
					import java.util.Vector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					
 | 
				
			||||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class WeatherDisasterNotifyConfig
 | 
					public class WeatherDisasterNotifyConfig
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private static final int BUFFER_SIZE = 1024;
 | 
					 | 
				
			||||||
    private static final String CONFIG_FILE_CHARSET = "UTF-8";
 | 
					 | 
				
			||||||
    private static final String CONFIG_FILE_PATH = "./config.json";
 | 
					 | 
				
			||||||
    private static WeatherDisasterNotifyConfig appConfig = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static WeatherDisasterNotifyConfig getConfig() throws IOException
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if ( appConfig != null)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return appConfig;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ObjectMapper mapper = new ObjectMapper();
 | 
					 | 
				
			||||||
        FileInputStream configFile = null;
 | 
					 | 
				
			||||||
        InputStreamReader in = null;
 | 
					 | 
				
			||||||
        StringBuffer json = null;
 | 
					 | 
				
			||||||
        char[] buffer = new char[BUFFER_SIZE];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 设置json属性
 | 
					 | 
				
			||||||
        mapper.setPropertyNamingStrategy( PropertyNamingStrategy.SNAKE_CASE );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            configFile = new FileInputStream( CONFIG_FILE_PATH );
 | 
					 | 
				
			||||||
            in = new InputStreamReader( configFile, CONFIG_FILE_CHARSET );
 | 
					 | 
				
			||||||
            json = new StringBuffer();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            int length = in.read( buffer );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            while (length != -1)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                json.append( buffer );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                length = in.read( buffer );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            appConfig = mapper.readValue( json.toString(), WeatherDisasterNotifyConfig.class );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        finally
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            if ( configFile != null)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                try
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    configFile.close();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                catch ( IOException e )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    e.printStackTrace();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return appConfig;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public WeatherDisasterNotifyConfig()
 | 
					    public WeatherDisasterNotifyConfig()
 | 
				
			||||||
    {};
 | 
					    {};
 | 
				
			||||||
@@ -106,6 +56,18 @@ public class WeatherDisasterNotifyConfig
 | 
				
			|||||||
        return cities;
 | 
					        return cities;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public int getQueryInterval()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return queryInterval;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setQueryInterval( int queryInterval )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.queryInterval = queryInterval;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setCities( Vector<City> cities )
 | 
					    public void setCities( Vector<City> cities )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        this.cities = cities;
 | 
					        this.cities = cities;
 | 
				
			||||||
@@ -131,12 +93,24 @@ public class WeatherDisasterNotifyConfig
 | 
				
			|||||||
        this.wechatOfficalAccountURL = wechatOfficalAccountURL;
 | 
					        this.wechatOfficalAccountURL = wechatOfficalAccountURL;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "title")
 | 
				
			||||||
    private String title;
 | 
					    private String title;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "key")
 | 
				
			||||||
    private String key;
 | 
					    private String key;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "query_url")
 | 
				
			||||||
    private String queryUrl;
 | 
					    private String queryUrl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "query_interval")
 | 
				
			||||||
 | 
					    private int queryInterval;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "wechat_officalaccount_url")
 | 
					    @JsonProperty( "wechat_officalaccount_url")
 | 
				
			||||||
    private String wechatOfficalAccountURL;
 | 
					    private String wechatOfficalAccountURL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "cities")
 | 
				
			||||||
    private Vector<City> cities;
 | 
					    private Vector<City> cities;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "notify_stuffs")
 | 
				
			||||||
    private Vector<CpicxmStuff> notifyStuffs;
 | 
					    private Vector<CpicxmStuff> notifyStuffs;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-04-22 10:53:49
 | 
					 * @Date: 2022-04-22 10:53:49
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2022-05-06 11:14:32
 | 
					 * @LastEditTime: 2022-05-10 19:02:32
 | 
				
			||||||
 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\wechat\officalAccount\sendMessage.java
 | 
					 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\wechat\officalAccount\sendMessage.java
 | 
				
			||||||
 * @Description: 用来推送公众号消息的程序库。
 | 
					 * @Description: 用来推送公众号消息的程序库。
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -17,7 +17,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			|||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.net.MalformedURLException;
 | 
					import java.net.MalformedURLException;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.Vector;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.sql.Connection;
 | 
					import java.sql.Connection;
 | 
				
			||||||
import java.sql.DriverManager;
 | 
					import java.sql.DriverManager;
 | 
				
			||||||
@@ -40,12 +39,12 @@ public class sendMessage
 | 
				
			|||||||
     * 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》
 | 
					     * 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》
 | 
				
			||||||
     * 使用 post 方式,请求体内容以最基础的 post 格式。
 | 
					     * 使用 post 方式,请求体内容以最基础的 post 格式。
 | 
				
			||||||
     * @param officalAccountURL 产险厦门分公司公众号接口网址
 | 
					     * @param officalAccountURL 产险厦门分公司公众号接口网址
 | 
				
			||||||
     * @param warning           灾害预警对象
 | 
					     * @param warningItem           灾害预警对象
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static void sendWeatherDisasterWarning( String officalAccountURL,
 | 
					    public static void sendWeatherDisasterWarning( String officalAccountURL,
 | 
				
			||||||
            QWeatherDisasterWarning warning )
 | 
					            QWeatherDisasterWarningItem warningItem )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Vector<QWeatherDisasterWarningItem> warningItems = warning.getWarning();
 | 
					        // Vector<QWeatherDisasterWarningItem> warningItems = warningItem.getWarning();
 | 
				
			||||||
        StringBuilder requestBody = null;
 | 
					        StringBuilder requestBody = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 设置请求头参数
 | 
					        // 设置请求头参数
 | 
				
			||||||
@@ -56,30 +55,29 @@ public class sendMessage
 | 
				
			|||||||
        headers.put( "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" );
 | 
					        headers.put( "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 遍历消息,将消息推送出去。
 | 
					        // 遍历消息,将消息推送出去。
 | 
				
			||||||
        for ( QWeatherDisasterWarningItem item : warningItems )
 | 
					
 | 
				
			||||||
 | 
					        // 拼接消息内容
 | 
				
			||||||
 | 
					        String title = warningItem.getTitle();
 | 
				
			||||||
 | 
					        String text = warningItem.getText();
 | 
				
			||||||
 | 
					        String color = warningLevel.keySet().contains( warningItem.getLevel() )
 | 
				
			||||||
 | 
					                ? warningLevel.get( warningItem.getLevel() )
 | 
				
			||||||
 | 
					                : "#000000";
 | 
				
			||||||
 | 
					        requestBody = new StringBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        requestBody.append( "tplid=57&groupid=1&first=尊敬的#realname#,您好!&" );
 | 
				
			||||||
 | 
					        requestBody.append( "keyword1=" ).append( title ).append( "&" );
 | 
				
			||||||
 | 
					        requestBody.append( "keyword1color=" ).append( color ).append( "&" );
 | 
				
			||||||
 | 
					        requestBody.append( "keyword2=" ).append( text );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // 拼接消息内容
 | 
					            HttpUtils.postHttpRequest( officalAccountURL, headers, requestBody.toString() );
 | 
				
			||||||
            String title = item.getTitle();
 | 
					 | 
				
			||||||
            String text = item.getText();
 | 
					 | 
				
			||||||
            String color = warningLevel.keySet().contains( item.getLevel() )
 | 
					 | 
				
			||||||
                    ? warningLevel.get( item.getLevel() )
 | 
					 | 
				
			||||||
                    : "#000000";
 | 
					 | 
				
			||||||
            requestBody = new StringBuilder();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            requestBody.append( "tplid=57&groupid=1&first=尊敬的#realname#,您好!&" );
 | 
					 | 
				
			||||||
            requestBody.append( "keyword1=" ).append( title ).append( "&" );
 | 
					 | 
				
			||||||
            requestBody.append( "keyword1color=" ).append( color ).append( "&" );
 | 
					 | 
				
			||||||
            requestBody.append( "keyword2=" ).append( text );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                HttpUtils.postHttpRequest( officalAccountURL, headers, requestBody.toString() );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch ( MalformedURLException error )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                error.printStackTrace();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        catch ( MalformedURLException error )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            error.printStackTrace();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -197,6 +195,8 @@ public class sendMessage
 | 
				
			|||||||
            conn = DriverManager.getConnection( jdbcURL, userName, password );
 | 
					            conn = DriverManager.getConnection( jdbcURL, userName, password );
 | 
				
			||||||
            stmt = conn.prepareStatement( sql );
 | 
					            stmt = conn.prepareStatement( sql );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            conn.setAutoCommit( false );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for ( QWeatherDisasterWarningItem warning : warnings.getWarning() )
 | 
					            for ( QWeatherDisasterWarningItem warning : warnings.getWarning() )
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                java.sql.Timestamp pubTime =
 | 
					                java.sql.Timestamp pubTime =
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.level = INFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.pattern = ./logs/log_%u.log
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.limit = 50000
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.count = 10
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.append = true;
 | 
				
			||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-04-22 10:53:49
 | 
					 * @Date: 2022-04-22 10:53:49
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2022-05-06 11:14:35
 | 
					 * @LastEditTime: 2022-05-10 11:33:41
 | 
				
			||||||
 * @FilePath: \DisasterWarning\src\test\java\com\cpic\xim\wechat\officalAccount\sendMessageTest.java
 | 
					 * @FilePath: \DisasterWarning\src\test\java\com\cpic\xim\wechat\officalAccount\sendMessageTest.java
 | 
				
			||||||
 * @Description:
 | 
					 * @Description:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -12,7 +12,6 @@ package com.cpic.xim.wechat.officalAccount;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
					import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.junit.Test;
 | 
					 | 
				
			||||||
import static org.junit.Assert.*;
 | 
					import static org.junit.Assert.*;
 | 
				
			||||||
import com.cpic.xim.httpUtil.*;
 | 
					import com.cpic.xim.httpUtil.*;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
@@ -61,7 +60,7 @@ public class sendMessageTest
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    // @Test
 | 
				
			||||||
    public void testSendWeatherDisasterWarning() throws IOException
 | 
					    public void testSendWeatherDisasterWarning() throws IOException
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        String warningJSON =
 | 
					        String warningJSON =
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										135
									
								
								code/java/天气灾害预警/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										135
									
								
								code/java/天气灾害预警/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,135 +0,0 @@
 | 
				
			|||||||
### Java template
 | 
					 | 
				
			||||||
# Compiled class file
 | 
					 | 
				
			||||||
*.class
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Log file
 | 
					 | 
				
			||||||
*.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# BlueJ files
 | 
					 | 
				
			||||||
*.ctxt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Mobile Tools for Java (J2ME)
 | 
					 | 
				
			||||||
.mtj.tmp/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Package Files #
 | 
					 | 
				
			||||||
*.jar
 | 
					 | 
				
			||||||
*.war
 | 
					 | 
				
			||||||
*.nar
 | 
					 | 
				
			||||||
*.ear
 | 
					 | 
				
			||||||
*.zip
 | 
					 | 
				
			||||||
*.tar.gz
 | 
					 | 
				
			||||||
*.rar
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 | 
					 | 
				
			||||||
hs_err_pid*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### VisualStudioCode template
 | 
					 | 
				
			||||||
.vscode/*
 | 
					 | 
				
			||||||
!.vscode/settings.json
 | 
					 | 
				
			||||||
!.vscode/tasks.json
 | 
					 | 
				
			||||||
!.vscode/launch.json
 | 
					 | 
				
			||||||
!.vscode/extensions.json
 | 
					 | 
				
			||||||
*.code-workspace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Local History for Visual Studio Code
 | 
					 | 
				
			||||||
.history/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### JetBrains template
 | 
					 | 
				
			||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
 | 
					 | 
				
			||||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# User-specific stuff
 | 
					 | 
				
			||||||
.idea/**/workspace.xml
 | 
					 | 
				
			||||||
.idea/**/tasks.xml
 | 
					 | 
				
			||||||
.idea/**/usage.statistics.xml
 | 
					 | 
				
			||||||
.idea/**/dictionaries
 | 
					 | 
				
			||||||
.idea/**/shelf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Generated files
 | 
					 | 
				
			||||||
.idea/**/contentModel.xml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Sensitive or high-churn files
 | 
					 | 
				
			||||||
.idea/**/dataSources/
 | 
					 | 
				
			||||||
.idea/**/dataSources.ids
 | 
					 | 
				
			||||||
.idea/**/dataSources.local.xml
 | 
					 | 
				
			||||||
.idea/**/sqlDataSources.xml
 | 
					 | 
				
			||||||
.idea/**/dynamic.xml
 | 
					 | 
				
			||||||
.idea/**/uiDesigner.xml
 | 
					 | 
				
			||||||
.idea/**/dbnavigator.xml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Gradle
 | 
					 | 
				
			||||||
.idea/**/gradle.xml
 | 
					 | 
				
			||||||
.idea/**/libraries
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Gradle and Maven with auto-import
 | 
					 | 
				
			||||||
# When using Gradle or Maven with auto-import, you should exclude module files,
 | 
					 | 
				
			||||||
# since they will be recreated, and may cause churn.  Uncomment if using
 | 
					 | 
				
			||||||
# auto-import.
 | 
					 | 
				
			||||||
# .idea/artifacts
 | 
					 | 
				
			||||||
# .idea/compiler.xml
 | 
					 | 
				
			||||||
# .idea/jarRepositories.xml
 | 
					 | 
				
			||||||
# .idea/modules.xml
 | 
					 | 
				
			||||||
# .idea/*.iml
 | 
					 | 
				
			||||||
# .idea/modules
 | 
					 | 
				
			||||||
# *.iml
 | 
					 | 
				
			||||||
# *.ipr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# CMake
 | 
					 | 
				
			||||||
cmake-build-*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Mongo Explorer plugin
 | 
					 | 
				
			||||||
.idea/**/mongoSettings.xml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# File-based project format
 | 
					 | 
				
			||||||
*.iws
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# IntelliJ
 | 
					 | 
				
			||||||
out/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# mpeltonen/sbt-idea plugin
 | 
					 | 
				
			||||||
.idea_modules/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# JIRA plugin
 | 
					 | 
				
			||||||
atlassian-ide-plugin.xml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Cursive Clojure plugin
 | 
					 | 
				
			||||||
.idea/replstate.xml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Crashlytics plugin (for Android Studio and IntelliJ)
 | 
					 | 
				
			||||||
com_crashlytics_export_strings.xml
 | 
					 | 
				
			||||||
crashlytics.properties
 | 
					 | 
				
			||||||
crashlytics-build.properties
 | 
					 | 
				
			||||||
fabric.properties
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Editor-based Rest Client
 | 
					 | 
				
			||||||
.idea/httpRequests
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Android studio 3.1+ serialized cache file
 | 
					 | 
				
			||||||
.idea/caches/build_file_checksums.ser
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Windows template
 | 
					 | 
				
			||||||
# Windows thumbnail cache files
 | 
					 | 
				
			||||||
Thumbs.db
 | 
					 | 
				
			||||||
Thumbs.db:encryptable
 | 
					 | 
				
			||||||
ehthumbs.db
 | 
					 | 
				
			||||||
ehthumbs_vista.db
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Dump file
 | 
					 | 
				
			||||||
*.stackdump
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Folder config file
 | 
					 | 
				
			||||||
[Dd]esktop.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Recycle Bin used on file shares
 | 
					 | 
				
			||||||
$RECYCLE.BIN/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Windows Installer files
 | 
					 | 
				
			||||||
*.cab
 | 
					 | 
				
			||||||
*.msi
 | 
					 | 
				
			||||||
*.msix
 | 
					 | 
				
			||||||
*.msm
 | 
					 | 
				
			||||||
*.msp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Windows shortcuts
 | 
					 | 
				
			||||||
*.lnk
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,42 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
    "title": "天气灾害预警配置文件",
 | 
					 | 
				
			||||||
    "key": "fe9fa8eeeb6f4301a92541eed565dd15",
 | 
					 | 
				
			||||||
    "query_url": "https://devapi.qweather.com/v7/warning/now?",
 | 
					 | 
				
			||||||
    "wechat_officalaccount_url": "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage",
 | 
					 | 
				
			||||||
    "cities": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "厦门",
 | 
					 | 
				
			||||||
            "city_code": "101230201"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "同安",
 | 
					 | 
				
			||||||
            "city_code": "101230202"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "思明",
 | 
					 | 
				
			||||||
            "city_code": "101230203"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "海沧",
 | 
					 | 
				
			||||||
            "city_code": "101230204"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "湖里",
 | 
					 | 
				
			||||||
            "city_code": "101230205"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "集美",
 | 
					 | 
				
			||||||
            "city_code": "101230206"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "city_name": "翔安",
 | 
					 | 
				
			||||||
            "city_code": "101230207"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "notify_stuffs": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "stuff_name": "王炜",
 | 
					 | 
				
			||||||
            "mobile_phone": "15959215339"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,12 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
    "tns_name": "xmcx1",
 | 
					 | 
				
			||||||
    "ip_addr": "10.39.0.86",
 | 
					 | 
				
			||||||
    "user_name": "",
 | 
					 | 
				
			||||||
    "password": "",
 | 
					 | 
				
			||||||
    "tables": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "table_name": "",
 | 
					 | 
				
			||||||
            "table_description": ""
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,38 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_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" />
 | 
					 | 
				
			||||||
      <excludeFolder url="file://$MODULE_DIR$/target" />
 | 
					 | 
				
			||||||
    </content>
 | 
					 | 
				
			||||||
    <orderEntry type="inheritedJdk" />
 | 
					 | 
				
			||||||
    <orderEntry type="sourceFolder" forTests="false" />
 | 
					 | 
				
			||||||
    <orderEntry type="module-library" scope="TEST">
 | 
					 | 
				
			||||||
      <library name="JUnit4">
 | 
					 | 
				
			||||||
        <CLASSES>
 | 
					 | 
				
			||||||
          <root url="jar://$MODULE_DIR$/lib/junit-4.13.1.jar!/" />
 | 
					 | 
				
			||||||
          <root url="jar://$MODULE_DIR$/lib/hamcrest-core-1.3.jar!/" />
 | 
					 | 
				
			||||||
        </CLASSES>
 | 
					 | 
				
			||||||
        <JAVADOC />
 | 
					 | 
				
			||||||
        <SOURCES />
 | 
					 | 
				
			||||||
      </library>
 | 
					 | 
				
			||||||
    </orderEntry>
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.4" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
 | 
					 | 
				
			||||||
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8" level="project" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</module>
 | 
					 | 
				
			||||||
@@ -1,381 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="CodeStyleManager">
 | 
					 | 
				
			||||||
    <option name="USE_DEFAULT_CODE_STYLE_SCHEME" value="true" />
 | 
					 | 
				
			||||||
    <option name="CODE_STYLE_SCHEME" value="" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="CompilerConfiguration">
 | 
					 | 
				
			||||||
    <wildcardResourcePatterns>
 | 
					 | 
				
			||||||
      <entry name="!?*.java" />
 | 
					 | 
				
			||||||
    </wildcardResourcePatterns>
 | 
					 | 
				
			||||||
    <annotationProcessing>
 | 
					 | 
				
			||||||
      <profile name="Maven default annotation processors profile" enabled="true">
 | 
					 | 
				
			||||||
        <sourceOutputDir name="target/generated-sources/annotations" />
 | 
					 | 
				
			||||||
        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
 | 
					 | 
				
			||||||
        <outputRelativeToContentRoot value="true" />
 | 
					 | 
				
			||||||
        <module name="disaster_warning" />
 | 
					 | 
				
			||||||
      </profile>
 | 
					 | 
				
			||||||
    </annotationProcessing>
 | 
					 | 
				
			||||||
    <bytecodeTargetLevel>
 | 
					 | 
				
			||||||
      <module name="disaster_warning" target="1.8" />
 | 
					 | 
				
			||||||
    </bytecodeTargetLevel>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8">
 | 
					 | 
				
			||||||
    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
 | 
					 | 
				
			||||||
    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
 | 
					 | 
				
			||||||
    <file url="PROJECT" charset="UTF-8" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ExportToHTMLSettings">
 | 
					 | 
				
			||||||
    <option name="PRINT_LINE_NUMBERS" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPEN_IN_BROWSER" value="false" />
 | 
					 | 
				
			||||||
    <option name="OUTPUT_DIRECTORY" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ImportConfiguration">
 | 
					 | 
				
			||||||
    <option name="VENDOR" />
 | 
					 | 
				
			||||||
    <option name="RELEASE_TAG" />
 | 
					 | 
				
			||||||
    <option name="LOG_MESSAGE" />
 | 
					 | 
				
			||||||
    <option name="CHECKOUT_AFTER_IMPORT" value="true" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="InspectionProjectProfileManager">
 | 
					 | 
				
			||||||
    <profile version="1.0">
 | 
					 | 
				
			||||||
      <option name="myName" value="Project Default" />
 | 
					 | 
				
			||||||
    </profile>
 | 
					 | 
				
			||||||
    <version value="1.0" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="JUnitGeneratorProjectSettings">
 | 
					 | 
				
			||||||
    <option name="selectedTemplateKey" value="JUnit 4" />
 | 
					 | 
				
			||||||
    <option name="vmTemplates">
 | 
					 | 
				
			||||||
      <map>
 | 
					 | 
				
			||||||
        <entry key="JUnit 3" value="######################################################################################## 
## 
## Available variables: 
##         $entryList.methodList - List of method composites 
##         $entryList.privateMethodList - List of private method composites 
##         $entryList.fieldList - ArrayList of class scope field names 
##         $entryList.className - class name 
##         $entryList.packageName - package name 
##         $today - Todays date in MM/dd/yyyy format 
## 
##            MethodComposite variables: 
##                $method.name - Method Name 
##                $method.signature - Full method signature in String form 
##                $method.reflectionCode - list of strings representing commented out reflection code to access method (Private Methods) 
##                $method.paramNames - List of Strings representing the method's parameters' names 
##                $method.paramClasses - List of Strings representing the method's parameters' classes 
## 
## You can configure the output class name using "testClass" variable below. 
## Here are some examples: 
## Test${entry.ClassName} - will produce TestSomeClass 
## ${entry.className}Test - will produce SomeClassTest 
## 
######################################################################################## 
## 
#macro (cap $strIn)$strIn.valueOf($strIn.charAt(0)).toUpperCase()$strIn.substring(1)#end 
## Iterate through the list and generate testcase for every entry. 
#foreach ($entry in $entryList) 
#set( $testClass="${entry.className}Test") 
## 
package test.$entry.packageName; 

import junit.framework.Test; 
import junit.framework.TestSuite; 
import junit.framework.TestCase; 

/** 
* ${entry.className} Tester. 
* 
* @author <Authors name> 
* @since <pre>$today</pre> 
* @version 1.0 
*/ 
public class $testClass extends TestCase { 
public $testClass(String name) { 
super(name); 
} 

public void setUp() throws Exception { 
super.setUp(); 
} 

public void tearDown() throws Exception { 
super.tearDown(); 
} 

#foreach($method in $entry.methodList) 
/** 
* 
* Method: $method.signature 
* 
*/ 
public void test#cap(${method.name})() throws Exception { 
//TODO: Test goes here... 
} 

#end 

#foreach($method in $entry.privateMethodList) 
/** 
* 
* Method: $method.signature 
* 
*/ 
public void test#cap(${method.name})() throws Exception { 
//TODO: Test goes here... 
#foreach($string in $method.reflectionCode) 
$string 
#end 
} 

#end 

public static Test suite() { 
return new TestSuite(${testClass}.class); 
} 
} 
#end" />
 | 
					 | 
				
			||||||
        <entry key="JUnit 4" value="######################################################################################## 
## 
## Available variables: 
##         $entryList.methodList - List of method composites 
##         $entryList.privateMethodList - List of private method composites 
##         $entryList.fieldList - ArrayList of class scope field names 
##         $entryList.className - class name 
##         $entryList.packageName - package name 
##         $today - Todays date in MM/dd/yyyy format 
## 
##            MethodComposite variables: 
##                $method.name - Method Name 
##                $method.signature - Full method signature in String form 
##                $method.reflectionCode - list of strings representing commented out reflection code to access method (Private Methods) 
##                $method.paramNames - List of Strings representing the method's parameters' names 
##                $method.paramClasses - List of Strings representing the method's parameters' classes 
## 
## You can configure the output class name using "testClass" variable below. 
## Here are some examples: 
## Test${entry.ClassName} - will produce TestSomeClass 
## ${entry.className}Test - will produce SomeClassTest 
## 
######################################################################################## 
## 
#macro (cap $strIn)$strIn.valueOf($strIn.charAt(0)).toUpperCase()$strIn.substring(1)#end 
## Iterate through the list and generate testcase for every entry. 
#foreach ($entry in $entryList) 
#set( $testClass="${entry.className}Test") 
## 
package $entry.packageName; 

import org.junit.Test; 
import org.junit.Before; 
import org.junit.After; 

/** 
* ${entry.className} Tester. 
* 
* @author <Authors name> 
* @since <pre>$date</pre> 
* @version 1.0 
*/ 
public class $testClass { 

@Before
public void before() throws Exception { 
} 

@After
public void after() throws Exception { 
} 

#foreach($method in $entry.methodList) 
/** 
* 
* Method: $method.signature 
* 
*/ 
@Test
public void test#cap(${method.name})() throws Exception { 
//TODO: Test goes here... 
} 

#end 

#foreach($method in $entry.privateMethodList) 
/** 
* 
* Method: $method.signature 
* 
*/ 
@Test
public void test#cap(${method.name})() throws Exception { 
//TODO: Test goes here... 
#foreach($string in $method.reflectionCode) 
$string 
#end 
} 

#end 
} 
#end" />
 | 
					 | 
				
			||||||
      </map>
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="JUnitProjectSettings">
 | 
					 | 
				
			||||||
    <option name="TEST_RUNNER" value="UI" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="JavadocGenerationManager">
 | 
					 | 
				
			||||||
    <option name="OPTION_HIERARCHY" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPTION_NAVIGATOR" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPTION_INDEX" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPTION_SEPARATE_INDEX" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPTION_DEPRECATED_LIST" value="false" />
 | 
					 | 
				
			||||||
    <option name="OPEN_IN_BROWSER" value="false" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="JikesSettings">
 | 
					 | 
				
			||||||
    <option name="DEBUGGING_INFO" value="true" />
 | 
					 | 
				
			||||||
    <option name="DEPRECATION" value="true" />
 | 
					 | 
				
			||||||
    <option name="GENERATE_NO_WARNINGS" value="false" />
 | 
					 | 
				
			||||||
    <option name="GENERATE_MAKE_FILE_DEPENDENCIES" value="false" />
 | 
					 | 
				
			||||||
    <option name="DO_FULL_DEPENDENCE_CHECK" value="false" />
 | 
					 | 
				
			||||||
    <option name="IS_INCREMENTAL_MODE" value="false" />
 | 
					 | 
				
			||||||
    <option name="IS_EMACS_ERRORS_MODE" value="true" />
 | 
					 | 
				
			||||||
    <option name="ADDITIONAL_OPTIONS_STRING" value="" />
 | 
					 | 
				
			||||||
    <option name="MAXIMUM_HEAP_SIZE" value="128" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="MavenProjectsManager">
 | 
					 | 
				
			||||||
    <option name="originalFiles">
 | 
					 | 
				
			||||||
      <list>
 | 
					 | 
				
			||||||
        <option value="$PROJECT_DIR$/pom.xml" />
 | 
					 | 
				
			||||||
      </list>
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="Palette2">
 | 
					 | 
				
			||||||
    <group name="Swing">
 | 
					 | 
				
			||||||
      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="Button" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="RadioButton" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="CheckBox" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
 | 
					 | 
				
			||||||
        <initial-values>
 | 
					 | 
				
			||||||
          <property name="text" value="Label" />
 | 
					 | 
				
			||||||
        </initial-values>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="-1" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="-1" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="-1" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="150" height="50" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="200" height="200" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
 | 
					 | 
				
			||||||
          <preferred-size width="200" height="200" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
 | 
					 | 
				
			||||||
          <preferred-size width="-1" height="20" />
 | 
					 | 
				
			||||||
        </default-constraints>
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
 | 
					 | 
				
			||||||
        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
 | 
					 | 
				
			||||||
      </item>
 | 
					 | 
				
			||||||
    </group>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ProjectModuleManager">
 | 
					 | 
				
			||||||
    <modules>
 | 
					 | 
				
			||||||
      <module fileurl="file://$PROJECT_DIR$/disaster_warning.iml" filepath="$PROJECT_DIR$/disaster_warning.iml" />
 | 
					 | 
				
			||||||
    </modules>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="ProjectRootManager" version="2" project-jdk-name="1.8" />
 | 
					 | 
				
			||||||
  <component name="RemoteRepositoriesConfiguration">
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="central" />
 | 
					 | 
				
			||||||
      <option name="name" value="Central Repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://repo.maven.apache.org/maven2" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="central" />
 | 
					 | 
				
			||||||
      <option name="name" value="Maven Central repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://repo1.maven.org/maven2" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
    <remote-repository>
 | 
					 | 
				
			||||||
      <option name="id" value="jboss.community" />
 | 
					 | 
				
			||||||
      <option name="name" value="JBoss Community repository" />
 | 
					 | 
				
			||||||
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
 | 
					 | 
				
			||||||
    </remote-repository>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="SwUserDefinedSpecifications">
 | 
					 | 
				
			||||||
    <option name="specTypeByUrl">
 | 
					 | 
				
			||||||
      <map />
 | 
					 | 
				
			||||||
    </option>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="VcsDirectoryMappings">
 | 
					 | 
				
			||||||
    <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
  <component name="libraryTable">
 | 
					 | 
				
			||||||
    <library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.8/jackson-annotations-2.9.8.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.8/jackson-annotations-2.9.8-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.8/jackson-annotations-2.9.8-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.8/jackson-core-2.9.8.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.8/jackson-core-2.9.8-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.8/jackson-core-2.9.8-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: commons-beanutils:commons-beanutils:1.9.3">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: commons-codec:commons-codec:1.9">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: commons-collections:commons-collections:3.2.1">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: commons-lang:commons-lang:2.6">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: commons-logging:commons-logging:1.1.1">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: junit:junit:4.4">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.4/junit-4.4.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.4/junit-4.4-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.4/junit-4.4-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: net.sf.ezmorph:ezmorph:1.0.6">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: net.sf.json-lib:json-lib:jdk15:2.4">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/net/sf/json-lib/json-lib/2.4/json-lib-2.4-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/net/sf/json-lib/json-lib/2.4/json-lib-2.4-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: org.apache.httpcomponents:httpclient:4.5.2">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
    <library name="Maven: org.apache.httpcomponents:httpcore:4.4.4">
 | 
					 | 
				
			||||||
      <CLASSES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar!/" />
 | 
					 | 
				
			||||||
      </CLASSES>
 | 
					 | 
				
			||||||
      <JAVADOC>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4-javadoc.jar!/" />
 | 
					 | 
				
			||||||
      </JAVADOC>
 | 
					 | 
				
			||||||
      <SOURCES>
 | 
					 | 
				
			||||||
        <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4-sources.jar!/" />
 | 
					 | 
				
			||||||
      </SOURCES>
 | 
					 | 
				
			||||||
    </library>
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -1,92 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
					 | 
				
			||||||
    <modelVersion>4.0.0</modelVersion>
 | 
					 | 
				
			||||||
    <groupId>com.cpic.xim</groupId>
 | 
					 | 
				
			||||||
    <artifactId>disaster_warning</artifactId>
 | 
					 | 
				
			||||||
    <version>1.0-SNAPSHOT</version>
 | 
					 | 
				
			||||||
    <dependencies>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>org.apache.httpcomponents</groupId>
 | 
					 | 
				
			||||||
            <artifactId>httpclient</artifactId>
 | 
					 | 
				
			||||||
            <version>4.5.2</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>junit</groupId>
 | 
					 | 
				
			||||||
            <artifactId>junit</artifactId>
 | 
					 | 
				
			||||||
            <version>4.4</version>
 | 
					 | 
				
			||||||
            <scope>test</scope>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-beanutils</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-beanutils</artifactId>
 | 
					 | 
				
			||||||
            <version>1.9.3</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-collections</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-collections</artifactId>
 | 
					 | 
				
			||||||
            <version>3.2.1</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-lang</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-lang</artifactId>
 | 
					 | 
				
			||||||
            <version>2.6</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>commons-logging</groupId>
 | 
					 | 
				
			||||||
            <artifactId>commons-logging</artifactId>
 | 
					 | 
				
			||||||
            <version>1.1.1</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>net.sf.ezmorph</groupId>
 | 
					 | 
				
			||||||
            <artifactId>ezmorph</artifactId>
 | 
					 | 
				
			||||||
            <version>1.0.6</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>net.sf.json-lib</groupId>
 | 
					 | 
				
			||||||
            <artifactId>json-lib</artifactId>
 | 
					 | 
				
			||||||
            <version>2.4</version>
 | 
					 | 
				
			||||||
            <classifier>jdk15</classifier>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>com.fasterxml.jackson.core</groupId>
 | 
					 | 
				
			||||||
            <artifactId>jackson-core</artifactId>
 | 
					 | 
				
			||||||
            <version>2.9.8</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>com.fasterxml.jackson.core</groupId>
 | 
					 | 
				
			||||||
            <artifactId>jackson-databind</artifactId>
 | 
					 | 
				
			||||||
            <version>2.9.8</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					 | 
				
			||||||
            <groupId>com.fasterxml.jackson.core</groupId>
 | 
					 | 
				
			||||||
            <artifactId>jackson-annotations</artifactId>
 | 
					 | 
				
			||||||
            <version>2.9.8</version>
 | 
					 | 
				
			||||||
        </dependency>
 | 
					 | 
				
			||||||
    </dependencies>
 | 
					 | 
				
			||||||
    <properties>
 | 
					 | 
				
			||||||
        <maven.compiler.source>1.8</maven.compiler.source>
 | 
					 | 
				
			||||||
        <maven.compiler.target>1.8</maven.compiler.target>
 | 
					 | 
				
			||||||
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
 | 
					 | 
				
			||||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
					 | 
				
			||||||
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 | 
					 | 
				
			||||||
    </properties>
 | 
					 | 
				
			||||||
    <build>
 | 
					 | 
				
			||||||
        <defaultGoal>compile</defaultGoal>
 | 
					 | 
				
			||||||
    </build>
 | 
					 | 
				
			||||||
    <profiles>
 | 
					 | 
				
			||||||
        <profile>
 | 
					 | 
				
			||||||
            <id>dev</id>
 | 
					 | 
				
			||||||
            <properties></properties>
 | 
					 | 
				
			||||||
            <activation>
 | 
					 | 
				
			||||||
                <activeByDefault>true</activeByDefault>
 | 
					 | 
				
			||||||
            </activation>
 | 
					 | 
				
			||||||
        </profile>
 | 
					 | 
				
			||||||
        <profile>
 | 
					 | 
				
			||||||
            <id>test</id>
 | 
					 | 
				
			||||||
            <properties></properties>
 | 
					 | 
				
			||||||
            <activation>
 | 
					 | 
				
			||||||
                <activeByDefault>false</activeByDefault>
 | 
					 | 
				
			||||||
            </activation>
 | 
					 | 
				
			||||||
        </profile>
 | 
					 | 
				
			||||||
    </profiles>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
@@ -1,68 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-03-16 18:10:58
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2022-03-18 00:37:56
 | 
					 | 
				
			||||||
 * @FilePath: \天气灾害预警\src\main\java\AppMain.java
 | 
					 | 
				
			||||||
 * @Description:
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.cpic.xim.config.City;
 | 
					 | 
				
			||||||
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
					 | 
				
			||||||
import com.cpic.xim.notify.disaster.WeatherDisasterWarningGrabber;
 | 
					 | 
				
			||||||
import com.cpic.xim.config.WeatherDisasterNotifyConfig;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.util.Vector;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class AppMain
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    private static final String CONFIG_FILE_PATH = "./config.json";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static void main( String[] args )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        String                      cityCode = "101230201";
 | 
					 | 
				
			||||||
        String                      json;
 | 
					 | 
				
			||||||
        QWeatherDisasterWarning     warning  = null;
 | 
					 | 
				
			||||||
        WeatherDisasterNotifyConfig config   = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //读取配置
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            config = WeatherDisasterNotifyConfig.load( CONFIG_FILE_PATH );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch ( IOException error )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            System.out.println( "读取配置文件失败!" );
 | 
					 | 
				
			||||||
            System.out.println( error.getMessage() );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Vector<City> cities   = config.getCities();
 | 
					 | 
				
			||||||
        String       queryURL = config.getQueryUrl();
 | 
					 | 
				
			||||||
        String       userKey  = config.getKey();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //遍历所有城市,查询是否有警报,有则推送。
 | 
					 | 
				
			||||||
        for ( City city : cities )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                json    = WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( queryURL,
 | 
					 | 
				
			||||||
                                                                                       userKey,
 | 
					 | 
				
			||||||
                                                                                       city.getCityCode() );
 | 
					 | 
				
			||||||
                warning = WeatherDisasterWarningGrabber.convertWeatherDisasterWarning( json );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch ( IOException error )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                System.out.println( "查询" + city.getCityName() + "出现异常!");
 | 
					 | 
				
			||||||
                System.out.println( error.getMessage() );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                continue;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.config;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Objects;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class City
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public City() {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getCityName()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return cityName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setCityName( String cityName )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.cityName = cityName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getCityCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return cityCode;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setCityCode( String cityCode )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.cityCode = cityCode;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public boolean equals( Object o )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if ( this == o )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if ( o == null || getClass() != o.getClass() )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        City city = (City) o;
 | 
					 | 
				
			||||||
        return cityName.equals( city.cityName ) && cityCode.equals( city.cityCode );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public int hashCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return Objects.hash( cityName, cityCode );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String cityName;
 | 
					 | 
				
			||||||
    private String cityCode;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.config;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Objects;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class CpicxmStuff
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public CpicxmStuff() {};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getStuffName()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return stuffName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setStuffName( String stuffName )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.stuffName = stuffName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getMobilePhone()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return mobilePhone;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setMobilePhone( String mobilePhone )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.mobilePhone = mobilePhone;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public boolean equals( Object o )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if ( this == o )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if ( !( o instanceof CpicxmStuff ) )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        CpicxmStuff that = (CpicxmStuff) o;
 | 
					 | 
				
			||||||
        return stuffName.equals( that.stuffName ) && mobilePhone.equals( that.mobilePhone );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public int hashCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return Objects.hash( stuffName, mobilePhone );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String stuffName;
 | 
					 | 
				
			||||||
    private String mobilePhone;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,134 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.config;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.FileReader;
 | 
					 | 
				
			||||||
import java.io.FileNotFoundException;
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.util.Vector;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class WeatherDisasterNotifyConfig
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    private static final int BUFFER_SIZE = 1024;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static WeatherDisasterNotifyConfig load( String filePath )
 | 
					 | 
				
			||||||
            throws IOException
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        WeatherDisasterNotifyConfig config = null;
 | 
					 | 
				
			||||||
        ObjectMapper mapper = new ObjectMapper();
 | 
					 | 
				
			||||||
        FileReader configFile = null;
 | 
					 | 
				
			||||||
        StringBuffer json = null;
 | 
					 | 
				
			||||||
        char[] buffer = new char[BUFFER_SIZE];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //设置json属性
 | 
					 | 
				
			||||||
        mapper.setPropertyNamingStrategy( PropertyNamingStrategy.SNAKE_CASE );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try{
 | 
					 | 
				
			||||||
            configFile = new FileReader( filePath );
 | 
					 | 
				
			||||||
            json = new StringBuffer();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            int length = configFile.read( buffer );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            while ( length != -1 )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                json.append( buffer );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                length = configFile.read( buffer );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            config = mapper.readValue( json.toString(), WeatherDisasterNotifyConfig.class );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        finally
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            if ( configFile != null )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                try
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    configFile.close();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                catch ( IOException e )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    e.printStackTrace();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return config;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public WeatherDisasterNotifyConfig() {};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getTitle()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return title;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setTitle( String title )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.title = title;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getKey()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return key;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setKey( String key )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.key = key;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getQueryUrl()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return queryUrl;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setQueryUrl( String queryUrl )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.queryUrl = queryUrl;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public Vector<City> getCities()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return cities;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setCities( Vector<City> cities )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.cities = cities;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public Vector<CpicxmStuff> getNotifyStuffs()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return notifyStuffs;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setNotifyStuffs( Vector<CpicxmStuff> notifyStuffs )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.notifyStuffs = notifyStuffs;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getWechatOfficalAccountURL()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return wechatOfficalAccountURL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setWechatOfficalAccountURL( String wechatOfficalAccountURL )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.wechatOfficalAccountURL = wechatOfficalAccountURL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String              title;
 | 
					 | 
				
			||||||
    private String              key;
 | 
					 | 
				
			||||||
    private String              queryUrl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("wechat_officalaccount_url")
 | 
					 | 
				
			||||||
    private String wechatOfficalAccountURL;
 | 
					 | 
				
			||||||
    private Vector<City>        cities;
 | 
					 | 
				
			||||||
    private Vector<CpicxmStuff> notifyStuffs;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.config.db;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Objects;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class DBTable
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public DBTable() {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getTableName()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return tableName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setTableName( String tableName )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.tableName = tableName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getTableDescription()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return tableDescription;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setTableDescription( String tableDescription )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.tableDescription = tableDescription;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public boolean equals( Object o )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if ( this == o )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if ( !( o instanceof DBTable ) )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        DBTable dbTable = (DBTable) o;
 | 
					 | 
				
			||||||
        return tableName.equals( dbTable.tableName ) && tableDescription.equals( dbTable.tableDescription );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public int hashCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return Objects.hash( tableName, tableDescription );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String tableName;
 | 
					 | 
				
			||||||
    private String tableDescription;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,13 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.config.db;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Vector;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class OracleConfig
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    private String          tnsName;
 | 
					 | 
				
			||||||
    private String          ipAddr;
 | 
					 | 
				
			||||||
    private String          jdbcURL;
 | 
					 | 
				
			||||||
    private String          userName;
 | 
					 | 
				
			||||||
    private String          password;
 | 
					 | 
				
			||||||
    private Vector<DBTable> tables;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,77 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.notify.disaster;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Vector;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class QWeatherDisasterWarning
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public QWeatherDisasterWarning( String code,
 | 
					 | 
				
			||||||
                                    String updateTime,
 | 
					 | 
				
			||||||
                                    String fxLink,
 | 
					 | 
				
			||||||
                                    Vector<QWeatherDisasterWarningItem> warning,
 | 
					 | 
				
			||||||
                                    QWeatherDisasterWarningRefer refer )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.code       = code;
 | 
					 | 
				
			||||||
        this.updateTime = updateTime;
 | 
					 | 
				
			||||||
        this.fxLink     = fxLink;
 | 
					 | 
				
			||||||
        this.warning    = warning;
 | 
					 | 
				
			||||||
        this.refer      = refer;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public QWeatherDisasterWarning() {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return code;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setCode( String code )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.code = code;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getUpdateTime()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return updateTime;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setUpdateTime( String updateTime )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.updateTime = updateTime;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getFxLink()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return fxLink;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setFxLink( String fxLink )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.fxLink = fxLink;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public Vector<QWeatherDisasterWarningItem> getWarning()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return warning;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setWarning( Vector<QWeatherDisasterWarningItem> warning )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.warning = warning;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public QWeatherDisasterWarningRefer getRefer()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return refer;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setRefer( QWeatherDisasterWarningRefer refer )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.refer = refer;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String                              code;
 | 
					 | 
				
			||||||
    private String                              updateTime;
 | 
					 | 
				
			||||||
    private String                              fxLink;
 | 
					 | 
				
			||||||
    private Vector<QWeatherDisasterWarningItem> warning;
 | 
					 | 
				
			||||||
    private QWeatherDisasterWarningRefer        refer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,212 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.notify.disaster;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Objects;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.annotation.JsonFormat;
 | 
					 | 
				
			||||||
//import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class QWeatherDisasterWarningItem
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public QWeatherDisasterWarningItem() {}
 | 
					 | 
				
			||||||
    public QWeatherDisasterWarningItem( String id,
 | 
					 | 
				
			||||||
                                        String sender,
 | 
					 | 
				
			||||||
                                        String pubTime,
 | 
					 | 
				
			||||||
                                        String title,
 | 
					 | 
				
			||||||
                                        String status,
 | 
					 | 
				
			||||||
                                        String level,
 | 
					 | 
				
			||||||
                                        String type,
 | 
					 | 
				
			||||||
                                        String typeName,
 | 
					 | 
				
			||||||
                                        String text,
 | 
					 | 
				
			||||||
                                        String related,
 | 
					 | 
				
			||||||
                                        String urgency, String certainty )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.id       = id;
 | 
					 | 
				
			||||||
        this.sender   = sender;
 | 
					 | 
				
			||||||
        this.pubTime  = pubTime;
 | 
					 | 
				
			||||||
        this.title    = title;
 | 
					 | 
				
			||||||
        this.status   = status;
 | 
					 | 
				
			||||||
        this.level    = level;
 | 
					 | 
				
			||||||
        this.type     = type;
 | 
					 | 
				
			||||||
        this.typeName = typeName;
 | 
					 | 
				
			||||||
        this.text     = text;
 | 
					 | 
				
			||||||
        this.related  = related;
 | 
					 | 
				
			||||||
        this.urgency   = urgency;
 | 
					 | 
				
			||||||
        this.certainty = certainty;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public boolean equals( Object o )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if ( this == o )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if ( o == null || getClass() != o.getClass() )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        QWeatherDisasterWarningItem that = (QWeatherDisasterWarningItem) o;
 | 
					 | 
				
			||||||
        return id.equals( that.id ) && Objects.equals( sender, that.sender ) && Objects.equals( pubTime,
 | 
					 | 
				
			||||||
                                                                                                that.pubTime ) && Objects.equals(
 | 
					 | 
				
			||||||
                title,
 | 
					 | 
				
			||||||
                that.title ) && Objects.equals( status, that.status ) && Objects.equals( level,
 | 
					 | 
				
			||||||
                                                                                         that.level ) && Objects.equals(
 | 
					 | 
				
			||||||
                type,
 | 
					 | 
				
			||||||
                that.type ) && Objects.equals( typeName, that.typeName ) && Objects.equals( text,
 | 
					 | 
				
			||||||
                                                                                            that.text ) && Objects.equals(
 | 
					 | 
				
			||||||
                related,
 | 
					 | 
				
			||||||
                that.related ) && Objects.equals( urgency, that.urgency ) && Objects.equals( certainty,
 | 
					 | 
				
			||||||
                                                                                             that.certainty );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public int hashCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return Objects.hash( id,
 | 
					 | 
				
			||||||
                             sender,
 | 
					 | 
				
			||||||
                             pubTime,
 | 
					 | 
				
			||||||
                             title,
 | 
					 | 
				
			||||||
                             status,
 | 
					 | 
				
			||||||
                             level,
 | 
					 | 
				
			||||||
                             type,
 | 
					 | 
				
			||||||
                             typeName,
 | 
					 | 
				
			||||||
                             text,
 | 
					 | 
				
			||||||
                             related,
 | 
					 | 
				
			||||||
                             urgency,
 | 
					 | 
				
			||||||
                             certainty );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getId()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return id;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setId( String id )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.id = id;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getSender()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return sender;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setSender( String sender )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.sender = sender;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getPubTime()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return pubTime;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setPubTime( String pubTime )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.pubTime = pubTime;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getTitle()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return title;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setTitle( String title )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.title = title;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getStatus()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return status;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setStatus( String status )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.status = status;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getLevel()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return level;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setLevel( String level )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.level = level;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getType()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return type;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setType( String type )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.type = type;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getTypeName()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return typeName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setTypeName( String typeName )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.typeName = typeName;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getText()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return text;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setText( String text )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.text = text;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getRelated()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return related;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setRelated( String related )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.related = related;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getUrgency()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return urgency;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setUrgency( String urgency )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.urgency = urgency;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getCertainty()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return certainty;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setCertainty( String certainty )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.certainty = certainty;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String id;
 | 
					 | 
				
			||||||
    private String sender;
 | 
					 | 
				
			||||||
    @JsonFormat(pattern="yyyy-MM-dd'T'HH:mm")
 | 
					 | 
				
			||||||
    private String pubTime;
 | 
					 | 
				
			||||||
    private String title;
 | 
					 | 
				
			||||||
    private String status;
 | 
					 | 
				
			||||||
    private String level;
 | 
					 | 
				
			||||||
    private String type;
 | 
					 | 
				
			||||||
    private String typeName;
 | 
					 | 
				
			||||||
    private String text;
 | 
					 | 
				
			||||||
    private String related;
 | 
					 | 
				
			||||||
    private String urgency;
 | 
					 | 
				
			||||||
    private String certainty;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,41 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-03-17 21:08:09
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2022-03-18 00:30:53
 | 
					 | 
				
			||||||
 * @FilePath: \天气灾害预警\src\main\java\com\cpic\xim\disaster_warning\QWeatherDisasterWarningRefer.java
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
package com.cpic.xim.notify.disaster;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//import java.util.Objects;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class QWeatherDisasterWarningRefer
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public QWeatherDisasterWarningRefer() {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String[] getSources()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return sources;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setSources( String[] sources )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.sources = sources;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String[] getLicense()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return license;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setLicense( String[] license )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.license = license;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String[] sources;
 | 
					 | 
				
			||||||
    private String[] license;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,131 +0,0 @@
 | 
				
			|||||||
/**
 | 
					 | 
				
			||||||
 * @author 王炜
 | 
					 | 
				
			||||||
 * @version 1.0
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
package com.cpic.xim.notify.disaster;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.io.InputStream;
 | 
					 | 
				
			||||||
import java.io.InputStreamReader;
 | 
					 | 
				
			||||||
import java.io.BufferedReader;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.net.MalformedURLException;
 | 
					 | 
				
			||||||
import java.net.URL;
 | 
					 | 
				
			||||||
import java.net.HttpURLConnection;
 | 
					 | 
				
			||||||
import java.util.zip.GZIPInputStream;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
public class WeatherDisasterWarningGrabber
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /***
 | 
					 | 
				
			||||||
     * 从和风天气获取天气警报json字符串
 | 
					 | 
				
			||||||
     * @param cityCode 城市或区域代码
 | 
					 | 
				
			||||||
     * @return 返回警报的json字符串
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static String getWeatherDisasterWarningJSON( String queryURL,
 | 
					 | 
				
			||||||
                                                        String userKey,
 | 
					 | 
				
			||||||
                                                        String cityCode )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //拼接url字符串
 | 
					 | 
				
			||||||
        String json       = "";
 | 
					 | 
				
			||||||
        String requestURL = queryURL + "key=" + userKey + "&location=" + cityCode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //链接用
 | 
					 | 
				
			||||||
        HttpURLConnection connection     = null;
 | 
					 | 
				
			||||||
        URL               url            = null;
 | 
					 | 
				
			||||||
        InputStream       inputStream    = null;
 | 
					 | 
				
			||||||
        BufferedReader    bufferedReader = null;
 | 
					 | 
				
			||||||
        StringBuilder     buffer         = new StringBuilder();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            url        = new URL( requestURL );
 | 
					 | 
				
			||||||
            connection = (HttpURLConnection) url.openConnection();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            connection.setRequestMethod( "GET" );
 | 
					 | 
				
			||||||
            connection.setConnectTimeout( 15000 );
 | 
					 | 
				
			||||||
            connection.setReadTimeout( 60000 );
 | 
					 | 
				
			||||||
            connection.connect();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //如果responseCode为200,说明访问成功!
 | 
					 | 
				
			||||||
            if ( connection.getResponseCode() == 200 )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                //注意,和风使用了gzip压缩响应体
 | 
					 | 
				
			||||||
                inputStream    = new GZIPInputStream( connection.getInputStream() );
 | 
					 | 
				
			||||||
                bufferedReader = new BufferedReader( new InputStreamReader( inputStream, "UTF-8" ) );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                //读出数据
 | 
					 | 
				
			||||||
                String temp = bufferedReader.readLine();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                while ( temp != null )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    buffer.append( temp );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    temp = bufferedReader.readLine();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                json = buffer.toString();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch ( MalformedURLException error )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            error.printStackTrace();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch ( IOException error )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            System.out.println( "读取失败!" );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        finally
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            if ( bufferedReader != null )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                try
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    bufferedReader.close();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                catch ( IOException error )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    error.printStackTrace();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if ( inputStream != null )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                try
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    inputStream.close();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                catch ( IOException error )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    error.printStackTrace();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if ( connection != null )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                connection.disconnect();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return json;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 将天气警告的json字符串转换成java对象。
 | 
					 | 
				
			||||||
     * @param json json字符串
 | 
					 | 
				
			||||||
     * @return  返回 QWeatherDisasterWarning 对象。
 | 
					 | 
				
			||||||
     * @throws IOException
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static QWeatherDisasterWarning convertWeatherDisasterWarning( String json )
 | 
					 | 
				
			||||||
            throws IOException
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        ObjectMapper mapper = new ObjectMapper();
 | 
					 | 
				
			||||||
        QWeatherDisasterWarning warning = mapper.readValue( json, QWeatherDisasterWarning.class );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return warning;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,299 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
package com.cpic.xim.wechat.officalAccount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.annotation.JsonInclude;
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
					 | 
				
			||||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.*;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.net.URL;
 | 
					 | 
				
			||||||
import java.net.HttpURLConnection;
 | 
					 | 
				
			||||||
import java.nio.charset.StandardCharsets;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class sendMessage
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 向公众号推送通知消息。接口文档参考 彭奕洁 编写《消息发送接口调用文档》
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param wechatOfficalAccountURL 公众号接口网址。
 | 
					 | 
				
			||||||
     * @param title                   通知的标题。
 | 
					 | 
				
			||||||
     * @param notifyType              通知类型。
 | 
					 | 
				
			||||||
     * @param notifyMessage           通知文本内容。
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static void sendNotifyMessage( String wechatOfficalAccountURL,
 | 
					 | 
				
			||||||
                                          String title,
 | 
					 | 
				
			||||||
                                          String notifyType,
 | 
					 | 
				
			||||||
                                          String notifyMessage )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //设置推送内容
 | 
					 | 
				
			||||||
        WechatOfficalAccountMessageParameter param = new WechatOfficalAccountMessageParameter();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        param.setFirst( title );
 | 
					 | 
				
			||||||
        param.setKeyword1( notifyType );
 | 
					 | 
				
			||||||
        param.setKeyword1Color( "#ff0000" );
 | 
					 | 
				
			||||||
        param.setKeyword2( notifyMessage );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //转换成json
 | 
					 | 
				
			||||||
        ObjectMapper mapper;
 | 
					 | 
				
			||||||
        String       json = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            mapper = new ObjectMapper();
 | 
					 | 
				
			||||||
            mapper.setSerializationInclusion( JsonInclude.Include.NON_NULL );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            json = mapper.writeValueAsString( param );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if ( json.isEmpty() )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            System.out.println( json );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch ( JsonProcessingException error )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            error.printStackTrace();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //推送数据
 | 
					 | 
				
			||||||
        URL               url;
 | 
					 | 
				
			||||||
        HttpURLConnection connection = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        StringBuilder      result = new StringBuilder();
 | 
					 | 
				
			||||||
        OutputStreamWriter out    = null;
 | 
					 | 
				
			||||||
        BufferedReader     in     = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            url        = new URL( wechatOfficalAccountURL );
 | 
					 | 
				
			||||||
            connection = (HttpURLConnection) url.openConnection();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            connection.setRequestMethod( "POST" );
 | 
					 | 
				
			||||||
            connection.setRequestProperty( "accept", "*/*" );
 | 
					 | 
				
			||||||
            connection.setRequestProperty( "Connection", "Keep-Alive" );
 | 
					 | 
				
			||||||
            connection.setRequestProperty( "Content-Type", "application/json" );
 | 
					 | 
				
			||||||
            connection.setDoInput( true );
 | 
					 | 
				
			||||||
            connection.setDoOutput( true );
 | 
					 | 
				
			||||||
            connection.connect();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            out = new OutputStreamWriter( connection.getOutputStream(), StandardCharsets.UTF_8 );
 | 
					 | 
				
			||||||
            out.write( json );
 | 
					 | 
				
			||||||
            out.flush();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            in = new BufferedReader( new InputStreamReader( connection.getInputStream() ) );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            String line = in.readLine();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            while ( line != null )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                result.append( line );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                line = in.readLine();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch ( Exception error )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            error.printStackTrace();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        finally
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                if ( in != null )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    in.close();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                if ( out != null )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    out.close();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                if ( connection != null )
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    connection.disconnect();
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch ( Exception error )
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                error.printStackTrace();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class WechatOfficalAccountMessageParameter
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    WechatOfficalAccountMessageParameter()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        tplID   = 57;
 | 
					 | 
				
			||||||
        groupID = 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("tplid")
 | 
					 | 
				
			||||||
    private int tplID;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("groupid")
 | 
					 | 
				
			||||||
    private int groupID;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("first")
 | 
					 | 
				
			||||||
    private String first;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("keyword1")
 | 
					 | 
				
			||||||
    private String keyword1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("keyword1color")
 | 
					 | 
				
			||||||
    private String keyword1Color;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("keyword2")
 | 
					 | 
				
			||||||
    private String keyword2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("keyword2color")
 | 
					 | 
				
			||||||
    private String keyword2Color;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("remark")
 | 
					 | 
				
			||||||
    private String remark;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("remarkcolor")
 | 
					 | 
				
			||||||
    private String remarkColor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("url")
 | 
					 | 
				
			||||||
    private String url;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("appid")
 | 
					 | 
				
			||||||
    private String appid;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty("pagepath")
 | 
					 | 
				
			||||||
    private String pagePath;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getTplID()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return tplID;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setTplID( int tplID )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.tplID = tplID;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getGroupID()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return groupID;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setGroupID( int groupID )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.groupID = groupID;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getFirst()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return first;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setFirst( String first )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.first = first;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getKeyword1()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return keyword1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setKeyword1( String keyword1 )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.keyword1 = keyword1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getKeyword1Color()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return keyword1Color;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setKeyword1Color( String keyword1Color )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.keyword1Color = keyword1Color;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getKeyword2()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return keyword2;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setKeyword2( String keyword2 )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.keyword2 = keyword2;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getKeyword2Color()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return keyword2Color;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setKeyword2Color( String keyword2Color )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.keyword2Color = keyword2Color;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getRemark()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return remark;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setRemark( String remark )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.remark = remark;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getRemarkColor()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return remarkColor;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setRemarkColor( String remarkColor )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.remarkColor = remarkColor;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getUrl()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return url;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setUrl( String url )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.url = url;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getAppid()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return appid;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setAppid( String appid )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.appid = appid;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getPagePath()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return pagePath;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setPagePath( String pagePath )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.pagePath = pagePath;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
package com.cpic.xim.wechat.officalAccount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.junit.Test;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import static org.junit.Assert.*;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class sendMessageTest
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    @Test
 | 
					 | 
				
			||||||
    public void pushNotifyMessage()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        String url = "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            //sendMessage.sendNotifyMessage( url, "警报", "警报标题", "警报内容!" );
 | 
					 | 
				
			||||||
            sendMessage.sendNotifyMessage( url, "警报", "警报标题", "警报内容!" );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch ( Exception error  )
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            fail("测试失败!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								应用/1.0/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								应用/1.0/config.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "title": "天气灾害预警配置文件",
 | 
				
			||||||
 | 
					    "key": "fe9fa8eeeb6f4301a92541eed565dd15",
 | 
				
			||||||
 | 
					    "query_url": "https://devapi.qweather.com/v7/warning/now?",
 | 
				
			||||||
 | 
					    "wechat_officalaccount_url": "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage",
 | 
				
			||||||
 | 
					    "query_interval": 10,
 | 
				
			||||||
 | 
					    "cities": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "city_name": "厦门",
 | 
				
			||||||
 | 
					            "city_code": "101230201"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "notify_stuffs": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "stuff_name": "王炜",
 | 
				
			||||||
 | 
					            "mobile_phone": "15959215339"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								应用/1.0/db.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								应用/1.0/db.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "tns_name": "xmcx1",
 | 
				
			||||||
 | 
					    "ip_addr": "10.39.0.86",
 | 
				
			||||||
 | 
					    "jdbc_url": "jdbc:oracle:thin:@10.39.0.86:1521:xmcx1",
 | 
				
			||||||
 | 
					    "table_space": "wechat",
 | 
				
			||||||
 | 
					    "user_name": "wechat",
 | 
				
			||||||
 | 
					    "password": "@rn7Q+t5zeyKIZ~s",
 | 
				
			||||||
 | 
					    "tables": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "table_name": "weather_disaster_notify",
 | 
				
			||||||
 | 
					            "table_description": "天气预警消息表"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								应用/1.0/logging.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								应用/1.0/logging.properties
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.level = INFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.pattern = ./logs/log_%u.log
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.limit = 50000
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.count = 1
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
 | 
				
			||||||
 | 
					java.util.logging.FileHandler.append = true;
 | 
				
			||||||
		Reference in New Issue
	
	Block a user