Browse Source

first commit

master
GG 9 months ago
commit
ea210d9220
  1. 38
      .gitignore
  2. 8
      .idea/.gitignore
  3. 7
      .idea/encodings.xml
  4. 13
      .idea/misc.xml
  5. 124
      .idea/uiDesigner.xml
  6. 6
      .idea/vcs.xml
  7. 463
      pom.xml
  8. 100
      src/main/java/com/zhichenhaixin/base/constant/Constant.java
  9. 124
      src/main/java/com/zhichenhaixin/base/constant/GlobalVariable.java
  10. 30
      src/main/java/com/zhichenhaixin/base/controller/BaseController.java
  11. 35
      src/main/java/com/zhichenhaixin/base/dao/BaseDao.java
  12. 25
      src/main/java/com/zhichenhaixin/base/dao/MongoDBDao.java
  13. 157
      src/main/java/com/zhichenhaixin/base/dao/impl/BaseDaoImpl.java
  14. 81
      src/main/java/com/zhichenhaixin/base/dao/impl/MongoDBDaoImpl.java
  15. 90
      src/main/java/com/zhichenhaixin/base/model/MatrixCameraVo.java
  16. 40
      src/main/java/com/zhichenhaixin/base/model/MatrixPCVo.java
  17. 67
      src/main/java/com/zhichenhaixin/base/model/MatrixVo.java
  18. 74
      src/main/java/com/zhichenhaixin/base/model/ReqPage.java
  19. 198
      src/main/java/com/zhichenhaixin/base/model/ResInfoVo.java
  20. 49
      src/main/java/com/zhichenhaixin/base/model/ResPage.java
  21. 46
      src/main/java/com/zhichenhaixin/base/service/BaseService.java
  22. 389
      src/main/java/com/zhichenhaixin/base/service/impl/BaseServiceImpl.java
  23. 83
      src/main/java/com/zhichenhaixin/base/util/ArithmeticUtil.java
  24. 20
      src/main/java/com/zhichenhaixin/base/util/CacheUtil.java
  25. 66
      src/main/java/com/zhichenhaixin/base/util/CharacterUtil.java
  26. 74
      src/main/java/com/zhichenhaixin/base/util/ConvertUtils.java
  27. 183
      src/main/java/com/zhichenhaixin/base/util/DateUtil.java
  28. 185
      src/main/java/com/zhichenhaixin/base/util/DistanceUtil.java
  29. 36
      src/main/java/com/zhichenhaixin/base/util/ExecutorsUtils.java
  30. 109
      src/main/java/com/zhichenhaixin/base/util/GZipUtils.java
  31. 165
      src/main/java/com/zhichenhaixin/base/util/GaussUtil.java
  32. 117
      src/main/java/com/zhichenhaixin/base/util/GeometryUtil.java
  33. 158
      src/main/java/com/zhichenhaixin/base/util/HttpUtils.java
  34. 67
      src/main/java/com/zhichenhaixin/base/util/JsonUtil.java
  35. 222
      src/main/java/com/zhichenhaixin/base/util/JsonValidator.java
  36. 86
      src/main/java/com/zhichenhaixin/base/util/Kml2polygonUtil.java
  37. 159
      src/main/java/com/zhichenhaixin/base/util/ListUtil.java
  38. 65
      src/main/java/com/zhichenhaixin/base/util/LonLatUtil.java
  39. 55
      src/main/java/com/zhichenhaixin/base/util/MD5Utils.java
  40. 199
      src/main/java/com/zhichenhaixin/base/util/MapUtil.java
  41. 42
      src/main/java/com/zhichenhaixin/base/util/MathUtil.java
  42. 124
      src/main/java/com/zhichenhaixin/base/util/Matrix.java
  43. 23
      src/main/java/com/zhichenhaixin/base/util/ObjectUtil.java
  44. 141
      src/main/java/com/zhichenhaixin/base/util/PingUtil.java
  45. 57
      src/main/java/com/zhichenhaixin/base/util/PortManageUtils.java
  46. 42
      src/main/java/com/zhichenhaixin/base/util/ProxyUtil.java
  47. 36
      src/main/java/com/zhichenhaixin/base/util/ReadUtil.java
  48. 144
      src/main/java/com/zhichenhaixin/base/util/ReflectionUtils.java
  49. 48
      src/main/java/com/zhichenhaixin/base/util/ResourceUtil.java
  50. 65
      src/main/java/com/zhichenhaixin/base/util/SpringBeanUtil.java
  51. 75
      src/main/java/com/zhichenhaixin/base/util/SpringPropertyUtil.java
  52. 104
      src/main/java/com/zhichenhaixin/base/util/StringUtil.java
  53. 115
      src/main/java/com/zhichenhaixin/base/util/TcpUtil.java
  54. 65
      src/main/java/com/zhichenhaixin/base/util/ZLibUtils.java
  55. 71
      src/main/java/com/zhichenhaixin/cache/util/AgilTrackEhcache.java
  56. 76
      src/main/java/com/zhichenhaixin/cache/util/CtrlVoEhcache.java
  57. 101
      src/main/java/com/zhichenhaixin/cache/util/CustomFeatureEhcache.java
  58. 141
      src/main/java/com/zhichenhaixin/cache/util/DefenceCacheUtil.java
  59. 89
      src/main/java/com/zhichenhaixin/cache/util/GpsVoEhcache.java
  60. 78
      src/main/java/com/zhichenhaixin/cache/util/NightModeEhcache.java
  61. 71
      src/main/java/com/zhichenhaixin/cache/util/RadarFalseAlarmEhcache.java
  62. 78
      src/main/java/com/zhichenhaixin/cache/util/SmuggleEhcache.java
  63. 78
      src/main/java/com/zhichenhaixin/cache/util/SurLineDataEhcache.java
  64. 71
      src/main/java/com/zhichenhaixin/cache/util/TrackAlarmEhcache.java
  65. 71
      src/main/java/com/zhichenhaixin/cache/util/TrackCameraEhcache.java
  66. 71
      src/main/java/com/zhichenhaixin/cache/util/TrackPointEhcache.java
  67. 42
      src/main/java/com/zhichenhaixin/cache/util/WarnAlarmCountEhcache.java
  68. 99
      src/main/java/com/zhichenhaixin/control/model/ReqPacket.java
  69. 100
      src/main/java/com/zhichenhaixin/control/model/ResPacket.java
  70. 192
      src/main/java/com/zhichenhaixin/control/model/VideoWarnInfoHandle.java
  71. 24
      src/main/java/com/zhichenhaixin/factory/DefaultCacheDecoratorFactory.java
  72. 202
      src/main/java/com/zhichenhaixin/fusedata/CopyOfFuseRadarThread.java
  73. 107
      src/main/java/com/zhichenhaixin/fusedata/EntityVo.java
  74. 66
      src/main/java/com/zhichenhaixin/fusedata/FuseDataThread.java
  75. 415
      src/main/java/com/zhichenhaixin/fusedata/FuseDataUtil.java
  76. 93
      src/main/java/com/zhichenhaixin/fusedata/FuseDataVo.java
  77. 230
      src/main/java/com/zhichenhaixin/fusedata/FuseRadarThread.java
  78. 27
      src/main/java/com/zhichenhaixin/fusedata/FuseVo.java
  79. 44
      src/main/java/com/zhichenhaixin/fusedata/LocusVo.java
  80. 340
      src/main/java/com/zhichenhaixin/fusedata/MongoUtil.java
  81. 213
      src/main/java/com/zhichenhaixin/gui/RadarHelperFrame.java
  82. 75
      src/main/java/com/zhichenhaixin/hbase/CommonConfig.java
  83. 567
      src/main/java/com/zhichenhaixin/hbase/HBaseClient.java
  84. 96
      src/main/java/com/zhichenhaixin/http/sys/model/RongkeInfo.java
  85. 147
      src/main/java/com/zhichenhaixin/http/sys/model/RongkeVo.java
  86. 67
      src/main/java/com/zhichenhaixin/interceptor/CacheInterceptor.java
  87. 52
      src/main/java/com/zhichenhaixin/interceptor/MethodCacheAfterAdvice.java
  88. 96
      src/main/java/com/zhichenhaixin/interceptor/PaginationInterceptor.java
  89. 17
      src/main/java/com/zhichenhaixin/interceptor/QuartzTask.java
  90. 14
      src/main/java/com/zhichenhaixin/interceptor/RequiredInterceptor.java
  91. 34
      src/main/java/com/zhichenhaixin/list/dao/DbAlarmInfoDao.java
  92. 23
      src/main/java/com/zhichenhaixin/list/dao/DbDeviceDao.java
  93. 19
      src/main/java/com/zhichenhaixin/list/dao/DbSiteInfoDao.java
  94. 258
      src/main/java/com/zhichenhaixin/list/dao/impl/DbAlarmInfoDaoImpl.java
  95. 39
      src/main/java/com/zhichenhaixin/list/dao/impl/DbDeviceDaoImpl.java
  96. 65
      src/main/java/com/zhichenhaixin/list/dao/impl/DbSiteInfoDaoImpl.java
  97. 102
      src/main/java/com/zhichenhaixin/list/model/AlarmInfoSearch.java
  98. 15
      src/main/java/com/zhichenhaixin/list/model/AlarmListDto.java
  99. 201
      src/main/java/com/zhichenhaixin/list/model/ClsDev.java
  100. 87
      src/main/java/com/zhichenhaixin/list/model/ResMsg.java

38
.gitignore

@ -0,0 +1,38 @@
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

8
.idea/.gitignore

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

7
.idea/encodings.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" 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" />
</component>
</project>

13
.idea/misc.xml

@ -0,0 +1,13 @@
<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>

124
.idea/uiDesigner.xml

@ -0,0 +1,124 @@
<?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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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.svg" 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
.idea/vcs.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

463
pom.xml

@ -0,0 +1,463 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>radar-gui-v1.0</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Archetype - radar-gui-v1.0</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<version>1.0.4</version>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<dependency>
<version>1.1.37</version>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<version>1.3.9-1</version>
<groupId>com.github.stephenc.findbugs</groupId>
<artifactId>findbugs-annotations</artifactId>
</dependency>
<dependency>
<version>r09</version>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<version>2.6.1</version>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
<dependency>
<version>1.2.0</version>
<groupId>com.googlecode.ehcache-spring-annotations</groupId>
<artifactId>ehcache-spring-annotations</artifactId>
</dependency>
<dependency>
<version>1.1.3</version>
<groupId>com.jcraft</groupId>
<artifactId>jzlib</artifactId>
</dependency>
<dependency>
<version>1.9</version>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</dependency>
<dependency>
<version>1.9</version>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
</dependency>
<dependency>
<version>2.3</version>
<groupId>com.thoughtworks.paranamer</groupId>
<artifactId>paranamer</artifactId>
</dependency>
<dependency>
<version>1.11</version>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
</dependency>
<dependency>
<version>1.8.0</version>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<version>1.2</version>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>
<dependency>
<version>1.7</version>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<version>3.2.1</version>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
<dependency>
<version>1.6</version>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
<dependency>
<version>2.4</version>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<version>2.5</version>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
<dependency>
<version>1.1.1</version>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<version>3.1</version>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
</dependency>
<dependency>
<version>3.6.6.Final</version>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
</dependency>
<dependency>
<version>1.2.17</version>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<version>2.4.5</version>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
</dependency>
<dependency>
<version>1.0.6</version>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
</dependency>
<dependency>
<version>1.7.4</version>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
</dependency>
<dependency>
<version>1.4.1</version>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
</dependency>
<dependency>
<version>3.1.1</version>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
</dependency>
<dependency>
<version>2.2.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-app</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-jobclient</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-shuffle</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-api</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-client</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-common</artifactId>
</dependency>
<dependency>
<version>2.6.0</version>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-common</artifactId>
</dependency>
<dependency>
<version>0.98.0-hadoop2</version>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
</dependency>
<dependency>
<version>0.98.0-hadoop2</version>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
</dependency>
<dependency>
<version>0.98.0-hadoop2</version>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-protocol</artifactId>
</dependency>
<dependency>
<version>2.04</version>
<groupId>org.cloudera.htrace</groupId>
<artifactId>htrace-core</artifactId>
</dependency>
<dependency>
<version>1.8</version>
<groupId>org.fusesource.leveldbjni</groupId>
<artifactId>leveldbjni-all</artifactId>
</dependency>
<dependency>
<version>1.1</version>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</dependency>
<dependency>
<version>3.0.4</version>
<groupId>org.htrace</groupId>
<artifactId>htrace-core</artifactId>
</dependency>
<dependency>
<version>6.1.26</version>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
<version>3.2.7</version>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<version>1.2.2</version>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<dependency>
<version>1.8.5</version>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<dependency>
<version>1.6.6</version>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<version>1.6.6</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- <dependency>
<version>1.6.6</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.1.RELEASE</version>
</dependency>
<dependency>
<version>1.5.0.RELEASE</version>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
</dependency>
<dependency>
<version>1.2.0.RELEASE</version>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.web</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<version>1.0.4.1</version>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
</dependency>
<dependency>
<version>0.3.5</version>
<groupId>org.zeromq</groupId>
<artifactId>jeromq</artifactId>
</dependency>
</dependencies>
<build>
<finalName>radargui</finalName><!--修改编译出来的jar包名,仅为{artifactId}.jar-->
<plugins>
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.com.zhichenhaixin.main.RadarHelperMain</mainClass> &lt;!&ndash; 此处为主入口&ndash;&gt;
</manifest>
</archive>
</configuration>
</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.zhichenhaixin.main.RadarHelperMain</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

100
src/main/java/com/zhichenhaixin/base/constant/Constant.java

@ -0,0 +1,100 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.constant;
import com.zhichenhaixin.base.util.HttpUtils;
import com.zhichenhaixin.base.util.StringUtil;
import com.zhichenhaixin.base.util.TcpUtil;
import com.zhichenhaixin.proto.ZCHXVideoWarn;
import com.zhichenhaixin.sys.model.UserVo;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import com.zhichenhaixin.thread.WarnGPSDyDataThread;
import com.zhichenhaixin.thread.ZMQServerDyData;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.Hashtable;
import java.util.Map;
public class Constant extends GlobalVariable
{
public static Log log;
public static Map<String, UserVo> loginMap;
static {
Constant.log = LogFactory.getLog(Constant.class);
Constant.loginMap = new Hashtable<String, UserVo>();
}
public static void addWarnMap(final String trackNum, final String tts) {
if (!Constant.warnMap.containsKey(trackNum)) {
try {
Constant.warnMap.put(trackNum, tts);
if (Constant.ttsStatus == 2 || tts.contains(Constant.defence_name)) {
return;
}
TcpUtil.playTts(tts);
final String time = String.valueOf(System.currentTimeMillis());
ZMQServerDyData.getZMQPUB().sendData(Constant.sign, time, tts.getBytes("UTF-8"));
}
catch (Exception e) {
Constant.log.error("\u53d1\u9001TTS\u65f6\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
}
public static void removeWarnMap(final String trackNum) {
if (Constant.warnMap.containsKey(trackNum)) {
Constant.warnMap.remove(trackNum);
}
}
public static void sendClient(final WarnInfoBean warnInfoVo) {
final ZCHXVideoWarn.VideoWarnInfo.Builder videoWarnInfo = ZCHXVideoWarn.VideoWarnInfo.newBuilder();
videoWarnInfo.setTransactionId(warnInfoVo.getObject_id());
videoWarnInfo.setAlarmId(warnInfoVo.getId());
final String carmeraid = StringUtil.isBlank(warnInfoVo.getCamera_id()) ? "0" : warnInfoVo.getCamera_id();
videoWarnInfo.setCameraId(Integer.parseInt(carmeraid));
videoWarnInfo.setAlarmPlace(StringUtil.isBlank(warnInfoVo.getAlarm_site()) ? "\u672a\u77e5" : warnInfoVo.getAlarm_site());
videoWarnInfo.setAlarmFtp("");
videoWarnInfo.setAlarmRtsp(StringUtil.isBlank(warnInfoVo.getRtsp()) ? "" : warnInfoVo.getRtsp());
videoWarnInfo.setAlarmLat(warnInfoVo.getY());
videoWarnInfo.setAlarmLon(warnInfoVo.getX());
videoWarnInfo.setAlarmLevel(Integer.parseInt(StringUtil.isBlank(warnInfoVo.getAlarm_level()) ? "2" : warnInfoVo.getAlarm_level()));
videoWarnInfo.setTargetId(warnInfoVo.getObject_id());
videoWarnInfo.setTargetType(GlobalVariable.getCilentType(Integer.parseInt(StringUtil.isBlank(warnInfoVo.getObject_type()) ? "0" : warnInfoVo.getObject_type())));
videoWarnInfo.setAlarmSource(Integer.parseInt(warnInfoVo.getAlarm_source()));
final String time = String.valueOf(warnInfoVo.getBegintime());
final long date = Long.valueOf(time);
final long begintime = (time.length() == 10) ? (date * 1000L) : date;
videoWarnInfo.setAlarmTime(begintime);
videoWarnInfo.setAlarmType(Integer.parseInt(warnInfoVo.getAlarm_type()));
videoWarnInfo.setAlarmStatus(Integer.parseInt(warnInfoVo.getAlarm_status()));
videoWarnInfo.setUntreatedAlarmCount(warnInfoVo.getUntreated_alarm_count());
WarnGPSDyDataThread.getZMQPUB().sendData(Constant.TOPIC, videoWarnInfo.build().toByteArray());
}
public static void parseParmSendWarnToRongKe(final ZCHXVideoWarn.VideoWarnInfo videoWarnInfo) {
final WarnInfoBean bean = WarnInfoBean.getClone();
bean.setSign("1");
bean.setId(videoWarnInfo.getAlarmId());
bean.setAlarm_level(String.valueOf(videoWarnInfo.getAlarmLevel()));
final String time = String.valueOf(videoWarnInfo.getAlarmTime());
final long date = Long.valueOf(time);
final long begintime = (time.length() == 13) ? (date / 1000L) : date;
bean.setBegintime(begintime);
bean.setAlarm_site(videoWarnInfo.getAlarmPlace());
bean.setX(videoWarnInfo.getAlarmLon());
bean.setY(videoWarnInfo.getAlarmLat());
bean.setAlarm_source("1");
bean.setAlarm_type(String.valueOf(videoWarnInfo.getAlarmType()));
bean.setMark("");
bean.setCamera_id(String.valueOf(videoWarnInfo.getCameraId()));
bean.setObject_type(String.valueOf(GlobalVariable.getRongkeType(videoWarnInfo.getTargetType())));
bean.setRtsp(StringUtil.isBlank(videoWarnInfo.getAlarmRtsp()) ? "0" : videoWarnInfo.getAlarmRtsp());
bean.setHandle_status(2);
HttpUtils.sendWarnToRongKe(bean);
}
}

124
src/main/java/com/zhichenhaixin/base/constant/GlobalVariable.java

@ -0,0 +1,124 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.constant;
import com.zhichenhaixin.base.util.SpringPropertyUtil;
import com.zhichenhaixin.proto.ZCHXVideoWarn;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.zeromq.ZMQ;
import java.util.Map;
import java.util.Timer;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class GlobalVariable
{
public static Log log;
public static String sign;
public static final int ttsStatus;
public static final String TOPIC;
public static final int surline_number;
public static ExecutorService cachedThreadPool;
public static ZMQ.Context context;
public static int defence_id;
public static String defence_name;
public static Timer timer;
public static final String REQ_DATA = "data";
public static final String REQ_SID = "sid";
public static final String REQ_ID = "id";
public static final String CODE_NAME = "code";
public static final int SUCCESS = 1000;
public static final int ERROR = 1001;
public static final String RES_MSG = "msg";
public static final String RES_DATA = "data";
public static final String VALIDATOR_FIELD = "field";
public static final String VALIDATOR_RUEL = "rule";
public static final String VALIDATOR_COMMENT = "comment";
public static final String VALIDATOR_MIN_LENGTH = "minLength";
public static final String VALIDATOR_MAX_LENGTH = "maxLength";
public static final String VALIDATOR_REGX_EXPRESS = "regx_express";
public static final String IP;
public static final String release_type = "release";
public static final String GUAGN_DIAN_YI = "\u5149\u7535\u4eea";
public static int MODEL_TYPE;
public static int big_controll_big_screen;
public static Map<String, Object> warnMap;
public static final String TTS_ALARM = "\u6709\u76ee\u6807\u8fdb\u5165";
public static final String SURRAND_LINE_ONE = "line_one";
public static final String SURRAND_LINE_TWO = "line_two";
public static final String SURRAND_LINE_THREE = "line_three";
public static final String DEFENCE = "defence";
public static final String warn_alarm_count = "warn_alarm_count";
public static Map<String, ZCHXVideoWarn.VideoWarnInfo.Builder> mapVideoWarnInfo;
public static Map<String, Long> mapComposeVideoBefore;
public static Map<String, ZCHXVideoWarn.VideoWarnInfo.Builder> mapComposeVideoAfter;
static {
GlobalVariable.log = LogFactory.getLog(GlobalVariable.class);
GlobalVariable.sign = SpringPropertyUtil.getProperty("tts_report_topic");
ttsStatus = Integer.valueOf(SpringPropertyUtil.getProperty("tts.status"));
TOPIC = SpringPropertyUtil.getProperty("video.alarm.info.topic");
surline_number = Integer.valueOf(SpringPropertyUtil.getProperty("surline.number"));
GlobalVariable.cachedThreadPool = Executors.newCachedThreadPool();
GlobalVariable.context = ZMQ.context(1);
GlobalVariable.defence_id = Integer.valueOf(SpringPropertyUtil.getProperty("defence_id"));
GlobalVariable.defence_name = SpringPropertyUtil.getProperty("defence_name");
GlobalVariable.timer = new Timer();
IP = SpringPropertyUtil.getProperty("address.ip");
GlobalVariable.MODEL_TYPE = 3;
GlobalVariable.big_controll_big_screen = 5;
GlobalVariable.warnMap = new ConcurrentHashMap<String, Object>();
GlobalVariable.mapVideoWarnInfo = new ConcurrentHashMap<String, ZCHXVideoWarn.VideoWarnInfo.Builder>();
GlobalVariable.mapComposeVideoBefore = new ConcurrentHashMap<String, Long>();
GlobalVariable.mapComposeVideoAfter = new ConcurrentHashMap<String, ZCHXVideoWarn.VideoWarnInfo.Builder>();
}
public static int getRongkeType(int type) {
switch (type) {
case 0: {
type = 1;
break;
}
case 1: {
type = 2;
break;
}
case 2: {
type = 3;
break;
}
default: {
type = 4;
break;
}
}
return type;
}
public static int getCilentType(int type) {
switch (type) {
case 1: {
type = 0;
break;
}
case 2: {
type = 1;
break;
}
case 3: {
type = 2;
break;
}
default: {
type = 4;
break;
}
}
return type;
}
}

30
src/main/java/com/zhichenhaixin/base/controller/BaseController.java

@ -0,0 +1,30 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.controller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping({ "baseController" })
public class BaseController
{
public Log log;
public BaseController() {
this.log = LogFactory.getLog(BaseController.class);
}
@RequestMapping({ "{pkg}/{jsp}" })
public String view(@PathVariable("pkg") final String pkg, @PathVariable("jsp") final String jsp, final HttpServletRequest request) {
this.log.info("toPage : " + pkg + "/" + jsp);
return String.valueOf(pkg) + "/" + jsp;
}
}

35
src/main/java/com/zhichenhaixin/base/dao/BaseDao.java

@ -0,0 +1,35 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.dao;
import com.zhichenhaixin.sys.model.UserLoginLogInfo;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public interface BaseDao
{
Map<String, Object> queryById(final String p0, final int p1);
List<Map<String, Object>> queryByParams(final String p0, final Map<String, Object> p1);
void insertRow(final String p0, final Map<String, Object> p1);
void insertList(final String p0, final Collection p1);
void insertListBYId(final String p0, @Param("list") final Collection p1, @Param("link_id") final int p2);
void updateById(final String p0, final Map<String, Object> p1);
void deleteById(final String p0, final int p1);
List<Map<String, Object>> queryForPageList(final String p0, final Map<String, Object> p1);
int queryForPageCount(final String p0, final Map<String, Object> p1);
void saveLoginLog(final UserLoginLogInfo p0);
}

25
src/main/java/com/zhichenhaixin/base/dao/MongoDBDao.java

@ -0,0 +1,25 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.dao;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import java.util.List;
public interface MongoDBDao
{
void deleteByPrimaryKey(final String p0, final String p1);
void insert(final String p0, final BasicDBObject p1);
DBObject selectByPrimaryKey(final String p0, final String p1);
List<DBObject> selectAll(final String p0);
List<DBObject> selectAllByField(final String p0, final String p1, final String p2);
void updateByPrimaryKey(final String p0, final BasicDBObject p1);
}

157
src/main/java/com/zhichenhaixin/base/dao/impl/BaseDaoImpl.java

@ -0,0 +1,157 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.dao.impl;
import com.zhichenhaixin.base.dao.BaseDao;
import com.zhichenhaixin.base.util.StringUtil;
import com.zhichenhaixin.sys.model.UserLoginLogInfo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.session.RowBounds;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository("baseDaoImpl")
public class BaseDaoImpl implements BaseDao
{
public Log log;
@Resource(name = "pg_template")
public SqlSessionTemplate pg_template;
public BaseDaoImpl() {
this.log = LogFactory.getLog(BaseDaoImpl.class);
}
public SqlSessionTemplate getPg_template() {
return this.pg_template;
}
public void setPg_template(final SqlSessionTemplate pg_template) {
this.pg_template = pg_template;
}
@Override
public Map<String, Object> queryById(final String sid, final int id) {
return this.pg_template.selectOne(sid, id);
}
@Override
public List<Map<String, Object>> queryByParams(final String sid, final Map<String, Object> param) {
final List<Map<String, Object>> list = this.pg_template.selectList(sid, param);
return list;
}
@Override
public void insertRow(final String sid, final Map<String, Object> param) {
this.pg_template.insert(sid, param);
}
@Override
public void updateById(final String sid, final Map<String, Object> param) {
this.pg_template.update(sid, param);
}
@Override
public void deleteById(final String sid, final int id) {
this.pg_template.delete(sid, id);
}
@Override
public void insertList(final String sid, final Collection list) {
this.pg_template.insert(sid, list);
}
@Override
public void insertListBYId(final String sid, final Collection list, final int link_id) {
final Map<String, Object> param = new HashMap<String, Object>();
param.put("list", list);
param.put("link_id", link_id);
this.pg_template.insert(sid, param);
}
@Override
public List<Map<String, Object>> queryForPageList(final String key, final Map<String, Object> param) {
int page = 1;
int rows = Integer.MAX_VALUE;
Label_0172: {
Label_0088: {
try {
final String pagestr = new StringBuilder().append(param.get("curPage")).toString();
if (StringUtil.notBlank(pagestr)) {
page = Integer.parseInt(pagestr);
}
}
catch (NumberFormatException e) {
this.log.debug("parameter page is empty");
break Label_0088;
}
finally {
if (page < 1) {
page = 1;
}
}
if (page < 1) {
page = 1;
}
try {
final String rowsstr = new StringBuilder().append(param.get("size")).toString();
rows = Integer.parseInt(rowsstr);
}
catch (NumberFormatException e) {
this.log.debug("parameter rows is empty");
break Label_0172;
}
finally {
if (rows < 1) {
rows = Integer.MAX_VALUE;
}
}
}
if (rows < 1) {
rows = Integer.MAX_VALUE;
}
}
param.put("_QUERY_PAGED_FLAG_", true);
final List<Map<String, Object>> list = this.pg_template.selectList(key, param, new RowBounds((page - 1) * rows, rows));
param.remove("_QUERY_PAGED_FLAG_");
return list;
}
@Override
public int queryForPageCount(final String key, final Map<String, Object> param) {
final Collection<String> mappedStatementNames = this.pg_template.getConfiguration().getMappedStatementNames();
int cnt = 0;
if (mappedStatementNames.contains(String.valueOf(key) + "Count")) {
this.log.debug("\u5b58\u5728\u5206\u9875\u67e5\u8be2\u603b\u6570SQL:" + key + "Count,\u76f4\u63a5\u4f7f\u7528");
final Map<String, BigDecimal> ret = this.pg_template.selectOne(String.valueOf(key) + "Count", param);
if (ret instanceof Map) {
final Map<String, BigDecimal> retmap = ret;
cnt = Integer.parseInt(String.valueOf(retmap.get("cnt_total")));
}
else {
cnt = Integer.parseInt(ret.toString());
}
}
else {
param.put("_QUERY_COUNT_FLAG_", true);
final Map<String, BigDecimal> ret = this.pg_template.selectOne(key, param);
cnt = Integer.parseInt(String.valueOf(ret.get("cnt_total")));
param.remove("_QUERY_COUNT_FLAG_");
}
return cnt;
}
@Override
public void saveLoginLog(final UserLoginLogInfo info) {
this.pg_template.insert("base.insertLoginLog", info);
}
}

81
src/main/java/com/zhichenhaixin/base/dao/impl/MongoDBDaoImpl.java

@ -0,0 +1,81 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.dao.impl;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.zhichenhaixin.base.dao.MongoDBDao;
import org.springframework.data.mongodb.core.MongoTemplate;
import java.util.ArrayList;
import java.util.List;
public class MongoDBDaoImpl implements MongoDBDao
{
private MongoTemplate mongoTemplate;
@Override
public void deleteByPrimaryKey(final String collectionName, final String id) {
DBCollection collection = null;
collection = this.mongoTemplate.getCollection(collectionName);
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put("_id", id);
collection.remove(queryObject);
}
@Override
public void insert(final String collectionName, final BasicDBObject record) {
DBCollection collection = null;
collection = this.mongoTemplate.getCollection(collectionName);
collection.save(record);
}
@Override
public DBObject selectByPrimaryKey(final String collectionName, final String id) {
DBCollection collection = null;
collection = this.mongoTemplate.getCollection(collectionName);
DBObject dbObject = null;
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put("_id", id);
final DBCursor cursor = collection.find(queryObject);
while (cursor.hasNext()) {
dbObject = cursor.next();
}
return dbObject;
}
@Override
public List<DBObject> selectAll(final String collectionName) {
DBCollection collection = null;
collection = this.mongoTemplate.getCollection(collectionName);
final List<DBObject> dbList = new ArrayList<DBObject>();
final DBCursor cursor = collection.find();
while (cursor.hasNext()) {
dbList.add(cursor.next());
}
return dbList;
}
@Override
public void updateByPrimaryKey(final String collectionName, final BasicDBObject record) {
}
@Override
public List<DBObject> selectAllByField(final String collectionName, final String field1, final String field2) {
DBCollection collection = null;
collection = this.mongoTemplate.getCollection(collectionName);
final List<DBObject> dbList = new ArrayList<DBObject>();
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put(field1, true);
queryObject.put(field2, true);
final DBCursor cursor = collection.find(new BasicDBObject(), queryObject);
while (cursor.hasNext()) {
dbList.add(cursor.next());
}
return dbList;
}
}

90
src/main/java/com/zhichenhaixin/base/model/MatrixCameraVo.java

@ -0,0 +1,90 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class MatrixCameraVo implements Serializable
{
private static final long serialVersionUID = -3077865585768466263L;
private int splitScreenId;
private int cameraId;
private String videoIp;
private int videoPort;
private String userName;
private String passWord;
private String channelid;
public void setSplitScreenId(final int splitScreenId) {
this.splitScreenId = splitScreenId;
}
public void setCameraId(final int cameraId) {
this.cameraId = cameraId;
}
public void setVideoIp(final String videoIp) {
this.videoIp = videoIp;
}
public void setVideoPort(final int videoPort) {
this.videoPort = videoPort;
}
public void setUserName(final String userName) {
this.userName = userName;
}
public void setPassWord(final String passWord) {
this.passWord = passWord;
}
public void setChannelid(final String channelid) {
this.channelid = channelid;
}
public int getSplitScreenId() {
return this.splitScreenId;
}
public int getCameraId() {
return this.cameraId;
}
public String getVideoIp() {
return this.videoIp;
}
public int getVideoPort() {
return this.videoPort;
}
public String getUserName() {
return this.userName;
}
public String getPassWord() {
return this.passWord;
}
public String getChannelid() {
return this.channelid;
}
public MatrixCameraVo() {
}
@ConstructorProperties({ "splitScreenId", "cameraId", "videoIp", "videoPort", "userName", "passWord", "channelid" })
public MatrixCameraVo(final int splitScreenId, final int cameraId, final String videoIp, final int videoPort, final String userName, final String passWord, final String channelid) {
this.splitScreenId = splitScreenId;
this.cameraId = cameraId;
this.videoIp = videoIp;
this.videoPort = videoPort;
this.userName = userName;
this.passWord = passWord;
this.channelid = channelid;
}
}

40
src/main/java/com/zhichenhaixin/base/model/MatrixPCVo.java

@ -0,0 +1,40 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class MatrixPCVo implements Serializable
{
private static final long serialVersionUID = 3292350969094959749L;
private int pcId;
private int splitScreenId;
public void setPcId(final int pcId) {
this.pcId = pcId;
}
public void setSplitScreenId(final int splitScreenId) {
this.splitScreenId = splitScreenId;
}
public int getPcId() {
return this.pcId;
}
public int getSplitScreenId() {
return this.splitScreenId;
}
public MatrixPCVo() {
}
@ConstructorProperties({ "pcId", "splitScreenId" })
public MatrixPCVo(final int pcId, final int splitScreenId) {
this.pcId = pcId;
this.splitScreenId = splitScreenId;
}
}

67
src/main/java/com/zhichenhaixin/base/model/MatrixVo.java

@ -0,0 +1,67 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.model;
import java.beans.ConstructorProperties;
import java.util.ArrayList;
import java.util.List;
public class MatrixVo
{
private int handle;
private int sceneId;
private List<MatrixCameraVo> HCList;
private List<MatrixPCVo> computerList;
public void addMatrixCameraVo(final MatrixCameraVo vo) {
if (this.HCList == null) {
this.HCList = new ArrayList<MatrixCameraVo>();
}
this.HCList.add(vo);
}
public void setHandle(final int handle) {
this.handle = handle;
}
public void setSceneId(final int sceneId) {
this.sceneId = sceneId;
}
public void setHCList(final List<MatrixCameraVo> HCList) {
this.HCList = HCList;
}
public void setComputerList(final List<MatrixPCVo> computerList) {
this.computerList = computerList;
}
public int getHandle() {
return this.handle;
}
public int getSceneId() {
return this.sceneId;
}
public List<MatrixCameraVo> getHCList() {
return this.HCList;
}
public List<MatrixPCVo> getComputerList() {
return this.computerList;
}
public MatrixVo() {
}
@ConstructorProperties({ "handle", "sceneId", "HCList", "computerList" })
public MatrixVo(final int handle, final int sceneId, final List<MatrixCameraVo> HCList, final List<MatrixPCVo> computerList) {
this.handle = handle;
this.sceneId = sceneId;
this.HCList = HCList;
this.computerList = computerList;
}
}

74
src/main/java/com/zhichenhaixin/base/model/ReqPage.java

@ -0,0 +1,74 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class ReqPage implements Serializable
{
private static final long serialVersionUID = -4284245164252282726L;
private int curPage;
private int size;
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
if (!(o instanceof ReqPage)) {
return false;
}
final ReqPage other = (ReqPage)o;
return other.canEqual(this) && this.getCurPage() == other.getCurPage() && this.getSize() == other.getSize();
}
protected boolean canEqual(final Object other) {
return other instanceof ReqPage;
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
result = result * 59 + this.getCurPage();
result = result * 59 + this.getSize();
return result;
}
@Override
public String toString() {
return "ReqPage(curPage=" + this.getCurPage() + ", size=" + this.getSize() + ")";
}
public void setCurPage(final int curPage) {
this.curPage = curPage;
}
public void setSize(final int size) {
this.size = size;
}
public int getCurPage() {
return this.curPage;
}
public int getSize() {
return this.size;
}
public ReqPage() {
this.curPage = 1;
this.size = 10;
}
@ConstructorProperties({ "curPage", "size" })
public ReqPage(final int curPage, final int size) {
this.curPage = 1;
this.size = 10;
this.curPage = curPage;
this.size = size;
}
}

198
src/main/java/com/zhichenhaixin/base/model/ResInfoVo.java

@ -0,0 +1,198 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class ResInfoVo implements Serializable
{
private static final long serialVersionUID = -4644991203691658628L;
private String operateId;
private String uiSaveDataFlag;
private String msgCode;
private String msgContent;
private String msgType;
private String data;
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
if (!(o instanceof ResInfoVo)) {
return false;
}
final ResInfoVo other = (ResInfoVo)o;
if (!other.canEqual(this)) {
return false;
}
final Object this$operateId = this.getOperateId();
final Object other$operateId = other.getOperateId();
Label_0065: {
if (this$operateId == null) {
if (other$operateId == null) {
break Label_0065;
}
}
else if (this$operateId.equals(other$operateId)) {
break Label_0065;
}
return false;
}
final Object this$uiSaveDataFlag = this.getUiSaveDataFlag();
final Object other$uiSaveDataFlag = other.getUiSaveDataFlag();
Label_0102: {
if (this$uiSaveDataFlag == null) {
if (other$uiSaveDataFlag == null) {
break Label_0102;
}
}
else if (this$uiSaveDataFlag.equals(other$uiSaveDataFlag)) {
break Label_0102;
}
return false;
}
final Object this$msgCode = this.getMsgCode();
final Object other$msgCode = other.getMsgCode();
Label_0139: {
if (this$msgCode == null) {
if (other$msgCode == null) {
break Label_0139;
}
}
else if (this$msgCode.equals(other$msgCode)) {
break Label_0139;
}
return false;
}
final Object this$msgContent = this.getMsgContent();
final Object other$msgContent = other.getMsgContent();
Label_0176: {
if (this$msgContent == null) {
if (other$msgContent == null) {
break Label_0176;
}
}
else if (this$msgContent.equals(other$msgContent)) {
break Label_0176;
}
return false;
}
final Object this$msgType = this.getMsgType();
final Object other$msgType = other.getMsgType();
Label_0213: {
if (this$msgType == null) {
if (other$msgType == null) {
break Label_0213;
}
}
else if (this$msgType.equals(other$msgType)) {
break Label_0213;
}
return false;
}
final Object this$data = this.getData();
final Object other$data = other.getData();
if (this$data == null) {
if (other$data == null) {
return true;
}
}
else if (this$data.equals(other$data)) {
return true;
}
return false;
}
protected boolean canEqual(final Object other) {
return other instanceof ResInfoVo;
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
final Object $operateId = this.getOperateId();
result = result * 59 + (($operateId == null) ? 43 : $operateId.hashCode());
final Object $uiSaveDataFlag = this.getUiSaveDataFlag();
result = result * 59 + (($uiSaveDataFlag == null) ? 43 : $uiSaveDataFlag.hashCode());
final Object $msgCode = this.getMsgCode();
result = result * 59 + (($msgCode == null) ? 43 : $msgCode.hashCode());
final Object $msgContent = this.getMsgContent();
result = result * 59 + (($msgContent == null) ? 43 : $msgContent.hashCode());
final Object $msgType = this.getMsgType();
result = result * 59 + (($msgType == null) ? 43 : $msgType.hashCode());
final Object $data = this.getData();
result = result * 59 + (($data == null) ? 43 : $data.hashCode());
return result;
}
@Override
public String toString() {
return "ResInfoVo(operateId=" + this.getOperateId() + ", uiSaveDataFlag=" + this.getUiSaveDataFlag() + ", msgCode=" + this.getMsgCode() + ", msgContent=" + this.getMsgContent() + ", msgType=" + this.getMsgType() + ", data=" + this.getData() + ")";
}
public void setOperateId(final String operateId) {
this.operateId = operateId;
}
public void setUiSaveDataFlag(final String uiSaveDataFlag) {
this.uiSaveDataFlag = uiSaveDataFlag;
}
public void setMsgCode(final String msgCode) {
this.msgCode = msgCode;
}
public void setMsgContent(final String msgContent) {
this.msgContent = msgContent;
}
public void setMsgType(final String msgType) {
this.msgType = msgType;
}
public void setData(final String data) {
this.data = data;
}
public String getOperateId() {
return this.operateId;
}
public String getUiSaveDataFlag() {
return this.uiSaveDataFlag;
}
public String getMsgCode() {
return this.msgCode;
}
public String getMsgContent() {
return this.msgContent;
}
public String getMsgType() {
return this.msgType;
}
public String getData() {
return this.data;
}
@ConstructorProperties({ "operateId", "uiSaveDataFlag", "msgCode", "msgContent", "msgType", "data" })
public ResInfoVo(final String operateId, final String uiSaveDataFlag, final String msgCode, final String msgContent, final String msgType, final String data) {
this.operateId = operateId;
this.uiSaveDataFlag = uiSaveDataFlag;
this.msgCode = msgCode;
this.msgContent = msgContent;
this.msgType = msgType;
this.data = data;
}
public ResInfoVo() {
}
}

49
src/main/java/com/zhichenhaixin/base/model/ResPage.java

@ -0,0 +1,49 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class ResPage<T> implements Serializable
{
private static final long serialVersionUID = 8244860634690350718L;
private int rowTotal;
private List<T> infoContent;
public void setRowTotal(final int rowTotal) {
this.rowTotal = rowTotal;
}
public void setInfoContent(final List<T> infoContent) {
this.infoContent = infoContent;
}
public int getRowTotal() {
return this.rowTotal;
}
public List<T> getInfoContent() {
return this.infoContent;
}
@Override
public String toString() {
return "ResPage(rowTotal=" + this.getRowTotal() + ", infoContent=" + this.getInfoContent() + ")";
}
public ResPage() {
this.infoContent = new ArrayList<T>();
}
@ConstructorProperties({ "rowTotal", "infoContent" })
public ResPage(final int rowTotal, final List<T> infoContent) {
this.infoContent = new ArrayList<T>();
this.rowTotal = rowTotal;
this.infoContent = infoContent;
}
}

46
src/main/java/com/zhichenhaixin/base/service/BaseService.java

@ -0,0 +1,46 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.service;
import com.zhichenhaixin.sys.model.UserLoginLogInfo;
import java.util.Map;
public interface BaseService
{
String queryById(final String p0);
String queryById(final Map<String, Object> p0);
Map<String, Object> queryById3(final Map<String, Object> p0);
String queryByParams(final String p0);
String queryByParams(final Map<String, Object> p0);
Map<String, Object> queryByParams3(final Map<String, Object> p0);
String insertRow(final String p0);
String insertRow(final Map<String, Object> p0);
Map<String, Object> insertRow3(final Map<String, Object> p0);
String updateById(final String p0);
String updateById(final Map<String, Object> p0);
Map<String, Object> updateById3(final Map<String, Object> p0);
String deleteById(final String p0);
String deleteById(final Map<String, Object> p0);
Map<String, Object> deleteById3(final Map<String, Object> p0);
Map<String, Object> queryForPage(final String p0, final Map<String, Object> p1);
void saveLoginLog(final UserLoginLogInfo p0);
}

389
src/main/java/com/zhichenhaixin/base/service/impl/BaseServiceImpl.java

@ -0,0 +1,389 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.service.impl;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.zhichenhaixin.base.dao.BaseDao;
import com.zhichenhaixin.base.service.BaseService;
import com.zhichenhaixin.base.util.ObjectUtil;
import com.zhichenhaixin.sys.model.UserLoginLogInfo;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Type;
import java.util.*;
@Service("baseServiceImpl")
public class BaseServiceImpl implements BaseService
{
public static Log log;
@Resource(name = "baseDaoImpl")
private BaseDao baseDao;
static {
BaseServiceImpl.log = LogFactory.getLog(BaseServiceImpl.class);
}
public String backSucessMapStr(final Object obj) {
final Map<String, Object> map = new HashMap<String, Object>();
map.put("code", 1000);
map.put("msg", "\u64cd\u4f5c\u6210\u529f");
map.put("data", obj);
return mapTojsonStr(map);
}
public Map<String, Object> backSucessMap(final Object obj) {
final Map<String, Object> map = new HashMap<String, Object>();
map.put("code", 1000);
map.put("msg", "\u64cd\u4f5c\u6210\u529f");
map.put("data", obj);
return map;
}
public String backErrorMapStr(final Object obj) {
final Map<String, Object> map = new HashMap<String, Object>();
map.put("code", 1001);
map.put("msg", "\u64cd\u4f5c\u5931\u8d25");
map.put("data", obj);
return mapTojsonStr(map);
}
public Map<String, Object> backErrorMap(final Object obj) {
final Map<String, Object> map = new HashMap<String, Object>();
map.put("code", 1001);
map.put("msg", "\u64cd\u4f5c\u5931\u8d25");
map.put("data", obj);
return map;
}
@Override
public String queryById(final String param) {
try {
final Map<String, Object> map = strToMap(param);
final Map<String, Object> obj = this.baseDao.queryById(map.get("sid").toString(), ObjectUtil.parseInt(map.get("id")));
return this.backSucessMapStr(obj);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public String queryById(final Map<String, Object> map) {
try {
final Map<String, Object> obj = this.baseDao.queryById(map.get("sid").toString(), ObjectUtil.parseInt(map.get("id")));
return this.backSucessMapStr(obj);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public Map<String, Object> queryById3(final Map<String, Object> map) {
try {
final Map<String, Object> obj = this.baseDao.queryById(map.get("sid").toString(), ObjectUtil.parseInt(map.get("id")));
return this.backSucessMap(obj);
}
catch (Exception e) {
return this.backErrorMap(null);
}
}
@Override
public String queryByParams(final String param) {
try {
final Map<String, Object> map = strToMap(param);
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
final List<Map<String, Object>> list = this.baseDao.queryByParams(map.get("sid").toString(), params);
return this.backSucessMapStr(list);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public String queryByParams(final Map<String, Object> map) {
try {
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
final List<Map<String, Object>> list = this.baseDao.queryByParams(map.get("sid").toString(), params);
return this.backSucessMapStr(list);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public Map<String, Object> queryByParams3(final Map<String, Object> map) {
try {
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
final List<Map<String, Object>> list = this.baseDao.queryByParams(map.get("sid").toString(), params);
return this.backSucessMap(list);
}
catch (Exception e) {
return this.backErrorMap(null);
}
}
@Override
public String insertRow(final String param) {
try {
final Map<String, Object> map = strToMap(param);
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
this.baseDao.insertRow(map.get("sid").toString(), params);
return this.backSucessMapStr(null);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public String insertRow(final Map<String, Object> map) {
try {
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
this.baseDao.insertRow(map.get("sid").toString(), params);
return this.backSucessMapStr(null);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public Map<String, Object> insertRow3(final Map<String, Object> map) {
try {
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
this.baseDao.insertRow(map.get("sid").toString(), params);
return this.backSucessMap(null);
}
catch (Exception e) {
return this.backErrorMap(null);
}
}
@Override
public String updateById(final String param) {
try {
final Map<String, Object> map = strToMap(param);
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
this.baseDao.updateById(map.get("sid").toString(), params);
return this.backSucessMapStr(null);
}
catch (Exception e) {
e.printStackTrace();
return this.backErrorMapStr(null);
}
}
@Override
public String updateById(final Map<String, Object> map) {
try {
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
this.baseDao.updateById(map.get("sid").toString(), params);
return this.backSucessMapStr(null);
}
catch (Exception e) {
e.printStackTrace();
return this.backErrorMapStr(null);
}
}
@Override
public Map<String, Object> updateById3(final Map<String, Object> map) {
try {
final Object obj = map.get("data");
final Map<String, Object> params = strToMap(obj.toString());
this.baseDao.updateById(map.get("sid").toString(), params);
return this.backSucessMap(null);
}
catch (Exception e) {
e.printStackTrace();
return this.backErrorMap(null);
}
}
@Override
public String deleteById(final String param) {
try {
final Map<String, Object> map = strToMap(param);
this.baseDao.deleteById(map.get("sid").toString(), ObjectUtil.parseInt(map.get("id")));
return this.backSucessMapStr(null);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public String deleteById(final Map<String, Object> map) {
try {
this.baseDao.deleteById(map.get("sid").toString(), ObjectUtil.parseInt(map.get("id")));
return this.backSucessMapStr(null);
}
catch (Exception e) {
return this.backErrorMapStr(null);
}
}
@Override
public Map<String, Object> deleteById3(final Map<String, Object> map) {
try {
this.baseDao.deleteById(map.get("sid").toString(), ObjectUtil.parseInt(map.get("id")));
return this.backSucessMap(null);
}
catch (Exception e) {
return this.backErrorMap(null);
}
}
public static Map<String, Object> strToMap(final String str) {
Map<String, Object> map = null;
try {
final JSONObject jsonObj = (JSONObject)(map = (Map<String, Object>)JSONObject.fromObject(str));
}
catch (Exception e) {
BaseServiceImpl.log.error("json\u5b57\u7b26\u4e32\u8f6c\u5316\u4e3amap\u7684\u683c\u5f0f\u9519\u8bef!");
return null;
}
return map;
}
public List<Map<String, Object>> strToListMap(final String str) {
List<Map<String, Object>> ObjectList = null;
try {
final Gson gson = new Gson();
final Type type = new TypeToken<List<?>>() {}.getType();
ObjectList = gson.fromJson(str, type);
}
catch (Exception e) {
BaseServiceImpl.log.error("json\u8f6c\u5316\u4e3alist\u7684\u683c\u5f0f\u9519\u8bef");
return null;
}
return ObjectList;
}
public static String mapTojsonStr(final Map<String, Object> map) {
String str = "";
try {
final JSONObject jsonObj = JSONObject.fromObject(map);
str = jsonObj.toString();
}
catch (Exception e) {
BaseServiceImpl.log.error("map\u8f6cjson\u5b57\u7b26\u4e32\u7684\u6570\u636e\u683c\u5f0f\u9519\u8bef");
}
return str;
}
public static String listMapToJsonStr(final List<Map<String, Object>> list) {
String json = null;
try {
json = JSONArray.fromObject(list).toString();
}
catch (Exception e) {
BaseServiceImpl.log.error("list\u8f6cjson\u5b57\u7b26\u4e32\u7684\u683c\u5f0f\u9519\u8bef");
}
return json;
}
public static String StrToBinstr(final String str) {
final char[] strChar = str.toCharArray();
String result = "";
for (int i = 0; i < strChar.length; ++i) {
result = String.valueOf(result) + Integer.toBinaryString(strChar[i]) + " ";
}
return result;
}
public static String BinstrToStr(final String binStr) {
final String[] tempStr = StrToStrArray(binStr);
final char[] tempChar = new char[tempStr.length];
for (int i = 0; i < tempStr.length; ++i) {
tempChar[i] = BinstrToChar(tempStr[i]);
}
return String.valueOf(tempChar);
}
public static String[] StrToStrArray(final String str) {
return str.split(" ");
}
public static char BinstrToChar(final String binStr) {
final int[] temp = BinstrToIntArray(binStr);
int sum = 0;
for (int i = 0; i < temp.length; ++i) {
sum += temp[temp.length - 1 - i] << i;
}
return (char)sum;
}
public static int[] BinstrToIntArray(final String binStr) {
final char[] temp = binStr.toCharArray();
final int[] result = new int[temp.length];
for (int i = 0; i < temp.length; ++i) {
result[i] = temp[i] - '0';
}
return result;
}
@Override
public Map<String, Object> queryForPage(final String key, final Map<String, Object> param) {
final Map<String, Object> map = new HashMap<String, Object>();
try {
map.put("infoContent", this.baseDao.queryForPageList(key, param));
map.put("rowTotal", this.baseDao.queryForPageCount(key, param));
}
catch (Exception e) {
e.printStackTrace();
}
return map;
}
public Map<String, Object> getParameterMap(final HttpServletRequest request) {
final Map<String, Object> retMap = new HashMap<String, Object>();
final Map<String, Object> paramMap = (Map<String, Object>)request.getParameterMap();
final Set<String> paramKeys = paramMap.keySet();
for (final String key : paramKeys) {
final Object originalValue = paramMap.get(key);
if (originalValue.getClass().isArray()) {
final Object[] values = (Object[])originalValue;
if (values.length == 1) {
if (ObjectUtil.isEmpty(values[0])) {
continue;
}
retMap.put(key, values[0]);
}
else {
if (values.length <= 1) {
continue;
}
retMap.put(key, Arrays.asList(values));
}
}
}
return retMap;
}
@Override
public void saveLoginLog(final UserLoginLogInfo info) {
this.baseDao.saveLoginLog(info);
}
}

83
src/main/java/com/zhichenhaixin/base/util/ArithmeticUtil.java

@ -0,0 +1,83 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
public class ArithmeticUtil
{
public static ArithmeticUtil util;
public static final double haili = 1.852;
static {
ArithmeticUtil.util = null;
}
private ArithmeticUtil() {
}
public static ArithmeticUtil getInstance() {
if (ArithmeticUtil.util == null) {
ArithmeticUtil.util = new ArithmeticUtil();
}
return ArithmeticUtil.util;
}
public double getSpeed(final int vx, final int vy) {
final double x = Math.pow(vx, 2.0);
final double y = Math.pow(vy, 2.0);
final double xy = x + y;
final double val = Math.sqrt(xy);
return val;
}
public double getSpeedKm(double xy) {
xy *= 3.6;
return xy;
}
public double getSpeedHl(double xy) {
xy /= 1.852;
return xy;
}
public double getSpeedHlByVXY(final int vx, final int vy) {
double xy = this.getSpeed(vx, vy);
xy = this.getSpeedKm(xy);
xy = this.getSpeedHl(xy);
return xy;
}
public double getSpeedHlByVXY(double speed) {
speed = this.getSpeedKm(speed);
speed = this.getSpeedHl(speed);
return speed;
}
public double getCourse(final int vx, final int vy) {
double course;
if (vx > 0) {
course = 0.0 + Math.atan2(vx, vy);
}
else {
course = 6.283185307179586 + Math.atan2(vx, vy);
}
return course;
}
public double getCourseDegre(double course) {
course = course / 3.141592653589793 * 180.0;
return course;
}
public double getCourseDegBYVXY(final int vx, final int vy) {
double xy = this.getCourse(vx, vy);
xy = this.getCourseDegre(xy);
return xy;
}
public static void main(final String[] args) {
final double val = getInstance().getCourseDegBYVXY(2, 1);
System.out.println(val);
}
}

20
src/main/java/com/zhichenhaixin/base/util/CacheUtil.java

@ -0,0 +1,20 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
public class CacheUtil
{
public static Cache getECache(final String cache_name) {
final boolean b = CacheManager.getInstance().cacheExists(cache_name);
Cache cache = null;
if (b) {
cache = CacheManager.getInstance().getCache(cache_name);
}
return cache;
}
}

66
src/main/java/com/zhichenhaixin/base/util/CharacterUtil.java

@ -0,0 +1,66 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.io.ByteArrayOutputStream;
public class CharacterUtil
{
private static String hexStr;
private static String[] binaryArray;
static {
CharacterUtil.hexStr = "0123456789ABCDEF";
CharacterUtil.binaryArray = new String[] { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" };
}
public static String bytes2BinaryStr(final byte[] bArray) {
String outStr = "";
int pos = 0;
for (final byte b : bArray) {
pos = (b & 0xF0) >> 4;
outStr = String.valueOf(outStr) + CharacterUtil.binaryArray[pos];
pos = (b & 0xF);
outStr = String.valueOf(outStr) + CharacterUtil.binaryArray[pos];
}
return outStr;
}
public static String BinaryToHexString(final byte[] bytes) {
String result = "";
String hex = "";
for (int i = 0; i < bytes.length; ++i) {
hex = String.valueOf(CharacterUtil.hexStr.charAt((bytes[i] & 0xF0) >> 4));
hex = String.valueOf(hex) + String.valueOf(CharacterUtil.hexStr.charAt(bytes[i] & 0xF));
result = String.valueOf(result) + hex + " ";
}
return result;
}
public static byte[] HexStringToBinary(final String hexString) {
final int len = hexString.length() / 2;
final byte[] bytes = new byte[len];
byte high = 0;
byte low = 0;
for (int i = 0; i < len; ++i) {
high = (byte)(CharacterUtil.hexStr.indexOf(hexString.charAt(2 * i)) << 4);
low = (byte)CharacterUtil.hexStr.indexOf(hexString.charAt(2 * i + 1));
bytes[i] = (byte)(high | low);
}
return bytes;
}
public static String getStrByBytes(final byte[] bytes) {
return new String(bytes);
}
public static String decode(final String bytes) {
final ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
for (int i = 0; i < bytes.length(); i += 2) {
baos.write(CharacterUtil.hexStr.indexOf(bytes.charAt(i)) << 4 | CharacterUtil.hexStr.indexOf(bytes.charAt(i + 1)));
}
return new String(baos.toByteArray());
}
}

74
src/main/java/com/zhichenhaixin/base/util/ConvertUtils.java

@ -0,0 +1,74 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.zhichenhaixin.proto.ZCHXAISVessel;
import com.zhichenhaixin.zmq.model.AISData;
public class ConvertUtils
{
public static void convertVesselTrack(final ZCHXAISVessel.VesselTrack vesselTrack, final AISData aisData) {
aisData.setMmsi(vesselTrack.getMmsi());
aisData.setShiptype(vesselTrack.getShiptype());
aisData.setNavStatus(new StringBuilder().append(vesselTrack.getNavStatus()).toString());
aisData.setRot(vesselTrack.getRot());
aisData.setSog(vesselTrack.getSog());
aisData.setLon(vesselTrack.getLon());
aisData.setLat(vesselTrack.getLat());
aisData.setCog(vesselTrack.getCog());
aisData.setHeading(vesselTrack.getHeading());
aisData.setUtc(vesselTrack.getUTC());
}
public static void convertVesselInfo(final ZCHXAISVessel.VesselInfo vesselInfo, final AISData aisData) {
aisData.setImo(vesselInfo.getImo());
aisData.setCallSign(vesselInfo.getCallSign());
aisData.setShipName(vesselInfo.getShipName());
aisData.setCargoType(new StringBuilder(String.valueOf(vesselInfo.getCargoType())).toString());
aisData.setCountry(vesselInfo.getCountry());
aisData.setShipLength(vesselInfo.getShipLength());
aisData.setShipWidth(vesselInfo.getShipWidth());
aisData.setToBow(vesselInfo.getToBow());
aisData.setToStern(vesselInfo.getToStern());
aisData.setToPort(vesselInfo.getToPort());
aisData.setToStarboard(vesselInfo.getToStarboard());
aisData.setEta(vesselInfo.getEta());
aisData.setDraught(vesselInfo.getDraught());
aisData.setDest(vesselInfo.getDest());
aisData.setUtc(vesselInfo.getUTC());
}
public static void convertVesselTrackProto(final ZCHXAISVessel.VesselTrack vesselTrack, final ZCHXAISVessel.AISVesselData.Builder aisData) {
aisData.setId(vesselTrack.getId());
aisData.setMmsi(vesselTrack.getMmsi());
aisData.setShiptype(vesselTrack.getShiptype());
aisData.setNavStatus(vesselTrack.getNavStatus());
aisData.setRot(vesselTrack.getRot());
aisData.setSog(vesselTrack.getSog());
aisData.setLon(vesselTrack.getLon());
aisData.setLat(vesselTrack.getLat());
aisData.setCog(vesselTrack.getCog());
aisData.setHeading(vesselTrack.getHeading());
}
public static void convertVesselInfoProto(final ZCHXAISVessel.VesselInfo vesselInfo, final ZCHXAISVessel.AISVesselData.Builder aisData) {
aisData.setImo(vesselInfo.getImo());
aisData.setCallSign(vesselInfo.getCallSign());
aisData.setShipName(vesselInfo.getShipName());
aisData.setCargoType(vesselInfo.getCargoType());
aisData.setCountry(vesselInfo.getCountry());
aisData.setVendorID(vesselInfo.getVendorID());
aisData.setShipLength(vesselInfo.getShipLength());
aisData.setShipWidth(vesselInfo.getShipWidth());
aisData.setToBow(vesselInfo.getToBow());
aisData.setToStern(vesselInfo.getToStern());
aisData.setToPort(vesselInfo.getToPort());
aisData.setToStarboard(vesselInfo.getToStarboard());
aisData.setEta(vesselInfo.getEta());
aisData.setDraught(vesselInfo.getDraught());
aisData.setDest(vesselInfo.getDest());
aisData.setUTC(vesselInfo.getUTC());
}
}

183
src/main/java/com/zhichenhaixin/base/util/DateUtil.java

@ -0,0 +1,183 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.log4j.Logger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class DateUtil
{
private static Logger log;
public static SimpleDateFormat format;
public static SimpleDateFormat format1;
public static SimpleDateFormat format2;
public static SimpleDateFormat format3;
public static SimpleDateFormat format4;
public static SimpleDateFormat format5;
public static SimpleDateFormat format6;
public static SimpleDateFormat format7;
public static SimpleDateFormat format8;
static {
DateUtil.log = Logger.getLogger(DateUtil.class);
DateUtil.format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateUtil.format1 = new SimpleDateFormat("yyyy");
DateUtil.format2 = new SimpleDateFormat("MM");
DateUtil.format3 = new SimpleDateFormat("d");
DateUtil.format4 = new SimpleDateFormat("HH");
DateUtil.format5 = new SimpleDateFormat("mm");
DateUtil.format6 = new SimpleDateFormat("ss");
DateUtil.format7 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
DateUtil.format8 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
}
public static Date now() {
return new Date();
}
public static long getMilliseconds(final Date t2, final Date t1) {
final long l2 = t2.getTime();
final long l3 = t1.getTime();
return l2 - l3;
}
public static String getNowTimestamp() {
final Date d = new Date();
return DateUtil.format7.format(d);
}
public static String getCurMillion() {
final Date d = new Date();
return DateUtil.format8.format(d);
}
public static String format(final Date d) {
return DateUtil.format.format(d);
}
public static String format(final Date d, final String fstr) {
final SimpleDateFormat f = new SimpleDateFormat(fstr);
return f.format(d);
}
public static String getDateMills(final String dateStr) {
final Date d = getDate(dateStr, "yy-MM-dd HH:mm:ss");
final long time = d.getTime();
return String.valueOf(time);
}
public static Map getDateMap(final Date date) {
final HashMap m = new HashMap();
m.put("Years", DateUtil.format1.format(date));
m.put("Month", DateUtil.format2.format(date));
m.put("Day", DateUtil.format3.format(date));
m.put("Hours", DateUtil.format4.format(date));
m.put("Minute", DateUtil.format5.format(date));
m.put("Seconds", DateUtil.format6.format(date));
return m;
}
public static Date getDate(final String dateStr, final String format) {
final SimpleDateFormat sdf = new SimpleDateFormat(format);
Date d = null;
try {
d = sdf.parse(dateStr);
}
catch (ParseException e) {
DateUtil.log.error("\u65e5\u671f\u8f6c\u6362\u5f02\u5e38\uff01" + e.getLocalizedMessage());
}
return d;
}
public static String getDateRound() {
return String.valueOf(format(new Date(), "yyyyMMddhhmmss")) + getRound(4);
}
public static String getRound(final int length) {
final Random r = new Random();
String number = "";
for (int i = 0; i < length; ++i) {
final int num = r.nextInt(10);
number = String.valueOf(number) + num;
}
return number;
}
public static String getbackTime(final int count) {
try {
long timeStemp = System.currentTimeMillis();
timeStemp += 3600000 * -count;
return String.valueOf(timeStemp);
}
catch (Exception e) {
DateUtil.log.error("\u65e5\u671f\u683c\u5f0f\u5316\u9519\u8bef\uff01" + e.getLocalizedMessage());
return "";
}
}
public static String getDateStrByTimestamp(final long time) {
final Date date = new Date(time);
final String str = format(date, "yyyy-MM-dd hh:mm:ss");
return str;
}
public static String andHour(final String sysDate, final String sysTime) {
String str = "";
Date d = null;
try {
SimpleDateFormat simpleDateFormat = null;
if ("24".equals(SpringPropertyUtil.getProperty("gps.hour"))) {
simpleDateFormat = new SimpleDateFormat("ddMMyyHHmmss");
}
else {
simpleDateFormat = new SimpleDateFormat("ddMMyyhhmmss");
}
d = simpleDateFormat.parse(String.valueOf(sysDate) + sysTime);
long timeStemp = d.getTime();
timeStemp += (long)(3600000.0 * Double.parseDouble(SpringPropertyUtil.getProperty("gps.time")));
final Date date = new Date(timeStemp);
str = simpleDateFormat.format(date);
}
catch (ParseException e) {
DateUtil.log.error("\u65e5\u671f\u683c\u5f0f\u5316\u9519\u8bef\uff01", e.fillInStackTrace());
d = null;
}
return str;
}
public static long parseTime(final String str) {
long time = 0L;
try {
SimpleDateFormat simpleDateFormat = null;
if ("24".equals(SpringPropertyUtil.getProperty("gps.hour"))) {
simpleDateFormat = new SimpleDateFormat("ddMMyyHHmmss");
}
else {
simpleDateFormat = new SimpleDateFormat("ddMMyyhhmmss");
}
final Date date = simpleDateFormat.parse(str);
time = date.getTime();
}
catch (ParseException e) {
DateUtil.log.error("\u65e5\u671f\u8f6c\u6362\u5931\u8d25\uff01", e.fillInStackTrace());
}
return time;
}
public static void main(final String[] args) throws ParseException {
final String str = getCurMillion();
System.out.println(str);
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final Date parse = format.parse("2017-03-11 13:50:51");
final long millis = System.currentTimeMillis();
System.out.println(millis - parse.getTime() >= 300000L);
}
}

185
src/main/java/com/zhichenhaixin/base/util/DistanceUtil.java

@ -0,0 +1,185 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.zhichenhaixin.serializer.RadarTrackVo;
import com.zhichenhaixin.sys.model.TrackCameraVo;
import java.util.ArrayList;
import java.util.List;
public class DistanceUtil
{
private static final double EARTH_RADIUS = 6378137.0;
private static final double EARTH_ARC = 111199.0;
public static double degToRad(final double degree) {
return degree * 3.141592653589793 / 180.0;
}
public static double radToDeg(final double radian) {
return 0.017453292519943295 * radian;
}
public static double lantitudeLongitudeDist(final double lon1, final double lat1, final double lon2, final double lat2) {
double radLat1 = degToRad(lat1);
double radLat2 = degToRad(lat2);
double radLon1 = degToRad(lon1);
double radLon2 = degToRad(lon2);
if (radLat1 < 0.0) {
radLat1 = 1.5707963267948966 + Math.abs(radLat1);
}
else if (radLat1 > 0.0) {
radLat1 = 1.5707963267948966 - Math.abs(radLat1);
}
if (radLat2 < 0.0) {
radLat2 = 1.5707963267948966 + Math.abs(radLat2);
}
else if (radLat2 > 0.0) {
radLat2 = 1.5707963267948966 - Math.abs(radLat2);
}
if (radLon1 > 0.0) {
radLon1 = 6.283185307179586 + Math.abs(radLon1);
}
else if (radLon1 < 0.0) {
radLon1 = 6.283185307179586 - Math.abs(radLon1);
}
if (radLon2 > 0.0) {
radLon2 = 6.283185307179586 + Math.abs(radLon2);
}
else if (radLon2 < 0.0) {
radLon2 = 6.283185307179586 - Math.abs(radLon2);
}
final double x1 = 6378137.0 * Math.cos(radLon1) * Math.sin(radLat1);
final double y1 = 6378137.0 * Math.sin(radLon1) * Math.sin(radLat1);
final double z1 = 6378137.0 * Math.cos(radLat1);
final double x2 = 6378137.0 * Math.cos(radLon2) * Math.sin(radLat2);
final double y2 = 6378137.0 * Math.sin(radLon2) * Math.sin(radLat2);
final double z2 = 6378137.0 * Math.cos(radLat2);
final double d = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));
final double theta = Math.acos((8.1361263181538E13 - d * d) / 8.1361263181538E13);
final double dist = theta * 6378137.0;
return dist;
}
public static double getDistance(final double lat1, final double lng1, final double lat2, final double lng2) {
final double a = degToRad(lat1) - degToRad(lat2);
final double b = degToRad(lng1) - degToRad(lng2);
final double sa2 = Math.sin(a / 2.0);
final double sb2 = Math.sin(b / 2.0);
final double d = 1.2756274E7 * Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1) * Math.cos(lat2) * sb2 * sb2));
return d;
}
public static double getDistanceFromXtoY(final double lat_a, final double lng_a, final double lat_b, final double lng_b) {
final double pk = 57.29577951308232;
final double a1 = lat_a / pk;
final double a2 = lng_a / pk;
final double b1 = lat_b / pk;
final double b2 = lng_b / pk;
final double t1 = Math.cos(a1) * Math.cos(a2) * Math.cos(b1) * Math.cos(b2);
final double t2 = Math.cos(a1) * Math.sin(a2) * Math.cos(b1) * Math.sin(b2);
final double t3 = Math.sin(a1) * Math.sin(b1);
final double tt = Math.acos(t1 + t2 + t3);
return 6366000.0 * tt;
}
public static double getpab(double lng_a, double lat_a, double lng_b, double lat_b) {
double d = 0.0;
lat_a = degToRad(lat_a);
lng_a = degToRad(lng_a);
lat_b = degToRad(lat_b);
lng_b = degToRad(lng_b);
d = Math.sin(lat_a) * Math.sin(lat_b) + Math.cos(lat_a) * Math.cos(lat_b) * Math.cos(lng_b - lng_a);
d = Math.sqrt(1.0 - d * d);
d = Math.cos(lat_b) * Math.sin(lng_b - lng_a) / d;
d = Math.asin(d) * 180.0 / 3.141592653589793;
return d;
}
public static double getAzimuth(double lon1, double lat1, double lon2, double lat2) {
lat1 = degToRad(lat1);
lat2 = degToRad(lat2);
lon1 = degToRad(lon1);
lon2 = degToRad(lon2);
double azimuth = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);
azimuth = Math.sqrt(1.0 - azimuth * azimuth);
azimuth = Math.cos(lat2) * Math.sin(lon2 - lon1) / azimuth;
azimuth = Math.asin(azimuth) * 180.0 / 3.141592653589793;
if (Double.isNaN(azimuth)) {
if (lon1 < lon2) {
azimuth = 90.0;
}
else {
azimuth = 270.0;
}
}
return azimuth;
}
public static double[] convertDistanceToLogLat(final double lng1, final double lat1, final double distance, double azimuth) {
final double[] lon_lat = new double[2];
azimuth = degToRad(azimuth);
final double lon = lng1 + distance * Math.sin(azimuth) / (111199.0 * Math.cos(degToRad(lat1)));
final double lat2 = lat1 + distance * Math.cos(azimuth) / 111199.0;
lon_lat[0] = lon;
lon_lat[1] = lat2;
return lon_lat;
}
public static boolean verifyIsSmuggle(final TrackCameraVo cvo, final List<TrackCameraVo> cvolist, final RadarTrackVo rvo, final List<RadarTrackVo> rvolist, final int people, final int car, final int ship, final int smuggle_bound) {
if (cvo != null && cvolist != null) {
for (final TrackCameraVo tcvo : cvolist) {
try {
final double instance = getDistanceFromXtoY(cvo.getObjectMapPosY(), cvo.getObjectMapPosX(), tcvo.getObjectMapPosY(), tcvo.getObjectMapPosX());
tcvo.setDistance(instance);
}
catch (Exception ex) {}
}
}
if (rvo != null && cvolist != null) {
for (final TrackCameraVo tcvo : cvolist) {
try {
final double instance = getDistanceFromXtoY(rvo.getWgs84PosLat(), rvo.getWgs84PosLon(), tcvo.getObjectMapPosY(), tcvo.getObjectMapPosX());
tcvo.setDistance(instance);
}
catch (Exception ex2) {}
}
}
if (cvolist != null && rvolist != null && cvolist.size() + rvolist.size() < people + car + ship) {
return false;
}
final List<Integer> list1 = new ArrayList<Integer>();
final List<Integer> list2 = new ArrayList<Integer>();
final List<Integer> list3 = new ArrayList<Integer>();
if (cvolist != null) {
for (int i = 0; i < cvolist.size(); ++i) {
final TrackCameraVo cv = cvolist.get(i);
if (cv.getDistance() <= smuggle_bound) {
final int ctype = cv.getObjectType();
if (ctype == 0) {
list1.add(i);
}
if (ctype == 1) {
list2.add(i);
}
if (ctype == 2) {
list3.add(i);
}
}
}
}
if (list1.size() == 0 && list2.size() == 0 && list3.size() == 0) {
return false;
}
if (list1.size() >= people && list2.size() >= car && list3.size() >= ship) {
list1.clear();
list2.clear();
list3.clear();
return true;
}
return false;
}
}

36
src/main/java/com/zhichenhaixin/base/util/ExecutorsUtils.java

@ -0,0 +1,36 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
public class ExecutorsUtils
{
private static Log log;
static {
ExecutorsUtils.log = LogFactory.getLog(ExecutorsUtils.class);
}
public static void shutdownAndAwaitTermination(final ExecutorService pool, final int timeout, final TimeUnit unit) {
pool.shutdown();
try {
if (!pool.awaitTermination(timeout, unit)) {
pool.shutdownNow();
if (!pool.awaitTermination(timeout, unit)) {
ExecutorsUtils.log.info("Pool did not terminate");
}
}
}
catch (InterruptedException ie) {
pool.shutdownNow();
Thread.currentThread().interrupt();
}
}
}

109
src/main/java/com/zhichenhaixin/base/util/GZipUtils.java

@ -0,0 +1,109 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.io.*;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class GZipUtils
{
public static final int BUFFER = 1024;
public static final String EXT = ".gz";
public static byte[] compress(final byte[] data) throws Exception {
final ByteArrayInputStream bais = new ByteArrayInputStream(data);
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
compress(bais, baos);
final byte[] output = baos.toByteArray();
baos.flush();
baos.close();
bais.close();
return output;
}
public static void compress(final File file) throws Exception {
compress(file, true);
}
public static void compress(final File file, final boolean delete) throws Exception {
final FileInputStream fis = new FileInputStream(file);
final FileOutputStream fos = new FileOutputStream(String.valueOf(file.getPath()) + ".gz");
compress(fis, fos);
fis.close();
fos.flush();
fos.close();
if (delete) {
file.delete();
}
}
public static void compress(final InputStream is, final OutputStream os) throws Exception {
final GZIPOutputStream gos = new GZIPOutputStream(os);
final byte[] data = new byte[1024];
int count;
while ((count = is.read(data, 0, 1024)) != -1) {
gos.write(data, 0, count);
}
gos.finish();
gos.flush();
gos.close();
}
public static void compress(final String path) throws Exception {
compress(path, true);
}
public static void compress(final String path, final boolean delete) throws Exception {
final File file = new File(path);
compress(file, delete);
}
public static byte[] decompress(byte[] data) throws Exception {
final ByteArrayInputStream bais = new ByteArrayInputStream(data);
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
decompress(bais, baos);
data = baos.toByteArray();
baos.flush();
baos.close();
bais.close();
return data;
}
public static void decompress(final File file) throws Exception {
decompress(file, true);
}
public static void decompress(final File file, final boolean delete) throws Exception {
final FileInputStream fis = new FileInputStream(file);
final FileOutputStream fos = new FileOutputStream(file.getPath().replace(".gz", ""));
decompress(fis, fos);
fis.close();
fos.flush();
fos.close();
if (delete) {
file.delete();
}
}
public static void decompress(final InputStream is, final OutputStream os) throws Exception {
final GZIPInputStream gis = new GZIPInputStream(is);
final byte[] data = new byte[1024];
int count;
while ((count = gis.read(data, 0, 1024)) != -1) {
os.write(data, 0, count);
}
gis.close();
}
public static void decompress(final String path) throws Exception {
decompress(path, true);
}
public static void decompress(final String path, final boolean delete) throws Exception {
final File file = new File(path);
decompress(file, delete);
}
}

165
src/main/java/com/zhichenhaixin/base/util/GaussUtil.java

@ -0,0 +1,165 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.util.ArrayList;
import java.util.List;
public class GaussUtil
{
private static double KmPerDegree;
private static double DegreesPerKm;
private static double PI;
private static double TwoPI;
private static double HalfPI;
private static double RadiansPerDegree;
private static double DegreesPerRadian;
static {
GaussUtil.KmPerDegree = 111.12000071117;
GaussUtil.DegreesPerKm = 1.0 / GaussUtil.KmPerDegree;
GaussUtil.PI = 3.141592653589793;
GaussUtil.TwoPI = 2.0 * GaussUtil.PI;
GaussUtil.HalfPI = GaussUtil.PI / 2.0;
GaussUtil.RadiansPerDegree = GaussUtil.PI / 180.0;
GaussUtil.DegreesPerRadian = 180.0 / GaussUtil.PI;
}
public static double copysign(final double x, final double y) {
return (y < 0.0) ? (-Math.abs(x)) : Math.abs(x);
}
public static double NGT1(final double x) {
return (Math.abs(x) > 1.0) ? copysign(1.0, x) : x;
}
public static double ArcCos(final double x) {
return Math.acos(x);
}
public static double hav(final double x) {
return (1.0 - Math.cos(x)) * 0.5;
}
public static double ahav(final double x) {
return ArcCos(NGT1(1.0 - x * 2.0));
}
public static double sec(final double x) {
return 1.0 / Math.cos(x);
}
public static double csc(final double x) {
return 1.0 / Math.sin(x);
}
public static List<Double> GaussProjCal(final double longitude, final double latitude) {
int ProjNo = 0;
final double iPI = 0.0174532925199433;
final int ZoneWide = 6;
final double a = 6378137.0;
final double f = 0.0033528131778969143;
ProjNo = (int)(longitude / ZoneWide);
double longitude2 = ProjNo * ZoneWide + ZoneWide / 2;
longitude2 *= iPI;
final double latitude2 = 0.0;
final double longitude3 = longitude * iPI;
final double latitude3 = latitude * iPI;
final double e2 = 2.0 * f - f * f;
final double ee = e2 * (1.0 - e2);
final double NN = a / Math.sqrt(1.0 - e2 * Math.sin(latitude3) * Math.sin(latitude3));
final double T = Math.tan(latitude3) * Math.tan(latitude3);
final double C = ee * Math.cos(latitude3) * Math.cos(latitude3);
final double A = (longitude3 - longitude2) * Math.cos(latitude3);
final double M = a * ((1.0 - e2 / 4.0 - 3.0 * e2 * e2 / 64.0 - 5.0 * e2 * e2 * e2 / 256.0) * latitude3 - (3.0 * e2 / 8.0 + 3.0 * e2 * e2 / 32.0 + 45.0 * e2 * e2 * e2 / 1024.0) * Math.sin(2.0 * latitude3) + (15.0 * e2 * e2 / 256.0 + 45.0 * e2 * e2 * e2 / 1024.0) * Math.sin(4.0 * latitude3) - 35.0 * e2 * e2 * e2 / 3072.0 * Math.sin(6.0 * latitude3));
double xval = NN * (A + (1.0 - T + C) * A * A * A / 6.0 + (5.0 - 18.0 * T + T * T + 72.0 * C - 58.0 * ee) * A * A * A * A * A / 120.0);
double yval = M + NN * Math.tan(latitude3) * (A * A / 2.0 + (5.0 - T + 9.0 * C + 4.0 * C * C) * A * A * A * A / 24.0 + (61.0 - 58.0 * T + T * T + 600.0 * C - 330.0 * ee) * A * A * A * A * A * A / 720.0);
final double X0 = (double)(1000000L * (ProjNo + 1) + 500000L);
final double Y0 = 0.0;
xval += X0;
yval += Y0;
final double X2 = xval;
final double Y2 = yval;
final List<Double> list = new ArrayList<Double>();
list.add(X2);
list.add(Y2);
return list;
}
public static double[] GaussToBLToGauss(final double longitude, final double latitude) {
int ProjNo = 0;
final double[] output = new double[2];
final double iPI = 0.0174532925199433;
final int ZoneWide = 6;
final double a = 6378137.0;
final double f = 0.003352329869259135;
ProjNo = (int)(longitude / ZoneWide);
double longitude2 = ProjNo * ZoneWide + ZoneWide / 2;
longitude2 *= iPI;
final double longitude3 = longitude * iPI;
final double latitude2 = latitude * iPI;
final double e2 = 2.0 * f - f * f;
final double ee = e2 / (1.0 - e2);
final double NN = a / Math.sqrt(1.0 - e2 * Math.sin(latitude2) * Math.sin(latitude2));
final double T = Math.tan(latitude2) * Math.tan(latitude2);
final double C = ee * Math.cos(latitude2) * Math.cos(latitude2);
final double A = (longitude3 - longitude2) * Math.cos(latitude2);
final double M = a * ((1.0 - e2 / 4.0 - 3.0 * e2 * e2 / 64.0 - 5.0 * e2 * e2 * e2 / 256.0) * latitude2 - (3.0 * e2 / 8.0 + 3.0 * e2 * e2 / 32.0 + 45.0 * e2 * e2 * e2 / 1024.0) * Math.sin(2.0 * latitude2) + (15.0 * e2 * e2 / 256.0 + 45.0 * e2 * e2 * e2 / 1024.0) * Math.sin(4.0 * latitude2) - 35.0 * e2 * e2 * e2 / 3072.0 * Math.sin(6.0 * latitude2));
double xval = NN * (A + (1.0 - T + C) * A * A * A / 6.0 + (5.0 - 18.0 * T + T * T + 14.0 * C - 58.0 * ee) * A * A * A * A * A / 120.0);
double yval = M + NN * Math.tan(latitude2) * (A * A / 2.0 + (5.0 - T + 9.0 * C + 4.0 * C * C) * A * A * A * A / 24.0 + (61.0 - 58.0 * T + T * T + 270.0 * C - 330.0 * ee) * A * A * A * A * A * A / 720.0);
final double X0 = (double)(1000000L * (ProjNo + 1) + 500000L);
final double Y0 = 0.0;
xval += X0;
yval += Y0;
output[0] = xval;
output[1] = yval;
return output;
}
public static double[] moveLocation(final double lon, final double lat, final double distance, final double angle) {
double dist = distance / 1000.0;
double course = angle;
final double slt = lat;
double slg = lon;
double xlt = 0.0;
double xlg = 0.0;
if (dist > GaussUtil.KmPerDegree * 180.0) {
course -= 180.0;
if (course < 0.0) {
course += 360.0;
}
dist = GaussUtil.KmPerDegree * 360.0 - dist;
}
if (course > 180.0) {
course -= 360.0;
}
final double c = course * GaussUtil.RadiansPerDegree;
final double d = dist * GaussUtil.DegreesPerKm * GaussUtil.RadiansPerDegree;
final double L1 = slt * GaussUtil.RadiansPerDegree;
slg *= GaussUtil.RadiansPerDegree;
final double coL1 = (90.0 - slt) * GaussUtil.RadiansPerDegree;
final double coL2 = ahav(hav(c) / (sec(L1) * csc(d)) + hav(d - coL1));
final double L2 = GaussUtil.HalfPI - coL2;
final double l = L2 - L1;
double dLo;
if ((dLo = Math.cos(L1) * Math.cos(L2)) != 0.0) {
dLo = ahav((hav(d) - hav(l)) / dLo);
}
if (c < 0.0) {
dLo = -dLo;
}
slg += dLo;
if (slg < -GaussUtil.PI) {
slg += GaussUtil.TwoPI;
}
else if (slg > GaussUtil.PI) {
slg -= GaussUtil.TwoPI;
}
xlt = L2 * GaussUtil.DegreesPerRadian;
xlg = slg * GaussUtil.DegreesPerRadian;
final double[] caculate = { xlt, xlg };
return caculate;
}
}

117
src/main/java/com/zhichenhaixin/base/util/GeometryUtil.java

@ -0,0 +1,117 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;
import com.vividsolutions.jts.io.gml2.GMLReader;
import com.vividsolutions.jts.io.gml2.GMLWriter;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
public class GeometryUtil
{
private static GeometryFactory factory;
private static double EARTH_RADIS;
private static final int SIDES = 64;
static {
GeometryUtil.factory = new GeometryFactory(new PrecisionModel(), 4326);
GeometryUtil.EARTH_RADIS = 6356752.314245;
}
public static Geometry convertGeometryByKML(final String kml) {
final GMLReader gmlReader = new GMLReader();
Geometry filter = null;
try {
filter = gmlReader.read(kml, GeometryUtil.factory);
return filter;
}
catch (SAXException e) {
return null;
}
catch (IOException e2) {
return null;
}
catch (ParserConfigurationException e3) {
return null;
}
}
public static String asKml(final Geometry geometry) {
final GMLWriter kmlWriter = new GMLWriter();
kmlWriter.setPrefix("");
return kmlWriter.write(geometry);
}
public static Geometry convertLonAndLatToGeometry(final double lon, final double lat) {
final String wktPoint = "POINT(" + lon + " " + lat + ")";
final WKTReader fromText = new WKTReader();
Geometry location = null;
try {
location = fromText.read(wktPoint);
location.setSRID(4326);
}
catch (ParseException e) {
throw new RuntimeException("Not a WKT string:" + wktPoint);
}
return location;
}
public static Polygon kmlstring2polygon(final String kml) {
final int s = kml.indexOf("<coordinates>");
final int e = kml.indexOf("</coordinates>");
if (s != -1 && e != -1) {
String cdstr = kml.substring(s + "<coordinates>".length(), e);
cdstr = cdstr.trim();
final String[] cdstrsplit = cdstr.split("\\s+");
final Coordinate[] cds = new Coordinate[cdstrsplit.length + 1];
for (int i = 0; i < cdstrsplit.length; ++i) {
final String[] ss = cdstrsplit[i].split(",");
cds[i] = new Coordinate(Double.valueOf(ss[0]), Double.valueOf(ss[1]));
}
cds[cds.length - 1] = new Coordinate(cds[0].x, cds[0].y);
final LinearRing linear = new GeometryFactory().createLinearRing(cds);
final Polygon poly = new Polygon(linear, null, GeometryUtil.factory);
return poly;
}
return null;
}
public static double getDistance(double lon1, double lat1, double lon2, double lat2) {
lat1 = Math.toRadians(lat1);
lon1 = Math.toRadians(lon1);
lat2 = Math.toRadians(lat2);
lon2 = Math.toRadians(lon2);
final double dLat = lat2 - lat1;
final double dLon = lon2 - lon1;
final double a = Math.sin(dLat / 2.0) * Math.sin(dLat / 2.0) + Math.cos(lat1) * Math.cos(lat2) * Math.sin(dLon / 2.0) * Math.sin(dLon / 2.0);
final double c = 2.0 * Math.atan2(Math.sqrt(a), Math.sqrt(1.0 - a));
final double d = GeometryUtil.EARTH_RADIS * c;
return d;
}
public static Polygon createCircle(final double x, final double y, final double RADIUS) {
final Coordinate[] coords = new Coordinate[65];
for (int i = 0; i < 64; ++i) {
final double angle = i / 64.0 * 3.141592653589793 * 2.0;
final double dx = Math.cos(angle) * RADIUS;
final double dy = Math.sin(angle) * RADIUS;
coords[i] = new Coordinate(x + dx, y + dy);
}
coords[64] = coords[0];
final LinearRing ring = GeometryUtil.factory.createLinearRing(coords);
final Polygon polygon = GeometryUtil.factory.createPolygon(ring, null);
return polygon;
}
public static void main(final String[] args) {
final Polygon pol = createCircle(1.0, 2.0, 30.0);
System.out.println(pol.toString());
}
}

158
src/main/java/com/zhichenhaixin/base/util/HttpUtils.java

@ -0,0 +1,158 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.zhichenhaixin.sys.model.UserVo;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import org.apache.log4j.Logger;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Timestamp;
public class HttpUtils
{
private static Logger log;
private static final String USER_INFO_URL;
private static final String RONGKE_WARN_URL;
private static int TIMEOUT;
private static HttpURLConnection urlConn;
static {
HttpUtils.log = Logger.getLogger(HttpUtils.class);
USER_INFO_URL = SpringPropertyUtil.getProperty("http.rongke.userinfo.url");
RONGKE_WARN_URL = SpringPropertyUtil.getProperty("http.rongke.warn.url");
HttpUtils.TIMEOUT = Integer.parseInt(SpringPropertyUtil.getProperty("http.rongke.timeout"));
HttpUtils.urlConn = null;
if (HttpUtils.TIMEOUT > 1000) {
HttpUtils.TIMEOUT = 500;
}
}
public static void sendUserInfoToRongKe(final UserVo userVo, final int status) {
final StringBuilder param = new StringBuilder();
param.append("/" + userVo.getUser_account().replaceAll(" ", ""));
param.append("/" + userVo.getUser_passwd().replaceAll(" ", ""));
param.append("/" + userVo.getUser_name().replaceAll(" ", ""));
param.append("/" + status);
param.append(".rest");
sendUserInfo(param.toString());
HttpUtils.log.info("-> \u7ed9\u8363\u79d1\u53d1\u9001\u7528\u6237\u6570\u636e \uff1a " + param.toString());
}
public static synchronized void sendUserInfo(final String str) {
try {
final URL url = new URL(String.valueOf(HttpUtils.USER_INFO_URL) + new String(str.getBytes("UTF-8")));
(HttpUtils.urlConn = (HttpURLConnection)url.openConnection()).setConnectTimeout(HttpUtils.TIMEOUT);
HttpUtils.urlConn.setDoOutput(true);
HttpUtils.urlConn.setDoInput(true);
HttpUtils.urlConn.setRequestMethod("POST");
HttpUtils.urlConn.setUseCaches(false);
HttpUtils.urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
HttpUtils.urlConn.setRequestProperty("contentType", "UTF-8");
HttpUtils.urlConn.setRequestProperty("Accept-Charset", "UTF-8");
HttpUtils.urlConn.getResponseCode();
}
catch (Exception ex) {
return;
}
finally {
if (HttpUtils.urlConn != null) {
HttpUtils.urlConn.disconnect();
}
}
if (HttpUtils.urlConn != null) {
HttpUtils.urlConn.disconnect();
}
}
public static String sendWarnToRongKe(final WarnInfoBean bean) {
final StringBuilder param = new StringBuilder();
param.append("/" + bean.getId());
final String time = String.valueOf(bean.getBegintime());
final long date = Long.valueOf(time);
final long begintime = (time.length() == 10) ? (date * 1000L) : date;
param.append("/" + Timestamp.valueOf(DateUtil.format.format(begintime)).toString().replaceAll(" ", ""));
param.append("/" + bean.getX());
param.append("/" + bean.getY());
param.append("/" + (StringUtil.isBlank(bean.getAlarm_type()) ? "0" : bean.getAlarm_type().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getAlarm_level()) ? "0" : bean.getAlarm_level().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getMark()) ? "0" : bean.getMark().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getObject_type()) ? "0" : bean.getObject_type().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getCamera_id()) ? "0" : bean.getCamera_id().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getSign()) ? "1" : bean.getSign().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getAlarm_source()) ? "0" : bean.getAlarm_source().replaceAll(" ", "")));
param.append("/" + (StringUtil.isBlank(bean.getRtsp()) ? "0" : bean.getRtsp().replaceAll("/", "*")));
param.append("/" + (StringUtil.isBlank(bean.getAlarm_site()) ? "0" : bean.getAlarm_site().replaceAll(" ", "")));
param.append("/" + bean.getHandle_status());
param.append(".rest");
final String msg = sendWarnInfo(param.toString());
HttpUtils.log.info("-> \u7ed9\u8363\u79d1\u53d1\u9001\u8b66\u60c5\u6570\u636e\uff1a" + param.toString());
return msg;
}
public static synchronized String sendWarnInfo(final String param) {
OutputStream out = null;
HttpURLConnection urlConn = null;
InputStream in = null;
try {
final URL url = new URL(String.valueOf(HttpUtils.RONGKE_WARN_URL) + new String(param.getBytes("UTF-8")));
urlConn = (HttpURLConnection)url.openConnection();
urlConn.setConnectTimeout(HttpUtils.TIMEOUT);
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
urlConn.setRequestMethod("POST");
urlConn.setUseCaches(false);
urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConn.setRequestProperty("contentType", "UTF-8");
urlConn.setRequestProperty("Accept-Charset", "UTF-8");
out = urlConn.getOutputStream();
out.write(param.getBytes());
out.flush();
urlConn.getResponseCode();
in = urlConn.getInputStream();
final StringBuffer sbf = new StringBuffer();
final BufferedReader inl = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String line = "";
while ((line = inl.readLine()) != null) {
sbf.append(line);
}
return sbf.toString();
}
catch (Exception ex) {
try {
if (out != null) {
out.close();
}
if (urlConn != null) {
urlConn.disconnect();
return "";
}
return "";
}
catch (Exception e2) {
HttpUtils.log.error("http \u5173\u95ed\u6d41\u51fa\u73b0\u5f02\u5e38\uff1a" + e2.getMessage());
}
}
finally {
try {
if (out != null) {
out.close();
}
if (urlConn != null) {
urlConn.disconnect();
}
}
catch (Exception e2) {
HttpUtils.log.error("http \u5173\u95ed\u6d41\u51fa\u73b0\u5f02\u5e38\uff1a" + e2.getMessage());
}
}
return "";
}
}

67
src/main/java/com/zhichenhaixin/base/util/JsonUtil.java

@ -0,0 +1,67 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.beanutils.PropertyUtilsBean;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.lang.reflect.InvocationTargetException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class JsonUtil
{
private static Log log;
static {
JsonUtil.log = LogFactory.getLog(JsonUtil.class);
}
public static String ListToJsonString(final List list) {
final String jsonText = JSON.toJSONString(list, true);
return jsonText;
}
public static String beanToJSonString(final Object o) {
return JSON.toJSONString(o);
}
public static JSONObject getJsonObject(final String str) {
final JSONObject jsonObj = JSON.parseObject(str);
return jsonObj;
}
public static String mapTojsonStr(final Map<String, Object> map) {
String str = "";
try {
final net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(map);
str = jsonObj.toString();
}
catch (Exception e) {
JsonUtil.log.error("map\u8f6cjson\u5b57\u7b26\u4e32\u7684\u6570\u636e\u683c\u5f0f\u9519\u8bef");
}
return str;
}
public static <T> List<Object> getPropertyList(final List<T> objList, final String propertyName) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
if (objList == null || objList.size() == 0) {
throw new IllegalArgumentException("No objList specified");
}
if (propertyName == null || "".equals(propertyName)) {
throw new IllegalArgumentException("No propertyName specified for bean class '" + objList.get(0).getClass() + "'");
}
final PropertyUtilsBean p = new PropertyUtilsBean();
final List<Object> propList = new LinkedList<Object>();
for (int i = 0; i < objList.size(); ++i) {
final T obj = objList.get(i);
propList.add(p.getProperty(obj, propertyName));
}
return propList;
}
}

222
src/main/java/com/zhichenhaixin/base/util/JsonValidator.java

@ -0,0 +1,222 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
public class JsonValidator
{
private static CharacterIterator it;
private static char c;
private static int col;
public static boolean validate(String input) {
if (StringUtil.isBlank(input)) {
return false;
}
input = input.trim();
final boolean ret = valid(input);
return ret;
}
private static boolean valid(final String input) {
boolean ret = true;
JsonValidator.it = new StringCharacterIterator(input);
JsonValidator.c = JsonValidator.it.first();
JsonValidator.col = 1;
if (!value()) {
ret = false;
}
else {
skipWhiteSpace();
if (JsonValidator.c != '\uffff') {
ret = false;
}
}
return ret;
}
private static boolean value() {
return literal("true") || literal("false") || literal("null") || string() || number() || object() || array();
}
private static boolean literal(final String text) {
final CharacterIterator ci = new StringCharacterIterator(text);
char t = ci.first();
if (JsonValidator.c != t) {
return false;
}
final int start = JsonValidator.col;
boolean ret = true;
for (t = ci.next(); t != '\uffff'; t = ci.next()) {
if (t != nextCharacter()) {
ret = false;
break;
}
}
nextCharacter();
if (!ret) {
error("literal " + text, start);
}
return ret;
}
private static boolean array() {
return aggregate('[', ']', false);
}
private static boolean object() {
return aggregate('{', '}', true);
}
private static boolean aggregate(final char entryCharacter, final char exitCharacter, final boolean prefix) {
if (JsonValidator.c != entryCharacter) {
return false;
}
nextCharacter();
skipWhiteSpace();
if (JsonValidator.c == exitCharacter) {
nextCharacter();
return true;
}
while (true) {
if (prefix) {
final int start = JsonValidator.col;
if (!string()) {
return error("string", start);
}
skipWhiteSpace();
if (JsonValidator.c != ':') {
return error("colon", JsonValidator.col);
}
nextCharacter();
skipWhiteSpace();
}
if (!value()) {
return error("value", JsonValidator.col);
}
skipWhiteSpace();
if (JsonValidator.c == ',') {
nextCharacter();
skipWhiteSpace();
}
else {
if (JsonValidator.c == exitCharacter) {
nextCharacter();
return true;
}
return error("comma or " + exitCharacter, JsonValidator.col);
}
}
}
private static boolean number() {
if (!Character.isDigit(JsonValidator.c) && JsonValidator.c != '-') {
return false;
}
final int start = JsonValidator.col;
if (JsonValidator.c == '-') {
nextCharacter();
}
if (JsonValidator.c == '0') {
nextCharacter();
}
else {
if (!Character.isDigit(JsonValidator.c)) {
return error("number", start);
}
while (Character.isDigit(JsonValidator.c)) {
nextCharacter();
}
}
if (JsonValidator.c == '.') {
nextCharacter();
if (!Character.isDigit(JsonValidator.c)) {
return error("number", start);
}
while (Character.isDigit(JsonValidator.c)) {
nextCharacter();
}
}
if (JsonValidator.c == 'e' || JsonValidator.c == 'E') {
nextCharacter();
if (JsonValidator.c == '+' || JsonValidator.c == '-') {
nextCharacter();
}
if (!Character.isDigit(JsonValidator.c)) {
return error("number", start);
}
while (Character.isDigit(JsonValidator.c)) {
nextCharacter();
}
}
return true;
}
private static boolean string() {
if (JsonValidator.c != '\"') {
return false;
}
final int start = JsonValidator.col;
boolean escaped = false;
nextCharacter();
while (JsonValidator.c != '\uffff') {
if (!escaped && JsonValidator.c == '\\') {
escaped = true;
}
else if (escaped) {
if (!escape()) {
return false;
}
escaped = false;
}
else if (JsonValidator.c == '\"') {
nextCharacter();
return true;
}
nextCharacter();
}
return error("quoted string", start);
}
private static boolean escape() {
final int start = JsonValidator.col - 1;
if (" \\\"/bfnrtu".indexOf(JsonValidator.c) < 0) {
return error("escape sequence \\\",\\\\,\\/,\\b,\\f,\\n,\\r,\\t or \\uxxxx ", start);
}
return JsonValidator.c != 'u' || (ishex(nextCharacter()) && ishex(nextCharacter()) && ishex(nextCharacter()) && ishex(nextCharacter())) || error("unicode escape sequence \\uxxxx ", start);
}
private static boolean ishex(final char d) {
return "0123456789abcdefABCDEF".indexOf(JsonValidator.c) >= 0;
}
private static char nextCharacter() {
JsonValidator.c = JsonValidator.it.next();
++JsonValidator.col;
return JsonValidator.c;
}
private static void skipWhiteSpace() {
while (Character.isWhitespace(JsonValidator.c)) {
nextCharacter();
}
}
private static boolean error(final String type, final int col) {
System.out.printf("type: %s, col: %s%s", type, col, System.getProperty("line.separator"));
return false;
}
public static void main(final String[] args) {
final String jsonStr = "{\"RectList\":[{\"H\":0.07039862,\"Lat\":22.13916976693058,\"Lon\":113.44665718671446,\"Time\":1470401215,\"W\":0.045932423,\"X\":0.8542848,\"Y\":0.2322127},{\"H\":0.056612633,\"Lat\":22.139169720102164,\"Lon\":113.44665716356158,\"Time\":1470401215,\"W\":0.038410924,\"X\":0.8526764,\"Y\":0.22404432},{\"H\":0.060527433,\"Lat\":22.139169704790678,\"Lon\":113.44665715606715,\"Time\":1470401216,\"W\":0.04654039,\"X\":0.84860504,\"Y\":0.22917898},{\"H\":0.061682187,\"Lat\":22.139169695136054,\"Lon\":113.44665715136067,\"Time\":1470401216,\"W\":0.04551673,\"X\":0.84703445,\"Y\":0.23023741},{\"H\":0.069775075,\"Lat\":22.139169712474647,\"Lon\":113.44665715982352,\"Time\":1470401217,\"W\":0.04892395,\"X\":0.8493781,\"Y\":0.22939597},{\"H\":0.052624863,\"Lat\":22.13916964852791,\"Lon\":113.44665712884733,\"Time\":1470401217,\"W\":0.0345741,\"X\":0.8391821,\"Y\":0.23610547},{\"H\":0.057601005,\"Lat\":22.139169702233275,\"Lon\":113.446657154819,\"Time\":1470401218,\"W\":0.041692387,\"X\":0.84451646,\"Y\":0.23758568},{\"H\":0.056303144,\"Lat\":22.139169665211963,\"Lon\":113.4466571368669,\"Time\":1470401218,\"W\":0.034816958,\"X\":0.83997285,\"Y\":0.23849888},{\"H\":0.059537314,\"Lat\":22.13916965102712,\"Lon\":113.44665713004586,\"Time\":1470401219,\"W\":0.033885177,\"X\":0.83935165,\"Y\":0.2363499},{\"H\":0.045450352,\"Lat\":22.139169670587997,\"Lon\":113.44665713946036,\"Time\":1470401219,\"W\":0.0292827,\"X\":0.8362834,\"Y\":0.24808614},{\"H\":0.032614212,\"Lat\":22.139169714628114,\"Lon\":113.44665716087795,\"Time\":1470401220,\"W\":0.030854248,\"X\":0.8389284,\"Y\":0.25296682},{\"H\":0.033007763,\"Lat\":22.139169685894803,\"Lon\":113.44665714686953,\"Time\":1470401220,\"W\":0.027751403,\"X\":0.83809656,\"Y\":0.24780089},{\"H\":0.02174272,\"Lat\":22.139169706730417,\"Lon\":113.44665715701451,\"Time\":1470401221,\"W\":0.020869147,\"X\":0.83515084,\"Y\":0.25939545},{\"H\":0.013569793,\"Lat\":22.139169682376373,\"Lon\":113.44665714516317,\"Time\":1470401222,\"W\":0.012507873,\"X\":0.83389163,\"Y\":0.25630292},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401222,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401223,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401223,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401224,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401224,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401225,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401225,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496},{\"H\":0.02688714,\"Lat\":22.139169653144112,\"Lon\":113.44665713106183,\"Time\":1470401226,\"W\":0.013007185,\"X\":0.83198327,\"Y\":0.2534496}]}";
final String jsonStr2 = "{ \"ccobjtypeid\": \"1001\", \"fromuser\": \"\u674e\u56db\", \"touser\": \"\u5f20\u4e09\", \"desc\": \"\u63cf\u8ff0\", \"subject\": \"\u4e3b\u9898\", \"attach\": \"3245,3456,4345,4553\", \"data\": { \"desc\": \"\u6d4b\u8bd5\u5bf9\u8c61\", \"dataid\": \"22\", \"billno\": \"TEST0001\", \"datarelation\":[ { \"dataname\": \"\u5173\u8054\u5bf9\u8c611\", \"data\": [ { \"dataid\": \"22\", \"datalineid\": \"1\", \"content1\": \"test1\", \"content2\": \"test2\" } ] } ] } }";
final String jsonStr3 = "";
System.out.println(validate(jsonStr));
System.out.println(validate(jsonStr2));
System.out.println(validate(jsonStr3));
}
}

86
src/main/java/com/zhichenhaixin/base/util/Kml2polygonUtil.java

@ -0,0 +1,86 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.io.WKTReader;
import com.vividsolutions.jts.io.gml2.GMLReader;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
public class Kml2polygonUtil
{
private static GeometryFactory factory;
private static GMLReader gmlReader;
static {
Kml2polygonUtil.factory = new GeometryFactory();
Kml2polygonUtil.gmlReader = new GMLReader();
}
public static LineString poly2linestring(final Polygon poly) {
LineString ret = null;
if (poly != null) {
ret = new GeometryFactory(new PrecisionModel(), 4326).createLineString(poly.getCoordinates());
}
return ret;
}
public static Polygon linestring2poly(final LineString ls) {
Polygon ret = null;
if (ls != null) {
final GeometryFactory fact = new GeometryFactory(new PrecisionModel(), 4326);
final LinearRing linear = fact.createLinearRing(ls.getCoordinates());
ret = new Polygon(linear, null, fact);
}
return ret;
}
public static void testclosed() {
System.out.println("==\u95ed\u5408kml");
final Coordinate[] coordinates = { new Coordinate(113.43692913986084, 22.12011372526001), new Coordinate(113.44465390182373, 22.12328946073364), new Coordinate(113.45250740981933, 22.108440751627196), new Coordinate(113.44302311874267, 22.105436677530516), new Coordinate(113.43692913986084, 22.12011372526001) };
final GeometryFactory fact = new GeometryFactory(new PrecisionModel(), 4326);
final LinearRing linear = new GeometryFactory(new PrecisionModel(), 4326).createLinearRing(coordinates);
final Polygon poly = new Polygon(linear, null, fact);
System.out.println(poly);
final Boolean contains = poly.contains(new GeometryFactory(new PrecisionModel(), 4326).createPoint(new Coordinate(113.44755068755981, 22.11009299238037)));
System.out.println("\u5305\u542b:" + contains);
}
public static Geometry convertGeometryByKML(final String kml) {
Geometry filter = null;
try {
filter = Kml2polygonUtil.gmlReader.read(kml, Kml2polygonUtil.factory);
return filter;
}
catch (SAXException e) {
return null;
}
catch (IOException e2) {
return null;
}
catch (ParserConfigurationException e3) {
return null;
}
}
public static Geometry convertGeometryByKML2(final String kml) {
Geometry g = null;
try {
g = new WKTReader().read(kml);
return g;
}
catch (Exception e) {
System.out.println(e.getLocalizedMessage());
return null;
}
}
public static Point xy2point(final double x, final double y) {
return Kml2polygonUtil.factory.createPoint(new Coordinate(x, y));
}
}

159
src/main/java/com/zhichenhaixin/base/util/ListUtil.java

@ -0,0 +1,159 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.util.*;
public class ListUtil
{
public static Map<String, Object> listToEchats(final List<Map<String, Object>> dataList, final Map<String, Object> opts) {
final Map<String, Object> resultMap = new HashMap<String, Object>();
final List<Object> legendData = new ArrayList<Object>();
final List<Object> categoryData = new ArrayList<Object>();
final List<Object> series = new ArrayList<Object>();
for (int i = 0; i < dataList.size(); ++i) {
final Map<String, Object> tMap = dataList.get(i);
final Map<String, Object> tsMap = new LinkedHashMap<String, Object>();
tsMap.put("name", tMap.get("category"));
for (final Map.Entry<String, Object> e : opts.entrySet()) {
tsMap.put(e.getKey(), e.getValue());
}
if (!tsMap.containsKey("type")) {
tsMap.put("type", "bar");
}
final List<Object> seriesData = new ArrayList<Object>();
for (final Map.Entry<String, Object> entry : tMap.entrySet()) {
if (entry.getKey().equals("category")) {
legendData.add(entry.getValue());
}
else {
seriesData.add(entry.getValue());
if (categoryData.contains(entry.getKey())) {
continue;
}
categoryData.add(entry.getKey());
}
}
tsMap.put("data", seriesData);
series.add(tsMap);
}
resultMap.put("legendData", legendData);
resultMap.put("categoryData", categoryData);
resultMap.put("series", series);
return resultMap;
}
public static Map<String, Object> listToEchats2(final List<Map<String, Object>> dataList, final Map<String, Object> opts) {
final Map<String, Object> resultMap = new HashMap<String, Object>();
final Map<String, String> variableMap = new HashMap<String, String>();
final List<Object> legendData = new ArrayList<Object>();
final List<Object> categoryData = new ArrayList<Object>();
final List<Object> category2Data = new ArrayList<Object>();
final List<Object> series = new ArrayList<Object>();
final List<Object> markPointList = new ArrayList<Object>();
if (dataList.size() > 0) {
final Map<String, Object> categoryMap = dataList.get(0);
int m = 0;
final List<String> categoryList = new ArrayList<String>();
if (opts.containsKey("sortData")) {
final String[] sortData = (String[])opts.get("sortData");
String[] array;
for (int length = (array = sortData).length, k = 0; k < length; ++k) {
final String s = array[k];
if (categoryMap.containsKey(s)) {
categoryList.add(s);
}
}
for (final String category : categoryMap.keySet()) {
Boolean exist = false;
String[] array2;
for (int length2 = (array2 = sortData).length, l = 0; l < length2; ++l) {
final String s2 = array2[l];
if (category.equals(s2)) {
exist = true;
}
}
if (!exist) {
categoryList.add(category);
}
}
}
else {
for (final String category2 : categoryMap.keySet()) {
categoryList.add(category2);
}
}
for (final String category2 : categoryList) {
if (category2.indexOf("category") == -1 && category2.indexOf("variable_") == -1 && category2.indexOf("markPoint") == -1) {
final List<Object> seriesData = new ArrayList<Object>();
legendData.add(category2);
final Map<String, Object> tsMap = new LinkedHashMap<String, Object>();
tsMap.put("name", category2);
for (final Map.Entry<String, Object> e : opts.entrySet()) {
if (!e.getKey().equals("sortData")) {
tsMap.put(e.getKey(), e.getValue());
}
}
if (!tsMap.containsKey("type")) {
tsMap.put("type", "bar");
}
for (int i = 0; i < dataList.size(); ++i) {
final Map<String, Object> tMap = dataList.get(i);
if (m == 0) {
categoryData.add(tMap.get("category"));
}
if (m == 0 && tMap.containsKey("category2")) {
if ("%".equals(opts.get("suffix")) && !"".equals(tMap.get("category2"))) {
category2Data.add(tMap.get("category2") + "%");
}
else {
category2Data.add(tMap.get("category2"));
}
}
if (m == 0 && tMap.containsKey("markPoint")) {
markPointList.add(tMap.get("markPoint"));
}
seriesData.add(tMap.get(category2));
}
tsMap.put("data", seriesData);
tsMap.put("markPointList", markPointList);
series.add(tsMap);
++m;
}
else {
if (category2.indexOf("variable_") < 0) {
continue;
}
variableMap.put(category2, StringUtil.toString(categoryMap.get(category2)));
}
}
if (m == 0) {
for (int j = 0; j < dataList.size(); ++j) {
final Map<String, Object> tMap = dataList.get(j);
categoryData.add(tMap.get("category"));
if (tMap.containsKey("category2")) {
if ("%".equals(opts.get("suffix")) && !"".equals(tMap.get("category2"))) {
category2Data.add(tMap.get("category2") + "%");
}
else {
category2Data.add(tMap.get("category2"));
}
}
}
}
}
resultMap.put("legendData", legendData);
resultMap.put("categoryData", categoryData);
if (category2Data.size() > 0) {
resultMap.put("category2Data", category2Data);
}
if (markPointList != null && markPointList.size() > 0) {
resultMap.put("markPointList", markPointList);
}
resultMap.put("series", series);
resultMap.put("variableMap", variableMap);
return resultMap;
}
}

65
src/main/java/com/zhichenhaixin/base/util/LonLatUtil.java

@ -0,0 +1,65 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.text.DecimalFormat;
public class LonLatUtil
{
private static DecimalFormat digits;
static {
LonLatUtil.digits = new DecimalFormat("0.00000000");
}
public static double xypase(String dms, final String type) {
if (StringUtil.isBlank(dms)) {
return 0.0;
}
double result = 0.0;
String temp = "";
dms = dms.replace(",", ".");
if (type.equals("E")) {
final String e1 = dms.substring(0, 3);
final String e2 = dms.substring(3, dms.length());
result = Double.parseDouble(e1);
result += Double.parseDouble(e2) / 60.0;
temp = String.valueOf(result);
if (temp.length() > 17) {
temp = String.valueOf(e1) + temp.substring(temp.indexOf("."), 17);
}
}
else if (type.equals("N")) {
final String n1 = dms.substring(0, 2);
final String n2 = dms.substring(2, dms.length());
result = Double.parseDouble(n1);
result += Double.parseDouble(n2) / 60.0;
temp = String.valueOf(result);
if (temp.length() > 16) {
temp = String.valueOf(n1) + temp.substring(temp.indexOf("."), 16);
}
}
return Double.parseDouble(temp);
}
public static String getLonOrLat(String du, final int length) {
if (StringUtil.isBlank(du)) {
return du;
}
du = du.replace(",", ".");
final String edu = du.substring(0, length);
final int edu2 = Integer.parseInt(edu);
final String fen = du.substring(length, du.length());
final double fen2 = Double.parseDouble(fen);
final double fen3 = fen2 / 60.0;
final double fen4 = edu2 + fen3;
final String es = LonLatUtil.digits.format(fen4);
return es;
}
public static void main(final String[] args) {
System.out.println(getLonOrLat("2232.12213", 2));
}
}

55
src/main/java/com/zhichenhaixin/base/util/MD5Utils.java

@ -0,0 +1,55 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import sun.misc.BASE64Encoder;
import java.security.MessageDigest;
public class MD5Utils
{
private static Log log;
static {
MD5Utils.log = LogFactory.getLog(MD5Utils.class);
}
public static final String MD5(final String s) {
final char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g' };
try {
final byte[] strTemp = s.getBytes();
final MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
final byte[] md = mdTemp.digest();
final int j = md.length;
final char[] str = new char[j * 2];
int k = 0;
for (final byte byte0 : md) {
str[k++] = hexDigits[byte0 >>> 4 & 0xF];
str[k++] = hexDigits[byte0 & 0xF];
}
return new String(str);
}
catch (Exception e) {
MD5Utils.log.error("MD5\u52a0\u5bc6\u5f02\u5e38\uff01");
return null;
}
}
public static String EncoderByMd5(final String str) {
String newstr = "";
try {
final MessageDigest md5 = MessageDigest.getInstance("MD5");
final BASE64Encoder base64en = new BASE64Encoder();
newstr = base64en.encode(md5.digest(str.getBytes("utf-8")));
}
catch (Exception e) {
MD5Utils.log.error("BASE64Encoder\u8f6c\u6362\u5f02\u5e38\uff01");
}
return newstr;
}
}

199
src/main/java/com/zhichenhaixin/base/util/MapUtil.java

@ -0,0 +1,199 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapUtil
{
private static Log log;
static {
MapUtil.log = LogFactory.getLog(MapUtil.class);
}
public Map<String, Object> toMap() {
final Map<String, Object> retmap = new HashMap<String, Object>();
final Field[] fields = this.getClass().getDeclaredFields();
if (fields.length > 0) {
for (int i = 0; i < fields.length; ++i) {
final Field field = fields[i];
final String name = field.getName();
if (!name.equals("serialVersionUID")) {
final boolean accessible = field.isAccessible();
if (!accessible) {
field.setAccessible(true);
}
Object value = null;
try {
value = field.get(this);
}
catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
if (!accessible) {
field.setAccessible(false);
}
retmap.put(name, value);
}
}
}
return retmap;
}
public static Map<String, Object> strToMap(final String str) {
Map<String, Object> map = null;
try {
final JSONObject jsonObj = (JSONObject)(map = (Map<String, Object>)JSONObject.fromObject(str));
}
catch (Exception e) {
MapUtil.log.error("json\u5b57\u7b26\u4e32\u8f6c\u5316\u4e3amap\u7684\u683c\u5f0f\u9519\u8bef!");
return null;
}
return map;
}
public static List<Map<String, Object>> strToListMap(final String str) {
List<Map<String, Object>> ObjectList = null;
try {
final Gson gson = new Gson();
final Type type = new TypeToken<List<?>>() {}.getType();
ObjectList = gson.fromJson(str, type);
}
catch (Exception e) {
MapUtil.log.error("json\u8f6c\u5316\u4e3alist\u7684\u683c\u5f0f\u9519\u8bef");
return null;
}
return ObjectList;
}
public static String mapTojsonStr(final Map<String, Object> map) {
String str = "";
try {
final JSONObject jsonObj = JSONObject.fromObject(map);
str = jsonObj.toString();
}
catch (Exception e) {
MapUtil.log.error("map\u8f6cjson\u5b57\u7b26\u4e32\u7684\u6570\u636e\u683c\u5f0f\u9519\u8bef");
}
return str;
}
public static String listMapToJsonStr(final List<Map<String, Object>> list) {
String json = null;
try {
json = JSONArray.fromObject(list).toString();
}
catch (Exception e) {
MapUtil.log.error("list\u8f6cjson\u5b57\u7b26\u4e32\u7684\u683c\u5f0f\u9519\u8bef");
}
return json;
}
public static String StrToBinstr(final String str) {
final char[] strChar = str.toCharArray();
String result = "";
for (int i = 0; i < strChar.length; ++i) {
result = String.valueOf(result) + Integer.toBinaryString(strChar[i]) + " ";
}
return result;
}
public static String BinstrToStr(final String binStr) {
final String[] tempStr = StrToStrArray(binStr);
final char[] tempChar = new char[tempStr.length];
for (int i = 0; i < tempStr.length; ++i) {
tempChar[i] = BinstrToChar(tempStr[i]);
}
return String.valueOf(tempChar);
}
public static String[] StrToStrArray(final String str) {
return str.split(" ");
}
public static char BinstrToChar(final String binStr) {
final int[] temp = BinstrToIntArray(binStr);
int sum = 0;
for (int i = 0; i < temp.length; ++i) {
sum += temp[temp.length - 1 - i] << i;
}
return (char)sum;
}
public static int[] BinstrToIntArray(final String binStr) {
final char[] temp = binStr.toCharArray();
final int[] result = new int[temp.length];
for (int i = 0; i < temp.length; ++i) {
result[i] = temp[i] - '0';
}
return result;
}
public static Map convertBean(final Object bean) {
final Class type = bean.getClass();
final Map returnMap = new HashMap();
try {
final BeanInfo beanInfo = Introspector.getBeanInfo(type);
final PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i < propertyDescriptors.length; ++i) {
final PropertyDescriptor descriptor = propertyDescriptors[i];
final String propertyName = descriptor.getName();
if (!propertyName.equals("class")) {
final Method readMethod = descriptor.getReadMethod();
final Object result = readMethod.invoke(bean, new Object[0]);
if (result != null) {
returnMap.put(propertyName, result);
}
else {
returnMap.put(propertyName, "");
}
}
}
}
catch (Exception e) {
MapUtil.log.error("bean\u5bf9\u8c61\u8f6c\u5316\u4e3amap\u7684\u683c\u5f0f\u9519\u8bef");
return null;
}
return returnMap;
}
public static Object convertMap(final Class type, final Map map) {
Object obj = null;
try {
final BeanInfo beanInfo = Introspector.getBeanInfo(type);
obj = type.newInstance();
final PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i < propertyDescriptors.length; ++i) {
final PropertyDescriptor descriptor = propertyDescriptors[i];
final String propertyName = descriptor.getName();
if (map.containsKey(propertyName)) {
final Object value = map.get(propertyName);
final Object[] args = { value };
descriptor.getWriteMethod().invoke(obj, args);
}
}
}
catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
return obj;
}
}

42
src/main/java/com/zhichenhaixin/base/util/MathUtil.java

@ -0,0 +1,42 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.text.DecimalFormat;
public class MathUtil
{
public static String round(final float num, final float chushu, final int xiaoshudianweishu) {
return round(String.valueOf(num), chushu, xiaoshudianweishu);
}
public static String round(final String numStr, final float chushu, final int xiaoshudianweishu) {
String result = "";
if (!StringUtil.isBlank(numStr)) {
double num = Double.valueOf(numStr);
if (num == 0.0) {
return "0";
}
num /= chushu;
String f = "0";
String l = "";
if (xiaoshudianweishu > 0) {
for (int i = 0; i < xiaoshudianweishu; ++i) {
l = String.valueOf(l) + "0";
}
}
if (!StringUtil.isBlank(l)) {
f = String.valueOf(f) + "." + l;
}
final DecimalFormat df = new DecimalFormat(f);
result = df.format(num);
}
return result;
}
public static void main(final String[] args) {
System.out.println(round("6400", 1.0E8f, 9));
}
}

124
src/main/java/com/zhichenhaixin/base/util/Matrix.java

@ -0,0 +1,124 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
public class Matrix
{
static double[][] data3;
static double[][] data2;
static double[][] data2f;
static double[] data2d;
static {
Matrix.data3 = new double[][] { { 1.0, 1.0, 1.0 }, { 0.0, 2.0, 2.0 }, { 1.0, -1.0, 0.0 } };
Matrix.data2 = new double[][] { { 3.0, -2.0 }, { -1.0, 4.0 } };
Matrix.data2f = new double[][] { { 0.0, 0.0 }, { 0.0, 0.0 } };
Matrix.data2d = new double[] { 1.0, 1.0, 2.0 };
}
public static double[][] getDY(final double[][] data, final int h, final int v) {
final int H = data.length;
final int V = data[0].length;
final double[][] newData = new double[H - 1][V - 1];
for (int i = 0; i < newData.length; ++i) {
if (i < h - 1) {
for (int j = 0; j < newData[i].length; ++j) {
if (j < v - 1) {
newData[i][j] = data[i][j];
}
else {
newData[i][j] = data[i][j + 1];
}
}
}
else {
for (int j = 0; j < newData[i].length; ++j) {
if (j < v - 1) {
newData[i][j] = data[i + 1][j];
}
else {
newData[i][j] = data[i + 1][j + 1];
}
}
}
}
return newData;
}
public static double getHL(final double[][] data) {
if (data.length == 2) {
return data[0][0] * data[1][1] - data[0][1] * data[1][0];
}
double total = 0.0;
final int num = data.length;
final double[] nums = new double[num];
for (int i = 0; i < num; ++i) {
if (i % 2 == 0) {
nums[i] = data[0][i] * getHL(getDY(data, 1, i + 1));
}
else {
nums[i] = -data[0][i] * getHL(getDY(data, 1, i + 1));
}
}
for (int i = 0; i < num; ++i) {
total += nums[i];
}
return total;
}
public static double[][] getN(final double[][] data) {
final double A = getHL(data);
double[][] newData = new double[data.length][data.length];
for (int i = 0; i < data.length; ++i) {
for (int j = 0; j < data.length; ++j) {
double num;
if ((i + j) % 2 == 0) {
num = getHL(getDY(data, i + 1, j + 1));
}
else {
num = -getHL(getDY(data, i + 1, j + 1));
}
newData[i][j] = num / A;
}
}
newData = getA_T(newData);
for (int i = 0; i < data.length; ++i) {
for (int j = 0; j < data.length; ++j) {}
}
return newData;
}
public static double[][] getA_T(final double[][] A) {
final int h = A.length;
final int v = A[0].length;
final double[][] A_T = new double[v][h];
for (int i = 0; i < v; ++i) {
for (int j = 0; j < h; ++j) {
A_T[j][i] = A[i][j];
}
}
return A_T;
}
public static double[] matrixMultiply(final double[][] list1, final double[] list2) {
final double[] list3 = new double[list2.length];
if (list1[0].length == list2.length) {
for (int i = 0; i < list1.length; ++i) {
for (int j = 0; j < list1[i].length; ++j) {
final double[] array = list3;
final int n = i;
array[n] += list1[i][j] * list2[j];
}
}
}
return list3;
}
public static void main(final String[] args) {
final double[][] inverseMatrix = getN(Matrix.data3);
final double[] result = matrixMultiply(inverseMatrix, Matrix.data2d);
System.out.println("\u6c42\u89e3\u7684\u503c\u4e3a\uff1ax1 = " + result[0] + ", x2 = " + result[1] + ", x3 = " + result[2]);
}
}

23
src/main/java/com/zhichenhaixin/base/util/ObjectUtil.java

@ -0,0 +1,23 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
public class ObjectUtil
{
public static boolean notBlack(final Object str) {
return str != null && !str.equals("");
}
public static int parseInt(final Object str) {
if (str == null || str == "") {
return 0;
}
return Integer.parseInt(new StringBuilder().append(str).toString());
}
public static boolean isEmpty(final Object str) {
return str == null || "".equals(str);
}
}

141
src/main/java/com/zhichenhaixin/base/util/PingUtil.java

@ -0,0 +1,141 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.log4j.Logger;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.net.InetAddress;
import java.net.Socket;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PingUtil
{
private static final Logger log;
static {
log = Logger.getLogger(PingUtil.class);
}
public static boolean ping(final String ipAddress) {
boolean status = false;
try {
final int timeOut = 2000;
status = InetAddress.getByName(ipAddress).isReachable(timeOut);
}
catch (Exception e) {
PingUtil.log.error("\u68c0\u6d4bip\u5f02\u5e38\uff01");
return false;
}
return status;
}
public static void ping02(final String ipAddress) throws Exception {
String line = null;
try {
final Process pro = Runtime.getRuntime().exec("ping " + ipAddress);
final BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));
while ((line = buf.readLine()) != null) {
System.out.println(line);
}
}
catch (Exception e) {
PingUtil.log.error("\u68c0\u6d4bip\u5f02\u5e38\uff01");
}
}
public static boolean ping(final String ipAddress, final int pingTimes, final int timeOut) {
BufferedReader in = null;
final Runtime r = Runtime.getRuntime();
final String pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut;
try {
System.out.println(pingCommand);
final Process p = r.exec(pingCommand);
if (p == null) {
return false;
}
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
int connectedCount = 0;
String line = null;
while ((line = in.readLine()) != null) {
connectedCount += getCheckResult(line);
}
return connectedCount == pingTimes;
}
catch (Exception e) {
PingUtil.log.error("\u68c0\u6d4bip\u5f02\u5e38\uff01");
return false;
}
finally {
try {
in.close();
}
catch (IOException e2) {
PingUtil.log.error("\u5173\u95ed\u6d41\u5f02\u5e38\uff01");
}
}
}
private static int getCheckResult(final String line) {
final Pattern pattern = Pattern.compile("(\\d+ms)(\\s+)(TTL=\\d+)", 2);
final Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
return 1;
}
return 0;
}
public static boolean pingIp(final String ip) {
try {
final String address = ip;
final Process process = Runtime.getRuntime().exec("ping " + address);
final InputStreamReader r = new InputStreamReader(process.getInputStream());
final LineNumberReader returnData = new LineNumberReader(r);
String returnMsg = "";
String line = "";
while ((line = returnData.readLine()) != null) {
returnMsg = String.valueOf(returnMsg) + line;
}
System.out.println(returnMsg);
if (returnMsg.indexOf("100% loss") != -1) {
System.out.println("\u4e0e " + address + " \u8fde\u63a5\u4e0d\u7545\u901a.");
return false;
}
System.out.println("\u4e0e " + address + " \u8fde\u63a5\u7545\u901a.");
return true;
}
catch (Exception e) {
PingUtil.log.error("\u68c0\u6d4bip\u5f02\u5e38\uff01");
return false;
}
}
public static boolean pingIpAndPort(final String ip, final int port) {
try {
Socket s = new Socket(ip, port);
PingUtil.log.info(s.getLocalAddress() + "\u53ef\u4ee5\u8bbf\u95ee" + ip + "\u4e0a\u7684\u7aef\u53e3" + 8080 + "\u7684\u670d\u52a1.");
s = null;
return true;
}
catch (Exception e) {
PingUtil.log.error("\u65e0\u6cd5\u53d6\u5f97" + ip + "\u4e0a\u7684\u7aef\u53e3" + 8080 + "\u7684\u670d\u52a1.");
return false;
}
}
public static void main(final String[] args) {
try {
final String ipAddress = "192.168.50.66";
System.out.println(ping(ipAddress));
}
catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
}
}

57
src/main/java/com/zhichenhaixin/base/util/PortManageUtils.java

@ -0,0 +1,57 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.log4j.Logger;
import java.util.HashMap;
import java.util.Map;
public class PortManageUtils
{
static Logger log;
public static Map<String, String> portMap;
static {
PortManageUtils.log = Logger.getLogger(PortManageUtils.class);
PortManageUtils.portMap = new HashMap<String, String>();
}
public static String getRandom(final String str) {
boolean bool = false;
String port;
do {
String theNum = null;
port = null;
final int num = (int)(Math.random() * 100.0);
if (num < 10) {
theNum = "0" + num;
}
else {
theNum = String.valueOf(num);
}
port = String.valueOf(str) + theNum;
bool = searchSavePort(port);
} while (!bool);
return port;
}
public static synchronized boolean searchSavePort(final String port) {
boolean bool = true;
if (PortManageUtils.portMap != null && PortManageUtils.portMap.containsKey(port)) {
bool = false;
}
if (bool) {
PortManageUtils.portMap.put(port, port);
}
return bool;
}
public static synchronized void searchDelete(final String port) {
if (PortManageUtils.portMap != null && PortManageUtils.portMap.containsKey(port)) {
PortManageUtils.portMap.remove(port);
}
}
}

42
src/main/java/com/zhichenhaixin/base/util/ProxyUtil.java

@ -0,0 +1,42 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.springframework.aop.framework.AdvisedSupport;
import org.springframework.aop.support.AopUtils;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
public class ProxyUtil
{
public static Object getTarget(final Object proxy) {
try {
if (!AopUtils.isAopProxy(proxy)) {
return proxy;
}
if (AopUtils.isJdkDynamicProxy(proxy)) {
return getJdkDynamicProxyTargetObject(proxy);
}
return getCglibProxyTargetObject(proxy);
}
catch (Exception e) {
System.out.println(e.getLocalizedMessage());
return null;
}
}
private static Object getCglibProxyTargetObject(final Object proxy) throws Exception {
final Object dynamicAdvisedInterceptor = ReflectionUtils.getFieldValue(proxy, "CGLIB$CALLBACK_0");
final Object target = ((AdvisedSupport)ReflectionUtils.getFieldValue(dynamicAdvisedInterceptor, "advised")).getTargetSource().getTarget();
return target;
}
private static Object getJdkDynamicProxyTargetObject(final Object proxy) throws Exception {
final InvocationHandler invocationHandler = Proxy.getInvocationHandler(proxy);
final Object target = ((AdvisedSupport)ReflectionUtils.getFieldValue(invocationHandler, "advised")).getTargetSource().getTarget();
return target;
}
}

36
src/main/java/com/zhichenhaixin/base/util/ReadUtil.java

@ -0,0 +1,36 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.io.InputStream;
public class ReadUtil
{
private static ReadUtil util;
private ReadUtil() {
}
public static ReadUtil getInstance() {
if (ReadUtil.util == null) {
ReadUtil.util = new ReadUtil();
}
return ReadUtil.util;
}
public byte[] readMessage(final InputStream in) {
try {
final byte[] bytes = new byte[4096];
final int length = in.read(bytes);
final byte[] blenth = new byte[length];
System.arraycopy(bytes, 0, blenth, 0, length);
return blenth;
}
catch (Exception e) {
System.out.println(e.getLocalizedMessage());
return null;
}
}
}

144
src/main/java/com/zhichenhaixin/base/util/ReflectionUtils.java

@ -0,0 +1,144 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class ReflectionUtils
{
private static Log log;
static {
ReflectionUtils.log = LogFactory.getLog(ReflectionUtils.class);
}
public static Object invoke(final Object obj, final String methodName, final Object... args) {
final Class[] parametersType = new Class[args.length];
for (int i = 0; i < args.length; ++i) {
parametersType[i] = args[i].getClass();
}
final Method method = getMethod(obj.getClass(), methodName, (Class<?>[])parametersType);
try {
return method.invoke(obj, args);
}
catch (Exception e) {
ReflectionUtils.log.error("\u7236\u7c7b\u4e2d\u7684\u79c1\u6709\u65b9\u6cd5\uff0c\u4f60\u4e0d\u53ef\u8bbf\u95ee!!!");
return null;
}
}
public static Method getMethod(Class<?> cla, final String methodName, final Class<?>... parametersType) {
boolean isFirstClass = true;
while (cla != Object.class) {
Method method = null;
try {
method = cla.getDeclaredMethod(methodName, parametersType);
if (isFirstClass) {
method.setAccessible(true);
isFirstClass = false;
}
return method;
}
catch (Exception ex) {}
finally {
isFirstClass = false;
}
cla = cla.getSuperclass();
}
return null;
}
public static Object invoke(final String className, final String methodName, final Object... args) {
Object obj = null;
try {
obj = Class.forName(className).newInstance();
}
catch (Exception e) {
ReflectionUtils.log.error(e.getLocalizedMessage());
}
if (obj == null) {
return null;
}
return invoke(obj, methodName, args);
}
public static Object getFieldValue(final Object obj, final String fieldName) {
final Class<?> cla = obj.getClass();
final Field field = getField(cla, fieldName);
try {
return field.get(obj);
}
catch (Exception e) {
ReflectionUtils.log.error("\u7236\u7c7b\u4e2d\u7684\u79c1\u6709\u5c5e\u6027\uff0c\u4f60\u4e0d\u53ef\u8bbf\u95ee!!!");
return null;
}
}
public static Field getField(Class<?> cla, final String fieldName) {
boolean isFirstClass = true;
while (cla != Object.class) {
Field field = null;
try {
field = cla.getDeclaredField(fieldName);
if (isFirstClass) {
field.setAccessible(true);
isFirstClass = false;
}
return field;
}
catch (Exception ex) {}
finally {
isFirstClass = false;
}
cla = cla.getSuperclass();
}
return null;
}
public static void setFieldValue(final Object obj, final String fieldName, final Object val) {
final Field field = getField(obj.getClass(), fieldName);
try {
field.set(obj, val);
}
catch (Exception e) {
ReflectionUtils.log.error("\u65e0\u6cd5\u8bbe\u7f6e\u7236\u7c7b\u4e2d\u7684\u79c1\u6709\u5c5e\u6027!!!");
}
}
public static <T> T setFieldValue(final String className, final String fieldName, final Object val) {
T obj = null;
try {
obj = (T)Class.forName(className).newInstance();
}
catch (Exception e) {
ReflectionUtils.log.error("\u7c7b\u540d\u9519\u8bef\uff01\uff01\uff01");
}
setFieldValue(obj, fieldName, val);
return obj;
}
public static Class<?> getGenericSuperClass(final Class<?> className, final int index) {
final Type type = className.getGenericSuperclass();
if (!(type instanceof ParameterizedType)) {
return null;
}
final ParameterizedType parameterizedType = (ParameterizedType)type;
final Type[] args = parameterizedType.getActualTypeArguments();
if (index < 0 || index > args.length) {
return null;
}
if (args != null) {
final Class<?> cla = (Class<?>)args[index];
return cla;
}
return null;
}
}

48
src/main/java/com/zhichenhaixin/base/util/ResourceUtil.java

@ -0,0 +1,48 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import java.io.IOException;
import java.util.Properties;
public class ResourceUtil
{
private static Log log;
private static final Resource resource;
private static Properties props;
static {
ResourceUtil.log = LogFactory.getLog(ResourceUtil.class);
resource = new ClassPathResource("/resources.properties");
try {
ResourceUtil.props = PropertiesLoaderUtils.loadProperties(ResourceUtil.resource);
}
catch (IOException e) {
ResourceUtil.log.error("\u8bfb\u53d6\u914d\u7f6e\u6587\u4ef6\u5f02\u5e38\uff01");
}
}
public static final String getCtrlFllowHost() {
return ResourceUtil.props.getProperty("ctrl_fllow_host");
}
public static final int getCtrlFllowPort() {
return Integer.parseInt(ResourceUtil.props.getProperty("ctrl_fllow_port"));
}
public static final int getPushFllowTime() {
return Integer.parseInt(ResourceUtil.props.getProperty("push.fllow.target.time"));
}
public static final String getClientTopic() {
return ResourceUtil.props.getProperty("client.track.topic");
}
}

65
src/main/java/com/zhichenhaixin/base/util/SpringBeanUtil.java

@ -0,0 +1,65 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class SpringBeanUtil implements ApplicationContextAware
{
private static ApplicationContext applicationContext;
private SpringBeanUtil() {
}
@Override
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {
if (SpringBeanUtil.applicationContext == null) {
synchronized (SpringBeanUtil.class) {
if (SpringBeanUtil.applicationContext == null) {
SpringBeanUtil.applicationContext = applicationContext;
}
}
// monitorexit(SpringBeanUtil.class)
}
}
public static Object getBean(final String beanName) {
return SpringBeanUtil.applicationContext.getBean(beanName);
}
public static <T> T getBean(final Class<T> beanType) {
return SpringBeanUtil.applicationContext.getBean(beanType);
}
public static <T> T getBean(final String beanName, final Class<T> beanType) {
final Object obj = getBean(beanName);
if (obj == null) {
return getBean(beanType);
}
return (T)obj;
}
public static boolean existsBean(final String beanName) {
return SpringBeanUtil.applicationContext.containsBean(beanName);
}
public static boolean existsBeanDefinition(final String beanName) {
return SpringBeanUtil.applicationContext.containsBeanDefinition(beanName);
}
public static boolean existsLocalBean(final String beanName) {
return SpringBeanUtil.applicationContext.containsLocalBean(beanName);
}
public static boolean existsBean(final Class<?> beanType) {
return SpringBeanUtil.applicationContext.getBeanNamesForType(beanType).length > 0;
}
public static ApplicationContext getApplicationContext() {
return SpringBeanUtil.applicationContext;
}
}

75
src/main/java/com/zhichenhaixin/base/util/SpringPropertyUtil.java

@ -0,0 +1,75 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.PropertyResourceConfigurer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.core.io.support.PropertiesLoaderSupport;
import java.lang.reflect.Method;
import java.util.Properties;
public class SpringPropertyUtil implements ApplicationContextAware
{
private static Log log;
private static ApplicationContext applicationContext;
private static Properties properties;
private static AbstractApplicationContext abstractContext;
static {
SpringPropertyUtil.log = LogFactory.getLog(SpringPropertyUtil.class);
SpringPropertyUtil.applicationContext = null;
SpringPropertyUtil.properties = new Properties();
SpringPropertyUtil.abstractContext = null;
}
@Override
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {
if (SpringPropertyUtil.applicationContext == null) {
synchronized (SpringBeanUtil.class) {
if (SpringPropertyUtil.applicationContext == null) {
SpringPropertyUtil.applicationContext = applicationContext;
}
}
// monitorexit(SpringBeanUtil.class)
}
SpringPropertyUtil.abstractContext = (AbstractApplicationContext)applicationContext;
init();
}
private static void init() {
try {
final String[] postProcessorNames = SpringPropertyUtil.abstractContext.getBeanNamesForType(BeanFactoryPostProcessor.class, true, true);
String[] array;
for (int length = (array = postProcessorNames).length, i = 0; i < length; ++i) {
final String ppName = array[i];
final BeanFactoryPostProcessor beanProcessor = SpringPropertyUtil.abstractContext.getBean(ppName, BeanFactoryPostProcessor.class);
if (beanProcessor instanceof PropertyResourceConfigurer) {
final PropertyResourceConfigurer propertyResourceConfigurer = (PropertyResourceConfigurer)beanProcessor;
final Method mergeProperties = PropertiesLoaderSupport.class.getDeclaredMethod("mergeProperties", (Class<?>[])new Class[0]);
mergeProperties.setAccessible(true);
final Properties props = (Properties)mergeProperties.invoke(propertyResourceConfigurer, new Object[0]);
final Method convertProperties = PropertyResourceConfigurer.class.getDeclaredMethod("convertProperties", Properties.class);
convertProperties.setAccessible(true);
convertProperties.invoke(propertyResourceConfigurer, props);
SpringPropertyUtil.properties.putAll(props);
}
}
}
catch (Exception e) {
SpringPropertyUtil.log.error(e.getLocalizedMessage());
}
}
public static String getProperty(final String propertyName) {
return SpringPropertyUtil.properties.getProperty(propertyName);
}
}

104
src/main/java/com/zhichenhaixin/base/util/StringUtil.java

@ -0,0 +1,104 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import java.util.List;
import java.util.Map;
public class StringUtil
{
public static String toSelectStr(final List resultList, final String key, final String value) {
final StringBuilder selectStr = new StringBuilder();
for (final Object object : resultList) {
final Map _obj = (Map)object;
selectStr.append("<option value='" + _obj.get(key) + "'>" + _obj.get(value) + "</option>");
}
return selectStr.toString();
}
public static String toString(final Object object) {
if (object != null) {
return object.toString().trim();
}
return null;
}
public static String firstCharToLowerCase(String str) {
final Character firstChar = str.charAt(0);
final String tail = str.substring(1);
str = String.valueOf(Character.toLowerCase(firstChar)) + tail;
return str;
}
public static String firstCharToUpperCase(String str) {
final Character firstChar = str.charAt(0);
final String tail = str.substring(1);
str = String.valueOf(Character.toUpperCase(firstChar)) + tail;
return str;
}
public static boolean isBlank(final String str) {
return str == null || "".equals(str.trim());
}
public static boolean notBlank(final String str) {
return str != null && !"".equals(str.trim());
}
public static boolean notBlank(final String... strings) {
if (strings == null) {
return false;
}
for (final String str : strings) {
if (str == null || "".equals(str.trim())) {
return false;
}
}
return true;
}
public static boolean notNull(final Object... paras) {
if (paras == null) {
return false;
}
for (final Object obj : paras) {
if (obj == null) {
return false;
}
}
return true;
}
public static String nvl(final String string) {
return nvl(string, "");
}
public static String nvl(final Object o) {
return nvl(toString(o), "");
}
public static String nvl(final String string, final String string2) {
if (isBlank(string)) {
return string2;
}
return string;
}
public static String getIpToStr(final Object addressIp) {
final String ip = new StringBuilder().append(addressIp).toString();
return ip.substring(1, ip.length());
}
public static String defaultString(final String str) {
return (str == null) ? "" : str;
}
public static Object minusOne(String str) {
if (str != null && !"".equals(str)) {
str = str.substring(0, str.length() - 1);
}
return str;
}
}

115
src/main/java/com/zhichenhaixin/base/util/TcpUtil.java

@ -0,0 +1,115 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.alibaba.fastjson.JSON;
import com.zhichenhaixin.base.model.MatrixVo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
public class TcpUtil
{
private static final Log log;
private static final String ttsHost;
private static final int ttsPort;
private static final String bigScrHost;
private static final int bigScrPort;
static {
log = LogFactory.getLog(TcpUtil.class);
ttsHost = SpringPropertyUtil.getProperty("tts.host");
ttsPort = Integer.valueOf(SpringPropertyUtil.getProperty("tts.port"));
bigScrHost = SpringPropertyUtil.getProperty("big.scr.host");
bigScrPort = Integer.valueOf(SpringPropertyUtil.getProperty("big.scr.port"));
}
public static boolean send(final MatrixVo matrixVo) {
matrixVo.setHandle(1);
final String str = JSON.toJSONString(matrixVo);
Socket socket = null;
try {
socket = new Socket();
socket.connect(new InetSocketAddress(TcpUtil.bigScrHost, TcpUtil.bigScrPort), 200);
final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write(str);
out.flush();
out.close();
return true;
}
catch (Exception e) {
TcpUtil.log.error("===> \u5207\u6362\u5927\u5c4f\u5931\u8d25");
if (socket != null) {
try {
socket.close();
}
catch (IOException e2) {
TcpUtil.log.error("\u5173\u95ed\u6d41\u5f02\u5e38");
}
}
}
finally {
if (socket != null) {
try {
socket.close();
}
catch (IOException e2) {
TcpUtil.log.error("\u5173\u95ed\u6d41\u5f02\u5e38");
}
}
}
return false;
}
public static void playTts(String content) {
content = ((content == null) ? "" : content);
Socket socket = null;
try {
socket = new Socket();
socket.connect(new InetSocketAddress(TcpUtil.ttsHost, TcpUtil.ttsPort), 100);
final OutputStream os = socket.getOutputStream();
final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
bw.write(content);
bw.flush();
bw.close();
}
catch (Exception e) {
TcpUtil.log.error("-> TTS\u670d\u52a1\u5668\u672a\u5f00\u542f\u6216\u8005\u662f[ip: " + TcpUtil.ttsHost + " port: " + TcpUtil.ttsPort + "]\u9519\u8bef");
if (socket != null) {
try {
socket.close();
}
catch (IOException e2) {
TcpUtil.log.error("\u5173\u95ed\u6d41\u5f02\u5e38");
}
}
return;
}
finally {
if (socket != null) {
try {
socket.close();
}
catch (IOException e2) {
TcpUtil.log.error("\u5173\u95ed\u6d41\u5f02\u5e38");
}
}
}
if (socket != null) {
try {
socket.close();
}
catch (IOException e2) {
TcpUtil.log.error("\u5173\u95ed\u6d41\u5f02\u5e38");
}
}
}
}

65
src/main/java/com/zhichenhaixin/base/util/ZLibUtils.java

@ -0,0 +1,65 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.base.util;
import com.jcraft.jzlib.ZInputStream;
import com.jcraft.jzlib.ZOutputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class ZLibUtils
{
private static final Log log;
static {
log = LogFactory.getLog(ZLibUtils.class);
}
public static byte[] jzlib(final byte[] object) {
byte[] data = null;
try {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
final ZOutputStream zOut = new ZOutputStream(out, -1);
final DataOutputStream objOut = new DataOutputStream(zOut);
objOut.write(object);
objOut.flush();
zOut.close();
data = out.toByteArray();
out.close();
}
catch (IOException e) {
ZLibUtils.log.error("\u538b\u7f29\u6570\u636e\u5f02\u5e38\uff01" + e.getLocalizedMessage());
}
return data;
}
public static byte[] unjzlib(final byte[] object) {
byte[] data = null;
try {
final ByteArrayInputStream in = new ByteArrayInputStream(object);
final ZInputStream zIn = new ZInputStream(in);
final byte[] buf = new byte[1024];
int num = -1;
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((num = zIn.read(buf, 0, buf.length)) != -1) {
baos.write(buf, 0, num);
}
data = baos.toByteArray();
baos.flush();
baos.close();
zIn.close();
in.close();
}
catch (IOException e) {
ZLibUtils.log.error("\u89e3\u538b\u6570\u636e\u5f02\u5e38\uff01" + e.getLocalizedMessage());
}
return data;
}
}

71
src/main/java/com/zhichenhaixin/cache/util/AgilTrackEhcache.java

@ -0,0 +1,71 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.serializer.RadarTrackVo;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class AgilTrackEhcache
{
public static final String CACHE_NAME = "agilTrackVoCache";
public static void put(final RadarTrackVo radarTrackVo) {
final Cache cache = CacheUtil.getECache("agilTrackVoCache");
if (cache == null) {
return;
}
cache.put(new Element(radarTrackVo.getTrackNumber(), radarTrackVo));
}
public static List<RadarTrackVo> getAll() {
final Cache cache = CacheUtil.getECache("agilTrackVoCache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<RadarTrackVo> result = new ArrayList<RadarTrackVo>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((RadarTrackVo)element.getValue());
}
}
return result;
}
public static RadarTrackVo get(final int trackNum) {
final Cache cache = CacheUtil.getECache("agilTrackVoCache");
if (cache == null) {
return null;
}
final Element element = cache.get(trackNum);
if (element == null) {
return null;
}
return (RadarTrackVo)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("agilTrackVoCache");
if (cache == null) {
return;
}
cache.removeAll();
}
public static void remove(final int trackNum) {
final Cache cache = CacheUtil.getECache("agilTrackVoCache");
if (cache == null) {
return;
}
cache.remove(trackNum);
}
}

76
src/main/java/com/zhichenhaixin/cache/util/CtrlVoEhcache.java

@ -0,0 +1,76 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.proto.ZCHXFllow;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class CtrlVoEhcache
{
public static final String CACHE_NAME = "ctrlVoCache";
List<ZCHXFllow.CtrlVo> list;
public CtrlVoEhcache() {
this.list = new ArrayList<ZCHXFllow.CtrlVo>();
}
public static void put(final ZCHXFllow.CtrlVo vo) {
final Cache cache = CacheUtil.getECache("ctrlVoCache");
if (cache == null) {
return;
}
cache.put(new Element(vo.getTrackNumber(), vo));
}
public static void remove(final int trackNumber) {
final Cache cache = CacheUtil.getECache("ctrlVoCache");
if (cache == null) {
return;
}
cache.remove(trackNumber);
}
public static List<ZCHXFllow.CtrlVo> getAll() {
final Cache cache = CacheUtil.getECache("ctrlVoCache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<ZCHXFllow.CtrlVo> result = new ArrayList<ZCHXFllow.CtrlVo>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((ZCHXFllow.CtrlVo)element.getValue());
}
}
return result;
}
public static ZCHXFllow.CtrlVo get(final int trackNumber) {
final Cache cache = CacheUtil.getECache("ctrlVoCache");
if (cache == null) {
return null;
}
final Element element = cache.get(trackNumber);
if (element == null) {
return null;
}
return (ZCHXFllow.CtrlVo)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("ctrlVoCache");
if (cache == null) {
return;
}
cache.removeAll();
}
}

101
src/main/java/com/zhichenhaixin/cache/util/CustomFeatureEhcache.java

@ -0,0 +1,101 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.sys.model.CustomDefence;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class CustomFeatureEhcache
{
public static final String CACHE_NAME = "customFeatureEhcache";
public static void put(final CustomDefence customLayer) {
final Cache cache = CacheUtil.getECache("customFeatureEhcache");
if (cache == null) {
return;
}
cache.put(new Element(customLayer.getDefence_id(), customLayer));
}
public static CustomDefence isContainArea(final Point point) {
final Cache cache = CacheUtil.getECache("customFeatureEhcache");
if (cache == null) {
return null;
}
final List<String> keys = (List<String>)cache.getKeys();
for (int size = keys.size(), i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
final CustomDefence customLayer = (CustomDefence)element.getValue();
if (customLayer.getDefence_type() != 1) {
try {
final Geometry defence = new WKTReader().read(customLayer.getLon_lat());
if (defence.contains(point)) {
return customLayer;
}
}
catch (ParseException e) {
System.out.println(e.getMessage());
}
}
}
}
return null;
}
public static List<CustomDefence> getAll() {
final Cache cache = CacheUtil.getECache("customFeatureEhcache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<CustomDefence> result = new ArrayList<CustomDefence>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((CustomDefence)element.getValue());
}
}
return result;
}
public static CustomDefence get(final int defence_id) {
final Cache cache = CacheUtil.getECache("customFeatureEhcache");
if (cache == null) {
return null;
}
final Element element = cache.get(defence_id);
if (element == null) {
return null;
}
return (CustomDefence)element.getValue();
}
public static void remove(final int id) {
final Cache cache = CacheUtil.getECache("customFeatureEhcache");
if (cache == null) {
return;
}
cache.remove(id);
}
public static void clear() {
final Cache cache = CacheUtil.getECache("customFeatureEhcache");
if (cache == null) {
return;
}
cache.removeAll();
}
}

141
src/main/java/com/zhichenhaixin/cache/util/DefenceCacheUtil.java

@ -0,0 +1,141 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.DateUtil;
import com.zhichenhaixin.sys.model.CustomDefence;
import com.zhichenhaixin.sys.model.TimeSpanVo;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class DefenceCacheUtil
{
public static void saveDefenceCache(final List<CustomDefence> list) {
CustomFeatureEhcache.clear();
for (final CustomDefence cus2 : list) {
CustomFeatureEhcache.put(cus2);
}
}
public static boolean isSetDefence(final List<TimeSpanVo> list) {
if (list == null) {
return false;
}
for (final TimeSpanVo time : list) {
final String start = time.getStarttime();
final String cur = DateUtil.format(DateUtil.now(), "HH:mm");
final String end = time.getEndtime();
final int start2 = Integer.parseInt(start.replaceAll(":", ""));
final int cur2 = Integer.parseInt(cur.replaceAll(":", ""));
final int end2 = Integer.parseInt(end.replaceAll(":", ""));
if (start2 <= cur2 && cur2 <= end2) {
return true;
}
}
return false;
}
public static boolean judgeSetDefence(final List<TimeSpanVo> list) {
if (list != null) {
final Calendar calendar = Calendar.getInstance();
final Date date = new Date();
calendar.setTime(date);
final int dayOfWeek = calendar.get(7);
for (final TimeSpanVo time : list) {
if (switchTimeCycle(time, dayOfWeek, date)) {
return true;
}
}
}
return false;
}
public static boolean switchTimeCycle(final TimeSpanVo time, final int dayOfWeek, final Date date) {
final int timeCicle = time.getTime_cycle();
boolean result = false;
switch (timeCicle) {
case 1: {
if (dayOfWeek == 2) {
result = judgeTime(time, date);
break;
}
break;
}
case 2: {
if (dayOfWeek == 3) {
result = judgeTime(time, date);
break;
}
break;
}
case 3: {
if (dayOfWeek == 4) {
result = judgeTime(time, date);
break;
}
break;
}
case 4: {
if (dayOfWeek == 5) {
result = judgeTime(time, date);
break;
}
break;
}
case 5: {
if (dayOfWeek == 6) {
result = judgeTime(time, date);
break;
}
break;
}
case 6: {
if (dayOfWeek == 7) {
result = judgeTime(time, date);
break;
}
break;
}
case 7: {
if (dayOfWeek == 1) {
result = judgeTime(time, date);
break;
}
break;
}
case 8: {
if (dayOfWeek > 1 && dayOfWeek < 7) {
result = judgeTime(time, date);
break;
}
break;
}
case 9: {
if (dayOfWeek == 1 || dayOfWeek == 7) {
result = judgeTime(time, date);
break;
}
break;
}
case 10: {
result = judgeTime(time, date);
break;
}
}
return result;
}
public static boolean judgeTime(final TimeSpanVo timeSpanVo, final Date date) {
final String start = timeSpanVo.getStarttime();
final String cur = DateUtil.format(date, "HH:mm");
final String end = timeSpanVo.getEndtime();
final int start2 = Integer.parseInt(start.replaceAll(":", ""));
final int cur2 = Integer.parseInt(cur.replaceAll(":", ""));
final int end2 = Integer.parseInt(end.replaceAll(":", ""));
return start2 <= cur2 && cur2 <= end2;
}
}

89
src/main/java/com/zhichenhaixin/cache/util/GpsVoEhcache.java

@ -0,0 +1,89 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.proto.ZCHXGPS;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class GpsVoEhcache
{
public static final String CACHE_NAME = "gpsVoCache";
public static void put(final ZCHXGPS.GPSData vo) {
final Cache cache = CacheUtil.getECache("gpsVoCache");
if (cache == null) {
return;
}
cache.put(new Element(vo.getImei(), vo));
}
public static void remove(final String imei) {
final Cache cache = CacheUtil.getECache("gpsVoCache");
if (cache == null) {
return;
}
cache.remove(imei);
}
public static List<ZCHXGPS.GPSData> getAll() {
final Cache cache = CacheUtil.getECache("gpsVoCache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<ZCHXGPS.GPSData> result = new ArrayList<ZCHXGPS.GPSData>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((ZCHXGPS.GPSData)element.getValue());
}
}
return result;
}
public static ZCHXGPS.GPSData get(final String imei) {
final Cache cache = CacheUtil.getECache("gpsVoCache");
if (cache == null) {
return null;
}
final Element element = cache.get(imei);
if (element == null) {
return null;
}
return (ZCHXGPS.GPSData)element.getValue();
}
public static boolean get(final ZCHXGPS.GPSData vo) {
final Cache cache = CacheUtil.getECache("gpsVoCache");
if (cache == null) {
return false;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
for (int size = keys.size(), i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
final ZCHXGPS.GPSData gvo = (ZCHXGPS.GPSData)element.getValue();
if (gvo.getImei().equals(vo.getImei()) && gvo.getLon() == vo.getLon() && gvo.getLat() == vo.getLat()) {
return true;
}
}
}
return false;
}
public static void clear() {
final Cache cache = CacheUtil.getECache("gpsVoCache");
if (cache == null) {
return;
}
cache.removeAll();
}
}

78
src/main/java/com/zhichenhaixin/cache/util/NightModeEhcache.java

@ -0,0 +1,78 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.sys.model.NightModeVo;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class NightModeEhcache
{
public static final String CACHE_NAME = "nightModeCache";
public static void put(final NightModeVo vo) {
final Cache cache = CacheUtil.getECache("nightModeCache");
if (cache == null) {
return;
}
cache.put(new Element(vo.getId(), vo));
}
public static List<NightModeVo> getAll() {
final Cache cache = CacheUtil.getECache("nightModeCache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<NightModeVo> result = new ArrayList<NightModeVo>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((NightModeVo)element.getValue());
}
}
return result;
}
public static NightModeVo get(final int id) {
final Cache cache = CacheUtil.getECache("nightModeCache");
if (cache == null) {
return null;
}
final Element element = cache.get(id);
if (element == null) {
return null;
}
return (NightModeVo)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("nightModeCache");
if (cache == null) {
return;
}
cache.removeAll();
}
public static void remove(final int id) {
final Cache cache = CacheUtil.getECache("nightModeCache");
if (cache == null) {
return;
}
cache.remove(id);
}
public static void saveNightModeVoCache(final List<NightModeVo> list) {
clear();
for (final NightModeVo vo : list) {
put(vo);
}
}
}

71
src/main/java/com/zhichenhaixin/cache/util/RadarFalseAlarmEhcache.java

@ -0,0 +1,71 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.proto.ZCHXRadar;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class RadarFalseAlarmEhcache
{
public static final String CACHE_NAME = "radarFalseAlarmEhcache";
public static void put(final ZCHXRadar.RadarHistoryTrack vo) {
final Cache cache = CacheUtil.getECache("radarFalseAlarmEhcache");
if (cache == null) {
return;
}
cache.put(new Element(vo.getTrackNumber(), vo));
}
public static List<ZCHXRadar.RadarHistoryTrack> getAll() {
final Cache cache = CacheUtil.getECache("radarFalseAlarmEhcache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<ZCHXRadar.RadarHistoryTrack> result = new ArrayList<ZCHXRadar.RadarHistoryTrack>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((ZCHXRadar.RadarHistoryTrack)element.getValue());
}
}
return result;
}
public static ZCHXRadar.RadarHistoryTrack get(final int trackNum) {
final Cache cache = CacheUtil.getECache("radarFalseAlarmEhcache");
if (cache == null) {
return null;
}
final Element element = cache.get(trackNum);
if (element == null) {
return null;
}
return (ZCHXRadar.RadarHistoryTrack)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("radarFalseAlarmEhcache");
if (cache == null) {
return;
}
cache.removeAll();
}
public static void remove(final int trackNum) {
final Cache cache = CacheUtil.getECache("radarFalseAlarmEhcache");
if (cache == null) {
return;
}
cache.remove(trackNum);
}
}

78
src/main/java/com/zhichenhaixin/cache/util/SmuggleEhcache.java

@ -0,0 +1,78 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.sys.model.SmuggleVo;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class SmuggleEhcache
{
public static final String CACHE_NAME = "smuggleCache";
public static void put(final SmuggleVo vo) {
final Cache cache = CacheUtil.getECache("smuggleCache");
if (cache == null) {
return;
}
cache.put(new Element(vo.getId(), vo));
}
public static List<SmuggleVo> getAll() {
final Cache cache = CacheUtil.getECache("smuggleCache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<SmuggleVo> result = new ArrayList<SmuggleVo>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((SmuggleVo)element.getValue());
}
}
return result;
}
public static SmuggleVo get(final int id) {
final Cache cache = CacheUtil.getECache("smuggleCache");
if (cache == null) {
return null;
}
final Element element = cache.get(id);
if (element == null) {
return null;
}
return (SmuggleVo)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("smuggleCache");
if (cache == null) {
return;
}
cache.removeAll();
}
public static void remove(final int id) {
final Cache cache = CacheUtil.getECache("smuggleCache");
if (cache == null) {
return;
}
cache.remove(id);
}
public static void saveSmuggleVoCache(final List<SmuggleVo> list) {
clear();
for (final SmuggleVo vo : list) {
put(vo);
}
}
}

78
src/main/java/com/zhichenhaixin/cache/util/SurLineDataEhcache.java

@ -0,0 +1,78 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.sys.model.SurLineInfo;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class SurLineDataEhcache
{
public static final String CACHE_NAME = "surLineDataCache";
public static void put(final SurLineInfo vo) {
final Cache cache = CacheUtil.getECache("surLineDataCache");
if (cache == null) {
return;
}
cache.put(new Element(vo.getId(), vo));
}
public static List<SurLineInfo> getAll() {
final Cache cache = CacheUtil.getECache("surLineDataCache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<SurLineInfo> result = new ArrayList<SurLineInfo>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((SurLineInfo)element.getValue());
}
}
return result;
}
public static SurLineInfo get(final int id) {
final Cache cache = CacheUtil.getECache("surLineDataCache");
if (cache == null) {
return null;
}
final Element element = cache.get(id);
if (element == null) {
return null;
}
return (SurLineInfo)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("surLineDataCache");
if (cache == null) {
return;
}
cache.removeAll();
}
public static void remove(final int id) {
final Cache cache = CacheUtil.getECache("surLineDataCache");
if (cache == null) {
return;
}
cache.remove(id);
}
public static void saveSurLineDataCache(final List<SurLineInfo> list) {
clear();
for (final SurLineInfo vo : list) {
put(vo);
}
}
}

71
src/main/java/com/zhichenhaixin/cache/util/TrackAlarmEhcache.java

@ -0,0 +1,71 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class TrackAlarmEhcache
{
public static final String CACHE_NAME = "trackAlarmEhcache";
public static void put(final WarnInfoBean warnInfoBean) {
final Cache cache = CacheUtil.getECache("trackAlarmEhcache");
if (cache == null) {
return;
}
cache.put(new Element(String.valueOf(warnInfoBean.getWarnSiteType()) + warnInfoBean.getObject_id(), warnInfoBean));
}
public static void remove(final String ObjectID) {
final Cache cache = CacheUtil.getECache("trackAlarmEhcache");
if (cache == null) {
return;
}
cache.remove(ObjectID);
}
public static List<WarnInfoBean> getAll() {
final Cache cache = CacheUtil.getECache("trackAlarmEhcache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<WarnInfoBean> result = new ArrayList<WarnInfoBean>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((WarnInfoBean)element.getValue());
}
}
return result;
}
public static WarnInfoBean get(final String ObjectID) {
final Cache cache = CacheUtil.getECache("trackAlarmEhcache");
if (cache == null) {
return null;
}
final Element element = cache.get(ObjectID);
if (element == null) {
return null;
}
return (WarnInfoBean)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("trackAlarmEhcache");
if (cache == null) {
return;
}
cache.removeAll();
}
}

71
src/main/java/com/zhichenhaixin/cache/util/TrackCameraEhcache.java

@ -0,0 +1,71 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.sys.model.TrackCameraVo;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class TrackCameraEhcache
{
public static final String CACHE_NAME = "trackCameraEhcache";
public static void put(final TrackCameraVo trackCameraVo) {
final Cache cache = CacheUtil.getECache("trackCameraEhcache");
if (cache == null) {
return;
}
cache.put(new Element(trackCameraVo.getTargetId(), trackCameraVo));
}
public static void remove(final String ObjectID) {
final Cache cache = CacheUtil.getECache("trackCameraEhcache");
if (cache == null) {
return;
}
cache.remove(ObjectID);
}
public static List<TrackCameraVo> getAll() {
final Cache cache = CacheUtil.getECache("trackCameraEhcache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<TrackCameraVo> result = new ArrayList<TrackCameraVo>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((TrackCameraVo)element.getValue());
}
}
return result;
}
public static TrackCameraVo get(final String ObjectID) {
final Cache cache = CacheUtil.getECache("trackCameraEhcache");
if (cache == null) {
return null;
}
final Element element = cache.get(ObjectID);
if (element == null) {
return null;
}
return (TrackCameraVo)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("trackCameraEhcache");
if (cache == null) {
return;
}
cache.removeAll();
}
}

71
src/main/java/com/zhichenhaixin/cache/util/TrackPointEhcache.java

@ -0,0 +1,71 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import com.zhichenhaixin.proto.ZCHXRadar;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import java.util.ArrayList;
import java.util.List;
public class TrackPointEhcache
{
public static final String CACHE_NAME = "trackPointEhcache";
public static void put(final ZCHXRadar.TrackPoint point) {
final Cache cache = CacheUtil.getECache("trackPointEhcache");
if (cache == null) {
return;
}
cache.put(new Element(point.getTrackNumber(), point));
}
public static List<ZCHXRadar.TrackPoint> getAll() {
final Cache cache = CacheUtil.getECache("trackPointEhcache");
if (cache == null) {
return null;
}
final List<Integer> keys = (List<Integer>)cache.getKeys();
final int size = keys.size();
final List<ZCHXRadar.TrackPoint> result = new ArrayList<ZCHXRadar.TrackPoint>(size);
for (int i = 0; i < size; ++i) {
final Element element = cache.get(keys.get(i));
if (element != null) {
result.add((ZCHXRadar.TrackPoint)element.getValue());
}
}
return result;
}
public static ZCHXRadar.TrackPoint get(final int trackNum) {
final Cache cache = CacheUtil.getECache("trackPointEhcache");
if (cache == null) {
return null;
}
final Element element = cache.get(trackNum);
if (element == null) {
return null;
}
return (ZCHXRadar.TrackPoint)element.getValue();
}
public static void clear() {
final Cache cache = CacheUtil.getECache("trackPointEhcache");
if (cache == null) {
return;
}
cache.removeAll();
}
public static void remove(final int trackNum) {
final Cache cache = CacheUtil.getECache("trackPointEhcache");
if (cache == null) {
return;
}
cache.remove(trackNum);
}
}

42
src/main/java/com/zhichenhaixin/cache/util/WarnAlarmCountEhcache.java

@ -0,0 +1,42 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.cache.util;
import com.zhichenhaixin.base.util.CacheUtil;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
public class WarnAlarmCountEhcache
{
public static final String CACHE_NAME = "warnAlarmCountCache";
public static void put(final int count) {
final Cache cache = CacheUtil.getECache("warnAlarmCountCache");
if (cache == null) {
return;
}
cache.put(new Element("warn_alarm_count", count));
}
public static int get() {
final Cache cache = CacheUtil.getECache("warnAlarmCountCache");
if (cache == null) {
return 0;
}
final Element element = cache.get("warn_alarm_count");
if (element == null) {
return 0;
}
return (int)element.getValue();
}
public static void remove() {
final Cache cache = CacheUtil.getECache("warnAlarmCountCache");
if (cache == null) {
return;
}
cache.remove("warn_alarm_count");
}
}

99
src/main/java/com/zhichenhaixin/control/model/ReqPacket.java

@ -0,0 +1,99 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.control.model;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ReqPacket
{
private static Log log;
private byte[] byte_content;
private String mark_hex;
static {
ReqPacket.log = LogFactory.getLog(ReqPacket.class);
}
public ReqPacket() {
this.mark_hex = "aaaaaaaa";
}
public void setMark_hex(final String mark_hex) {
this.mark_hex = mark_hex;
}
public void setByte_content(final byte[] byte_content) {
this.byte_content = byte_content;
}
public String switchStr(String hex) {
switch (hex.length()) {
case 1: {
hex = "0000000" + hex;
break;
}
case 2: {
hex = "000000" + hex;
break;
}
case 3: {
hex = "00000" + hex;
break;
}
case 4: {
hex = "0000" + hex;
break;
}
case 5: {
hex = "000" + hex;
break;
}
case 6: {
hex = "00" + hex;
break;
}
case 7: {
hex = "0" + hex;
break;
}
}
return hex;
}
public byte[] getByteStream() {
final int len = this.byte_content.length;
byte[] soc = new byte[8 + len];
try {
int index = 0;
int num = 0;
for (int i = 0; i < 4; ++i) {
final String mark_hex = this.mark_hex;
final int beginIndex = num;
num += 2;
final String str = mark_hex.substring(beginIndex, num);
soc[index++] = (byte)Integer.parseInt(str, 16);
}
String hex = Integer.toHexString(len);
hex = this.switchStr(hex);
num = 0;
for (int j = 0; j < 4; ++j) {
final String s = hex;
final int beginIndex2 = num;
num += 2;
final String str2 = s.substring(beginIndex2, num);
soc[index++] = (byte)Integer.parseInt(str2, 16);
}
for (int j = 0; j < len; ++j) {
soc[index++] = this.byte_content[j];
}
}
catch (Exception e) {
soc = new byte[] { 0 };
ReqPacket.log.error("\u7ed9\u63a7\u5236\u5668\u53d1\u9001\u6570\u636e\u7684\u6570\u636e\u5305\u5f02\u5e38\uff01" + e.getMessage());
}
return soc;
}
}

100
src/main/java/com/zhichenhaixin/control/model/ResPacket.java

@ -0,0 +1,100 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.control.model;
import org.apache.commons.lang.StringUtils;
public class ResPacket implements Cloneable
{
private static ResPacket BaseCredit;
private byte[] all_pack_bytes;
static {
ResPacket.BaseCredit = new ResPacket();
}
public static ResPacket getClone() {
try {
return (ResPacket)ResPacket.BaseCredit.clone();
}
catch (CloneNotSupportedException e) {
return new ResPacket();
}
}
public void setAll_pack_bytes(final byte[] all_pack_bytes) {
this.all_pack_bytes = all_pack_bytes;
}
public static int byte2Int(final byte[] bytes, final int index) {
return bytes[index];
}
public static String byteToHex(final byte[] bytes, final int i) {
String hexString = Integer.toHexString(byte2Int(bytes, i));
if (hexString.length() == 1) {
hexString = "0" + hexString;
}
if (hexString.length() > 2) {
hexString = StringUtils.right(hexString, 2);
}
return hexString;
}
public static String readBy2Byte(final byte[] bytes, final int start, final int length) {
if (bytes.length - start < length) {
return null;
}
byte[] bytes2 = null;
try {
bytes2 = new byte[length];
final int end = start + length;
int num = 0;
for (int i = start; i < end; ++i) {
bytes2[num] = bytes[i];
++num;
}
}
catch (Exception e) {
e.printStackTrace();
}
return (bytes2 == null) ? "" : new String(bytes2);
}
public static byte[] readContentByte(final byte[] bytes, final int start, final int length) {
final byte[] bytes2 = new byte[length];
try {
System.arraycopy(bytes, start, bytes2, 0, length);
}
catch (Exception e) {
System.out.println("\u6570\u636e\u5305\u5185\u5bb9\u4e0d\u591f");
}
return bytes2;
}
public String getMark() {
String mark = "";
for (int i = 0; i < 4; ++i) {
mark = String.valueOf(mark) + byteToHex(this.all_pack_bytes, i);
}
return mark;
}
public int getContentLen() {
String len = "";
for (int i = 4; i < 8; ++i) {
len = String.valueOf(len) + byteToHex(this.all_pack_bytes, i);
}
return Integer.parseInt(len, 16);
}
public String getContent() {
return readBy2Byte(this.all_pack_bytes, 8, this.getContentLen());
}
public byte[] getContentBytes() {
return readContentByte(this.all_pack_bytes, 8, this.getContentLen());
}
}

192
src/main/java/com/zhichenhaixin/control/model/VideoWarnInfoHandle.java

@ -0,0 +1,192 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.control.model;
import com.alibaba.fastjson.JSONObject;
import com.google.protobuf.InvalidProtocolBufferException;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.zhichenhaixin.base.constant.GlobalVariable;
import com.zhichenhaixin.fusedata.MongoUtil;
import com.zhichenhaixin.proto.ZCHXVideoWarn;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import org.apache.log4j.Logger;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class VideoWarnInfoHandle
{
private static Logger log;
static {
VideoWarnInfoHandle.log = Logger.getLogger(VideoWarnInfoHandle.class);
}
public static void saveVideoWarnTargetInfo(final ZCHXVideoWarn.VideoWarnTargetInfo.Builder info) {
final DBObject dbTrack = MongoUtil.getInstance().selectByPrimaryKey("VideoWarnTarget_Track", info.getTargetId());
ZCHXVideoWarn.RectInfos.Builder infos = null;
if (dbTrack != null) {
final byte[] trackData = (byte[])dbTrack.get("datas");
try {
infos = ZCHXVideoWarn.RectInfos.parseFrom(trackData).toBuilder();
info.setRects(infos);
}
catch (InvalidProtocolBufferException e) {
VideoWarnInfoHandle.log.info(e.getMessage());
}
}
saveTargetToMongoDB("VideoWarnTarget_Track", info, infos);
}
public static ZCHXVideoWarn.VideoWarnTargetInfo.Builder getVideoWarnTargetInfo(final String object_id) {
final DBObject dbTrack = MongoUtil.getInstance().selectByPrimaryKey("VideoWarnTarget_Track", object_id);
ZCHXVideoWarn.VideoWarnTargetInfo.Builder infoss = null;
ZCHXVideoWarn.RectInfos.Builder infos = null;
if (dbTrack != null) {
final byte[] trackDatas = (byte[])dbTrack.get("datas");
final byte[] trackData = (byte[])dbTrack.get("data");
try {
infos = ZCHXVideoWarn.RectInfos.parseFrom(trackDatas).toBuilder();
infoss = ZCHXVideoWarn.VideoWarnTargetInfo.parseFrom(trackData).toBuilder();
infoss.setRects(infos);
}
catch (InvalidProtocolBufferException e) {
VideoWarnInfoHandle.log.info(e.getMessage());
}
}
return infoss;
}
public static void deleteVideoWarnTargetInfo(final String object_id) {
MongoUtil.getInstance().deleteByPrimaryKey("VideoWarnTarget_Track", object_id);
}
public static void saveVideoWarnInfo(final ZCHXVideoWarn.VideoWarnInfo.Builder info) {
final BasicDBObject document = new BasicDBObject();
document.put("_id", info.getTargetId());
document.put("data", info.build().toByteArray());
document.put("time", System.currentTimeMillis());
MongoUtil.getInstance().saveVideoWarnInfo(document);
}
public static void saveVideoWarnInfos(final ZCHXVideoWarn.VideoWarnInfo.Builder info) {
final BasicDBObject document = new BasicDBObject();
document.put("_id", info.getTransactionId());
document.put("data", info.build().toByteArray());
document.put("time", System.currentTimeMillis());
MongoUtil.getInstance().saveVideoWarnInfos(document);
}
public static ZCHXVideoWarn.VideoWarnInfo.Builder getVideoWarnInfo(final String object_id) {
final DBObject dbTrack = MongoUtil.getInstance().selectByPrimaryKey("VideoWarn_Track", object_id);
ZCHXVideoWarn.VideoWarnInfo.Builder infos = null;
if (dbTrack != null) {
final byte[] trackData = (byte[])dbTrack.get("data");
try {
infos = ZCHXVideoWarn.VideoWarnInfo.parseFrom(trackData).toBuilder();
}
catch (InvalidProtocolBufferException e) {
VideoWarnInfoHandle.log.info(e.getMessage());
}
}
return infos;
}
public static ZCHXVideoWarn.VideoWarnInfo.Builder getVideoWarnInfos(final String session_id) {
final DBObject dbTrack = MongoUtil.getInstance().selectByPrimaryKey("VideoWarns_Track", session_id);
ZCHXVideoWarn.VideoWarnInfo.Builder infos = null;
if (dbTrack != null) {
final byte[] trackData = (byte[])dbTrack.get("data");
try {
infos = ZCHXVideoWarn.VideoWarnInfo.parseFrom(trackData).toBuilder();
}
catch (InvalidProtocolBufferException e) {
VideoWarnInfoHandle.log.info(e.getMessage());
}
}
return infos;
}
public static void deleteVideoWarnInfo(final String object_id) {
MongoUtil.getInstance().deleteByPrimaryKey("VideoWarn_Track", object_id);
}
public static void deleteVideoWarnInfos(final String session_id) {
MongoUtil.getInstance().deleteByPrimaryKey("VideoWarns_Track", session_id);
}
public static void saveTargetToMongoDB(final String name, final ZCHXVideoWarn.VideoWarnTargetInfo.Builder info, ZCHXVideoWarn.RectInfos.Builder infos) {
final ZCHXVideoWarn.RectInfo.Builder builder = ZCHXVideoWarn.RectInfo.newBuilder();
builder.setTime(info.getAlarmTime());
builder.setLat(info.getAlarmLat());
builder.setLon(info.getAlarmLon());
builder.setX((float)info.getTargetX());
builder.setY((float)info.getTargetY());
builder.setW((float)info.getTargetWidth());
builder.setH((float)info.getTargetHeight());
if (infos == null) {
infos = ZCHXVideoWarn.RectInfos.newBuilder();
}
infos.addRect(builder);
info.setAlarmLevel(1);
final BasicDBObject document = new BasicDBObject();
document.put("_id", info.getTargetId());
document.put("data", info.build().toByteArray());
document.put("datas", infos.build().toByteArray());
document.put("time", System.currentTimeMillis());
MongoUtil.getInstance().saveVideoWarnTargetInfo(document);
}
public static WarnInfoBean covertWarnInfoBean(final ZCHXVideoWarn.VideoWarnInfo info) {
final WarnInfoBean aInfo = new WarnInfoBean();
aInfo.setId(info.getAlarmId());
aInfo.setAlarm_type(String.valueOf(info.getAlarmType()));
aInfo.setAlarm_level(String.valueOf(info.getAlarmLevel()));
aInfo.setAlarm_source("1");
aInfo.setBegintime(Integer.valueOf(String.valueOf(info.getAlarmTime()).substring(0, 10)));
aInfo.setEndtime(Integer.valueOf(String.valueOf(System.currentTimeMillis()).substring(0, 10)));
aInfo.setY(info.getAlarmLat());
aInfo.setX(info.getAlarmLon());
aInfo.setAlarm_site(info.getAlarmPlace());
aInfo.setAlarm_status("3");
aInfo.setCamera_id(String.valueOf(info.getCameraId()));
aInfo.setObject_id(info.getTargetId());
aInfo.setObject_type(String.valueOf(GlobalVariable.getRongkeType(info.getTargetType())));
aInfo.setCreate_time(new Timestamp(System.currentTimeMillis()));
aInfo.setAlarm_site_no(String.valueOf(info.getCameraId()));
aInfo.setParam(null);
return aInfo;
}
public static WarnInfoBean covertWarnInfoBean(final ZCHXVideoWarn.VideoWarnTargetInfo info) {
final WarnInfoBean aInfo = new WarnInfoBean();
aInfo.setEndtime(Integer.valueOf(String.valueOf(info.getAlarmTime()).substring(0, 10)));
final ZCHXVideoWarn.RectInfos rect = info.getRects();
aInfo.setParam(listToParam(rect.getRectList()));
return aInfo;
}
private static String listToParam(final List<ZCHXVideoWarn.RectInfo> list) {
final List<Map<String, Object>> themap = new ArrayList<Map<String, Object>>();
for (final ZCHXVideoWarn.RectInfo info : list) {
final Map<String, Object> map = new HashMap<String, Object>();
map.put("Time", info.getTime());
map.put("Lat", info.getLat());
map.put("Lon", info.getLon());
map.put("X", info.getX());
map.put("Y", info.getY());
map.put("W", info.getW());
map.put("H", info.getH());
themap.add(map);
}
final JSONObject jsonObject = new JSONObject();
jsonObject.put("RectList", themap);
return jsonObject.toJSONString();
}
}

24
src/main/java/com/zhichenhaixin/factory/DefaultCacheDecoratorFactory.java

@ -0,0 +1,24 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.factory;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.constructs.CacheDecoratorFactory;
import net.sf.ehcache.constructs.blocking.BlockingCache;
import java.util.Properties;
public class DefaultCacheDecoratorFactory
extends CacheDecoratorFactory {
@Override
public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
return new BlockingCache(cache);
}
@Override
public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
return new BlockingCache(cache);
}
}

202
src/main/java/com/zhichenhaixin/fusedata/CopyOfFuseRadarThread.java

@ -0,0 +1,202 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhichenhaixin.base.util.DistanceUtil;
import com.zhichenhaixin.base.util.SpringPropertyUtil;
import com.zhichenhaixin.cache.util.AgilTrackEhcache;
import com.zhichenhaixin.cache.util.TrackPointEhcache;
import com.zhichenhaixin.proto.ZCHXRadar;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.text.SimpleDateFormat;
import java.util.*;
public class CopyOfFuseRadarThread extends Thread
{
private static Log log;
private static float belongLimit;
private static double distance;
private static double sog;
private static double cog;
private static float varaince_dis;
private static float varaince_cog;
private static float varaince_sog;
private static final long FUSE_TIME_SPAN;
private static int timeSpan;
private static float t1;
private static float t2;
private static float t3;
private static Map<String, Float> varianceMap;
private static float[] elemWight;
private static SimpleDateFormat fmt;
private static String RADAR_TABLE;
private static final String DISTANCE = "distance";
private static final String COG = "cog";
private static final String SOG = "sog";
static {
CopyOfFuseRadarThread.log = LogFactory.getLog(CopyOfFuseRadarThread.class);
CopyOfFuseRadarThread.belongLimit = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.belongLimit"));
CopyOfFuseRadarThread.distance = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.radar.distance"));
CopyOfFuseRadarThread.sog = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.radar.sog"));
CopyOfFuseRadarThread.cog = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.radar.cog"));
CopyOfFuseRadarThread.varaince_dis = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.varaince_dis"));
CopyOfFuseRadarThread.varaince_cog = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.varaince_cog"));
CopyOfFuseRadarThread.varaince_sog = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.varaince_sog"));
FUSE_TIME_SPAN = Long.parseLong(SpringPropertyUtil.getProperty("fuse.radar.time.span"));
CopyOfFuseRadarThread.timeSpan = Integer.parseInt(SpringPropertyUtil.getProperty("fuse.radar.time"));
CopyOfFuseRadarThread.t1 = 0.001f;
CopyOfFuseRadarThread.t2 = 0.1f;
CopyOfFuseRadarThread.t3 = 0.1f;
CopyOfFuseRadarThread.varianceMap = setVarianceMap();
CopyOfFuseRadarThread.elemWight = setElemWight();
CopyOfFuseRadarThread.fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
CopyOfFuseRadarThread.RADAR_TABLE = "radar";
}
@Override
public synchronized void start() {
super.start();
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
this.handleFuseRadar();
Thread.sleep(1000L);
}
catch (Exception e) {
CopyOfFuseRadarThread.log.error("\u5904\u7406\u591a\u96f7\u8fbe\u878d\u5408\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
}
public void handleFuseRadar() throws InvalidProtocolBufferException {
final long newTime = MongoUtil.getInstance().getMaxUtc(CopyOfFuseRadarThread.RADAR_TABLE);
final String endTime = CopyOfFuseRadarThread.fmt.format(new Date(newTime));
final String startTime = CopyOfFuseRadarThread.fmt.format(new Date(newTime - CopyOfFuseRadarThread.timeSpan));
final List<EntityVo> radarList = MongoUtil.getInstance().getDataByTime(CopyOfFuseRadarThread.RADAR_TABLE, startTime, endTime);
for (final EntityVo vo : radarList) {
for (final EntityVo vo2 : radarList) {
final String radarType1 = vo.getNumber().substring(0, 1);
final String radarType2 = vo2.getNumber().substring(0, 1);
final ZCHXRadar.TrackPoint tpoint = TrackPointEhcache.get(Integer.valueOf(vo.getNumber()));
final ZCHXRadar.TrackPoint tpoint2 = TrackPointEhcache.get(Integer.valueOf(vo2.getNumber()));
if (!radarType1.equals(radarType2) && tpoint != null && tpoint2 != null) {
final double shipDistance = DistanceUtil.getDistance(vo.getLat(), vo.getLon(), vo2.getLat(), vo2.getLon());
final double gapCog = Math.abs(vo.getCog() - vo2.getCog());
final double gapSog = Math.abs(vo.getSog() - vo2.getSog());
if (shipDistance >= CopyOfFuseRadarThread.distance || gapSog >= CopyOfFuseRadarThread.sog || gapCog >= CopyOfFuseRadarThread.cog) {
continue;
}
final float belong = calculateFuseDgr(vo.getNumber(), vo2.getNumber());
if (CopyOfFuseRadarThread.belongLimit >= belong) {
continue;
}
TrackPointEhcache.remove(Integer.valueOf(vo2.getNumber()));
AgilTrackEhcache.remove(Integer.valueOf(vo2.getNumber()));
CopyOfFuseRadarThread.log.info(String.valueOf(vo.getNumber()) + "\u548c" + vo2.getNumber() + "\u662f\u540c\u4e00\u4e2a\u76ee\u6807\uff0c\u4fdd\u7559" + vo.getNumber());
}
}
}
}
public static Map<String, Float> setVarianceMap() {
final Map<String, Float> varianceMap = new HashMap<String, Float>();
varianceMap.put("distance", CopyOfFuseRadarThread.varaince_dis);
varianceMap.put("cog", CopyOfFuseRadarThread.varaince_cog);
varianceMap.put("sog", CopyOfFuseRadarThread.varaince_sog);
return varianceMap;
}
public static float[] setElemWight() {
final float[] elemWight = { 0.45f, 0.25f, 0.3f };
return elemWight;
}
public static float cutSingleBln(final EntityVo radarCalcul1, final EntityVo radarCalcul2, final Map<String, Float> varianceMap) {
final float dataDistance = (float)DistanceUtil.getDistance(radarCalcul1.getLat(), radarCalcul1.getLon(), radarCalcul2.getLat(), radarCalcul2.getLon());
final float dataCog = (float)Math.abs(radarCalcul1.getCog() - radarCalcul2.getCog());
final float dataSog = (float)Math.abs(radarCalcul1.getSog() - radarCalcul2.getSog());
final float distanceBln = (float)Math.exp(-CopyOfFuseRadarThread.t1 * (Math.pow(dataDistance, 2.0) / varianceMap.get("distance")));
final float cogBln = (float)Math.exp(-CopyOfFuseRadarThread.t2 * (Math.pow(dataCog, 2.0) / varianceMap.get("cog")));
final float sogBln = (float)Math.exp(-CopyOfFuseRadarThread.t3 * (Math.pow(dataSog, 2.0) / varianceMap.get("sog")));
final float belong = CopyOfFuseRadarThread.elemWight[0] * distanceBln + CopyOfFuseRadarThread.elemWight[1] * cogBln + CopyOfFuseRadarThread.elemWight[2] * sogBln;
return belong;
}
public static float calculateFuseDgr(final String radarCalculId1, final String radarCalculId2) throws InvalidProtocolBufferException {
float avgBelong = 0.0f;
final LocusVo radarLocus1 = MongoUtil.getInstance().query_radarLocus_ById(radarCalculId1);
final LocusVo radarLocus2 = MongoUtil.getInstance().query_radarLocus_ById(radarCalculId2);
final byte[] radarLocusData1 = radarLocus1.getData();
final byte[] radarLocusData2 = radarLocus2.getData();
if (radarLocusData1 != null && radarLocusData2 != null) {
final ZCHXRadar.RadarHistoryTracks radarLocusList1 = ZCHXRadar.RadarHistoryTracks.parseFrom(radarLocusData1);
final ZCHXRadar.RadarHistoryTracks radarLocusList2 = ZCHXRadar.RadarHistoryTracks.parseFrom(radarLocusData2);
final Map<String, List<EntityVo>> syncMap = syncRadarData(radarLocusList1, radarLocusList2);
final List<EntityVo> radarList1 = syncMap.get("1");
final List<EntityVo> radarList2 = syncMap.get("2");
if (radarList1.size() > 3) {
float belongSum = 0.0f;
final int radarSize1 = radarList1.size();
final int radarSize2 = radarList1.size();
final int listSize = (radarSize1 < radarSize2) ? radarSize1 : radarSize2;
for (int i = 0; i < listSize; ++i) {
final float belong = cutSingleBln(radarList1.get(i), radarList2.get(i), CopyOfFuseRadarThread.varianceMap);
belongSum += belong;
}
avgBelong = belongSum / listSize;
}
}
return avgBelong;
}
public static Map<String, List<EntityVo>> syncRadarData(final ZCHXRadar.RadarHistoryTracks radarLocusList1, final ZCHXRadar.RadarHistoryTracks radarLocusList2) {
final Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
final List<ZCHXRadar.RadarHistoryTrack> radarTrackList1 = radarLocusList1.getTracksList();
final List<ZCHXRadar.RadarHistoryTrack> radarTrackList2 = radarLocusList2.getTracksList();
final List<EntityVo> radarList1 = new ArrayList<EntityVo>();
final List<EntityVo> radarList2 = new ArrayList<EntityVo>();
final long endTime = System.currentTimeMillis() - CopyOfFuseRadarThread.FUSE_TIME_SPAN;
int size = radarTrackList1.size();
for (int i = size - 1; i >= 0; --i) {
final ZCHXRadar.RadarHistoryTrack radarTrack = radarTrackList1.get(i);
if (radarTrack.getUTC() < endTime) {
break;
}
final EntityVo radarVo = new EntityVo();
radarVo.setNumber(String.valueOf(radarTrack.getTrackNumber()));
radarVo.setLon(radarTrack.getWgs84PosLong());
radarVo.setLat(radarTrack.getWgs84PosLat());
radarVo.setUtc(radarTrack.getUTC());
radarVo.setSog(radarTrack.getSog());
radarVo.setCog(radarTrack.getCog());
radarList1.add(radarVo);
}
resultMap.put("1", radarList1);
size = radarTrackList2.size();
for (int i = size - 1; i >= 0; --i) {
final ZCHXRadar.RadarHistoryTrack radarTrack = radarTrackList2.get(i);
if (radarTrack.getUTC() < endTime) {
break;
}
final EntityVo radarVo = new EntityVo();
radarVo.setNumber(String.valueOf(radarTrack.getTrackNumber()));
radarVo.setLon(radarTrack.getWgs84PosLong());
radarVo.setLat(radarTrack.getWgs84PosLat());
radarVo.setUtc(radarTrack.getUTC());
radarVo.setSog(radarTrack.getSog());
radarVo.setCog(radarTrack.getCog());
radarList2.add(radarVo);
}
resultMap.put("2", radarList2);
return resultMap;
}
}

107
src/main/java/com/zhichenhaixin/fusedata/EntityVo.java

@ -0,0 +1,107 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import com.mongodb.ReflectionDBObject;
public class EntityVo extends ReflectionDBObject implements Cloneable
{
private String _id;
private String number;
private Double lon;
private Double lat;
private String time;
private long utc;
private long space_time;
private Double sog;
private Double cog;
private static EntityVo BaseCredit;
static {
EntityVo.BaseCredit = new EntityVo();
}
public static EntityVo getClone() {
try {
return (EntityVo)EntityVo.BaseCredit.clone();
}
catch (CloneNotSupportedException e) {
return new EntityVo();
}
}
public Double getLon() {
return this.lon;
}
public void setLon(final Double lon) {
this.lon = lon;
}
public Double getLat() {
return this.lat;
}
public void setLat(final Double lat) {
this.lat = lat;
}
public String getTime() {
return this.time;
}
public void setTime(final String time) {
this.time = time;
}
public long getUtc() {
return this.utc;
}
public void setUtc(final long utc) {
this.utc = utc;
}
public long getSpace_time() {
return this.space_time;
}
public void setSpace_time(final long space_time) {
this.space_time = space_time;
}
@Override
public String get_id() {
return this._id;
}
public void set_id(final String _id) {
this._id = _id;
}
public Double getSog() {
return this.sog;
}
public void setSog(final Double sog) {
this.sog = sog;
}
public Double getCog() {
return this.cog;
}
public void setCog(final Double cog) {
this.cog = cog;
}
public String getNumber() {
return this.number;
}
public void setNumber(final String number) {
this.number = number;
}
}

66
src/main/java/com/zhichenhaixin/fusedata/FuseDataThread.java

@ -0,0 +1,66 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.List;
public class FuseDataThread extends Thread
{
private static Log log;
private String address;
private Integer port;
static {
FuseDataThread.log = LogFactory.getLog(FuseDataThread.class);
}
public String getAddress() {
return this.address;
}
public void setAddress(final String address) {
this.address = address;
}
public Integer getPort() {
return this.port;
}
public void setPort(final Integer port) {
this.port = port;
}
public FuseDataThread() {
}
public FuseDataThread(final String address, final Integer port) {
this.address = address;
this.port = port;
}
@Override
public synchronized void start() {
super.start();
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
final List<FuseVo> fuseList = FuseDataUtil.fuseData();
if (fuseList.size() > 0) {
FuseDataUtil.paresFuseData(fuseList);
}
Thread.sleep(2000L);
}
catch (Exception e) {
FuseDataThread.log.error("AIS\u548c\u96f7\u8fbe\u878d\u5408\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
}
}

415
src/main/java/com/zhichenhaixin/fusedata/FuseDataUtil.java

@ -0,0 +1,415 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhichenhaixin.base.util.SpringPropertyUtil;
import com.zhichenhaixin.proto.ZCHXAISVessel;
import com.zhichenhaixin.proto.ZCHXRadar;
import com.zhichenhaixin.thread.ZMQServerDyData;
import java.text.SimpleDateFormat;
import java.util.*;
public class FuseDataUtil
{
private static double RADIUS;
private static double distance;
private static double sog;
private static float varaince_dis;
private static float varaince_cog;
private static float varaince_sog;
private static Map<String, Float> varianceMap;
private static float[] elemWight;
private static double cog;
static SimpleDateFormat fmt;
private static float t1;
private static float t2;
private static float t3;
private static float belongLimit;
private static float aisWight;
private static int timeSpan;
private static final long FUSE_TIME_SPAN;
private static String RADAR_TABLE;
private static String AIS_TABLE;
private static final String DISTANCE = "distance";
private static final String COG = "cog";
private static final String SOG = "sog";
private static String time;
private static final String SIGN;
static {
FuseDataUtil.RADIUS = Double.parseDouble(SpringPropertyUtil.getProperty("EARTH_RADIUS"));
FuseDataUtil.distance = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.distance"));
FuseDataUtil.sog = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.sog"));
FuseDataUtil.varaince_dis = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.varaince_dis"));
FuseDataUtil.varaince_cog = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.varaince_cog"));
FuseDataUtil.varaince_sog = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.varaince_sog"));
FuseDataUtil.varianceMap = setVarianceMap();
FuseDataUtil.elemWight = setElemWight();
FuseDataUtil.cog = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.cog"));
FuseDataUtil.fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
FuseDataUtil.t1 = 0.001f;
FuseDataUtil.t2 = 0.1f;
FuseDataUtil.t3 = 0.1f;
FuseDataUtil.belongLimit = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.belongLimit"));
FuseDataUtil.aisWight = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.aisWight"));
FuseDataUtil.timeSpan = Integer.parseInt(SpringPropertyUtil.getProperty("fuse.time"));
FUSE_TIME_SPAN = Long.parseLong(SpringPropertyUtil.getProperty("FUSE_TIME_SPAN"));
FuseDataUtil.RADAR_TABLE = "radar";
FuseDataUtil.AIS_TABLE = "ais";
FuseDataUtil.time = "";
SIGN = SpringPropertyUtil.getProperty("fuse.topic");
}
public static List<FuseVo> fuseData() {
final List<FuseVo> fuseList = new ArrayList<FuseVo>();
final long newTime = MongoUtil.getInstance().getMaxUtc(FuseDataUtil.RADAR_TABLE);
final String endTime = FuseDataUtil.fmt.format(new Date(newTime));
final String startTime = FuseDataUtil.fmt.format(new Date(newTime - FuseDataUtil.timeSpan));
final List<EntityVo> radarList = MongoUtil.getInstance().getDataByTime(FuseDataUtil.RADAR_TABLE, startTime, endTime);
final List<EntityVo> aisList = MongoUtil.getInstance().getDataByTime(FuseDataUtil.AIS_TABLE, startTime, endTime);
if (radarList.size() > 0 && aisList.size() > 0) {
float belong = 0.0f;
for (final EntityVo radar : radarList) {
for (final EntityVo aisInfo : aisList) {
final double shipDistance = getDistance(radar.getLon(), radar.getLat(), aisInfo.getLon(), aisInfo.getLat());
final double gapCog = Math.abs(radar.getCog() - aisInfo.getCog());
final double gapSog = Math.abs(radar.getSog() - aisInfo.getSog());
if (shipDistance < FuseDataUtil.distance && gapSog < FuseDataUtil.sog && gapCog < FuseDataUtil.cog) {
belong = calculateFuseDgr(radar.getNumber(), aisInfo.getNumber());
if (FuseDataUtil.belongLimit >= belong) {
continue;
}
final FuseVo fuseVo = new FuseVo();
fuseVo.setAisId(aisInfo.getNumber());
fuseVo.setRadarId(radar.getNumber());
fuseList.add(fuseVo);
}
}
}
}
return fuseList;
}
public static float calculateFuseDgr(final String radarId, final String aisId) {
float avgBelong = 0.0f;
final LocusVo radarLocus = MongoUtil.getInstance().query_radarLocus_ById(radarId);
final LocusVo aisLocus = MongoUtil.getInstance().query_aisLocus_ById(aisId);
final byte[] radarLocusData = radarLocus.getData();
final byte[] aisLocusData = aisLocus.getData();
if (aisLocusData != null && radarLocusData != null) {
ZCHXRadar.RadarHistoryTracks radarLocusList = null;
ZCHXAISVessel.AISHistoryTracks aisLocusList = null;
try {
radarLocusList = ZCHXRadar.RadarHistoryTracks.parseFrom(radarLocusData);
aisLocusList = ZCHXAISVessel.AISHistoryTracks.parseFrom(aisLocusData);
}
catch (InvalidProtocolBufferException e) {
System.out.println(e.getLocalizedMessage());
}
final Map<String, List<EntityVo>> syncMap = syncRadarAndAisData(radarLocusList, aisLocusList, radarId, aisId);
final List<EntityVo> aisList = syncMap.get(FuseDataUtil.AIS_TABLE);
final List<EntityVo> radarList = syncMap.get(FuseDataUtil.RADAR_TABLE);
if (aisList.size() > 1) {
final Map<String, List<EntityVo>> insertMap = insertData(aisList, radarList);
final List<EntityVo> aisInsertList = insertMap.get(FuseDataUtil.AIS_TABLE);
final List<EntityVo> radarInsertList = insertMap.get(FuseDataUtil.RADAR_TABLE);
float belongSum = 0.0f;
final int aisSize = aisInsertList.size();
final int radarSize = radarInsertList.size();
for (int listSize = (aisSize < radarSize) ? aisSize : radarSize, i = 0; i < listSize; ++i) {
final float belong = cutSingleBln(radarInsertList.get(i), aisInsertList.get(i), FuseDataUtil.varianceMap);
belongSum += belong;
}
avgBelong = belongSum / radarList.size();
}
}
return avgBelong;
}
public static Map<String, List<EntityVo>> syncRadarAndAisData(final ZCHXRadar.RadarHistoryTracks radarLocusList, final ZCHXAISVessel.AISHistoryTracks aisLocusList, final String radarId, final String aisId) {
final Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
final List<ZCHXRadar.RadarHistoryTrack> radarTrackList = radarLocusList.getTracksList();
final List<ZCHXAISVessel.AISHistoryTrack> aisTrackList = aisLocusList.getTracksList();
final long endTime = System.currentTimeMillis() - FuseDataUtil.FUSE_TIME_SPAN;
final List<EntityVo> aisList = new ArrayList<EntityVo>();
final List<EntityVo> radarList = new ArrayList<EntityVo>();
for (int i = radarTrackList.size() - 1; i >= 0; --i) {
final ZCHXRadar.RadarHistoryTrack radarTrack = radarTrackList.get(i);
if (radarTrack.getUTC() < endTime) {
break;
}
final EntityVo radarVo = new EntityVo();
radarVo.setNumber(radarId);
radarVo.setLon(radarTrack.getWgs84PosLong());
radarVo.setLat(radarTrack.getWgs84PosLat());
radarVo.setUtc(radarTrack.getUTC());
radarVo.setSog(radarTrack.getSog());
radarVo.setCog(radarTrack.getCog());
radarList.add(radarVo);
}
resultMap.put(FuseDataUtil.RADAR_TABLE, radarList);
for (int j = aisTrackList.size() - 1; j >= 0; --j) {
final ZCHXAISVessel.AISHistoryTrack aisTrack = aisTrackList.get(j);
if (aisTrack.getUTC() < endTime) {
break;
}
final EntityVo aisVo = new EntityVo();
aisVo.setNumber(aisId);
aisVo.setLon(aisTrack.getLon());
aisVo.setLat(aisTrack.getLat());
aisVo.setUtc(aisTrack.getUTC());
aisVo.setSog((double)aisTrack.getSog());
aisVo.setCog((double)aisTrack.getCog());
aisList.add(aisVo);
}
resultMap.put(FuseDataUtil.AIS_TABLE, aisList);
return resultMap;
}
public static Map<String, Float> setVarianceMap() {
final Map<String, Float> varianceMap = new HashMap<String, Float>();
varianceMap.put("distance", FuseDataUtil.varaince_dis);
varianceMap.put("cog", FuseDataUtil.varaince_cog);
varianceMap.put("sog", FuseDataUtil.varaince_sog);
return varianceMap;
}
public static float cutSingleBln(final EntityVo radarCalcul, final EntityVo aisCalcul, final Map<String, Float> varianceMap) {
final List<Float> singleElem = new ArrayList<Float>();
final float[][] judgeMatrix = new float[3][2];
final float dataDistance = (float)getDistance(radarCalcul.getLon(), radarCalcul.getLat(), aisCalcul.getLon(), aisCalcul.getLat());
singleElem.add(dataDistance);
final float dataCog = (float)Math.abs(radarCalcul.getCog() - aisCalcul.getCog());
singleElem.add(dataCog);
final float dataSog = (float)Math.abs(radarCalcul.getSog() - aisCalcul.getSog());
singleElem.add(dataSog);
final float distanceBln = (float)Math.exp(-FuseDataUtil.t1 * (Math.pow(dataDistance, 2.0) / varianceMap.get("distance")));
judgeMatrix[0][0] = distanceBln;
judgeMatrix[0][1] = 1.0f - distanceBln;
final float cogBln = (float)Math.exp(-FuseDataUtil.t2 * (Math.pow(dataCog, 2.0) / varianceMap.get("cog")));
judgeMatrix[1][0] = cogBln;
judgeMatrix[1][1] = 1.0f - cogBln;
final float sogBln = (float)Math.exp(-FuseDataUtil.t3 * (Math.pow(dataSog, 2.0) / varianceMap.get("sog")));
judgeMatrix[2][0] = sogBln;
judgeMatrix[2][1] = 1.0f - sogBln;
final float belong = FuseDataUtil.elemWight[0] * judgeMatrix[0][0] + FuseDataUtil.elemWight[1] * judgeMatrix[1][0] + FuseDataUtil.elemWight[2] * judgeMatrix[2][0];
final float unbelong = FuseDataUtil.elemWight[0] * judgeMatrix[0][1] + FuseDataUtil.elemWight[1] * judgeMatrix[1][1] + FuseDataUtil.elemWight[2] * judgeMatrix[2][1];
return belong;
}
public static Map<String, List<EntityVo>> insertData(final List<EntityVo> aisList, final List<EntityVo> radarList) {
final Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
final List<EntityVo> radarDAis = new ArrayList<EntityVo>();
long tempTime = 300000L;
for (final EntityVo aisData : aisList) {
EntityVo tempRadar = new EntityVo();
final long aisUtc = aisData.getUtc();
for (final EntityVo radar : radarList) {
final long timesize = Math.abs(aisUtc - radar.getUtc());
if (tempTime > timesize) {
tempTime = timesize;
tempRadar = radar;
}
}
tempTime = 300000L;
radarDAis.add(tempRadar);
}
final List<EntityVo> aisInsertList = new ArrayList<EntityVo>();
List<EntityVo> aisInsList = null;
for (int i = 0; i < aisList.size(); ++i) {
if (i < aisList.size() - 1) {
final int radarStartIndex = radarList.indexOf(radarDAis.get(i));
final int radarEndIndex = radarList.indexOf(radarDAis.get(i + 1));
final int insertNum = radarEndIndex - radarStartIndex - 1;
if (insertNum > 0) {
aisInsList = insertPoint(aisList.get(i), aisList.get(i + 1), insertNum);
if (aisInsList.size() > 0) {
aisInsertList.addAll(aisInsList);
}
}
}
}
resultMap.put("ais", aisInsertList);
resultMap.put("radar", radarList);
return resultMap;
}
public static List<EntityVo> insertPoint(final EntityVo startPoint, final EntityVo endPoint, final int insertNumber) {
final List<EntityVo> aisInsertList = new ArrayList<EntityVo>();
aisInsertList.add(startPoint);
final double dvCog = endPoint.getCog() - startPoint.getCog();
final double dvSog = endPoint.getSog() - startPoint.getSog();
final double dvLon = endPoint.getLon() - startPoint.getLon();
final double dvLat = endPoint.getLat() - startPoint.getLat();
final long dvUtc = endPoint.getUtc() - startPoint.getUtc();
final double averageCog = dvCog / insertNumber;
final double averageSog = dvSog / insertNumber;
final double averageLon = dvLon / insertNumber;
final double averageLat = dvLat / insertNumber;
final long averageUtc = dvUtc / insertNumber;
for (int i = 0; i < insertNumber; ++i) {
final EntityVo aisData = new EntityVo();
aisData.set_id(startPoint.get_id());
aisData.setNumber(startPoint.getNumber());
aisData.setLon(startPoint.getLon() + (i + 1) * averageLon);
aisData.setLat(startPoint.getLat() + (i + 1) * averageLat);
aisData.setTime(FuseDataUtil.fmt.format(new Date(startPoint.getUtc() + (i + 1) * averageUtc)));
aisData.setUtc(startPoint.getUtc() + (i + 1) * averageUtc);
aisData.setSpace_time(startPoint.getSpace_time());
aisData.setSog(startPoint.getSog() + (i + 1) * averageSog);
aisData.setCog(startPoint.getCog() + (i + 1) * averageCog);
aisInsertList.add(aisData);
}
return aisInsertList;
}
public static float[] setElemWight() {
final float[] elemWight = { 0.45f, 0.25f, 0.3f };
return elemWight;
}
public static double getDistance(final double lon1, final double lat1, final double lon2, final double lat2) {
final double q1 = Math.toRadians(lat1);
final double q2 = Math.toRadians(lat2);
final double q3 = Math.toRadians(lat2 - lat1);
final double y = Math.toRadians(lon2 - lon1);
final double a = Math.sin(q3 / 2.0) * Math.sin(q3 / 2.0) + Math.cos(q1) * Math.cos(q2) * Math.sin(y / 2.0) * Math.sin(y / 2.0);
final double c = 2.0 * Math.atan2(Math.sqrt(a), Math.sqrt(1.0 - a));
final double d = FuseDataUtil.RADIUS * c;
return d;
}
public static Map<String, List<EntityVo>> getLocusDataByMgdb(final String aisId, final String radarId) {
Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
final LocusVo radarLocus = MongoUtil.getInstance().query_radarLocus_ById(radarId);
final LocusVo aisLocus = MongoUtil.getInstance().query_aisLocus_ById(aisId);
final byte[] radarLocusData = radarLocus.getData();
final byte[] aisLocusData = aisLocus.getData();
if (aisLocusData != null && radarLocusData != null) {
ZCHXRadar.RadarHistoryTracks radarLocusList = null;
ZCHXAISVessel.AISHistoryTracks aisLocusList = null;
try {
radarLocusList = ZCHXRadar.RadarHistoryTracks.parseFrom(radarLocusData);
aisLocusList = ZCHXAISVessel.AISHistoryTracks.parseFrom(aisLocusData);
}
catch (InvalidProtocolBufferException e) {
System.out.println(e.getLocalizedMessage());
}
resultMap = covertData(radarLocusList.getTracksList(), aisLocusList.getTracksList(), radarId, aisId);
}
return resultMap;
}
public static Map<String, List<EntityVo>> covertData(final List<ZCHXRadar.RadarHistoryTrack> radarTrackList, final List<ZCHXAISVessel.AISHistoryTrack> aisTrackList, final String radarId, final String aisId) {
final Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
final List<EntityVo> aisList = new ArrayList<EntityVo>();
final List<EntityVo> radarList = new ArrayList<EntityVo>();
for (final ZCHXRadar.RadarHistoryTrack radarTrack : radarTrackList) {
final EntityVo radarVo = new EntityVo();
radarVo.setNumber(radarId);
radarVo.setLon(radarTrack.getWgs84PosLong());
radarVo.setLat(radarTrack.getWgs84PosLat());
radarVo.setUtc(radarTrack.getUTC());
radarVo.setSog(radarTrack.getSog());
radarVo.setCog(radarTrack.getCog());
radarList.add(radarVo);
}
resultMap.put(FuseDataUtil.RADAR_TABLE, radarList);
for (final ZCHXAISVessel.AISHistoryTrack aisTrack : aisTrackList) {
final EntityVo aisVo = new EntityVo();
aisVo.setNumber(aisId);
aisVo.setLon(aisTrack.getLon());
aisVo.setLat(aisTrack.getLat());
aisVo.setUtc(aisTrack.getUTC());
aisVo.setSog((double)aisTrack.getSog());
aisVo.setCog((double)aisTrack.getCog());
aisList.add(aisVo);
}
resultMap.put(FuseDataUtil.AIS_TABLE, aisList);
return resultMap;
}
public static void paresFuseData(final List<FuseVo> fuseList) {
final ZCHXAISVessel.AISVesselDataList.Builder aisVesselList = ZCHXAISVessel.AISVesselDataList.newBuilder();
int dataSize = 0;
Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
for (final FuseVo fuseVo : fuseList) {
final ZCHXAISVessel.AISVesselData.Builder aisVessel = ZCHXAISVessel.AISVesselData.newBuilder();
final ZCHXAISVessel.AISHistoryTracks.Builder aisHistoryTracks = ZCHXAISVessel.AISHistoryTracks.newBuilder();
resultMap = getLocusDataByMgdb(fuseVo.getAisId(), fuseVo.getRadarId());
final Map<String, List<EntityVo>> insertMap = insertData(resultMap.get(FuseDataUtil.AIS_TABLE), resultMap.get(FuseDataUtil.RADAR_TABLE));
final List<EntityVo> radarList = insertMap.get(FuseDataUtil.RADAR_TABLE);
final List<EntityVo> aisList = insertMap.get(FuseDataUtil.AIS_TABLE);
if (aisList.size() > 0) {
final int radarSize = radarList.size();
final int aisSize = aisList.size();
for (int listSize = (radarSize - aisSize > 0) ? aisSize : radarSize, i = 0; i < listSize; ++i) {
final EntityVo radar = radarList.get(i);
final EntityVo aisInfo = aisList.get(i);
final ZCHXAISVessel.AISHistoryTrack.Builder aisHistoryTrack = ZCHXAISVessel.AISHistoryTrack.newBuilder();
aisHistoryTrack.setLon(aisInfo.getLon() * FuseDataUtil.aisWight + radar.getLon() * (1.0f - FuseDataUtil.aisWight));
aisHistoryTrack.setLat(aisInfo.getLat() * FuseDataUtil.aisWight + radar.getLat() * (1.0f - FuseDataUtil.aisWight));
aisHistoryTrack.setUTC(radar.getUtc());
aisHistoryTrack.setSog((float)(aisInfo.getSog() * FuseDataUtil.aisWight + radar.getSog() * (1.0f - FuseDataUtil.aisWight)));
aisHistoryTrack.setCog((float)(aisInfo.getCog() * FuseDataUtil.aisWight + radar.getCog() * (1.0f - FuseDataUtil.aisWight)));
aisHistoryTrack.setHeading(0.0f);
aisHistoryTrack.setNavStatus(ZCHXAISVessel.NAVI_STATUS.valueOf(String.valueOf(0)));
aisHistoryTrack.setRot(0.0f);
aisHistoryTracks.addTracks(aisHistoryTrack.build());
}
final EntityVo radar = radarList.get(0);
final EntityVo aisInfo = aisList.get(0);
final LocusVo aisVesselData = MongoUtil.getInstance().query_AISVessel_ById(aisInfo.getNumber());
ZCHXAISVessel.VesselInfo vesselInfo = null;
if (aisVesselData.getData() == null) {
continue;
}
try {
vesselInfo = ZCHXAISVessel.VesselInfo.parseFrom(aisVesselData.getData());
}
catch (InvalidProtocolBufferException e) {
System.out.println(e.getLocalizedMessage());
}
aisVessel.setId(String.valueOf(aisInfo.getNumber()) + radar.getNumber());
aisVessel.setLat(aisInfo.getLat() * FuseDataUtil.aisWight + radar.getLat() * (1.0f - FuseDataUtil.aisWight));
aisVessel.setLon(aisInfo.getLat() * FuseDataUtil.aisWight + radar.getLat() * (1.0f - FuseDataUtil.aisWight));
aisVessel.setSog((float)(aisInfo.getSog() * FuseDataUtil.aisWight + radar.getSog() * (1.0f - FuseDataUtil.aisWight)));
aisVessel.setCog((float)(aisInfo.getCog() * FuseDataUtil.aisWight + radar.getCog() * (1.0f - FuseDataUtil.aisWight)));
aisVessel.setUTC(radar.getUtc());
aisVessel.setTracks(aisHistoryTracks.build());
aisVessel.setMmsi(vesselInfo.getMmsi());
aisVessel.setShiptype(vesselInfo.getShipType());
aisVessel.setNavStatus(ZCHXAISVessel.NAVI_STATUS.valueOf(String.valueOf(0)));
aisVessel.setRot(0.0f);
aisVessel.setHeading(0.0f);
aisVessel.setImo(vesselInfo.getImo());
aisVessel.setCallSign(vesselInfo.getCallSign());
aisVessel.setShipName(vesselInfo.getShipName());
aisVessel.setCargoType(vesselInfo.getCargoType());
aisVessel.setCountry(vesselInfo.getCountry());
aisVessel.setVendorID(vesselInfo.getVendorID());
aisVessel.setShipLength(vesselInfo.getShipLength());
aisVessel.setShipWidth(vesselInfo.getShipWidth());
aisVessel.setToBow(vesselInfo.getToBow());
aisVessel.setToStern(vesselInfo.getToStern());
aisVessel.setToPort(vesselInfo.getToPort());
aisVessel.setToStarboard(vesselInfo.getToStarboard());
aisVessel.setFixType(vesselInfo.getFixType());
aisVessel.setEta(vesselInfo.getEta());
aisVessel.setDraught(vesselInfo.getDraught());
aisVessel.setDest(vesselInfo.getDest());
aisVesselList.addAisData(aisVessel.build());
FuseDataUtil.time = String.valueOf(radar.getUtc());
dataSize = aisVesselList.build().getAisDataList().size();
if (dataSize <= 0) {
continue;
}
ZMQServerDyData.getZMQPUB().sendData(FuseDataUtil.SIGN, FuseDataUtil.time, aisVesselList.build().toByteArray());
}
}
}
}

93
src/main/java/com/zhichenhaixin/fusedata/FuseDataVo.java

@ -0,0 +1,93 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import java.io.Serializable;
public class FuseDataVo implements Serializable
{
private static final long serialVersionUID = 1L;
private String aisId;
private Double lon;
private Double lat;
private String time;
private long utc;
private long space_time;
private Double sog;
private Double cog;
private String trackNumber;
public String getAisId() {
return this.aisId;
}
public void setAisId(final String aisId) {
this.aisId = aisId;
}
public Double getLon() {
return this.lon;
}
public void setLon(final Double lon) {
this.lon = lon;
}
public Double getLat() {
return this.lat;
}
public void setLat(final Double lat) {
this.lat = lat;
}
public String getTime() {
return this.time;
}
public void setTime(final String time) {
this.time = time;
}
public long getUtc() {
return this.utc;
}
public void setUtc(final long utc) {
this.utc = utc;
}
public long getSpace_time() {
return this.space_time;
}
public void setSpace_time(final long space_time) {
this.space_time = space_time;
}
public Double getSog() {
return this.sog;
}
public void setSog(final Double sog) {
this.sog = sog;
}
public Double getCog() {
return this.cog;
}
public void setCog(final Double cog) {
this.cog = cog;
}
public String getTrackNumber() {
return this.trackNumber;
}
public void setTrackNumber(final String trackNumber) {
this.trackNumber = trackNumber;
}
}

230
src/main/java/com/zhichenhaixin/fusedata/FuseRadarThread.java

@ -0,0 +1,230 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import com.zhichenhaixin.base.util.DistanceUtil;
import com.zhichenhaixin.base.util.SpringPropertyUtil;
import com.zhichenhaixin.cache.util.AgilTrackEhcache;
import com.zhichenhaixin.cache.util.TrackPointEhcache;
import com.zhichenhaixin.proto.ZCHXRadar;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FuseRadarThread extends Thread
{
private static Log log;
private static float belongLimit;
private static double distance;
private static double sog;
private static double cog;
private static float varaince_dis;
private static float varaince_cog;
private static float varaince_sog;
private static final long FUSE_TIME_SPAN;
private static float t1;
private static float t2;
private static float t3;
private static Map<String, Float> varianceMap;
private static float[] elemWight;
private static final String DISTANCE = "distance";
private static final String COG = "cog";
private static final String SOG = "sog";
static {
FuseRadarThread.log = LogFactory.getLog(FuseRadarThread.class);
FuseRadarThread.belongLimit = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.belongLimit"));
FuseRadarThread.distance = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.radar.distance"));
FuseRadarThread.sog = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.radar.sog"));
FuseRadarThread.cog = Double.parseDouble(SpringPropertyUtil.getProperty("fuse.radar.cog"));
FuseRadarThread.varaince_dis = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.varaince_dis"));
FuseRadarThread.varaince_cog = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.varaince_cog"));
FuseRadarThread.varaince_sog = Float.parseFloat(SpringPropertyUtil.getProperty("fuse.radar.varaince_sog"));
FUSE_TIME_SPAN = Long.parseLong(SpringPropertyUtil.getProperty("fuse.radar.time.span"));
FuseRadarThread.t1 = 0.001f;
FuseRadarThread.t2 = 0.1f;
FuseRadarThread.t3 = 0.1f;
FuseRadarThread.varianceMap = setVarianceMap();
FuseRadarThread.elemWight = setElemWight();
}
@Override
public synchronized void start() {
super.start();
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
final List<ZCHXRadar.TrackPoint> pointList = TrackPointEhcache.getAll();
this.handleFuseRadar(pointList);
Thread.sleep(1500L);
}
catch (Exception e) {
FuseRadarThread.log.error("\u5904\u7406\u591a\u96f7\u8fbe\u878d\u5408\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
}
public void handleFuseRadar(final List<ZCHXRadar.TrackPoint> pointList) {
for (final ZCHXRadar.TrackPoint trackPoint : pointList) {
for (final ZCHXRadar.TrackPoint trackPoint2 : pointList) {
final String radarType1 = String.valueOf(trackPoint.getTrackNumber()).substring(0, 1);
final String radarType2 = String.valueOf(trackPoint2.getTrackNumber()).substring(0, 1);
final ZCHXRadar.TrackPoint tpoint = TrackPointEhcache.get(trackPoint.getTrackNumber());
final ZCHXRadar.TrackPoint tpoint2 = TrackPointEhcache.get(trackPoint2.getTrackNumber());
if (!radarType1.equals(radarType2) && tpoint != null && tpoint2 != null) {
final double shipDistance = DistanceUtil.getDistance(trackPoint.getWgs84PosLat(), trackPoint.getWgs84PosLong(), trackPoint2.getWgs84PosLat(), trackPoint2.getWgs84PosLong());
final double gapCog = Math.abs(trackPoint.getCog() - trackPoint2.getCog());
final double gapSog = Math.abs(trackPoint.getSog() - trackPoint2.getSog());
if (shipDistance >= FuseRadarThread.distance || gapSog >= FuseRadarThread.sog || gapCog >= FuseRadarThread.cog) {
continue;
}
final float belong = calculateFuseDgr(trackPoint, trackPoint2);
if (FuseRadarThread.belongLimit >= belong) {
continue;
}
TrackPointEhcache.remove(trackPoint2.getTrackNumber());
AgilTrackEhcache.remove(trackPoint2.getTrackNumber());
FuseRadarThread.log.info(String.valueOf(trackPoint.getTrackNumber()) + "\u548c" + trackPoint2.getTrackNumber() + "\u662f\u540c\u4e00\u4e2a\u76ee\u6807\uff0c\u4fdd\u7559" + trackPoint.getTrackNumber());
}
}
}
}
public static Map<String, Float> setVarianceMap() {
final Map<String, Float> varianceMap = new HashMap<String, Float>();
varianceMap.put("distance", FuseRadarThread.varaince_dis);
varianceMap.put("cog", FuseRadarThread.varaince_cog);
varianceMap.put("sog", FuseRadarThread.varaince_sog);
return varianceMap;
}
public static float[] setElemWight() {
final float[] elemWight = { 0.45f, 0.25f, 0.3f };
return elemWight;
}
public static float cutSingleBln(final EntityVo radarCalcul1, final EntityVo radarCalcul2, final Map<String, Float> varianceMap) {
final float dataDistance = (float)DistanceUtil.getDistance(radarCalcul1.getLat(), radarCalcul1.getLon(), radarCalcul2.getLat(), radarCalcul2.getLon());
final float dataCog = (float)Math.abs(radarCalcul1.getCog() - radarCalcul2.getCog());
final float dataSog = (float)Math.abs(radarCalcul1.getSog() - radarCalcul2.getSog());
final float distanceBln = (float)Math.exp(-FuseRadarThread.t1 * (Math.pow(dataDistance, 2.0) / varianceMap.get("distance")));
final float cogBln = (float)Math.exp(-FuseRadarThread.t2 * (Math.pow(dataCog, 2.0) / varianceMap.get("cog")));
final float sogBln = (float)Math.exp(-FuseRadarThread.t3 * (Math.pow(dataSog, 2.0) / varianceMap.get("sog")));
final float belong = FuseRadarThread.elemWight[0] * distanceBln + FuseRadarThread.elemWight[1] * cogBln + FuseRadarThread.elemWight[2] * sogBln;
return belong;
}
public static float calculateFuseDgr(final ZCHXRadar.TrackPoint radarCalcul1, final ZCHXRadar.TrackPoint radarCalcul2) {
float avgBelong = 0.0f;
final Map<String, List<EntityVo>> syncMap = syncRadarData(radarCalcul1.getTracks(), radarCalcul2.getTracks());
final List<EntityVo> radarList1 = syncMap.get("1");
final List<EntityVo> radarList2 = syncMap.get("2");
float belongSum = 0.0f;
final int radarSize1 = radarList1.size();
final int radarSize2 = radarList2.size();
if (radarSize1 != 0 && radarSize2 != 0) {
final int listSize = (radarSize1 < radarSize2) ? radarSize1 : radarSize2;
for (int i = 0; i < listSize; ++i) {
final float belong = cutSingleBln(radarList1.get(i), radarList2.get(i), FuseRadarThread.varianceMap);
belongSum += belong;
}
avgBelong = belongSum / listSize;
}
return avgBelong;
}
public static Map<String, List<EntityVo>> syncRadarData(final ZCHXRadar.RadarHistoryTracks radarLocusList1, final ZCHXRadar.RadarHistoryTracks radarLocusList2) {
final Map<String, List<EntityVo>> resultMap = new HashMap<String, List<EntityVo>>();
final List<ZCHXRadar.RadarHistoryTrack> radarTrackList1 = radarLocusList1.getTracksList();
final List<ZCHXRadar.RadarHistoryTrack> radarTrackList2 = radarLocusList2.getTracksList();
final List<EntityVo> radarList1 = new ArrayList<EntityVo>();
final List<EntityVo> radarList2 = new ArrayList<EntityVo>();
final long endTime = System.currentTimeMillis() - FuseRadarThread.FUSE_TIME_SPAN;
int size = radarTrackList1.size();
for (int i = size - 1; i >= 0; --i) {
final ZCHXRadar.RadarHistoryTrack radarTrack = radarTrackList1.get(i);
if (radarTrack.getUTC() < endTime) {
break;
}
final EntityVo radarVo = new EntityVo();
radarVo.setNumber(String.valueOf(radarTrack.getTrackNumber()));
radarVo.setLon(radarTrack.getWgs84PosLong());
radarVo.setLat(radarTrack.getWgs84PosLat());
radarVo.setUtc(radarTrack.getUTC());
radarVo.setSog(radarTrack.getSog());
radarVo.setCog(radarTrack.getCog());
radarList1.add(radarVo);
}
resultMap.put("1", radarList1);
size = radarTrackList2.size();
for (int i = size - 1; i >= 0; --i) {
final ZCHXRadar.RadarHistoryTrack radarTrack = radarTrackList2.get(i);
if (radarTrack.getUTC() < endTime) {
break;
}
final EntityVo radarVo = new EntityVo();
radarVo.setNumber(String.valueOf(radarTrack.getTrackNumber()));
radarVo.setLon(radarTrack.getWgs84PosLong());
radarVo.setLat(radarTrack.getWgs84PosLat());
radarVo.setUtc(radarTrack.getUTC());
radarVo.setSog(radarTrack.getSog());
radarVo.setCog(radarTrack.getCog());
radarList2.add(radarVo);
}
resultMap.put("2", radarList2);
return resultMap;
}
public static List<Float> computeVariance(final List<EntityVo> radarList1, final List<EntityVo> radarList2) {
final List<Float> resultList = new ArrayList<Float>();
final List<Float> distanceList = new ArrayList<Float>();
final List<Float> cogList = new ArrayList<Float>();
final List<Float> sogList = new ArrayList<Float>();
float distanceSum = 0.0f;
float cogSum = 0.0f;
float sogSum = 0.0f;
EntityVo radarCalcul1 = null;
EntityVo radarCalcul2 = null;
final int size = radarList2.size();
for (int i = 0; i < size; ++i) {
radarCalcul1 = radarList1.get(i);
radarCalcul2 = radarList2.get(i);
final float dataDistance = (float)DistanceUtil.getDistance(radarCalcul1.getLat(), radarCalcul1.getLon(), radarCalcul2.getLat(), radarCalcul2.getLon());
distanceList.add(dataDistance);
distanceSum += dataDistance;
final float dataCog = (float)Math.abs(radarCalcul1.getCog() - radarCalcul2.getCog());
cogList.add(dataCog);
cogSum += dataCog;
final float dataSog = (float)Math.abs(radarCalcul1.getSog() - radarCalcul2.getSog());
sogList.add(dataSog);
sogSum += dataSog;
}
final float distanceAverage = distanceSum / size;
final float cogAverage = cogSum / size;
final float sogAverage = sogSum / size;
float distancePowSum = 0.0f;
float cogPowSum = 0.0f;
float sogPowSum = 0.0f;
for (int j = 0; j < size; ++j) {
distancePowSum += (float)Math.pow(distanceList.get(j) - distanceAverage, 2.0);
cogPowSum += (float)Math.pow(cogList.get(j) - cogAverage, 2.0);
sogPowSum += (float)Math.pow(sogList.get(j) - sogAverage, 2.0);
}
final float distanceVariance = distancePowSum / size;
resultList.add(0, distanceVariance);
final float cogVariance = cogPowSum / size;
resultList.add(1, cogVariance);
final float sogVariance = sogPowSum / size;
resultList.add(2, sogVariance);
return resultList;
}
}

27
src/main/java/com/zhichenhaixin/fusedata/FuseVo.java

@ -0,0 +1,27 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
public class FuseVo
{
private String aisId;
private String radarId;
public String getAisId() {
return this.aisId;
}
public void setAisId(final String aisId) {
this.aisId = aisId;
}
public String getRadarId() {
return this.radarId;
}
public void setRadarId(final String radarId) {
this.radarId = radarId;
}
}

44
src/main/java/com/zhichenhaixin/fusedata/LocusVo.java

@ -0,0 +1,44 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import com.mongodb.ReflectionDBObject;
public class LocusVo extends ReflectionDBObject implements Cloneable
{
private String _id;
private byte[] data;
private static LocusVo BaseCredit;
static {
LocusVo.BaseCredit = new LocusVo();
}
public static LocusVo getClone() {
try {
return (LocusVo)LocusVo.BaseCredit.clone();
}
catch (CloneNotSupportedException e) {
return new LocusVo();
}
}
@Override
public String get_id() {
return this._id;
}
public void set_id(final String _id) {
this._id = _id;
}
public byte[] getData() {
return this.data;
}
public void setData(final byte[] data) {
this.data = data;
}
}

340
src/main/java/com/zhichenhaixin/fusedata/MongoUtil.java

@ -0,0 +1,340 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.fusedata;
import com.mongodb.*;
import com.zhichenhaixin.base.util.SpringPropertyUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
public class MongoUtil
{
private static final Log log;
private static final String MONGO_URL;
private static final String MONGO_DB;
private static MongoUtil util;
private static DBCollection ais_collect;
private static DBCollection radar_collect;
private static DBCollection ais_locus_collect;
private static DBCollection radar_locus_collect;
private static DBCollection ais_vessel_collect;
private static DBCollection video_warn_info_collect;
private static DBCollection video_warn_infos_collect;
private static DBCollection video_warn_target_collect;
private static DBCollection gps_collect;
private Mongo m;
static SimpleDateFormat fmt;
static {
log = LogFactory.getLog(MongoUtil.class);
MONGO_URL = SpringPropertyUtil.getProperty("mongo.hostport");
MONGO_DB = SpringPropertyUtil.getProperty("mongo.dbname");
MongoUtil.util = null;
MongoUtil.fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
}
public MongoUtil() {
try {
this.m = new Mongo(MongoUtil.MONGO_URL);
final DB db = this.m.getDB(MongoUtil.MONGO_DB);
(MongoUtil.ais_collect = db.getCollection("com_ais_anys")).setObjectClass(EntityVo.class);
(MongoUtil.radar_collect = db.getCollection("com_radar_anys")).setObjectClass(EntityVo.class);
MongoUtil.ais_locus_collect = db.getCollection("AIS_Track");
MongoUtil.radar_locus_collect = db.getCollection("Radar_Track");
MongoUtil.ais_vessel_collect = db.getCollection("AIS_Info");
MongoUtil.video_warn_info_collect = db.getCollection("VideoWarn_Track");
MongoUtil.video_warn_infos_collect = db.getCollection("VideoWarns_Track");
MongoUtil.video_warn_target_collect = db.getCollection("VideoWarnTarget_Track");
MongoUtil.gps_collect = db.getCollection("gps_Track");
}
catch (Exception e) {
MongoUtil.log.error("mogodb \u521d\u59cb\u5316\u5931\u8d25\uff01", e.fillInStackTrace());
}
}
public static MongoUtil getInstance() {
if (MongoUtil.util == null) {
MongoUtil.util = new MongoUtil();
}
return MongoUtil.util;
}
public EntityVo query_ais_ById(final String id) {
final BasicDBObject query = new BasicDBObject();
query.append("_id", id);
final EntityVo evo = (EntityVo)MongoUtil.ais_collect.findOne(query);
return evo;
}
public EntityVo query_ais_ByUtc(final long utc) {
final BasicDBObject query = new BasicDBObject();
query.append("Utc", utc);
final EntityVo evo = (EntityVo)MongoUtil.ais_collect.findOne(query);
return evo;
}
public void save(final EntityVo vo) {
MongoUtil.ais_collect.save(vo);
}
public EntityVo query_radar_ById(final String id) {
final BasicDBObject query = new BasicDBObject();
query.append("_id", id);
final EntityVo evo = (EntityVo)MongoUtil.radar_collect.findOne(query);
return evo;
}
public LocusVo query_radarLocus_ById(final String id) {
final LocusVo vo = LocusVo.getClone();
DBObject dbObject = null;
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put("_id", id);
final DBCursor cursor = MongoUtil.radar_locus_collect.find(queryObject);
byte[] vess = null;
while (cursor.hasNext()) {
dbObject = cursor.next();
vess = (byte[])dbObject.get("data");
}
vo.setData(vess);
return vo;
}
public LocusVo query_aisLocus_ById(final String id) {
final LocusVo vo = LocusVo.getClone();
DBObject dbObject = null;
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put("_id", id);
final DBCursor cursor = MongoUtil.ais_locus_collect.find(queryObject);
byte[] vess = null;
while (cursor.hasNext()) {
dbObject = cursor.next();
vess = (byte[])dbObject.get("data");
}
vo.setData(vess);
return vo;
}
public LocusVo query_AISVessel_ById(final String id) {
final LocusVo vo = LocusVo.getClone();
DBObject dbObject = null;
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put("_id", id);
final DBCursor cursor = MongoUtil.ais_vessel_collect.find(queryObject);
byte[] vess = null;
while (cursor.hasNext()) {
dbObject = cursor.next();
vess = (byte[])dbObject.get("data");
}
vo.setData(vess);
return vo;
}
public void save_radar(final EntityVo vo) {
MongoUtil.radar_collect.save(vo);
}
public void save_radar_track(final BasicDBObject record) {
MongoUtil.radar_locus_collect.save(record);
}
public void deleteByPrimaryKey(final String collectionName, final String id) {
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put("_id", id);
if ("Radar_Track".equals(collectionName)) {
MongoUtil.radar_locus_collect.remove(queryObject);
}
else if ("AIS_Track".equals(collectionName)) {
MongoUtil.ais_locus_collect.remove(queryObject);
}
else if ("VideoWarn_Track".equals(collectionName)) {
MongoUtil.video_warn_info_collect.remove(queryObject);
}
else if ("VideoWarns_Track".equals(collectionName)) {
MongoUtil.video_warn_infos_collect.remove(queryObject);
}
else if ("VideoWarnTarget_Track".equals(collectionName)) {
MongoUtil.video_warn_target_collect.remove(queryObject);
}
else if ("gps_Track".equals(collectionName)) {
MongoUtil.gps_collect.remove(queryObject);
}
}
public DBObject selectByPrimaryKey(final String collectionName, final String id) {
DBObject dbObject = null;
final BasicDBObject queryObject = new BasicDBObject();
DBCursor cursor = null;
queryObject.put("_id", id);
if ("Radar_Track".equals(collectionName)) {
cursor = MongoUtil.radar_locus_collect.find(queryObject);
}
else if ("AIS_Track".equals(collectionName)) {
cursor = MongoUtil.ais_locus_collect.find(queryObject);
}
else if ("AIS_Info".equals(collectionName)) {
cursor = MongoUtil.ais_vessel_collect.find(queryObject);
}
else if ("VideoWarn_Track".equals(collectionName)) {
cursor = MongoUtil.video_warn_info_collect.find(queryObject);
}
else if ("VideoWarns_Track".equals(collectionName)) {
cursor = MongoUtil.video_warn_infos_collect.find(queryObject);
}
else if ("VideoWarnTarget_Track".equals(collectionName)) {
cursor = MongoUtil.video_warn_target_collect.find(queryObject);
}
else if ("gps_Track".equals(collectionName)) {
cursor = MongoUtil.gps_collect.find(queryObject);
}
if (cursor == null) {
return null;
}
while (cursor.hasNext()) {
dbObject = cursor.next();
}
cursor.close();
return dbObject;
}
public List<DBObject> selectAll(final String collectionName) {
final List<DBObject> dbList = new ArrayList<DBObject>();
DBCursor cursor = null;
if ("Radar_Track".equals(collectionName)) {
cursor = MongoUtil.radar_locus_collect.find();
}
else if ("AIS_Track".equals(collectionName)) {
cursor = MongoUtil.ais_locus_collect.find();
}
if (cursor == null) {
return null;
}
while (cursor.hasNext()) {
dbList.add(cursor.next());
}
cursor.close();
return dbList;
}
public List<DBObject> selectAllByField(final String collectionName, final String field1, final String field2) {
final List<DBObject> dbList = new ArrayList<DBObject>();
final BasicDBObject queryObject = new BasicDBObject();
queryObject.put(field1, true);
queryObject.put(field2, true);
DBCursor cursor = null;
if ("Radar_Track".equals(collectionName)) {
cursor = MongoUtil.radar_locus_collect.find(new BasicDBObject(), queryObject);
}
else if ("AIS_Track".equals(collectionName)) {
cursor = MongoUtil.ais_locus_collect.find(new BasicDBObject(), queryObject);
}
else if ("VideoWarn_Track".equals(collectionName)) {
cursor = MongoUtil.video_warn_info_collect.find(new BasicDBObject(), queryObject);
}
else if ("VideoWarns_Track".equals(collectionName)) {
cursor = MongoUtil.video_warn_infos_collect.find(new BasicDBObject(), queryObject);
}
else if ("VideoWarnTarget_Track".equals(collectionName)) {
cursor = MongoUtil.video_warn_target_collect.find(new BasicDBObject(), queryObject);
}
else if ("gps_Track".equals(collectionName)) {
cursor = MongoUtil.gps_collect.find(new BasicDBObject(), queryObject);
}
if (cursor == null) {
return null;
}
while (cursor.hasNext()) {
dbList.add(cursor.next());
}
cursor.close();
return dbList;
}
public void save_ais_track(final BasicDBObject record) {
MongoUtil.ais_locus_collect.save(record);
}
public void save_ais_Info(final BasicDBObject record) {
MongoUtil.ais_vessel_collect.save(record);
}
public List<LocusVo> getAllVesselInfo() {
final List<LocusVo> dataList = new ArrayList<LocusVo>();
DBObject dbObject = null;
final DBCursor cursor = MongoUtil.ais_vessel_collect.find();
LocusVo data = null;
byte[] vess = null;
while (cursor.hasNext()) {
data = new LocusVo();
dbObject = cursor.next();
vess = (byte[])dbObject.get("data");
data.set_id(dbObject.get("_id"));
data.setData(vess);
dataList.add(data);
}
return dataList;
}
public List<EntityVo> getDataByTime(final String dataTable, final String startTime, final String endTime) {
final List<EntityVo> entityList = new ArrayList<EntityVo>();
final BasicDBObject query = new BasicDBObject();
try {
query.put("Utc", new BasicDBObject("$gte", MongoUtil.fmt.parse(startTime).getTime()).append("$lte", MongoUtil.fmt.parse(endTime).getTime()));
}
catch (ParseException e) {
System.out.println(e.getLocalizedMessage());
}
DBCursor cursor = null;
if (dataTable.equals("radar")) {
cursor = MongoUtil.radar_collect.find(query);
}
if (dataTable.equals("ais")) {
cursor = MongoUtil.ais_collect.find(query);
}
EntityVo entity = null;
while (cursor.hasNext()) {
entity = new EntityVo();
entity = (EntityVo)cursor.next();
entityList.add(entity);
}
return entityList;
}
public long getMaxUtc(final String dataTable) {
DBCursor cursor = null;
if (dataTable.equals("radar")) {
cursor = MongoUtil.radar_collect.find().sort(new BasicDBObject("Utc", -1)).limit(1);
}
if (dataTable.equals("ais")) {
cursor = MongoUtil.ais_collect.find().sort(new BasicDBObject("Utc", -1)).limit(1);
}
if (cursor.hasNext()) {
EntityVo entity = new EntityVo();
entity = (EntityVo)cursor.next();
return entity.getUtc();
}
return 0L;
}
public void saveVideoWarnInfo(final BasicDBObject record) {
MongoUtil.video_warn_info_collect.save(record);
}
public void saveVideoWarnInfos(final BasicDBObject record) {
MongoUtil.video_warn_infos_collect.save(record);
}
public void saveVideoWarnTargetInfo(final BasicDBObject record) {
MongoUtil.video_warn_target_collect.save(record);
}
public void saveGPSInfo(final BasicDBObject record) {
MongoUtil.gps_collect.save(record);
}
}

213
src/main/java/com/zhichenhaixin/gui/RadarHelperFrame.java

@ -0,0 +1,213 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.gui;
import com.zhichenhaixin.base.util.StringUtil;
import com.zhichenhaixin.thread.RadarServer;
import com.zhichenhaixin.thread.ZMQPubServer;
import com.zhichenhaixin.util.IPUtil;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
public class RadarHelperFrame extends JFrame implements ActionListener
{
private static final long serialVersionUID = 1L;
private int width;
private int height;
private int windowsWidth;
private int windowsHeight;
private Font font;
public static JTextArea textlog;
private JPanel topMainPanel;
private JTextField top_radar_port;
private JButton top_radar_button;
private JPanel bottomMainPanel;
private JPanel centerMainPanel;
private JTextField top_radar_ip;
private JTextField top_localhost_ip;
private JTextField top_localhost_port;
private JCheckBox top_radar_log_checkBox01;
private JButton top_localhost_button;
public static JLabel top_zoom_show_label;
public static JLabel top_radar_show_label;
public static int rightMainWidth;
public static int rightMainHigh;
private RadarServer radarServer;
private JTextField top_localhost_topic;
private static int LOG_DATA_ROW_LIMIT_NUM;
public static volatile ZMQPubServer zmqPubServer;
public static volatile String topic_string;
static {
RadarHelperFrame.rightMainWidth = 0;
RadarHelperFrame.rightMainHigh = 0;
RadarHelperFrame.LOG_DATA_ROW_LIMIT_NUM = 20;
RadarHelperFrame.zmqPubServer = null;
RadarHelperFrame.topic_string = null;
}
public RadarHelperFrame() {
this.width = Toolkit.getDefaultToolkit().getScreenSize().width;
this.height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.windowsWidth = 500;
this.windowsHeight = 600;
this.radarServer = null;
this.setResizable(false);
this.setVisible(true);
// 雷达工具
this.setTitle("\u96f7\u8fbe\u5de5\u5177");
UIManager.put("Button.font", this.font = new Font("\u5fae\u8f6f\u96c5\u9ed1", 0, 12));
UIManager.put("Label.font", this.font);
UIManager.put("RadioButton.font", this.font);
UIManager.put("ComboBox.font", this.font);
UIManager.put("Table.font", this.font);
UIManager.put("TextField.font", this.font);
UIManager.put("TextArea.font", this.font);
UIManager.put("TitledBorder.font", this.font);
this.setBounds((this.width - this.windowsWidth) / 2, (this.height - this.windowsHeight) / 2, this.windowsWidth, this.windowsHeight);
this.initMainPanel();
this.initRadarConfig();
this.initZMQModule();
}
private void initMainPanel() {
(this.topMainPanel = new JPanel()).setLayout(null);
this.topMainPanel.setPreferredSize(new Dimension(this.windowsWidth - 10, 60));
// 雷达TCP-SERVER配置
this.topMainPanel.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "\u96f7\u8fbeTCP-SERVER\u914d\u7f6e", 4, 2, null, new Color(0, 0, 0)));
this.getContentPane().add(this.topMainPanel, "North");
(this.centerMainPanel = new JPanel()).setLayout(null);
this.centerMainPanel.setPreferredSize(new Dimension(this.windowsWidth - 10, 60));
// ZMQ发布配置
this.centerMainPanel.setBorder(new TitledBorder(null, "ZMQ\u53d1\u5e03\u914d\u7f6e", 4, 2, null, null));
this.getContentPane().add(this.centerMainPanel, "Center");
(this.bottomMainPanel = new JPanel()).setBorder(new TitledBorder(null, "\u65e5\u5fd7", 4, 2, null, null));
this.bottomMainPanel.setPreferredSize(new Dimension(this.windowsWidth - 10, 440));
this.getContentPane().add(this.bottomMainPanel, "South");
(RadarHelperFrame.textlog = new JTextArea()).setEditable(false);
RadarHelperFrame.textlog.setForeground(Color.RED);
RadarHelperFrame.textlog.setLineWrap(true);
final JScrollPane textlog_jsp = new JScrollPane(RadarHelperFrame.textlog);
textlog_jsp.setPreferredSize(new Dimension(this.windowsWidth - 10, 415));
this.bottomMainPanel.add(textlog_jsp);
}
private void initRadarConfig() {
// 服务IP
final JLabel top_radar_label_ip = new JLabel("\u670d\u52a1IP:");
top_radar_label_ip.setBounds(10, 24, 60, 20);
this.topMainPanel.add(top_radar_label_ip);
(this.top_radar_ip = new JTextField("")).setBounds(60, 24, 110, 20);
this.topMainPanel.add(this.top_radar_ip);
// TCP端口
final JLabel top_radar_label_port = new JLabel("TCP\u7aef\u53e3:");
top_radar_label_port.setBounds(180, 24, 60, 20);
this.topMainPanel.add(top_radar_label_port);
(this.top_radar_port = new JTextField("8899")).setBounds(240, 24, 50, 20);
this.topMainPanel.add(this.top_radar_port);
// 点击开启
(this.top_radar_button = new JButton("\u70b9\u51fb\u5f00\u542f")).setBounds(295, 24, 82, 20);
this.top_radar_button.addActionListener(this);
this.topMainPanel.add(this.top_radar_button);
// 开启日志打印
final JLabel top_radar_label_log = new JLabel("\u5f00\u542f\u65e5\u5fd7\u6253\u5370");
top_radar_label_log.setBounds(383, 24, 75, 20);
this.topMainPanel.add(top_radar_label_log);
(this.top_radar_log_checkBox01 = new JCheckBox()).setSelected(true);
this.top_radar_log_checkBox01.setBounds(460, 24, 20, 20);
this.topMainPanel.add(this.top_radar_log_checkBox01);
}
private void initZMQModule() {
// 本机IP
final JLabel top_localhost_label_ip = new JLabel("\u672c\u673aIP:");
top_localhost_label_ip.setBounds(10, 24, 60, 20);
this.centerMainPanel.add(top_localhost_label_ip);
(this.top_localhost_ip = new JTextField("")).setBounds(60, 24, 110, 20);
this.centerMainPanel.add(this.top_localhost_ip);
// TCP端口
final JLabel top_localhost_label_port = new JLabel("TCP\u7aef\u53e3:");
top_localhost_label_port.setBounds(180, 24, 60, 20);
this.centerMainPanel.add(top_localhost_label_port);
(this.top_localhost_port = new JTextField("5151")).setBounds(240, 24, 50, 20);
this.centerMainPanel.add(this.top_localhost_port);
final JLabel top_localhost_label_topic = new JLabel("TOPIC:");
top_localhost_label_topic.setBounds(290, 24, 82, 20);
this.centerMainPanel.add(top_localhost_label_topic);
(this.top_localhost_topic = new JTextField("radar_surface_track")).setBounds(330, 24, 75, 20);
this.centerMainPanel.add(this.top_localhost_topic);
// 点击发布
(this.top_localhost_button = new JButton("\u70b9\u51fb\u53d1\u5e03")).setBounds(405, 24, 84, 20);
this.top_localhost_button.addActionListener(this);
this.centerMainPanel.add(this.top_localhost_button);
final List<String> iplist = IPUtil.getLocalIPList();
if (iplist != null && iplist.size() > 0) {
this.top_radar_ip.setText(iplist.get(0));
this.top_localhost_ip.setText(iplist.get(0));
}
}
public static void writeLog(final String msg) {
final String text = RadarHelperFrame.textlog.getText();
final StringBuffer sb = new StringBuffer();
if (StringUtil.notBlank(text)) {
final String[] contents = RadarHelperFrame.textlog.getText().split("\n");
final int len = contents.length;
int start = 0;
if (len > RadarHelperFrame.LOG_DATA_ROW_LIMIT_NUM) {
start = len - RadarHelperFrame.LOG_DATA_ROW_LIMIT_NUM;
}
for (int i = start; i < len; ++i) {
sb.append(String.valueOf(contents[i]) + "\r\n");
}
}
sb.append(String.valueOf(msg) + "\r\n");
RadarHelperFrame.textlog.setText(null);
RadarHelperFrame.textlog.append(sb.toString());
}
@Override
public void actionPerformed(final ActionEvent e) {
if (e.getSource() == this.top_radar_button) {
// 点击开启
if (this.top_radar_button.getText().equals("\u70b9\u51fb\u5f00\u542f")) {
(this.radarServer = new RadarServer(this.top_radar_ip.getText().trim(), Integer.parseInt(this.top_radar_port.getText().trim()))).start();
// 点击停止
this.top_radar_button.setText("\u70b9\u51fb\u505c\u6b62");
}
else {
if (this.radarServer != null) {
this.radarServer.close();
}
// 点击开启
this.top_radar_button.setText("\u70b9\u51fb\u5f00\u542f");
this.top_radar_button.setForeground(new Color(0, 0, 0));
}
}
else if (e.getSource() == this.top_localhost_button) {
// 点击发布
if (this.top_localhost_button.getText().equals("\u70b9\u51fb\u53d1\u5e03")) {
RadarHelperFrame.topic_string = this.top_localhost_topic.getText().trim();
(RadarHelperFrame.zmqPubServer = new ZMQPubServer(this.top_localhost_ip.getText().trim(), Integer.parseInt(this.top_localhost_port.getText().trim()))).initZMQServerDy();
// 停止发布
this.top_localhost_button.setText("\u505c\u6b62\u53d1\u5e03");
}
else {
if (RadarHelperFrame.zmqPubServer != null) {
RadarHelperFrame.zmqPubServer.close();
}
this.top_localhost_button.setText("\u70b9\u51fb\u53d1\u5e03");
this.top_localhost_button.setForeground(new Color(0, 0, 0));
}
}
}
}

75
src/main/java/com/zhichenhaixin/hbase/CommonConfig.java

@ -0,0 +1,75 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.hbase;
import com.zhichenhaixin.base.util.SpringPropertyUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
public class CommonConfig
{
protected static Log log;
private static HBaseAdmin hbaseAdmin;
private static Configuration conf;
static {
CommonConfig.log = LogFactory.getLog(CommonConfig.class);
try {
(CommonConfig.conf = HBaseConfiguration.create()).set("hbase.zookeeper.property.clientPort", SpringPropertyUtil.getProperty("hbase.zookeeper.clientPort"));
CommonConfig.conf.set("hbase.zookeeper.quorum", SpringPropertyUtil.getProperty("hbase.zookeeper.quorum"));
CommonConfig.conf.set("hbase.master", SpringPropertyUtil.getProperty("hbase.master"));
CommonConfig.conf.set("hbase.security.authorization", "false");
CommonConfig.conf.set("hbase.client.keyvalue.maxsize", "838860800");
CommonConfig.conf.setLong("hbase.rpc.timeout", 600000L);
CommonConfig.conf.setLong("hbase.client.scanner.caching", 5000L);
CommonConfig.conf.set("hbase.hstore.compaction.min.size", "10485760");
CommonConfig.conf.set("hbase.hstore.compaction.max.size", "1073741824");
CommonConfig.conf.set("hbase.hregion.majorcompaction", "86400000");
CommonConfig.conf.set("hbase.hstore.compaction.max", "5");
CommonConfig.conf.set("hbase.hstore.blockingStoreFiles", "7");
CommonConfig.conf.set("hbase.hregion.max.filesize", "256");
CommonConfig.hbaseAdmin = new HBaseAdmin(CommonConfig.conf);
}
catch (Exception e) {
CommonConfig.log.error("hbase \u521d\u59cb\u5316\u5931\u8d25\uff01", e.fillInStackTrace());
}
}
public static Configuration getConfiguration() {
return CommonConfig.conf;
}
public static HBaseAdmin getHBaseAdmin() {
return CommonConfig.hbaseAdmin;
}
public static HTable getTable(final String tableName, final int size) {
HTable table = null;
try {
table = new HTable(CommonConfig.conf, tableName);
table.setWriteBufferSize(size * 1024 * 1024);
table.setAutoFlush(false);
}
catch (Exception e) {
CommonConfig.log.error("hbase \u521d\u59cb\u5316\u5931\u8d25\uff01", e.fillInStackTrace());
}
return table;
}
public static HTable getIndexTable(final String tableName) {
HTable table = null;
try {
table = new HTable(CommonConfig.conf, tableName);
}
catch (Exception e) {
CommonConfig.log.error("hbase \u521d\u59cb\u5316\u5931\u8d25\uff01", e.fillInStackTrace());
}
return table;
}
}

567
src/main/java/com/zhichenhaixin/hbase/HBaseClient.java

@ -0,0 +1,567 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.hbase;
import com.zhichenhaixin.base.util.StringUtil;
import com.zhichenhaixin.zmq.model.ResultData;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
import org.apache.hadoop.hbase.util.Bytes;
import java.util.ArrayList;
import java.util.List;
public class HBaseClient
{
private static Log log;
private final String qaz_wsx_table = "qaz_wsx";
private final String ais_tablename = "t_ais_data";
private final String aisbyid_tablename = "t_aisbyid_data";
private final String radar_tablename = "t_radar_data";
private final String radarbyid_tablename = "t_radarbyid_data";
private final String radarwarn_tablename = "t_radarwarn_data";
private final String radarbyid_copy_tablename = "t_radarbyid_copy_data";
private final String radarEcho_tablename = "t_radarEcho_data";
private final String gps_trace_data = "gps_trace_data";
private final String uavbyid_tablename = "t_uavbyid_data";
private final byte[] sourceType;
private final byte[] theData;
private final byte[] theCode;
private static HBaseClient client;
private HTable qaz_wsx;
private HTable ais_table;
private HTable aisbyid_table;
private HTable radar_table;
private HTable radarbyid_table;
private HTable radarwarn_table;
private HTable radarbyid_copy_table;
private HTable radarEcho_table;
private HTable gps_trace_data_table;
private HTable uavbyid_table;
private final byte[] family;
static {
HBaseClient.log = LogFactory.getLog(HBaseClient.class);
HBaseClient.client = new HBaseClient();
}
public HBaseClient() {
this.sourceType = Bytes.toBytes("sourceType");
this.theData = Bytes.toBytes("theData");
this.theCode = Bytes.toBytes("theCode");
this.family = Bytes.toBytes("info");
}
public static HBaseClient getInstance() {
return HBaseClient.client;
}
public void initHBase() {
this.ais_table = CommonConfig.getTable("t_ais_data", 1);
this.aisbyid_table = CommonConfig.getIndexTable("t_aisbyid_data");
this.radar_table = CommonConfig.getTable("t_radar_data", 1);
this.radarbyid_table = CommonConfig.getIndexTable("t_radarbyid_data");
this.radarwarn_table = CommonConfig.getIndexTable("t_radarwarn_data");
this.radarbyid_copy_table = CommonConfig.getTable("t_radarbyid_copy_data", 1);
this.radarEcho_table = CommonConfig.getIndexTable("t_radarEcho_data");
this.gps_trace_data_table = CommonConfig.getIndexTable("gps_trace_data");
this.uavbyid_table = CommonConfig.getIndexTable("t_uavbyid_data");
}
public void createTable(final String tableName) {
try {
final HTableDescriptor tableDescriptor = new HTableDescriptor(tableName);
tableDescriptor.addFamily(new HColumnDescriptor("info"));
CommonConfig.getHBaseAdmin().createTable(tableDescriptor);
}
catch (Exception e) {
HBaseClient.log.error("\u521b\u5efaHBase\u6570\u636e\u8868\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public void deleteTable(final String tableName) {
try {
CommonConfig.getHBaseAdmin().disableTable(tableName);
CommonConfig.getHBaseAdmin().deleteTable(tableName);
}
catch (Exception e) {
HBaseClient.log.error("\u5220\u9664HBase\u6570\u636e\u8868\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> scanRadarData(final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.radar_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setStartRow(Bytes.toBytes(starttime));
scan.setStopRow(Bytes.toBytes(endtime));
ResultData data = null;
final ResultScanner scanner = this.radar_table.getScanner(scan);
for (final Result result : scanner) {
data = new ResultData();
data.setTime(Long.parseLong(Bytes.toString(result.getRow())));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2radar\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public void saveRadarData(final String time, final byte[] data) {
if (this.radar_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.radar_table.put(put);
HBaseClient.log.debug("----->Radar Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58radar\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public void saveRadarDataById(final String id, final String time, final byte[] data) {
if (this.radarbyid_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(String.valueOf(id) + "_" + time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.radarbyid_table.put(put);
HBaseClient.log.debug("--->RadarById Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58radar\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public void saveRadarWarnData(final String time, final byte[] data) {
if (this.radarwarn_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.radarwarn_table.put(put);
HBaseClient.log.debug("----->RadarWarn Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58radar\u9884\u8b66\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> scanRadarWarnData(final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.radarwarn_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setStartRow(Bytes.toBytes(starttime));
scan.setStopRow(Bytes.toBytes(endtime));
ResultData data = null;
final ResultScanner scanner = this.radarwarn_table.getScanner(scan);
for (final Result result : scanner) {
data = new ResultData();
data.setTime(Long.parseLong(Bytes.toString(result.getRow())));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2radar\u9884\u8b66\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public void saveRadarDataByIdCopy(final String id, final String code, final String time, final byte[] data) {
if (this.radarbyid_copy_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(String.valueOf(id) + "_" + time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
put.add(this.family, this.theCode, code.getBytes());
this.radarbyid_copy_table.put(put);
HBaseClient.log.debug("--->RadarByIdCopy Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58radar\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> scanRadarDataById(final String id, final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.radarbyid_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setStartRow(Bytes.toBytes(String.valueOf(id) + "_" + starttime));
scan.setStopRow(Bytes.toBytes(String.valueOf(id) + "_" + endtime));
ResultData data = null;
final ResultScanner scanner = this.radarbyid_table.getScanner(scan);
for (final Result result : scanner) {
final String[] stringArray = Bytes.toString(result.getRow()).split("_");
data = new ResultData();
data.setTime(Long.parseLong(stringArray[stringArray.length - 1]));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2radar\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public void deleteRadarById(final String id) {
if (this.radarbyid_table == null) {
return;
}
try {
final long theTime = System.currentTimeMillis();
final long startTime = theTime - 1471228928L;
Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setFilter(new KeyOnlyFilter());
scan.setStartRow(Bytes.toBytes(String.valueOf(id) + "_" + String.valueOf(startTime)));
scan.setStopRow(Bytes.toBytes(String.valueOf(id) + "_" + String.valueOf(theTime)));
List<Delete> dbList = new ArrayList<Delete>();
Delete delete = null;
ResultScanner scanner = this.radarbyid_table.getScanner(scan);
for (final Result result : scanner) {
delete = new Delete(result.getRow());
dbList.add(delete);
}
this.radarbyid_table.delete(dbList);
dbList = null;
scanner = null;
scan = null;
}
catch (Exception e) {
HBaseClient.log.error("\u6e05\u7406radar\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public void saveRadarEchoData(final String time, final byte[] data) {
if (this.radarEcho_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.radarEcho_table.put(put);
HBaseClient.log.debug("------>Echo Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58radar\u56de\u6ce2\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> scanRadarEchoData(final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.radarEcho_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setFilter(new KeyOnlyFilter());
scan.setStartRow(Bytes.toBytes(starttime));
scan.setStopRow(Bytes.toBytes(endtime));
ResultData data = null;
final ResultScanner scanner = this.radarEcho_table.getScanner(scan);
for (final Result result : scanner) {
data = new ResultData();
data.setTime(Long.parseLong(Bytes.toString(result.getRow())));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2radar\u56de\u6ce2\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public void saveAISDataById(final String id, final String time, final byte[] data) {
try {
if (this.aisbyid_table == null) {
return;
}
final byte[] rowbt = Bytes.toBytes(String.valueOf(id) + "_" + time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.aisbyid_table.put(put);
HBaseClient.log.debug("--->AISById Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58AIS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> scanAISDataById(final String id, final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.aisbyid_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setStartRow(Bytes.toBytes(String.valueOf(id) + "_" + starttime));
scan.setStopRow(Bytes.toBytes(String.valueOf(id) + "_" + endtime));
ResultData data = null;
final ResultScanner scanner = this.aisbyid_table.getScanner(scan);
for (final Result result : scanner) {
final String[] stringArray = Bytes.toString(result.getRow()).split("_");
data = new ResultData();
data.setTime(Long.parseLong(stringArray[stringArray.length - 1]));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2AIS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public List<ResultData> scanAISData(final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.ais_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setStartRow(Bytes.toBytes(starttime));
scan.setStopRow(Bytes.toBytes(endtime));
ResultData data = null;
final ResultScanner scanner = this.ais_table.getScanner(scan);
for (final Result result : scanner) {
data = new ResultData();
data.setTime(Long.parseLong(Bytes.toString(result.getRow())));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2AIS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public void saveAISData(final String time, final byte[] data) {
if (this.ais_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.ais_table.put(put);
HBaseClient.log.debug("------->AIS Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58AIS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public void saveUAVDataById(final String id, final String time, final byte[] data) {
if (this.uavbyid_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(String.valueOf(id) + "_" + time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.uavbyid_table.put(put);
HBaseClient.log.debug("--->UAVById Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58\u65e0\u4eba\u673a\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public void saveUAVData(final String time, final byte[] data) {
if (this.uavbyid_table == null) {
return;
}
try {
final byte[] rowbt = Bytes.toBytes(time);
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.uavbyid_table.put(put);
HBaseClient.log.debug("--->UAVById Save ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58\u65e0\u4eba\u673a\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> scanUAVData(final String id, final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
if (this.uavbyid_table == null) {
return dbList;
}
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
if (StringUtil.notBlank(id)) {
scan.setStartRow(Bytes.toBytes(String.valueOf(id) + "_" + starttime));
scan.setStopRow(Bytes.toBytes(String.valueOf(id) + "_" + endtime));
}
else {
scan.setStartRow(Bytes.toBytes(starttime));
scan.setStopRow(Bytes.toBytes(endtime));
}
ResultData data = null;
final ResultScanner scanner = this.uavbyid_table.getScanner(scan);
for (final Result result : scanner) {
final String[] stringArray = Bytes.toString(result.getRow()).split("_");
data = new ResultData();
data.setTime(Long.parseLong(stringArray[stringArray.length - 1]));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2\u65e0\u4eba\u673a\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public List<ResultData> scanSeaState(final long starttime, final long endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
scan.setFilter(new KeyOnlyFilter());
scan.setStartRow(Bytes.toBytes(String.valueOf(starttime)));
scan.setStopRow(Bytes.toBytes(String.valueOf(endtime)));
ResultData data = null;
final ResultScanner scanner = this.qaz_wsx.getScanner(scan);
for (final Result result : scanner) {
data = new ResultData();
data.setTime(Long.parseLong(Bytes.toString(result.getRow())));
data.setData(result.getValue(this.family, Bytes.toBytes("qaz_wsx_data")));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2\u6d4b\u8bd5\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
public synchronized void saveTestData(final byte[] data) {
try {
final byte[] rowbt = Bytes.toBytes(System.currentTimeMillis());
final Put put = new Put(rowbt);
put.setWriteToWAL(false);
put.add(this.family, Bytes.toBytes("qaz_wsx_data"), data);
this.qaz_wsx.put(put);
HBaseClient.log.debug("-------------->ok");
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58\u6d4b\u8bd5\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public synchronized void saveGpsTraceByTime(final String time, final byte[] data) {
try {
final byte[] rowid = Bytes.toBytes(time);
final Put put = new Put(rowid);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.gps_trace_data_table.put(put);
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58GPS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public synchronized void saveGpsTraceByImeiAndTime(final String imei, final byte[] data) {
try {
final byte[] rowid = Bytes.toBytes(String.valueOf(imei) + "_" + String.valueOf(System.currentTimeMillis()));
final Put put = new Put(rowid);
put.setWriteToWAL(false);
put.add(this.family, this.theData, data);
this.gps_trace_data_table.put(put);
}
catch (Exception e) {
HBaseClient.log.error("\u4fdd\u5b58GPS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
}
public List<ResultData> queryGpsTrace(final String imei, final String starttime, final String endtime) {
final List<ResultData> dbList = new ArrayList<ResultData>();
try {
final Scan scan = new Scan();
scan.setBatch(500);
scan.setCacheBlocks(true);
if (StringUtil.notBlank(imei)) {
scan.setStartRow(Bytes.toBytes(String.valueOf(imei) + "_" + starttime));
scan.setStopRow(Bytes.toBytes(String.valueOf(imei) + "_" + endtime));
}
else {
scan.setStartRow(Bytes.toBytes(starttime));
scan.setStopRow(Bytes.toBytes(endtime));
}
ResultData data = null;
final ResultScanner scanner = this.gps_trace_data_table.getScanner(scan);
for (final Result result : scanner) {
final String[] stringArray = Bytes.toString(result.getRow()).split("_");
data = new ResultData();
data.setTime(Long.parseLong(stringArray[stringArray.length - 1]));
data.setData(result.getValue(this.family, this.theData));
dbList.add(data);
}
}
catch (Exception e) {
HBaseClient.log.error("\u67e5\u8be2GPS\u6570\u636e\u5f02\u5e38\uff01", e.fillInStackTrace());
}
return dbList;
}
}

96
src/main/java/com/zhichenhaixin/http/sys/model/RongkeInfo.java

@ -0,0 +1,96 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.http.sys.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class RongkeInfo
implements Serializable {
private static final long serialVersionUID = -4644991203691658628L;
private String id;
private String name;
private String imei;
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof RongkeInfo)) {
return false;
}
RongkeInfo other = (RongkeInfo)o;
if (!other.canEqual(this)) {
return false;
}
String this$id = this.getId();
String other$id = other.getId();
if (this$id == null ? other$id != null : !this$id.equals(other$id)) {
return false;
}
String this$name = this.getName();
String other$name = other.getName();
if (this$name == null ? other$name != null : !this$name.equals(other$name)) {
return false;
}
String this$imei = this.getImei();
String other$imei = other.getImei();
return !(this$imei == null ? other$imei != null : !this$imei.equals(other$imei));
}
protected boolean canEqual(Object other) {
return other instanceof RongkeInfo;
}
public int hashCode() {
int PRIME = 59;
int result = 1;
String $id = this.getId();
result = result * 59 + ($id == null ? 43 : $id.hashCode());
String $name = this.getName();
result = result * 59 + ($name == null ? 43 : $name.hashCode());
String $imei = this.getImei();
result = result * 59 + ($imei == null ? 43 : $imei.hashCode());
return result;
}
public String toString() {
return "RongkeInfo(id=" + this.getId() + ", name=" + this.getName() + ", imei=" + this.getImei() + ")";
}
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setImei(String imei) {
this.imei = imei;
}
public String getId() {
return this.id;
}
public String getName() {
return this.name;
}
public String getImei() {
return this.imei;
}
@ConstructorProperties(value={"id", "name", "imei"})
public RongkeInfo(String id, String name, String imei) {
this.id = id;
this.name = name;
this.imei = imei;
}
public RongkeInfo() {
}
}

147
src/main/java/com/zhichenhaixin/http/sys/model/RongkeVo.java

@ -0,0 +1,147 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.http.sys.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class RongkeVo
implements Serializable {
private static final long serialVersionUID = -4644991203691658628L;
private String operateId;
private String uiSaveDataFlag;
private String msgCode;
private String msgContent;
private String msgType;
private String data;
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof RongkeVo)) {
return false;
}
RongkeVo other = (RongkeVo)o;
if (!other.canEqual(this)) {
return false;
}
String this$operateId = this.getOperateId();
String other$operateId = other.getOperateId();
if (this$operateId == null ? other$operateId != null : !this$operateId.equals(other$operateId)) {
return false;
}
String this$uiSaveDataFlag = this.getUiSaveDataFlag();
String other$uiSaveDataFlag = other.getUiSaveDataFlag();
if (this$uiSaveDataFlag == null ? other$uiSaveDataFlag != null : !this$uiSaveDataFlag.equals(other$uiSaveDataFlag)) {
return false;
}
String this$msgCode = this.getMsgCode();
String other$msgCode = other.getMsgCode();
if (this$msgCode == null ? other$msgCode != null : !this$msgCode.equals(other$msgCode)) {
return false;
}
String this$msgContent = this.getMsgContent();
String other$msgContent = other.getMsgContent();
if (this$msgContent == null ? other$msgContent != null : !this$msgContent.equals(other$msgContent)) {
return false;
}
String this$msgType = this.getMsgType();
String other$msgType = other.getMsgType();
if (this$msgType == null ? other$msgType != null : !this$msgType.equals(other$msgType)) {
return false;
}
String this$data = this.getData();
String other$data = other.getData();
return !(this$data == null ? other$data != null : !this$data.equals(other$data));
}
protected boolean canEqual(Object other) {
return other instanceof RongkeVo;
}
public int hashCode() {
int PRIME = 59;
int result = 1;
String $operateId = this.getOperateId();
result = result * 59 + ($operateId == null ? 43 : $operateId.hashCode());
String $uiSaveDataFlag = this.getUiSaveDataFlag();
result = result * 59 + ($uiSaveDataFlag == null ? 43 : $uiSaveDataFlag.hashCode());
String $msgCode = this.getMsgCode();
result = result * 59 + ($msgCode == null ? 43 : $msgCode.hashCode());
String $msgContent = this.getMsgContent();
result = result * 59 + ($msgContent == null ? 43 : $msgContent.hashCode());
String $msgType = this.getMsgType();
result = result * 59 + ($msgType == null ? 43 : $msgType.hashCode());
String $data = this.getData();
result = result * 59 + ($data == null ? 43 : $data.hashCode());
return result;
}
public String toString() {
return "RongkeVo(operateId=" + this.getOperateId() + ", uiSaveDataFlag=" + this.getUiSaveDataFlag() + ", msgCode=" + this.getMsgCode() + ", msgContent=" + this.getMsgContent() + ", msgType=" + this.getMsgType() + ", data=" + this.getData() + ")";
}
public void setOperateId(String operateId) {
this.operateId = operateId;
}
public void setUiSaveDataFlag(String uiSaveDataFlag) {
this.uiSaveDataFlag = uiSaveDataFlag;
}
public void setMsgCode(String msgCode) {
this.msgCode = msgCode;
}
public void setMsgContent(String msgContent) {
this.msgContent = msgContent;
}
public void setMsgType(String msgType) {
this.msgType = msgType;
}
public void setData(String data) {
this.data = data;
}
public String getOperateId() {
return this.operateId;
}
public String getUiSaveDataFlag() {
return this.uiSaveDataFlag;
}
public String getMsgCode() {
return this.msgCode;
}
public String getMsgContent() {
return this.msgContent;
}
public String getMsgType() {
return this.msgType;
}
public String getData() {
return this.data;
}
@ConstructorProperties(value={"operateId", "uiSaveDataFlag", "msgCode", "msgContent", "msgType", "data"})
public RongkeVo(String operateId, String uiSaveDataFlag, String msgCode, String msgContent, String msgType, String data) {
this.operateId = operateId;
this.uiSaveDataFlag = uiSaveDataFlag;
this.msgCode = msgCode;
this.msgContent = msgContent;
this.msgType = msgType;
this.data = data;
}
public RongkeVo() {
}
}

67
src/main/java/com/zhichenhaixin/interceptor/CacheInterceptor.java

@ -0,0 +1,67 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.interceptor;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
import java.io.Serializable;
public class CacheInterceptor
implements MethodInterceptor,
InitializingBean {
private static final Log logger = LogFactory.getLog(CacheInterceptor.class);
private Cache cache;
public void setCache(Cache cache) {
this.cache = cache;
}
public Cache getCache() {
return this.cache;
}
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
Object[] arguments;
String methodName;
String targetName = invocation.getThis().getClass().getName();
String cacheKey = this.getCacheKey(targetName, methodName = invocation.getMethod().getName(), arguments = invocation.getArguments());
Element element = this.cache.get((Serializable)((Object)cacheKey));
if (element == null) {
logger.debug("\u7b2c\u4e00\u6b21\u8c03\u7528\u65b9\u6cd5\u5e76\u7f13\u5b58\u5176\u503c");
Object result = invocation.proceed();
element = new Element((Serializable)((Object)cacheKey), (Serializable)result);
this.cache.put(element);
} else {
logger.debug("\u4ece\u7f13\u5b58\u4e2d\u67e5\u8be2: " + this.cache.getName());
}
return element.getValue();
}
protected String getCacheKey(String targetName, String methodName, Object[] arguments) {
StringBuffer sb = new StringBuffer();
sb.append(targetName).append(".").append(methodName);
if (arguments != null && arguments.length != 0) {
int i = 0;
while (i < arguments.length) {
sb.append(".").append(arguments[i]);
++i;
}
}
return sb.toString();
}
@Override
public void afterPropertiesSet() throws Exception {
Assert.notNull(this.cache, "Need a cache. Please use setCache(Cache) create it.");
}
}

52
src/main/java/com/zhichenhaixin/interceptor/MethodCacheAfterAdvice.java

@ -0,0 +1,52 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.interceptor;
import net.sf.ehcache.Cache;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.AfterReturningAdvice;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.List;
public class MethodCacheAfterAdvice
implements AfterReturningAdvice,
InitializingBean,
Serializable {
private static final Log logger = LogFactory.getLog(MethodCacheAfterAdvice.class);
private Cache cache;
public void setCache(Cache cache) {
this.cache = cache;
}
public Cache getCache() {
return this.cache;
}
@Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable {
String className = arg3.getClass().getName();
List list = this.cache.getKeys();
int i = 0;
while (i < list.size()) {
String cacheKey = String.valueOf(list.get(i));
if (cacheKey.startsWith(className)) {
this.cache.remove((Serializable)((Object)cacheKey));
logger.debug("remove cache " + cacheKey);
}
++i;
}
}
@Override
public void afterPropertiesSet() throws Exception {
Assert.notNull(this.cache, "Need a cache. Please use setCache(Cache) create it.");
}
}

96
src/main/java/com/zhichenhaixin/interceptor/PaginationInterceptor.java

@ -0,0 +1,96 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.interceptor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.factory.DefaultObjectFactory;
import org.apache.ibatis.reflection.factory.ObjectFactory;
import org.apache.ibatis.reflection.wrapper.DefaultObjectWrapperFactory;
import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
import org.apache.ibatis.session.RowBounds;
import java.sql.Connection;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Intercepts(value={@Signature(type=StatementHandler.class, method="prepare", args={Connection.class})})
public class PaginationInterceptor
implements Interceptor {
private static Log log = LogFactory.getLog(PaginationInterceptor.class);
public static final String QUERY_PAGED_FLAG = "_QUERY_PAGED_FLAG_";
public static final String QUERY_COUNT_FLAG = "_QUERY_COUNT_FLAG_";
private String pagedSqlid;
private static final ObjectFactory DEFAULT_OBJECT_FACTORY = new DefaultObjectFactory();
private static final ObjectWrapperFactory DEFAULT_OBJECT_WRAPPER_FACTORY = new DefaultObjectWrapperFactory();
@Override
public Object intercept(Invocation invocation) throws Throwable {
StatementHandler statementHandler = (StatementHandler)invocation.getTarget();
MetaObject metaStatementHandler = MetaObject.forObject(statementHandler, DEFAULT_OBJECT_FACTORY, DEFAULT_OBJECT_WRAPPER_FACTORY);
String sqlid = (String)metaStatementHandler.getValue("delegate.mappedStatement.id");
if (!this.validSqlid(sqlid)) {
return invocation.proceed();
}
DefaultParameterHandler defaultParameterHandler = (DefaultParameterHandler)metaStatementHandler.getValue("delegate.parameterHandler");
Object paramObject = defaultParameterHandler.getParameterObject();
if (!(paramObject instanceof Map)) {
return invocation.proceed();
}
Map parameterMap = (Map)defaultParameterHandler.getParameterObject();
String originalSql = (String)metaStatementHandler.getValue("delegate.boundSql.sql");
if (parameterMap.containsKey(QUERY_COUNT_FLAG) && parameterMap.get(QUERY_COUNT_FLAG) != null) {
log.debug("\u5206\u9875\u67e5\u8be2\uff0c\u7edf\u8ba1\u603b\u6570");
metaStatementHandler.setValue("delegate.boundSql.sql", this.getCountSql(originalSql));
} else if (parameterMap.containsKey(QUERY_PAGED_FLAG) && parameterMap.get(QUERY_PAGED_FLAG) != null) {
RowBounds rowBounds = (RowBounds)metaStatementHandler.getValue("delegate.rowBounds");
log.debug("\u5206\u9875\u67e5\u8be2\uff0c[" + rowBounds.getOffset() + "," + rowBounds.getLimit() + "]");
metaStatementHandler.setValue("delegate.boundSql.sql", this.getPagedSql(originalSql, rowBounds.getOffset(), rowBounds.getLimit()));
metaStatementHandler.setValue("delegate.rowBounds.offset", 0);
metaStatementHandler.setValue("delegate.rowBounds.limit", Integer.MAX_VALUE);
}
return invocation.proceed();
}
@Override
public Object plugin(Object target) {
if (target instanceof StatementHandler) {
return Plugin.wrap(target, this);
}
return target;
}
@Override
public void setProperties(Properties properties) {
this.pagedSqlid = properties.getProperty("pagedSqlid", "\\.(qry|query|select|get)");
log.debug(properties);
}
private String getPagedSql(String originalSql, int offset, int limit) {
StringBuffer sql = new StringBuffer(originalSql.length() + 100);
sql.append("SELECT ROW2_.* FROM (SELECT ROW_.*, row_number() over() ROWNUM_ FROM (");
sql.append(originalSql);
sql.append(") ROW_)ROW2_ WHERE ROW2_.ROWNUM_ >" + offset);
sql.append(" and ROW2_.ROWNUM_ <=" + (offset + limit));
return sql.toString();
}
private String getCountSql(String originalSql) {
String countSql = "SELECT COUNT(0) AS CNT_TOTAL FROM (" + originalSql + ") CT__";
return countSql;
}
private boolean validSqlid(String sqlid) {
Pattern pattern = Pattern.compile(this.pagedSqlid);
Matcher matcher = pattern.matcher(sqlid);
return matcher.find();
}
}

17
src/main/java/com/zhichenhaixin/interceptor/QuartzTask.java

@ -0,0 +1,17 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.interceptor;
import com.zhichenhaixin.base.dao.impl.BaseDaoImpl;
public class QuartzTask
extends BaseDaoImpl {
public void intervalometer() {
this.log.info("quartz start!");
long now = System.currentTimeMillis();
long alter = System.currentTimeMillis();
this.log.info("quartz stop! ------------------->total time use: " + (alter - now));
}
}

14
src/main/java/com/zhichenhaixin/interceptor/RequiredInterceptor.java

@ -0,0 +1,14 @@
/*
* Decompiled with CFR 0.152.
*/
package com.zhichenhaixin.interceptor;
import java.lang.annotation.*;
@Target(value={ElementType.METHOD})
@Retention(value=RetentionPolicy.RUNTIME)
@Documented
public @interface RequiredInterceptor {
public boolean required() default true;
}

34
src/main/java/com/zhichenhaixin/list/dao/DbAlarmInfoDao.java

@ -0,0 +1,34 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.dao;
import com.zhichenhaixin.base.dao.BaseDao;
import com.zhichenhaixin.list.model.AlarmInfoSearch;
import com.zhichenhaixin.list.model.StatisticsInfo;
import com.zhichenhaixin.sys.model.WarnComposeVideoVo;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import java.util.List;
public interface DbAlarmInfoDao extends BaseDao
{
StatisticsInfo getStatistics(final AlarmInfoSearch p0);
List<WarnInfoBean> selectWarnAll(final AlarmInfoSearch p0);
int selectWarnAlarmCount(final AlarmInfoSearch p0);
StatisticsInfo getStatisticsRadar(final AlarmInfoSearch p0);
List<WarnInfoBean> selectWarnAllRadar(final AlarmInfoSearch p0);
int selectWarnAlarmCountRadar(final AlarmInfoSearch p0);
void andComposeVideo(final WarnComposeVideoVo p0);
List<WarnComposeVideoVo> queryComposeVideo(final String p0);
String queryCamTime(final String p0);
}

23
src/main/java/com/zhichenhaixin/list/dao/DbDeviceDao.java

@ -0,0 +1,23 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.dao;
import com.zhichenhaixin.list.model.ClsDev;
import com.zhichenhaixin.list.model.SmsDev;
import com.zhichenhaixin.list.model.VasDev;
import com.zhichenhaixin.list.model.WmsDev;
import java.util.List;
public interface DbDeviceDao
{
List<ClsDev> selectAllClsDev();
List<SmsDev> selectAllSmsDev();
List<VasDev> selectAllVasDev();
List<WmsDev> selectAllWmsDev();
}

19
src/main/java/com/zhichenhaixin/list/dao/DbSiteInfoDao.java

@ -0,0 +1,19 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.dao;
import com.zhichenhaixin.list.model.ResMsg;
import com.zhichenhaixin.list.model.SiteInfo;
import java.util.List;
public interface DbSiteInfoDao
{
ResMsg insertSiteInfo(final SiteInfo p0);
List<SiteInfo> selectAllSiteInfo();
ResMsg delSiteInfo(final SiteInfo p0);
}

258
src/main/java/com/zhichenhaixin/list/dao/impl/DbAlarmInfoDaoImpl.java

@ -0,0 +1,258 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.dao.impl;
import com.zhichenhaixin.base.constant.Constant;
import com.zhichenhaixin.base.dao.impl.BaseDaoImpl;
import com.zhichenhaixin.base.util.HttpUtils;
import com.zhichenhaixin.base.util.StringUtil;
import com.zhichenhaixin.cache.util.WarnAlarmCountEhcache;
import com.zhichenhaixin.list.dao.DbAlarmInfoDao;
import com.zhichenhaixin.list.model.AlarmInfoSearch;
import com.zhichenhaixin.list.model.StatisticsInfo;
import com.zhichenhaixin.list.model.StatisticsVo;
import com.zhichenhaixin.sys.model.WarnComposeVideoVo;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository("dbAlarmInfoDaoImpl")
public class DbAlarmInfoDaoImpl extends BaseDaoImpl implements DbAlarmInfoDao
{
@Override
public List<WarnInfoBean> selectWarnAll(final AlarmInfoSearch record) {
final Map<String, Object> param = new HashMap<String, Object>();
param.put("nBeginTime", record.getNBeginTime());
param.put("nEndTime", record.getNEndTime());
param.put("t", String.valueOf(record.getT()));
param.put("strSiteName", record.getStrSiteName());
param.put("cameraName", record.getCameraName());
param.put("handler", record.getHandler());
param.put("handleStatus", record.getHandleStatus());
param.put("curPage", record.getCurPage());
param.put("size", record.getSize());
final List<WarnInfoBean> selectList = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectWarnAll", param);
for (final WarnInfoBean warnInfoBean : selectList) {
final List<WarnComposeVideoVo> list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectWarnComposeVideoNoFalseAlarm", warnInfoBean.getId());
warnInfoBean.setCompose_Video_list(list);
}
return selectList;
}
@Override
public int selectWarnAlarmCount(final AlarmInfoSearch record) {
final Map<String, Object> param = new HashMap<String, Object>();
param.put("nBeginTime", record.getNBeginTime());
param.put("nEndTime", record.getNEndTime());
param.put("t", String.valueOf(record.getT()));
param.put("strSiteName", record.getStrSiteName());
param.put("cameraName", record.getCameraName());
param.put("handler", record.getHandler());
param.put("handleStatus", record.getHandleStatus());
final int selectOne = this.pg_template.selectOne("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectWarnAllByNum", param);
return selectOne;
}
@Override
public StatisticsInfo getStatistics(final AlarmInfoSearch record) {
final StatisticsInfo statisticsInfo = new StatisticsInfo();
final Map<String, Object> map = new HashMap<String, Object>();
map.put("type", record.getType());
map.put("begin_time", record.getNBeginTime());
map.put("end_time", record.getNEndTime());
map.put("sitename", record.getStrSiteName());
map.put("camera_name", record.getCameraName());
map.put("handler", record.getHandler());
map.put("handle_status", record.getHandleStatus());
map.put("t", String.valueOf(record.getT()));
if (record.getType() == 3) {
final StatisticsVo statisticsVo = this.pg_template.selectOne("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectMaxMinTime", map);
final String[] max = statisticsVo.getMax().split("-");
final String[] min = statisticsVo.getMin().split("-");
if (max[2].equals(min[2])) {
map.put("moldtype", "hh24:00:00");
}
else if (max[1].equals(min[1])) {
map.put("moldtype", "YYYY-MM-DD");
}
else if (max[0].equals(min[0])) {
map.put("moldtype", "YYYY-MM");
}
else {
map.put("moldtype", "YYYY");
}
}
final List<StatisticsVo> selectList = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectByGroupByNum", map);
final Map<String, Integer> map2 = new HashMap<String, Integer>();
for (final StatisticsVo statisticsVo2 : selectList) {
if (StringUtil.notBlank(statisticsVo2.getKey())) {
map2.put(statisticsVo2.getKey(), statisticsVo2.getNumber());
}
}
statisticsInfo.setKey_number(map2);
return statisticsInfo;
}
@Override
public List<WarnInfoBean> selectWarnAllRadar(final AlarmInfoSearch record) {
final Map<String, Object> param = new HashMap<String, Object>();
param.put("nBeginTime", record.getNBeginTime());
param.put("nEndTime", record.getNEndTime());
param.put("t", String.valueOf(record.getT()));
param.put("strSiteName", record.getStrSiteName());
param.put("cameraName", record.getCameraName());
param.put("handler", record.getHandler());
param.put("handleStatus", record.getHandleStatus());
param.put("curPage", record.getCurPage());
param.put("size", record.getSize());
final List<WarnInfoBean> selectList = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectRadarWarnAll", param);
for (final WarnInfoBean warnInfoBean : selectList) {
final List<WarnComposeVideoVo> list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectWarnComposeVideoNoFalseAlarm", warnInfoBean.getId());
warnInfoBean.setCompose_Video_list(list);
}
return selectList;
}
@Override
public int selectWarnAlarmCountRadar(final AlarmInfoSearch record) {
final Map<String, Object> param = new HashMap<String, Object>();
param.put("nBeginTime", record.getNBeginTime());
param.put("nEndTime", record.getNEndTime());
param.put("t", String.valueOf(record.getT()));
param.put("strSiteName", record.getStrSiteName());
param.put("cameraName", record.getCameraName());
param.put("handler", record.getHandler());
param.put("handleStatus", record.getHandleStatus());
final int selectOne = this.pg_template.selectOne("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectRadarWarnAllByNum", param);
return selectOne;
}
@Override
public StatisticsInfo getStatisticsRadar(final AlarmInfoSearch record) {
final StatisticsInfo statisticsInfo = new StatisticsInfo();
final Map<String, Object> map = new HashMap<String, Object>();
map.put("type", record.getType());
map.put("begin_time", record.getNBeginTime());
map.put("end_time", record.getNEndTime());
map.put("sitename", record.getStrSiteName());
map.put("camera_name", record.getCameraName());
map.put("handler", record.getHandler());
map.put("handle_status", record.getHandleStatus());
map.put("t", String.valueOf(record.getT()));
if (record.getType() == 3) {
final StatisticsVo statisticsVo = this.pg_template.selectOne("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectRadarMaxMinTime", map);
final String[] max = statisticsVo.getMax().split("-");
final String[] min = statisticsVo.getMin().split("-");
if (max[2].equals(min[2])) {
map.put("moldtype", "hh24:00:00");
}
else if (max[1].equals(min[1])) {
map.put("moldtype", "YYYY-MM-DD");
}
else if (max[0].equals(min[0])) {
map.put("moldtype", "YYYY-MM");
}
else {
map.put("moldtype", "YYYY");
}
}
final List<StatisticsVo> selectList = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectRadarByGroupByNum", map);
final Map<String, Integer> map2 = new HashMap<String, Integer>();
for (final StatisticsVo statisticsVo2 : selectList) {
if (StringUtil.notBlank(statisticsVo2.getKey())) {
map2.put(statisticsVo2.getKey(), statisticsVo2.getNumber());
}
}
statisticsInfo.setKey_number(map2);
return statisticsInfo;
}
public void saveWarnRecord(final WarnInfoBean bean) {
final WarnInfoBean warnId = this.queryWarnId(bean.getId());
if (warnId != null) {
return;
}
final String time = String.valueOf(bean.getBegintime());
final long date = Long.valueOf(time);
final long begintime = (time.length() == 13) ? (date / 1000L) : date;
bean.setBegintime(begintime);
this.pg_template.insert("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.insertWarnInfoBean", bean);
bean.setSign("1");
bean.setAlarm_status("3");
bean.setUntreated_alarm_count(WarnAlarmCountEhcache.get() + 1);
Constant.sendClient(bean);
bean.setRtsp(null);
HttpUtils.sendWarnToRongKe(bean);
}
public void saveWarn(final WarnInfoBean bean) {
final WarnInfoBean warnId = this.queryWarnId(bean.getId());
if (warnId != null) {
return;
}
final String time = String.valueOf(bean.getBegintime());
final long date = Long.valueOf(time);
final long begintime = (time.length() == 13) ? (date / 1000L) : date;
bean.setBegintime(begintime);
this.pg_template.insert("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.insertWarnInfoBean", bean);
}
public void updateWarnStatus(final WarnInfoBean vo) {
this.pg_template.update("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.updateWarnStatus", vo);
}
public WarnInfoBean queryWarnId(final String id) {
final List<WarnInfoBean> selectList = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.queryWarnId", id);
return (selectList != null && selectList.size() > 0) ? selectList.get(0) : null;
}
public void updateWarnParam(final WarnInfoBean bean) {
this.pg_template.update("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.updateWarnParam", bean);
}
@Override
public void andComposeVideo(final WarnComposeVideoVo vo) {
final WarnInfoBean warnId = this.queryWarnId(vo.getAlarm_id());
if (warnId == null) {
return;
}
final List<WarnComposeVideoVo> list = this.queryComposeVideo(vo.getAlarm_id());
for (final WarnComposeVideoVo warnComposeVideoVo : list) {
if (warnComposeVideoVo.getRtsp() != null && warnComposeVideoVo.getRtsp().equals(vo.getRtsp())) {
return;
}
if (warnComposeVideoVo.getFalse_alarm_rtsp() != null && warnComposeVideoVo.getFalse_alarm_rtsp().equals(vo.getFalse_alarm_rtsp())) {
return;
}
}
this.pg_template.insert("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.insertComposeVideo", vo);
if (StringUtil.notBlank(vo.getFalse_alarm_rtsp())) {
return;
}
WarnAlarmCountEhcache.put(WarnAlarmCountEhcache.get() + 1);
}
@Override
public List<WarnComposeVideoVo> queryComposeVideo(final String alarm_id) {
final List<WarnComposeVideoVo> list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.selectWarnComposeVideo", alarm_id);
return list;
}
public void initWarnAlarmCount() {
final AlarmInfoSearch record = new AlarmInfoSearch();
record.setHandleStatus(2);
final int count = this.selectWarnAlarmCount(record);
WarnAlarmCountEhcache.put(count);
}
@Override
public String queryCamTime(final String camera_id) {
final String time = this.pg_template.selectOne("com.com.zhichenhaixin.list.dao.DbAlarmInfoDao.queryCamTime", camera_id);
return time;
}
}

39
src/main/java/com/zhichenhaixin/list/dao/impl/DbDeviceDaoImpl.java

@ -0,0 +1,39 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.dao.impl;
import com.zhichenhaixin.base.dao.impl.BaseDaoImpl;
import com.zhichenhaixin.list.dao.DbDeviceDao;
import com.zhichenhaixin.list.model.ClsDev;
import com.zhichenhaixin.list.model.SmsDev;
import com.zhichenhaixin.list.model.VasDev;
import com.zhichenhaixin.list.model.WmsDev;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository("dbDeviceDaoImpl")
public class DbDeviceDaoImpl extends BaseDaoImpl implements DbDeviceDao
{
@Override
public List<ClsDev> selectAllClsDev() {
return this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbClsDeviceDao.selectAll");
}
@Override
public List<SmsDev> selectAllSmsDev() {
return this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbSmsDeviceDao.selectAll");
}
@Override
public List<VasDev> selectAllVasDev() {
return this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbVasDeviceDao.selectAll");
}
@Override
public List<WmsDev> selectAllWmsDev() {
return this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbWmsDeviceDao.selectAll");
}
}

65
src/main/java/com/zhichenhaixin/list/dao/impl/DbSiteInfoDaoImpl.java

@ -0,0 +1,65 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.dao.impl;
import com.zhichenhaixin.base.dao.impl.BaseDaoImpl;
import com.zhichenhaixin.list.dao.DbSiteInfoDao;
import com.zhichenhaixin.list.model.ResMsg;
import com.zhichenhaixin.list.model.SiteInfo;
import com.zhichenhaixin.sys.model.CameraInfo;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository("dbSiteInfoDaoImpl")
public class DbSiteInfoDaoImpl extends BaseDaoImpl implements DbSiteInfoDao
{
@CacheEvict(value = { "daoCache" }, allEntries = true)
@Override
public ResMsg insertSiteInfo(final SiteInfo record) {
final ResMsg msg = new ResMsg();
List<SiteInfo> list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbSiteInfoDao.selectByPrimaryKey", record.getSbid());
if (list != null && list.size() > 0) {
msg.setCode(1);
msg.setMsg("\u7f16\u53f7\u5df2\u7ecf\u5b58\u5728\uff01");
return msg;
}
list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbSiteInfoDao.selectByPrimaryName", record.getName());
if (list != null && list.size() > 0) {
msg.setCode(1);
msg.setMsg("\u7ad9\u70b9\u540d\u79f0\u5df2\u7ecf\u5b58\u5728\uff01");
return msg;
}
this.pg_template.insert("com.com.zhichenhaixin.list.dao.DbSiteInfoDao.insert", record);
msg.setCode(0);
msg.setMsg("\u76f8\u673a\u7ad9\u70b9\u6dfb\u52a0\u6210\u529f\uff01");
return msg;
}
@Cacheable(value = { "daoCache" }, key = "#root.methodName")
@Override
public List<SiteInfo> selectAllSiteInfo() {
final List<SiteInfo> list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbSiteInfoDao.selectAll");
return list;
}
@CacheEvict(value = { "daoCache" }, allEntries = true)
@Override
public ResMsg delSiteInfo(final SiteInfo info) {
final ResMsg msg = new ResMsg();
final List<CameraInfo> list = this.pg_template.selectList("com.com.zhichenhaixin.list.dao.DbSiteInfoDao.queryIsCamera", info);
if (list != null && list.size() > 0) {
msg.setCode(0);
msg.setMsg("\u76f8\u673a\u6746\u6709\u76f8\u673a\u5b58\u5728\uff0c\u65e0\u6cd5\u5220\u9664\u76f8\u673a\u6746");
return msg;
}
this.pg_template.delete("com.com.zhichenhaixin.list.dao.DbSiteInfoDao.deleteSiteInfo", info);
msg.setCode(0);
msg.setMsg("\u76f8\u673a\u6746\u5220\u9664\u6210\u529f");
return msg;
}
}

102
src/main/java/com/zhichenhaixin/list/model/AlarmInfoSearch.java

@ -0,0 +1,102 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.model;
import com.zhichenhaixin.base.model.ReqPage;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class AlarmInfoSearch extends ReqPage implements Serializable
{
private static final long serialVersionUID = 1049469804934728000L;
private int nBeginTime;
private int nEndTime;
private int t;
private String strSiteName;
private String cameraName;
private String handler;
private int handleStatus;
private int type;
public void setNBeginTime(final int nBeginTime) {
this.nBeginTime = nBeginTime;
}
public void setNEndTime(final int nEndTime) {
this.nEndTime = nEndTime;
}
public void setT(final int t) {
this.t = t;
}
public void setStrSiteName(final String strSiteName) {
this.strSiteName = strSiteName;
}
public void setCameraName(final String cameraName) {
this.cameraName = cameraName;
}
public void setHandler(final String handler) {
this.handler = handler;
}
public void setHandleStatus(final int handleStatus) {
this.handleStatus = handleStatus;
}
public void setType(final int type) {
this.type = type;
}
public int getNBeginTime() {
return this.nBeginTime;
}
public int getNEndTime() {
return this.nEndTime;
}
public int getT() {
return this.t;
}
public String getStrSiteName() {
return this.strSiteName;
}
public String getCameraName() {
return this.cameraName;
}
public String getHandler() {
return this.handler;
}
public int getHandleStatus() {
return this.handleStatus;
}
public int getType() {
return this.type;
}
@ConstructorProperties({ "nBeginTime", "nEndTime", "t", "strSiteName", "cameraName", "handler", "handleStatus", "type" })
public AlarmInfoSearch(final int nBeginTime, final int nEndTime, final int t, final String strSiteName, final String cameraName, final String handler, final int handleStatus, final int type) {
this.nBeginTime = nBeginTime;
this.nEndTime = nEndTime;
this.t = t;
this.strSiteName = strSiteName;
this.cameraName = cameraName;
this.handler = handler;
this.handleStatus = handleStatus;
this.type = type;
}
public AlarmInfoSearch() {
}
}

15
src/main/java/com/zhichenhaixin/list/model/AlarmListDto.java

@ -0,0 +1,15 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.model;
import com.zhichenhaixin.base.model.ResPage;
import com.zhichenhaixin.sys.model.WarnInfoBean;
import java.io.Serializable;
public class AlarmListDto extends ResPage<WarnInfoBean> implements Serializable
{
private static final long serialVersionUID = 3034377749571056719L;
}

201
src/main/java/com/zhichenhaixin/list/model/ClsDev.java

@ -0,0 +1,201 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class ClsDev implements Serializable
{
private static final long serialVersionUID = 5468774681646446079L;
private int nDBID;
private int nPort;
private String szName;
private String szDesc;
private String szIP;
private String szUid;
private String szPwd;
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
if (!(o instanceof ClsDev)) {
return false;
}
final ClsDev other = (ClsDev)o;
if (!other.canEqual(this)) {
return false;
}
if (this.getNDBID() != other.getNDBID()) {
return false;
}
if (this.getNPort() != other.getNPort()) {
return false;
}
final Object this$szName = this.getSzName();
final Object other$szName = other.getSzName();
Label_0091: {
if (this$szName == null) {
if (other$szName == null) {
break Label_0091;
}
}
else if (this$szName.equals(other$szName)) {
break Label_0091;
}
return false;
}
final Object this$szDesc = this.getSzDesc();
final Object other$szDesc = other.getSzDesc();
Label_0128: {
if (this$szDesc == null) {
if (other$szDesc == null) {
break Label_0128;
}
}
else if (this$szDesc.equals(other$szDesc)) {
break Label_0128;
}
return false;
}
final Object this$szIP = this.getSzIP();
final Object other$szIP = other.getSzIP();
Label_0165: {
if (this$szIP == null) {
if (other$szIP == null) {
break Label_0165;
}
}
else if (this$szIP.equals(other$szIP)) {
break Label_0165;
}
return false;
}
final Object this$szUid = this.getSzUid();
final Object other$szUid = other.getSzUid();
Label_0202: {
if (this$szUid == null) {
if (other$szUid == null) {
break Label_0202;
}
}
else if (this$szUid.equals(other$szUid)) {
break Label_0202;
}
return false;
}
final Object this$szPwd = this.getSzPwd();
final Object other$szPwd = other.getSzPwd();
if (this$szPwd == null) {
if (other$szPwd == null) {
return true;
}
}
else if (this$szPwd.equals(other$szPwd)) {
return true;
}
return false;
}
protected boolean canEqual(final Object other) {
return other instanceof ClsDev;
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
result = result * 59 + this.getNDBID();
result = result * 59 + this.getNPort();
final Object $szName = this.getSzName();
result = result * 59 + (($szName == null) ? 43 : $szName.hashCode());
final Object $szDesc = this.getSzDesc();
result = result * 59 + (($szDesc == null) ? 43 : $szDesc.hashCode());
final Object $szIP = this.getSzIP();
result = result * 59 + (($szIP == null) ? 43 : $szIP.hashCode());
final Object $szUid = this.getSzUid();
result = result * 59 + (($szUid == null) ? 43 : $szUid.hashCode());
final Object $szPwd = this.getSzPwd();
result = result * 59 + (($szPwd == null) ? 43 : $szPwd.hashCode());
return result;
}
@Override
public String toString() {
return "ClsDev(nDBID=" + this.getNDBID() + ", nPort=" + this.getNPort() + ", szName=" + this.getSzName() + ", szDesc=" + this.getSzDesc() + ", szIP=" + this.getSzIP() + ", szUid=" + this.getSzUid() + ", szPwd=" + this.getSzPwd() + ")";
}
public void setNDBID(final int nDBID) {
this.nDBID = nDBID;
}
public void setNPort(final int nPort) {
this.nPort = nPort;
}
public void setSzName(final String szName) {
this.szName = szName;
}
public void setSzDesc(final String szDesc) {
this.szDesc = szDesc;
}
public void setSzIP(final String szIP) {
this.szIP = szIP;
}
public void setSzUid(final String szUid) {
this.szUid = szUid;
}
public void setSzPwd(final String szPwd) {
this.szPwd = szPwd;
}
public int getNDBID() {
return this.nDBID;
}
public int getNPort() {
return this.nPort;
}
public String getSzName() {
return this.szName;
}
public String getSzDesc() {
return this.szDesc;
}
public String getSzIP() {
return this.szIP;
}
public String getSzUid() {
return this.szUid;
}
public String getSzPwd() {
return this.szPwd;
}
@ConstructorProperties({ "nDBID", "nPort", "szName", "szDesc", "szIP", "szUid", "szPwd" })
public ClsDev(final int nDBID, final int nPort, final String szName, final String szDesc, final String szIP, final String szUid, final String szPwd) {
this.nDBID = nDBID;
this.nPort = nPort;
this.szName = szName;
this.szDesc = szDesc;
this.szIP = szIP;
this.szUid = szUid;
this.szPwd = szPwd;
}
public ClsDev() {
}
}

87
src/main/java/com/zhichenhaixin/list/model/ResMsg.java

@ -0,0 +1,87 @@
//
// Decompiled by Procyon v0.5.36
//
package com.zhichenhaixin.list.model;
import java.beans.ConstructorProperties;
import java.io.Serializable;
public class ResMsg implements Serializable
{
private static final long serialVersionUID = -2906951484469395361L;
private int code;
private String msg;
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
if (!(o instanceof ResMsg)) {
return false;
}
final ResMsg other = (ResMsg)o;
if (!other.canEqual(this)) {
return false;
}
if (this.getCode() != other.getCode()) {
return false;
}
final Object this$msg = this.getMsg();
final Object other$msg = other.getMsg();
if (this$msg == null) {
if (other$msg == null) {
return true;
}
}
else if (this$msg.equals(other$msg)) {
return true;
}
return false;
}
protected boolean canEqual(final Object other) {
return other instanceof ResMsg;
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
result = result * 59 + this.getCode();
final Object $msg = this.getMsg();
result = result * 59 + (($msg == null) ? 43 : $msg.hashCode());
return result;
}
@Override
public String toString() {
return "ResMsg(code=" + this.getCode() + ", msg=" + this.getMsg() + ")";
}
public void setCode(final int code) {
this.code = code;
}
public void setMsg(final String msg) {
this.msg = msg;
}
public int getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
@ConstructorProperties({ "code", "msg" })
public ResMsg(final int code, final String msg) {
this.code = code;
this.msg = msg;
}
public ResMsg() {
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save