Browse Source

git-svn-id: https://192.168.57.71/svn/qt@18 12fe181a-e57f-b044-8676-16dc139aa63e

xt_yuanxd 9 years ago
parent
commit
8afbe85f55
100 changed files with 13958 additions and 0 deletions
  1. 210 0
      jdc/jdcweb/trunk/pom.xml
  2. 234 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/BaseWebCtl.java
  3. 259 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonBaseService.java
  4. 78 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonEntity.java
  5. 1075 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonUtil.java
  6. 58 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonVo.java
  7. 222 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/Constants.java
  8. 128 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/ExceptionResolver.java
  9. 45 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/GlobalData.java
  10. 66 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/GsonUtil.java
  11. 130 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/ImageUtil.java
  12. 45 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/InitServlet.java
  13. 447 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/PropertyUtil.java
  14. 109 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/SolrClientUtils.java
  15. 49 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/StringEscapeEditor.java
  16. 19 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/html/filter/JdcHtmlFilter.java
  17. 204 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/html/filter/VeryzhunHbdtSearchFilter.java
  18. 80 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/CodesMapService.java
  19. 25 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/CustomDateSerializer.java
  20. 57 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/CustomGetMethod.java
  21. 193 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/DateUtil.java
  22. 170 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/Dijkstra.java
  23. 264 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/HttpMain.java
  24. 223 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/HttpProxy.java
  25. 72 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/RouteUtil.java
  26. 103 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/Tree.java
  27. 334 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/ctl/AccessoryCtl.java
  28. 26 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/dao/AccessoryDao.java
  29. 15 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/dao/BlobDao.java
  30. 164 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/entity/AccessoryEntity.java
  31. 67 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/entity/BlobEntity.java
  32. 59 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/service/AccessoryService.java
  33. 101 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/service/impl/AccessoryServiceImpl.java
  34. 153 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/vo/AccessoryVo.java
  35. 651 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/ctl/AirCtl.java
  36. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/AirDao.java
  37. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/AirRealtimeDao.java
  38. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/FlightDynamicDao.java
  39. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/HkgsDao.java
  40. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/HkgsJdDao.java
  41. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/HkgsJxDao.java
  42. 231 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/AirBasic.java
  43. 58 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/AirPosition.java
  44. 115 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/FlightDynamic.java
  45. 72 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/HkgsInfo.java
  46. 65 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/HkgsJd.java
  47. 384 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/HkgsJx.java
  48. 171 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/TairDetail.java
  49. 384 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/TairDynamicInfo.java
  50. 88 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/service/AirService.java
  51. 44 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/service/impl/AirJob.java
  52. 229 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/service/impl/AirServiceImpl.java
  53. 256 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/vo/TairDynamicVo.java
  54. 256 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/ctl/AisCtl.java
  55. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/dao/CbjbxxDao.java
  56. 12 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/dao/TAisSjDao.java
  57. 233 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/AisDynamic.java
  58. 457 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/CbjbxxEntity.java
  59. 55 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/RegionAis.java
  60. 276 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/TAisHistory.java
  61. 276 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/TAisRealtime.java
  62. 84 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/TAisSj.java
  63. 37 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/service/AisService.java
  64. 112 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/service/impl/AisServiceImpl.java
  65. 68 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/vo/ShipPosition.java
  66. 33 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/vo/ShipVo.java
  67. 126 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/ctl/BasicDataCtl.java
  68. 65 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/ctl/BasicDetailCtl.java
  69. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BWDao.java
  70. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicAirDao.java
  71. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicChuanZhaDao.java
  72. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicCjqdDao.java
  73. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicDataDao.java
  74. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicFwqDao.java
  75. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicGangquDao.java
  76. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicJiancezhanDao.java
  77. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicKJBridgeDao.java
  78. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicKeyunzhanDao.java
  79. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicRailstationDao.java
  80. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicSSfwqDao.java
  81. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicShoufeizhanDao.java
  82. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicSuidaoDao.java
  83. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/GKDao.java
  84. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/GQDao.java
  85. 10 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/TrafficEventDao.java
  86. 515 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TJdcBw.java
  87. 192 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TJdcGk.java
  88. 326 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TJdcGq.java
  89. 309 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TbasicInfo.java
  90. 252 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailAir.java
  91. 199 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailChuanzha.java
  92. 137 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailCjqd.java
  93. 161 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailFwq.java
  94. 216 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailGangqu.java
  95. 101 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailJiancezhan.java
  96. 209 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailKeyunzhan.java
  97. 236 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailKjbridge.java
  98. 219 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailRailstation.java
  99. 161 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailShoufeizhan.java
  100. 149 0
      jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailSsfwq.java

+ 210 - 0
jdc/jdcweb/trunk/pom.xml

@@ -0,0 +1,210 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>com.jsjty</groupId>
+	<artifactId>jdc2</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>war</packaging>
+	<dependencies>
+		<dependency>
+			<groupId>com.xtframe.jdc</groupId>
+			<artifactId>web</artifactId>
+			<version>1.0.11-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>com.xtframe.jdc</groupId>
+			<artifactId>io</artifactId>
+			<version>1.0.11-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpclient</artifactId>
+			<version>4.5</version>
+		</dependency>
+		<!-- j2ee web spec -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.5</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jstl</artifactId>
+			<version>1.2</version>
+		</dependency>
+		<dependency>
+			<groupId>taglibs</groupId>
+			<artifactId>standard</artifactId>
+			<version>1.1.2</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet.jsp</groupId>
+			<artifactId>jsp-api</artifactId>
+			<version>2.2</version>
+			<scope>provided</scope>
+		</dependency>
+		<!-- test -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.11</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-test</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-orm</artifactId>
+			<version>4.0.7.RELEASE</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.json-lib</groupId>
+			<artifactId>json-lib</artifactId>
+			<classifier>jdk15</classifier>
+			<version>2.4</version>
+		</dependency>
+		<!-- 加入druid数据源依赖包 -->
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>druid</artifactId>
+			<version>1.0.15</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+			<version>1.2.6</version>
+		</dependency>
+		<!-- 加入mysql驱动依赖包 -->
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<version>5.1.25</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.poi</groupId>
+			<artifactId>poi</artifactId>
+			<version>3.9</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-codec</groupId>
+			<artifactId>commons-codec</artifactId>
+			<version>1.10</version>
+		</dependency>
+		<!-- solr -->
+		<dependency>
+			<groupId>org.apache.solr</groupId>
+			<artifactId>solr-solrj</artifactId>
+			<version>5.2.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-fileupload</groupId>
+			<artifactId>commons-fileupload</artifactId>
+			<version>1.2.2</version>
+		</dependency>
+		<dependency>
+			<groupId>com.google.code.gson</groupId>
+			<artifactId>gson</artifactId>
+			<version>2.3.1</version>
+		</dependency>
+		<!-- 网页解析工具 -->
+		<dependency>
+			<groupId>org.htmlparser</groupId>
+			<artifactId>htmlparser</artifactId>
+			<version>1.6</version>
+		</dependency>
+		<dependency>
+			<groupId>com.yuanxd.tools</groupId>
+			<artifactId>x-tools-hscbdt</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.mayh.jts</groupId>
+			<artifactId>JTS</artifactId>
+			<version>0.0.1-snap</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<finalName>${project.artifactId}</finalName>
+		<plugins>
+			<plugin>
+				<artifactId>maven-war-plugin</artifactId>
+				<configuration>
+					<warName>jdc</warName>
+				</configuration>
+			</plugin>
+			<!-- compiler插件, 设定JDK版本 -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.0</version>
+				<configuration>
+					<source>${jdk.version}</source>
+					<target>${jdk.version}</target>
+					<showWarnings>true</showWarnings>
+				</configuration>
+			</plugin>
+			<!-- jetty插件, 设定context path与spring profile -->
+			<plugin>
+				<groupId>org.mortbay.jetty</groupId>
+				<artifactId>jetty-maven-plugin</artifactId>
+				<version>${jetty.version}</version>
+				<configuration>
+					<stopPort>8889</stopPort>
+					<stopKey>stop</stopKey>
+					<connectors>
+						<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
+							<port>8080</port>
+						</connector>
+					</connectors>
+					<webAppConfig>
+						<contextPath>/${project.build.finalName}</contextPath>
+					</webAppConfig>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.12.4</version>
+				<configuration>
+					<skipTests>true</skipTests>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<!-- java 版本 -->
+		<jdk.version>1.7</jdk.version>
+		<jetty.version>8.1.8.v20121106</jetty.version>
+		<!-- spring 版本 -->
+		<spring.version>4.1.2.RELEASE</spring.version>
+	</properties>
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>commons-beanutils</groupId>
+				<artifactId>commons-beanutils</artifactId>
+				<version>1.8.3</version>
+			</dependency>
+			<dependency>
+				<groupId>commons-logging</groupId>
+				<artifactId>commons-logging</artifactId>
+				<version>1.2</version>
+			</dependency>
+			<dependency>
+				<groupId>org.springframework</groupId>
+				<artifactId>spring-beans</artifactId>
+				<version>4.1.2.RELEASE</version>
+			</dependency>
+			<dependency>
+				<groupId>com.vividsolutions</groupId>
+				<artifactId>jts</artifactId>
+				<version>1.13</version>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+</project>

+ 234 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/BaseWebCtl.java

@@ -0,0 +1,234 @@
+package com.jsjty.jdc.common;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.propertyeditors.CustomBooleanEditor;
+import org.springframework.beans.propertyeditors.CustomDateEditor;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.xtframe.core.base.ctl.BaseCtl;
+import com.xtframe.core.base.vo.NodeVo;
+import com.xtframe.core.code.entity.Code;
+import com.xtframe.core.code.service.CodeService;
+import com.xtframe.core.exception.BizException;
+import com.xtframe.core.menu.entity.Menu;
+import com.xtframe.core.org.entity.Org;
+import com.xtframe.core.support.CoreMgr;
+import com.xtframe.core.user.entity.User;
+import com.xtframe.core.utils.CoreConstants;
+import com.xtframe.sec.common.SimplePageRequest;
+import com.xtframe.sec.org.entity.OrgEntity;
+import com.xtframe.sec.support.SecurityMgr;
+import com.xtframe.util.DateTime;
+import com.xtframe.util.StringUtils;
+
+public class BaseWebCtl extends BaseCtl {
+    @Autowired
+    protected CoreMgr coreMgr;
+    @Autowired
+    protected SecurityMgr securityMgr;
+
+    @InitBinder
+    protected void initBinder(WebDataBinder binder) {
+        binder.registerCustomEditor(Date.class, new CustomDateEditor(
+                new SimpleDateFormat(DateTime.DATE_FORMAT_DATETIME), true));
+        binder.registerCustomEditor(Boolean.class, new CustomBooleanEditor(CoreConstants.CODE_TY_SF_YES,
+                CoreConstants.CODE_TY_SF_NO, true));
+        /**
+         * 防止XSS攻击
+         */
+        binder.registerCustomEditor(String.class, new StringEscapeEditor(true, false));
+    }
+
+    /**
+     * 对象转json
+     * 
+     * @param list
+     * @return
+     */
+    protected String convertToJsonData(Object list) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.setDateFormat(new SimpleDateFormat(DateTime.DATE_FORMAT_DATEONLY));
+            String liststr = mapper.writeValueAsString(list);
+            return liststr;
+        }
+        catch (JsonProcessingException jsone) {
+            throw new BizException(jsone);
+        }
+    }
+
+    /**
+     * 对象转json字符串
+     * 
+     * @param value
+     * @return
+     * @throws JsonProcessingException
+     * @author 袁晓冬
+     */
+    public String Object2JsonStr(Object value) {
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            return mapper.writeValueAsString(value);
+        }
+        catch (JsonProcessingException e) {
+            e.printStackTrace();
+            throw new BizException(e);
+        }
+    }
+
+    /**
+     * 获取下拉框公用代码
+     * 
+     * @param pcode
+     * @return
+     */
+    protected String getComboxCodes(String pcode) {
+        CodeService codeService = coreMgr.getCodeService();
+        List<Code> codes = codeService.findByPcode(pcode);
+        return convertToJsonData(codes);
+    }
+
+    /**
+     * 查询下级公用代码
+     * 
+     * @param pcode
+     * @return
+     */
+    protected List<Code> getSubCodes(String pcode) {
+        CodeService codeService = coreMgr.getCodeService();
+        List<Code> codes = codeService.findByPcode(pcode);
+        return codes;
+    }
+
+    /**
+     * 查询下级公用代码返回map
+     * 
+     * @param pcode
+     * @return
+     */
+    protected Map<String, String> getMapSubCodes(String pcode) {
+        Map<String, String> codeMap = new HashMap<String, String>();
+        CodeService codeService = coreMgr.getCodeService();
+        List<Code> codes = codeService.findByPcode(pcode);
+        if (null != codes && codes.size() > 0) {
+            for (int i = 0; i < codes.size(); i++) {
+                codeMap.put(codes.get(i).getCode(), codes.get(i).getText());
+            }
+        }
+        return codeMap;
+    }
+
+    /**
+     * 生成PageRequest对象
+     * 
+     * @return
+     */
+    public PageRequest toPageRequest(SimplePageRequest page) {
+        if (page.getPage() < 1) {
+            page.setPage(1);
+        }
+        if (page.getRows() < 10) {
+            page.setRows(10);
+        }
+        Sort newsort = new Sort(Direction.fromString(page.getOrder()), new String[] { page.getSort() });
+        // 页码从0开始
+        PageRequest pageable = new PageRequest(page.getPage() - 1, page.getRows(), newsort);
+        return pageable;
+    }
+
+    public void putPageInfo(Model model, SimplePageRequest page, Page<?> list) {
+        model.addAttribute("page", page);
+        model.addAttribute("pagesize", list.getContent().size());
+        model.addAttribute("totalpage", list.getTotalPages());
+        model.addAttribute("totalsize", list.getTotalElements());
+        model.addAttribute("sort", list.getSort());
+
+    }
+
+    /**
+     * 
+     * showUserTree:根据组织选择人员树
+     * 
+     * @author xuhx
+     * @param id
+     * @return
+     * @since JDK 1.7
+     */
+    public List<NodeVo> showUserTree(String id, String role) {
+        List<NodeVo> orgVos = new ArrayList<NodeVo>();
+        List<Org> orgs = coreMgr.getOrgService().findValidOrgsByPid(null == id ? BLANK_UUID : id);
+        // 循环生成节点对象
+        for (Org org : orgs) {
+            // 组织节点
+            if (org instanceof OrgEntity) {
+                NodeVo vo = new NodeVo();
+                vo.setId(org.getId());
+                vo.setText(org.getName());
+                vo.setParent(org.getPid());
+                vo.setState("closed");
+                Map<String, String> attr = new HashMap<String, String>();
+                attr.put("leaf", "false");
+                vo.setAttributes(attr);
+                orgVos.add(vo);
+            }
+        }
+        // 人员节点
+        if (null != id) {
+            List<User> users = null;
+            if (StringUtils.hasText(role)) {
+                users = coreMgr.getUserService().findByOrgAndRoleCode(id, Arrays.asList(role.split(";")));
+            }
+            else {
+                users = coreMgr.getUserService().findByOrg(id);
+            }
+            // 用户节点
+            for (User u : users) {
+                NodeVo vo = new NodeVo();
+                vo.setId(u.getId());
+                vo.setText(u.getName());
+                vo.setState("open");
+                Map<String, String> attr = new HashMap<String, String>();
+                attr.put("leaf", "true");
+                vo.setAttributes(attr);
+                orgVos.add(vo);
+            }
+        }
+        return orgVos;
+    }
+
+    public void getMenuPath(HttpServletRequest request, Model model, String menuId) {
+        if (menuId == null) {
+            menuId = (String) request.getSession().getAttribute("menuId");
+        } else {
+            request.getSession().setAttribute("menuId", menuId);
+        }
+        if (menuId != null) {
+            Menu m = coreMgr.getMenuService().findMenu(menuId);
+            Menu pm = coreMgr.getMenuService().findMenu(m.getPid());
+            Menu ppm = coreMgr.getMenuService().findMenu(pm.getPid());
+            String path = " 当前位置:" + (ppm == null ? "" : ppm.getName()) + ">>" + (pm == null ? "" : pm.getName()) + ">>" + (m == null ? "" : m.getName());
+            model.addAttribute("menuPath", path);
+        } else {
+            model.addAttribute("menuPath", "");
+        }
+    }
+
+}

+ 259 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonBaseService.java

@@ -0,0 +1,259 @@
+package com.jsjty.jdc.common;
+
+import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+
+import com.xtframe.core.base.service.BaseService;
+import com.xtframe.sec.common.SecRepository;
+import com.xtframe.sec.utils.SecUtils;
+import com.xtframe.util.StringUtils;
+
+public abstract class CommonBaseService<T extends CommonEntity<ID>, ID extends Serializable> extends BaseService
+        implements SecRepository<T, ID> {
+    /**
+     * 获取service执行Dao
+     * 
+     * @return
+     */
+    protected abstract SecRepository<T, ID> getDao();
+
+    public void logicDelete(ID id) {
+        T entity = this.findOne(id);
+        if (null != entity) logicDelete(entity);
+    }
+    
+    public void logicDelete(ID id,String uid) {
+        T entity = this.findOne(id);
+        if (null != entity) logicDelete(entity,uid);
+    }
+
+    public void logicDelete(T entity) {
+        entity.setRecordStatus(CommonEntity.RECORD_STATE_DELETE);
+        entity.setUpdateDate(new Date());
+        entity.setUpdateUser(SecUtils.getCurrUser().getId());
+        save(entity);
+    }
+    
+    public void logicDelete(T entity,String uid) {
+        entity.setRecordStatus(CommonEntity.RECORD_STATE_DELETE);
+        entity.setUpdateDate(new Date());
+        entity.setUpdateUser(uid);
+        save(entity);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void logicDelete(Iterable<T> entities) {
+        for (T entity : entities) {
+            try {
+                logicDelete((ID) entity.getClass().getMethod("getId").invoke(entity));
+            }
+            catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public T findOne(Specification<T> spec) {
+        return getDao().findOne(spec);
+    }
+
+    @Override
+    public List<T> findAll(Specification<T> spec) {
+        return getDao().findAll(spec);
+    }
+
+    @Override
+    public Page<T> findAll(Specification<T> spec, Pageable pageable) {
+        return getDao().findAll(spec, pageable);
+    }
+
+    @Override
+    public List<T> findAll(Specification<T> spec, Sort sort) {
+        return getDao().findAll(spec, sort);
+    }
+
+    @Override
+    public long count(Specification<T> spec) {
+        return getDao().count(spec);
+    }
+
+    @Override
+    public Page<T> findAll(Pageable pageable) {
+        return getDao().findAll(pageable);
+    }
+
+    @Override
+    public long count() {
+        return getDao().count();
+    }
+
+    @Override
+    public void delete(ID id) {
+        getDao().delete(id);
+    }
+
+    @Override
+    public void delete(T entity) {
+        getDao().delete(entity);
+    }
+
+    @Override
+    public void delete(Iterable<? extends T> entities) {
+        getDao().delete(entities);
+    }
+
+    @Override
+    public void deleteAll() {
+        getDao().deleteAll();
+    }
+
+    @Override
+    public boolean exists(ID id) {
+        return getDao().exists(id);
+    }
+
+    @Override
+    public T findOne(ID id) {
+        return getDao().findOne(id);
+    }
+
+    @Override
+    public <S extends T> S save(S entity) {
+        try {
+            @SuppressWarnings("unchecked")
+            ID id = (ID) entity.getClass().getMethod("getId").invoke(entity);
+            if (StringUtils.isEmpty(String.valueOf(id))) {
+                entity.setAddUser(SecUtils.getCurrUser()==null?"00":SecUtils.getCurrUser().getId());
+                entity.setAddDate(new Date());
+            }
+        }
+        catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
+                | SecurityException e) {
+            e.printStackTrace();
+        }
+        entity.setUpdateDate(new Date());
+        entity.setUpdateUser(SecUtils.getCurrUser()==null?"00":SecUtils.getCurrUser().getId());
+        return getDao().save(entity);
+    }
+    
+    public <S extends T> S save(S entity,String uid) {
+        try {
+            @SuppressWarnings("unchecked")
+            ID id = (ID) entity.getClass().getMethod("getId").invoke(entity);
+            if (StringUtils.isEmpty(String.valueOf(id))) {
+                entity.setAddUser(uid);
+                entity.setAddDate(new Date());
+            }
+        }
+        catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
+                | SecurityException e) {
+            e.printStackTrace();
+        }
+        entity.setUpdateDate(new Date());
+        entity.setUpdateUser(uid);
+        return getDao().save(entity);
+    }
+
+    @Override
+    public List<T> findAll() {
+        return getDao().findAll();
+    }
+
+    @Override
+    public List<T> findAll(Sort sort) {
+        return getDao().findAll(sort);
+    }
+
+    @Override
+    public List<T> findAll(Iterable<ID> ids) {
+        return getDao().findAll(ids);
+    }
+
+    @Override
+    public <S extends T> List<S> save(Iterable<S> entities) {
+        for (S entity : entities) {
+            try {
+                @SuppressWarnings("unchecked")
+                ID id = (ID) entity.getClass().getMethod("getId").invoke(entity);
+                if (StringUtils.isEmpty(String.valueOf(id))) {
+                    entity.setAddUser(SecUtils.getCurrUser().getId());
+                    entity.setAddDate(new Date());
+                }
+            }
+            catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
+                    | NoSuchMethodException | SecurityException e) {
+                e.printStackTrace();
+            }
+            entity.setUpdateDate(new Date());
+            entity.setUpdateUser(SecUtils.getCurrUser().getId());
+        }
+        return getDao().save(entities);
+    }
+
+    @Override
+    public void flush() {
+        getDao().flush();
+    }
+
+    @Override
+    public void deleteInBatch(Iterable<T> entities) {
+        getDao().deleteInBatch(entities);
+    }
+
+    @Override
+    public void deleteAllInBatch() {
+        getDao().deleteAllInBatch();
+    }
+
+    @Override
+    public T getOne(ID id) {
+        return getDao().getOne(id);
+    }
+
+    @Override
+    public <S extends T> S saveAndFlush(S entity) {
+        try {
+            @SuppressWarnings("unchecked")
+            ID id = (ID) entity.getClass().getMethod("getId").invoke(entity);
+            if (StringUtils.isEmpty(String.valueOf(id))) {
+                entity.setAddUser(SecUtils.getCurrUser().getId());
+                entity.setAddDate(new Date());
+            }
+        }
+        catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
+                | SecurityException e) {
+            e.printStackTrace();
+        }
+        entity.setUpdateDate(new Date());
+        entity.setUpdateUser(SecUtils.getCurrUser().getId());
+        return getDao().saveAndFlush(entity);
+    }
+
+    @Override
+    public void delete(ID[] ids) {
+        getDao().delete(ids);
+    }
+
+    @Override
+    public List<T> nativeQuery(String sqlString, Class<T> resultClass, Map<String, Object> params) {
+        return getDao().nativeQuery(sqlString, resultClass, params);
+    }
+
+    @Override
+    public List<?> nativeQuery(String sqlString, Map<String, Object> params) {
+        return getDao().nativeQuery(sqlString, params);
+    }
+    @Override
+    public int nativeUpdate(String sql, Map<String, Object> param) {
+    	return getDao().nativeUpdate(sql, param);
+    }
+}

+ 78 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonEntity.java

@@ -0,0 +1,78 @@
+package com.jsjty.jdc.common;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.MappedSuperclass;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * 公共字段实体
+ * 
+ * @author 袁晓冬
+ *
+ * @param <ID>
+ */
+@MappedSuperclass
+public class CommonEntity<ID extends Serializable> extends BaseEntity<ID> {
+    /** serialVersionUID */
+    private static final long serialVersionUID = 223153223703264770L;
+    /** 记录创建人 */
+    private String addUser;
+    /** 记录创建时间 */
+    private Date addDate;
+    /** 记录更新人 */
+    private String updateUser;
+    /** 记录更新时间 */
+    private Date updateDate;
+    /** 记录状态 */
+    private String recordStatus;
+    /** 记录状态-有效1 */
+    public static final String RECORD_STATE_VALID = "1";
+    /** 记录状态-删除2 */
+    public static final String RECORD_STATE_DELETE = "2";
+    
+    public Date getAddDate() {
+        return addDate;
+    }
+
+    public String getAddUser() {
+        return addUser;
+    }
+    
+    @Column(name = "RECORD_STATUS")
+    public String getRecordStatus() {
+        return recordStatus;
+    }
+
+    public Date getUpdateDate() {
+        return updateDate;
+    }
+
+    public String getUpdateUser() {
+        return updateUser;
+    }
+
+    public void setAddDate(Date addDate) {
+        this.addDate = addDate;
+    }
+
+    public void setAddUser(String addUser) {
+        this.addUser = addUser;
+    }
+
+    public void setRecordStatus(String recordStatus) {
+        this.recordStatus = recordStatus;
+    }
+
+    public void setUpdateDate(Date updateDate) {
+        this.updateDate = updateDate;
+    }
+
+    public void setUpdateUser(String updateUser) {
+        this.updateUser = updateUser;
+    }
+
+}

+ 1075 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonUtil.java

@@ -0,0 +1,1075 @@
+package com.jsjty.jdc.common;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.util.CellRangeAddress;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.xtframe.core.exception.BizException;
+import com.xtframe.util.DateTime;
+
+/**
+ * 公共方法
+ * 
+ * @author zhoutl
+ *
+ * @param <ID>
+ */
+public class CommonUtil {
+
+    /**
+     * 获取年份数据
+     * 
+     * @param num
+     * @return
+     */
+    public static List<Map<String, String>> getYearList(int num) {
+        List<Map<String, String>> yearList = new ArrayList<Map<String, String>>();
+        Calendar c = Calendar.getInstance();
+        int year = c.get(Calendar.YEAR);
+        for (int i = year; i > (year - num); i--) {
+            Map<String, String> map = new HashMap<String, String>();
+            map.put("code", String.valueOf(i));
+            map.put("value", String.valueOf(i));
+            yearList.add(map);
+        }
+        return yearList;
+    }
+
+    /**
+     * 设置CELL单元格样式
+     * 
+     * @param sheet
+     * @param rownum
+     * @param cellnum
+     * @param value
+     */
+    private static void setCellStyle(HSSFSheet sheet, int rownum, int cellnum, CellStyle style) {
+        HSSFCell cell = getCell(sheet, rownum, cellnum);
+        cell.setCellStyle(style);
+    }
+
+    /**
+     * 设置CELL单元格内容并附带样式
+     * 
+     * @param sheet
+     * @param rownum
+     * @param cellnum
+     * @param value
+     */
+    public static void setCellValue(HSSFSheet sheet, int rownum, int cellnum, String value) {
+        HSSFCell cell = getCell(sheet, rownum, cellnum);
+        cell.setCellValue(value);
+    }
+
+    /**
+     * 获取CELL单元格
+     * 
+     * @param sheet
+     * @param rownum
+     * @param cellnum
+     * @return
+     */
+    private static HSSFCell getCell(HSSFSheet sheet, int rownum, int cellnum) {
+        if (null == sheet.getRow(rownum)) {
+            sheet.createRow(rownum);
+        }
+        if (null == sheet.getRow(rownum).getCell(cellnum)) {
+            sheet.getRow(rownum).createCell(cellnum);
+        }
+        return sheet.getRow(rownum).getCell(cellnum);
+    }
+
+    /**
+     * 动态填充值
+     * 
+     * @param sheet
+     * @param cellKeyMap
+     * @param o
+     */
+    public static void fillCellValue(HSSFSheet sheet, Map<String, Map<String, Integer>> cellKeyMap, Object o) {
+        Iterator<String> it = cellKeyMap.keySet().iterator();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            Map<String, Integer> cellPosMap = cellKeyMap.get(key);
+            String value = (String) getFieldValueByName(key, o);
+            setCellValue(sheet, cellPosMap.get("rowIndex"), cellPosMap.get("colIndex"), value);
+        }
+    }
+
+    /**
+     * 动态填充值
+     * 
+     * @param sheet
+     * @param cellKeyMap
+     * @param o
+     * @param 是否竖排往下递增
+     */
+    public static void fillListCellValue(HSSFSheet sheet, Map<String, Map<String, Integer>> cellKeyMap,
+            List<Object> listObj, boolean isV) {
+        Iterator<String> it = null;
+        if (null != listObj && listObj.size() > 0) {
+            for (int i = 0; i < listObj.size(); i++) {
+                Object o = listObj.get(i);
+                it = cellKeyMap.keySet().iterator();
+                while (it.hasNext()) {
+                    String key = (String) it.next();
+                    Map<String, Integer> cellPosMap = cellKeyMap.get(key);
+                    // 获取行号
+                    Integer rowIndex = Integer.parseInt(cellPosMap.get("rowIndex").toString());
+                    // 获取列号
+                    Integer colIndex = Integer.parseInt(cellPosMap.get("colIndex").toString());
+                    if (isV) {
+                        rowIndex = rowIndex + i;
+                    }
+                    else {
+                        colIndex = colIndex + i;
+                    }
+                    String value = (String) getFieldValueByName(key, o);
+                    setCellValue(sheet, rowIndex, colIndex, value);
+                }
+            }
+        }else{
+        	it = cellKeyMap.keySet().iterator();
+            while (it.hasNext()) {
+                String key = (String) it.next();
+                Map<String, Integer> cellPosMap = cellKeyMap.get(key);
+                // 获取行号
+                Integer rowIndex = Integer.parseInt(cellPosMap.get("rowIndex").toString());
+                // 获取列号
+                Integer colIndex = Integer.parseInt(cellPosMap.get("colIndex").toString());
+                setCellValue(sheet, rowIndex, colIndex, "");
+            }
+        }
+    }
+
+    /**
+     * 获取所有单元格动态键值
+     * 
+     * @param sheet
+     */
+    public static Map<String, Map<String, Integer>> getCellKeyMap(HSSFSheet sheet) {
+        return getCellKeyMapByMark(sheet, Constants.EXCEL_KEY_SIGN);
+    }
+
+    /**
+     * 获取所有单元格动态键值
+     * 
+     * @param sheet
+     */
+    public static Map<String, Map<String, Integer>> getCellKeyMapByMark(HSSFSheet sheet, String mark) {
+        Map<String, Map<String, Integer>> cellKeyMap = new HashMap<String, Map<String, Integer>>();
+        int rowCount = sheet.getLastRowNum();
+        HSSFRow row = null;
+        HSSFCell cell = null;
+        // 循环所有行
+        for (int rowIndex = 0; rowIndex <= rowCount; rowIndex++) {
+            row = sheet.getRow(rowIndex);
+            int colCount = row.getPhysicalNumberOfCells();
+            // 循环所有列
+            for (int colIndex = 0; colIndex <= colCount; colIndex++) {
+                cell = row.getCell(colIndex);
+                if (null != cell) {
+                    if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
+                        continue;
+                    }
+                    String cellVal = cell.getStringCellValue();
+                    if (cellVal.startsWith(mark) && cellVal.endsWith(mark)) {
+                        String key = cellVal.replace(mark, "");
+                        Map<String, Integer> cellPosMap = new HashMap<String, Integer>();
+                        cellPosMap.put("rowIndex", rowIndex);
+                        cellPosMap.put("colIndex", colIndex);
+                        cellKeyMap.put(key, cellPosMap);
+                    }
+                }
+            }
+        }
+        return cellKeyMap;
+    }
+
+    /**
+     * 获取所有单元格动态键值
+     * 
+     * @param sheet
+     */
+    public static Map<String, Map<String, Integer>> getCellKeyMapBIndex(HSSFSheet sheet, int index) {
+        Map<String, Map<String, Integer>> cellKeyMap = new HashMap<String, Map<String, Integer>>();
+        HSSFRow row = null;
+        HSSFCell cell = null;
+        // 循环所有行
+        row = sheet.getRow(index);
+        int colCount = row.getPhysicalNumberOfCells();
+        // 循环所有列
+        for (int colIndex = 0; colIndex <= colCount; colIndex++) {
+            cell = row.getCell(colIndex);
+            if (null != cell) {
+                if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
+                    continue;
+                }
+                String cellVal = cell.getStringCellValue();
+                if (StringUtils.isNotEmpty(cellVal)) {
+                    String key = cellVal;
+                    Map<String, Integer> cellPosMap = new HashMap<String, Integer>();
+                    cellPosMap.put("rowIndex", index);
+                    cellPosMap.put("colIndex", colIndex);
+                    cellKeyMap.put(key, cellPosMap);
+                }
+            }
+        }
+        return cellKeyMap;
+    }
+
+    /**
+     * 获取所有单元格动态键值
+     * 
+     * @param sheet
+     */
+    public static Map<String, Map<String, Integer>> getCellKeyMapByRow(HSSFRow row) {
+        Map<String, Map<String, Integer>> cellKeyMap = new HashMap<String, Map<String, Integer>>();
+        int colCount = row.getPhysicalNumberOfCells();
+        HSSFCell cell = null;
+        // 循环所有列
+        for (int colIndex = 0; colIndex <= colCount; colIndex++) {
+            cell = row.getCell(colIndex);
+            if (null != cell) {
+                String cellVal = cell.getStringCellValue();
+                if (StringUtils.isNotEmpty(cellVal)) {
+                    String key = cellVal;
+                    Map<String, Integer> cellPosMap = new HashMap<String, Integer>();
+                    cellPosMap.put("rowIndex", cell.getRowIndex());
+                    cellPosMap.put("colIndex", colIndex);
+                    cellKeyMap.put(key, cellPosMap);
+                }
+            }
+        }
+        return cellKeyMap;
+    }
+
+    /**
+     * 根据属性名获取属性值
+     * */
+    public static Object getFieldValueByName(String fieldName, Object o) {
+        try {
+            String firstLetter = fieldName.substring(0, 1).toUpperCase();
+            String getter = "get" + firstLetter + fieldName.substring(1);
+            Method method = o.getClass().getMethod(getter, new Class[] {});
+            Object value = method.invoke(o, new Object[] {});
+            return value;
+        }
+        catch (Exception e) {
+            return "";
+        }
+    }
+
+    @SuppressWarnings("rawtypes")
+    public static void exportExcel(HttpServletRequest request, HttpServletResponse response, String title,
+            String fileName, String downName, int index, List list, Class clazz) throws Exception {
+        downName = URLEncoder.encode(downName, "UTF-8");
+        response.setContentType("application/msexcel; charset=utf-8");
+        response.setHeader("Content-disposition", "attachment; filename=" + downName);
+        InputStream is = null;
+        HSSFWorkbook workbook2007 = null;
+        HSSFSheet sheet = null;
+        OutputStream bos = null;
+        try {
+            String realpath = File.separator + "template" + File.separator + fileName;
+            String path = request.getClass().getClassLoader().getResource("").getPath();
+            File fi = new File(path + realpath);
+            POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));
+            workbook2007 = new HSSFWorkbook(fs);
+            sheet = workbook2007.getSheetAt(0);
+            if (StringUtils.isNotBlank(title)) {
+                sheet.getRow(0).getCell(0).setCellValue(title);
+            }
+            setListInfo(sheet, index, list);
+            bos = response.getOutputStream();
+            workbook2007.write(bos);
+            response.flushBuffer();
+            bos.flush();
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        finally {
+            try {
+                if (is != null) {
+                    is.close();
+                }
+                if (bos != null) {
+                    bos.close();
+                }
+            }
+            catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    private static void setListInfo(HSSFSheet sheet, int index, List list) {
+        int END_ROW = index + list.size();
+        if (null == list || list.size() == 0) {
+            HSSFRow modRow = sheet.getRow(index + 1);
+            sheet.removeRow(modRow);
+        }
+        if (null != list && list.size() > 0) {
+            List mapList = reflectForgetData(list.get(0).getClass(), list);
+            HSSFRow modRow = sheet.getRow(index + 1);
+            for (int i = 1; i < mapList.size(); i++) {
+                sheet.shiftRows(index + i + 1, END_ROW, 1, true, false);
+                HSSFRow newXSSFRow = sheet.createRow(index + i + 1);
+                newXSSFRow.setHeight(modRow.getHeight());
+                for (int k = 0; k < modRow.getLastCellNum(); k++) {
+                    HSSFCell modcell = modRow.getCell(k);
+                    HSSFCell newcell = newXSSFRow.createCell(k);
+                    if (null == modcell) {
+                        continue;
+                    }
+                    newcell.setCellStyle(modcell.getCellStyle());
+                    newcell.setCellType(modcell.getCellType());
+                    if (null != modcell.getStringCellValue() && !"".equals(modcell.getStringCellValue().trim())) {
+                        newcell.setCellValue(modcell.getStringCellValue());
+                    }
+                }
+            }
+            int cellIndex = index + 1;
+            Map<String, Object> map = null;
+            for (int i = 0; i < mapList.size(); i++) {
+                map = (Map<String, Object>) mapList.get(i);
+                HSSFRow row = sheet.getRow(cellIndex);
+                if (row == null) {
+                    continue;
+                }
+                for (int j = 0; j < row.getLastCellNum(); j++) {
+                    HSSFCell cell = row.getCell(j);
+                    if (cell == null) {
+                        continue;
+                    }
+                    if (map.containsKey(cell.getStringCellValue())) {
+                        if (map.get(cell.getStringCellValue()) != null) {
+                            cell.setCellValue(String.valueOf(map.get(cell.getStringCellValue())));
+                        }
+                        else {
+                            cell.setCellValue("");
+                        }
+                    }
+                }
+                cellIndex++;
+            }
+        }
+    }
+
+    @SuppressWarnings({ "rawtypes" })
+    private static List<Map<String, Object>> reflectForgetData(Class classType, List list) {
+        List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
+        try {
+            for (int i = 0; i < list.size(); i++) {
+                Object obj = list.get(i);
+                Map<String, Object> map = new HashMap<String, Object>();
+                Field[] fields = getFields(classType);
+                for (Field f : fields) {
+                    if (Modifier.isStatic(f.getModifiers()) || Modifier.isFinal(f.getModifiers())) {
+                        continue;
+                    }
+                    f.setAccessible(true);
+                    map.put(f.getName(), f.get(obj));
+                }
+                map.put("cout", i + 1);
+                resultList.add(map);
+            }
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        return resultList;
+    }
+
+    @SuppressWarnings({ "rawtypes" })
+    private static Field[] getFields(Class classType) {
+        if (classType != null && !Object.class.equals(classType)) {
+            Field[] fields = classType.getDeclaredFields();
+            Field[] fieldss = getFields(classType.getSuperclass());
+            if (fieldss.length <= 0) { return fields; }
+            next: for (int i = 0; i < fieldss.length; i++) {
+                for (int j = 0; j < fields.length; j++) {
+                    if (fieldss[i].getName().equals(fields[j].getName())) {
+                        continue next;
+                    }
+                }
+                fields = Arrays.copyOf(fields, fields.length + 1);
+                fields[fields.length - 1] = fieldss[i];
+            }
+            return fields;
+        }
+        return new Field[] {};
+    }
+
+    @SuppressWarnings("rawtypes")
+    public static void export2Excel(HttpServletResponse response, String title, String fileName, String downName,
+            int index, List list) throws Exception {
+        downName = URLEncoder.encode(downName, "UTF-8");
+        response.setContentType("application/msexcel; charset=utf-8");
+        response.setHeader("Content-disposition", "attachment; filename=" + downName);
+        InputStream is = null;
+        HSSFWorkbook workbook2007 = null;
+        HSSFSheet sheet = null;
+        OutputStream bos = null;
+        try {
+            String realpath = File.separator + "template" + File.separator + fileName;
+            String path = CommonUtil.class.getClassLoader().getResource("").getPath();
+            File fi = new File(path + realpath);
+            POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));
+            workbook2007 = new HSSFWorkbook(fs);
+            sheet = workbook2007.getSheetAt(0);
+            if (StringUtils.isNotBlank(title)) {
+                sheet.getRow(0).getCell(0).setCellValue(title);
+            }
+            setListInfo2(sheet, index, list);
+            bos = response.getOutputStream();
+            workbook2007.write(bos);
+            response.flushBuffer();
+            bos.flush();
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        finally {
+            try {
+                if (is != null) {
+                    is.close();
+                }
+                if (bos != null) {
+                    bos.close();
+                }
+            }
+            catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @SuppressWarnings({ "rawtypes" })
+    private static void setListInfo2(HSSFSheet sheet, int index, List list) {
+        // 得到列表行和样式
+        HSSFRow modRow = sheet.getRow(index + 1);
+        sheet.removeRow(modRow);
+
+        Map<String, Map<String, Integer>> cellKeyMap = null;
+        // 填充数据
+        if (null != list && list.size() > 0) {
+            cellKeyMap = getCellKeyMapByRow(modRow);
+            Iterator<String> it = null;
+            // 循环列表,为每一行赋值
+            for (int i = 0; i < list.size(); i++) {
+                Object o = list.get(i);
+                it = cellKeyMap.keySet().iterator();
+                while (it.hasNext()) {
+                    String key = (String) it.next();
+                    Map<String, Integer> cellPosMap = cellKeyMap.get(key);
+                    // 获取行号
+                    Integer rowIndex = Integer.parseInt(cellPosMap.get("rowIndex").toString());
+                    // 获取列号
+                    Integer colIndex = Integer.parseInt(cellPosMap.get("colIndex").toString());
+                    rowIndex = rowIndex + i;
+                    // 设置单元内容
+                    if ("cout".equals(key)) {
+                        setCellValue(sheet, rowIndex, colIndex, String.valueOf(i + 1));
+                    }
+                    else {
+                        String value = (String) getFieldValueByName(key, o);
+                        setCellValue(sheet, rowIndex, colIndex, value);
+                    }
+                    // 设置单元格样式
+                    CellStyle style = modRow.getCell(colIndex).getCellStyle();
+                    setCellStyle(sheet, rowIndex, colIndex, style);
+                }
+            }
+        }
+    }
+    
+    
+    /**
+     * 仅适用MhzltszyjdCtl
+     * @param sheet
+     * @param star
+     * @param end
+     * @param list
+     */
+    @SuppressWarnings({ "rawtypes" })
+    public static void entity2Cell(HSSFSheet sheet, int star, int end, List list) {
+        if (null == list || list.size() == 0) {
+        	for(int i=0;i<end-star;i++){
+        		HSSFRow modRow = sheet.getRow(star + i + 1);
+        		sheet.removeRow(modRow);
+        	}
+        }
+        if(null != list && list.size() > 0) {
+            List mapList = reflectForgetData(list.get(0).getClass(), list);
+            int a = star;
+            int b = star + 4;
+            for(int m=0;m<mapList.size()-1;m++){
+            	copyRow(sheet, a, b);
+            	a = b;
+            	b = b + 4;
+            }
+            setCellValue(sheet,star,end,mapList);
+        }
+    }
+    
+    public static void copyRow(HSSFSheet sheet, int star, int end){
+    	for(int i=0;i<end-star;i++){
+    		HSSFRow oldRow = sheet.getRow(star+1+i);
+    		HSSFRow newRow = sheet.createRow(end+1+i);
+    		newRow.setHeight(oldRow.getHeight());
+    		for (int k = 0; k < oldRow.getLastCellNum(); k++) {
+                HSSFCell oldCell = oldRow.getCell(k);
+                HSSFCell newcell = newRow.createCell(k);
+                if (null == oldCell) {
+                    continue;
+                }
+                newcell.setCellStyle(oldCell.getCellStyle());
+                newcell.setCellType(oldCell.getCellType());
+                if (null != oldCell.getStringCellValue() && !"".equals(oldCell.getStringCellValue().trim())) {
+                    newcell.setCellValue(oldCell.getStringCellValue());
+                }
+            }
+    	}
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 0, 0));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 1, 1));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 2, 2));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 3, 3));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 8, 8));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 9, 9));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 10, 10));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 11, 11));
+    	sheet.addMergedRegion(new CellRangeAddress(end+1, end+end-star, 12, 12));
+    }
+    
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+	public static void setCellValue(HSSFSheet sheet, int star, int end, List list){
+    	int cellIndex = star+1;
+    	Map<String, Object> map = null;
+    	for (int i = 0; i < list.size(); i++) {
+    		map = (Map<String, Object>) list.get(i);
+    		for(int m=0;m<end-star;m++){
+    			HSSFRow row = sheet.getRow(cellIndex+m);
+    			if(row == null) {
+    				continue;
+    			}else{
+    				for (int j = 0; j < row.getLastCellNum(); j++) {
+    					HSSFCell cell = row.getCell(j);
+    					if (cell == null) {
+    						continue;
+    					}
+    					if (map.containsKey(cell.getStringCellValue())) {
+    						if (map.get(cell.getStringCellValue()) != null) {
+    							cell.setCellValue(String.valueOf(map.get(cell.getStringCellValue())));
+    						}
+    						else {
+    							cell.setCellValue("");
+    						}
+    					}else{
+    						cell.setCellValue("");
+    					}
+    				}
+    			}
+    		}
+    		cellIndex+=end-star;
+      }
+    }
+    
+    public static void removeMergedRegion(HSSFSheet sheet, CellRangeAddress ca) {
+    	int n = sheet.getNumMergedRegions();
+    	for(int i=0;i<n;i++){
+    		CellRangeAddress ca1 = sheet.getMergedRegion(i);
+    		if(ca1!=null&&ca1.equals(ca)){
+    			sheet.removeMergedRegion(i);
+    		}
+    	}
+    	
+    }
+    
+	public static CellRangeAddress getMergedRegion(HSSFSheet sheet, String cellValue){
+    	int n = sheet.getNumMergedRegions();
+    	for(int i=0;i<n;i++){
+    		CellRangeAddress ca = sheet.getMergedRegion(i);
+    		int firstRow = ca.getFirstRow();
+    		int firstCel = ca.getFirstColumn();
+    		HSSFCell cell = sheet.getRow(firstRow).getCell(firstCel);
+    		cell.setCellType(Cell.CELL_TYPE_STRING);
+    		String value = cell.getStringCellValue();
+    		if(StringUtils.isNotBlank(value)&&value.equals(cellValue)){
+    			return ca;
+    		}
+    	}
+    	return null;
+    }
+    
+    @SuppressWarnings("rawtypes")
+	private static void copyRowOnCellAddress(HSSFSheet sheet, int star, int cellNum, List list){
+    	for(int i=0;i<list.size()-1;i++){
+    		HSSFRow oldRow = sheet.getRow(star);
+    		sheet.shiftRows(star+i+1, sheet.getLastRowNum(), 1, true, false);
+    		HSSFRow newRow = sheet.createRow(star+i+1);
+    		newRow.setHeight(oldRow.getHeight());
+    		for(int j=0;j<oldRow.getLastCellNum();j++){
+    			HSSFCell oldCell = oldRow.getCell(j);
+    			if(oldCell==null){
+    				continue;
+    			}
+    			HSSFCell newCell = newRow.createCell(j);
+    			newCell.setCellStyle(oldCell.getCellStyle());
+    			newCell.setCellType(oldCell.getCellType());
+    			if(StringUtils.isNotBlank(oldCell.getStringCellValue())&&j>=cellNum){
+    				newCell.setCellValue(oldCell.getStringCellValue());
+    			}
+    		}
+    	}
+    }
+    
+    @SuppressWarnings({ "rawtypes" })
+	public static void setCellValue(HSSFSheet sheet, CellRangeAddress ca, List list ,String keyPound){
+    	int star = ca.getFirstRow()+1;
+    	String cv = sheet.getRow(star).getCell(1).getStringCellValue();
+    	while(StringUtils.isNotBlank(cv)&&!cv.startsWith(keyPound)){
+    		star+=1;
+    		cv = sheet.getRow(star).getCell(1).getStringCellValue();
+    	}
+    	int end = star + list.size();
+    	copyRowOnCellAddress(sheet, star, 1, list);
+    	HSSFCell c = sheet.getRow(ca.getFirstRow()).getCell(ca.getFirstColumn());
+    	HSSFCellStyle style = c.getCellStyle();
+    	removeMergedRegion(sheet, ca);
+    	sheet.addMergedRegion(new CellRangeAddress(star-1, ca.getLastRow()+list.size()-1, ca.getFirstColumn(), ca.getLastColumn()));
+    	c.setCellStyle(style);
+    	List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
+    	if(list!=null&&list.size()>0){
+    		mapList = reflectForgetData(list.get(0).getClass(), list);
+    	}
+    	Map<String, Object>	map = null;
+    	int sum = 0;
+    	for(int i=0;i<mapList.size();i++){
+    		map = mapList.get(i);
+    		HSSFRow row = sheet.getRow(star+i);
+    		if(row==null){
+    			continue;
+    		}
+    		for(int j=1;j<row.getLastCellNum();j++){
+    			HSSFCell cell = row.getCell(j);
+    			String value = cell.getStringCellValue().trim();
+    			if(StringUtils.isBlank(value)){
+    				continue;
+    			}
+    			if(!value.startsWith(keyPound)){
+    				continue;
+    			}
+    			value = value.substring(1,value.length());
+    			if(map.containsKey(value)){
+    				String v = String.valueOf(map.get(value)).trim();
+    				if(value.endsWith("sl")){
+    					int num = 0;
+    					try {
+    						num = Integer.parseInt(v);
+						} catch (Exception e) {
+							num = 0;
+							v="0";
+						}
+    					sum += num;
+    				}
+    				if(StringUtils.isNotBlank(v)){
+    					cell.setCellType(HSSFCell.CELL_TYPE_STRING);
+    					cell.setCellValue(v);
+    				}else{
+    					cell.setCellType(HSSFCell.CELL_TYPE_STRING);
+    					cell.setCellValue("");
+    				}
+    			}
+    		}
+    	}
+    	sheet.getRow(end).getCell(2).setCellType(HSSFCell.CELL_TYPE_STRING);
+    	sheet.getRow(end).getCell(2).setCellValue(sum);
+    }
+    
+    /**
+     * 
+     * @param sheet
+     * @param star  开始复制行的下标
+     * @param end  结束复制行的下标
+     */
+    public static void copyMoreRow(HSSFSheet sheet, int star, int end){
+    	for(int i=0;i<end-star+1;i++){
+    		HSSFRow oldRow = sheet.getRow(star+i);
+    		sheet.shiftRows(end+1+i, sheet.getLastRowNum(), 1, true, false);
+    		HSSFRow newRow = sheet.createRow(end+1+i);
+    		newRow.setHeight(oldRow.getHeight());
+    		for(int j=1;j<oldRow.getLastCellNum();j++){
+    			HSSFCell oldCell = oldRow.getCell(j);
+    			HSSFCell newCell = newRow.createCell(j);
+    			newCell.setCellStyle(oldCell.getCellStyle());
+    			newCell.setCellType(oldCell.getCellType());
+    			if(StringUtils.isNotBlank(oldCell.getStringCellValue())){
+        			newCell.setCellValue(oldCell.getStringCellValue());
+        		}
+    		}
+    	}
+    	
+    }
+    /**
+     * 仅适用航空公司统计
+     * @param sheet
+     * @param ca
+     * @param map
+     */
+    public static void setCellValue(HSSFSheet sheet, CellRangeAddress ca, Map<String, List<Map<String, String>>> map){
+    	if(map==null||map.size()==0){
+    		return;
+    	}
+    	int star = ca.getFirstRow()+1;
+    	int end = ca.getLastRow()-1;
+    	int a = star;
+    	int b = end;
+    	int sum = 0;
+    	int sumRow = ca.getFirstRow()+map.size();
+    	for(int i=0;i<map.size()-1;i++){
+    		copyMoreRow(sheet, a, b);
+    		a = b+1;
+    		b = b + 2;
+    		sheet.addMergedRegion(new CellRangeAddress(a, b, 1, 1));
+    	}
+    	Iterator<Entry<String, List<Map<String, String>>>> it = map.entrySet().iterator();
+    	while (it.hasNext()) {
+    		int num = 0;
+			Entry<String, List<Map<String, String>>> e = it.next();
+			String jx = e.getKey();
+			List<Map<String, String>> zjx = e.getValue();
+			sumRow += zjx.size();
+			if(zjx!=null&&zjx.size()>0){
+				sheet.getRow(star).getCell(1).setCellValue(jx);
+				if(zjx.size()>1){
+					copyRowOnCellAddress(sheet, star, 2, zjx);
+					for(int i=0;i<zjx.size();i++){
+						Map<String, String> map2 = zjx.get(i);
+						Iterator<Entry<String, String>> it2 = map2.entrySet().iterator();
+						while(it2.hasNext()){
+							Entry<String, String> e2 = it2.next();
+							sheet.getRow(star+i).getCell(2).setCellValue(e2.getKey());
+							int n = 0;
+							try {
+								n = Integer.parseInt(e2.getValue());
+							} catch (Exception e3) {
+								n = 0;
+							}
+							sheet.getRow(star+i).getCell(3).setCellType(HSSFCell.CELL_TYPE_NUMERIC);
+							sheet.getRow(star+i).getCell(3).setCellValue(n);
+							num = num + n;
+						}
+						removeMergedRegion(sheet, getMergedRegion(sheet, jx));
+						sheet.addMergedRegion(new CellRangeAddress(star, star+zjx.size(), 1, 1));
+					}
+					sheet.getRow(star+zjx.size()).getCell(3).setCellValue(num);
+				}else{
+					Map<String, String> map2 = zjx.get(0);
+					Iterator<Entry<String, String>> it2 = map2.entrySet().iterator();
+					while(it2.hasNext()){
+						Entry<String, String> e2 = it2.next();
+						sheet.getRow(star).getCell(2).setCellValue(e2.getKey());
+						int n = 0;
+						try {
+							n = Integer.parseInt(e2.getValue());
+						} catch (Exception e3) {
+							n = 0;
+						}
+						sheet.getRow(star).getCell(3).setCellType(HSSFCell.CELL_TYPE_NUMERIC);
+						sheet.getRow(star).getCell(3).setCellValue(n);
+						sheet.getRow(star+1).getCell(3).setCellType(HSSFCell.CELL_TYPE_NUMERIC);
+						sheet.getRow(star+1).getCell(3).setCellValue(n);
+						num = num + n;
+					}
+				}
+			}else{
+				sheet.getRow(star).getCell(1).setCellValue("");
+				sheet.getRow(star).getCell(2).setCellValue("");
+				sheet.getRow(star).getCell(3).setCellValue("");
+				sheet.getRow(star+1).getCell(3).setCellValue("");
+			}
+			sum += num;
+			star+=zjx.size()+1;
+    	}
+    	int index = ca.getFirstRow();
+    	removeMergedRegion(sheet, ca);
+    	sheet.addMergedRegion(new CellRangeAddress(index, sumRow+1, 0, 0));
+    	sheet.getRow(sumRow+1).getCell(2).setCellValue(sum);
+    }
+    
+    public static void export3Excel(HttpServletResponse response, String title, String fileName, String downName,
+            int index, List<Map<String, Object>> mapList) throws Exception {
+        downName = URLEncoder.encode(downName, "UTF-8");
+        response.setContentType("application/msexcel; charset=utf-8");
+        response.setHeader("Content-disposition", "attachment; filename=" + downName);
+        InputStream is = null;
+        HSSFWorkbook workbook2007 = null;
+        HSSFSheet sheet = null;
+        OutputStream bos = null;
+        try {
+            String realpath = File.separator + "template" + File.separator + fileName;
+            String path = CommonUtil.class.getClassLoader().getResource("").getPath();
+            File fi = new File(path + realpath);
+            POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));
+            workbook2007 = new HSSFWorkbook(fs);
+            sheet = workbook2007.getSheetAt(0);
+            if (StringUtils.isNotBlank(title)) {
+                sheet.getRow(0).getCell(0).setCellValue(title);
+            }
+            setListInfo3(sheet, index, mapList);
+            bos = response.getOutputStream();
+            workbook2007.write(bos);
+            response.flushBuffer();
+            bos.flush();
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        finally {
+            try {
+                if (is != null) {
+                    is.close();
+                }
+                if (bos != null) {
+                    bos.close();
+                }
+            }
+            catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    private static void setListInfo3(HSSFSheet sheet, int index, List<Map<String, Object>> list) {
+        // 得到列表行和样式
+        HSSFRow modRow = sheet.getRow(index + 1);
+        //sheet.removeRow(modRow);
+        Map<String, Map<String, Integer>> cellKeyMap = null;
+        cellKeyMap = getCellKeyMapByRow(modRow);
+        int colNum = modRow.getLastCellNum();
+        for (int modIndex = 0; modIndex < colNum; modIndex++) {
+            setCellValue(sheet, index + 1, modIndex, "");
+        }
+        // 填充数据
+        if (null != list && list.size() > 0) {
+            Iterator<String> it = null;
+            // 循环列表,为每一行赋值
+            for (int i = 0; i < list.size(); i++) {
+                Map<String, Object> mapObj = list.get(i);
+                it = cellKeyMap.keySet().iterator();
+                while (it.hasNext()) {
+                    String key = (String) it.next();
+                    Map<String, Integer> cellPosMap = cellKeyMap.get(key);
+                    // 获取行号
+                    Integer rowIndex = Integer.parseInt(cellPosMap.get("rowIndex").toString());
+                    // 获取列号
+                    Integer colIndex = Integer.parseInt(cellPosMap.get("colIndex").toString());
+                    rowIndex = rowIndex + i;
+                    // 设置单元内容
+                    if ("cout".equals(key)) {
+                        setCellValue(sheet, rowIndex, colIndex, String.valueOf(i + 1));
+                    }
+                    else {
+                        if (mapObj.containsKey(key))
+                        ;
+                        {
+                            if (null != mapObj.get(key)) {
+                                String value = mapObj.get(key).toString();
+                                setCellValue(sheet, rowIndex, colIndex, value);
+                            }
+                        }
+                    }
+                    // 设置单元格样式
+                    CellStyle style = modRow.getCell(colIndex).getCellStyle();
+                    setCellStyle(sheet, rowIndex, colIndex, style);
+                }
+            }
+        }
+    }
+
+    public static String addIntObj(Object... objects) {
+        Integer cntInt = 0;
+        for (Object obj : objects) {
+            if (null != obj && !StringUtils.isEmpty(obj.toString())) {
+                if(isNumeric(obj)) {
+                    cntInt += Integer.parseInt(obj.toString());
+                }
+            }
+        }
+        if(cntInt == 0) {
+            return "";
+        }
+        return String.valueOf(cntInt);
+    }
+
+    /**
+     * 是否为数字
+     * @param str
+     * @return
+     */
+    public static boolean isNumeric(Object obj) {
+        if(null == obj || StringUtils.isEmpty(obj.toString())) {
+            return false;
+        }
+        String str =obj.toString();
+        for (int i = str.length(); --i >= 0;) {
+            if (!Character.isDigit(str.charAt(i))) { return false; }
+        }
+        return true;
+    }
+
+	/**
+	 * Sheet复制
+	 * 
+	 * @param fromSheet
+	 * @param toSheet
+	 * @param copyValueFlag
+	 */
+	@SuppressWarnings("rawtypes")
+	public static void copySheet(HSSFWorkbook wb, HSSFSheet fromSheet,
+			HSSFSheet toSheet, boolean copyValueFlag) {
+		// 合并区域处理
+		mergerRegion(fromSheet, toSheet);
+		for (Iterator rowIt = fromSheet.rowIterator(); rowIt.hasNext();) {
+			HSSFRow tmpRow = (HSSFRow) rowIt.next();
+			HSSFRow newRow = toSheet.createRow(tmpRow.getRowNum());
+			newRow.setHeight(tmpRow.getHeight());
+			// 行复制
+			copyRow(wb, tmpRow, newRow, copyValueFlag);
+		}
+		//copy列宽
+		int cellCol = fromSheet.getRow(0).getPhysicalNumberOfCells();
+		for(int i=0;i<cellCol;i++){
+			toSheet.setColumnWidth(i, fromSheet.getColumnWidth(i));
+		}
+	}
+
+	/**
+	 * 行复制功能
+	 * 
+	 * @param fromRow
+	 * @param toRow
+	 */
+	@SuppressWarnings("rawtypes")
+	public static void copyRow(HSSFWorkbook wb, HSSFRow fromRow, HSSFRow toRow,
+			boolean copyValueFlag) {
+		for (Iterator cellIt = fromRow.cellIterator(); cellIt.hasNext();) {
+			HSSFCell tmpCell = (HSSFCell) cellIt.next();
+			HSSFCell newCell = toRow.createCell(tmpCell.getColumnIndex());
+			copyCell(wb, tmpCell, newCell, copyValueFlag);
+		}
+	}
+
+	/**
+	 * 复制原有sheet的合并单元格到新创建的sheet
+	 * 
+	 * @param sheetCreat
+	 *            新创建sheet
+	 * @param sheet
+	 *            原有的sheet
+	 */
+	public static void mergerRegion(HSSFSheet fromSheet, HSSFSheet toSheet) {
+		int sheetMergerCount = fromSheet.getNumMergedRegions();
+		for (int i = 0; i < sheetMergerCount; i++) {
+			CellRangeAddress ca = fromSheet.getMergedRegion(i);
+			toSheet.addMergedRegion(ca);
+		}
+	}
+
+	/**
+	 * 复制单元格
+	 * 
+	 * @param srcCell
+	 * @param distCell
+	 * @param copyValueFlag
+	 *            true则连同cell的内容一起复制
+	 */
+	public static void copyCell(HSSFWorkbook wb, HSSFCell srcCell,
+			HSSFCell distCell, boolean copyValueFlag) {
+		//HSSFCellStyle newstyle = wb.createCellStyle();
+		//copyCellStyle(srcCell.getCellStyle(), newstyle);
+		
+		// 样式
+		distCell.setCellStyle(srcCell.getCellStyle());
+		// 评论
+		if (srcCell.getCellComment() != null) {
+			distCell.setCellComment(srcCell.getCellComment());
+		}
+		// 不同数据类型处理
+		int srcCellType = srcCell.getCellType();
+		distCell.setCellType(srcCellType);
+		if (copyValueFlag) {
+			if (srcCellType == HSSFCell.CELL_TYPE_NUMERIC) {
+				if (HSSFDateUtil.isCellDateFormatted(srcCell)) {
+					distCell.setCellValue(srcCell.getDateCellValue());
+				} else {
+					distCell.setCellValue(srcCell.getNumericCellValue());
+				}
+			} else if (srcCellType == HSSFCell.CELL_TYPE_STRING) {
+				distCell.setCellValue(srcCell.getRichStringCellValue());
+			} else if (srcCellType == HSSFCell.CELL_TYPE_BLANK) {
+				// nothing21
+			} else if (srcCellType == HSSFCell.CELL_TYPE_BOOLEAN) {
+				distCell.setCellValue(srcCell.getBooleanCellValue());
+			} else if (srcCellType == HSSFCell.CELL_TYPE_ERROR) {
+				distCell.setCellErrorValue(srcCell.getErrorCellValue());
+			} else if (srcCellType == HSSFCell.CELL_TYPE_FORMULA) {
+				distCell.setCellFormula(srcCell.getCellFormula());
+			} else { // nothing29
+			}
+		}
+	}
+	
+    /**
+     * 对象转json
+     * 
+     * @param list
+     * @return
+     */
+    public static String convertToJsonData(Object list) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.setDateFormat(new SimpleDateFormat(DateTime.DATE_FORMAT_DATEONLY));
+            String liststr = mapper.writeValueAsString(list);
+            return liststr;
+        }
+        catch (JsonProcessingException jsone) {
+            throw new BizException(jsone);
+        }
+    }
+}

+ 58 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/CommonVo.java

@@ -0,0 +1,58 @@
+package com.jsjty.jdc.common;
+
+import java.util.Date;
+
+public class CommonVo  {
+    /** 记录创建人 */
+    private String addUser;
+    /** 记录创建时间 */
+    private Date addDate;
+    /** 记录更新人 */
+    private String updateUser;
+    /** 记录更新时间 */
+    private Date updateDate;
+    /** 记录状态 */
+    private String recordStatus;
+   
+
+    public Date getAddDate() {
+        return addDate;
+    }
+
+    public String getAddUser() {
+        return addUser;
+    }
+
+    public String getRecordStatus() {
+        return recordStatus;
+    }
+
+    public Date getUpdateDate() {
+        return updateDate;
+    }
+
+    public String getUpdateUser() {
+        return updateUser;
+    }
+
+    public void setAddDate(Date addDate) {
+        this.addDate = addDate;
+    }
+
+    public void setAddUser(String addUser) {
+        this.addUser = addUser;
+    }
+
+    public void setRecordStatus(String recordStatus) {
+        this.recordStatus = recordStatus;
+    }
+
+    public void setUpdateDate(Date updateDate) {
+        this.updateDate = updateDate;
+    }
+
+    public void setUpdateUser(String updateUser) {
+        this.updateUser = updateUser;
+    }
+
+}

+ 222 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/Constants.java

@@ -0,0 +1,222 @@
+package com.jsjty.jdc.common;
+
+/**
+ * 常量定义
+ */
+public class Constants {
+    public static String YESNO_Y = "Y";
+    public static String YESNO_N = "N";
+    
+    /**
+     * 根路径
+     */
+    public static String ROOT_DIR = "";
+    
+    public static String ROOT_INDEXDIR = "";
+    
+    /**
+     * 存放旧版本路径
+     */
+    public static String HIS_DIR ="";
+    
+    /**
+     * 指挥任务状态
+     */
+    public static String COMMAND_TASK_STATUS ="";
+    
+    /**
+     * 指挥任务状态(未开始)
+     */
+    public static String COMMAND_TASK_STATUS_0 ="0";
+    
+    /**
+     * 指挥任务状态(执行中)
+     */
+    public static String COMMAND_TASK_STATUS_1 ="1";
+    
+    /**
+     * 指挥任务状态(已完成)
+     */
+    public static String COMMAND_TASK_STATUS_2 ="2";
+    
+    /**
+     * 指挥任务状态(已删除)
+     */
+    public static String COMMAND_TASK_STATUS_9 ="9";
+    
+    /**
+     * 数据状态(正常)
+     */
+    public static String DATA_STATUS_0 ="0";
+    
+    /**
+     * 数据状态(已删除)
+     */
+    public static String DATA_STATUS_9 ="9";
+    
+    /**
+     * 流动起重接卸类型(轮胎吊)
+     */
+    public static String DATA_LDQZJX_1 ="1";
+    
+    /**
+     * 流动起重接卸类型(浮吊)
+     */
+    public static String DATA_LDQZJX_2 ="2";
+    
+    /**
+     * 泊位类型(适装重装备泊位)
+     */
+    public static String DATA_BWLX_1 ="1";
+    
+    /**
+     * 泊位类型(其它泊位)
+     */
+    public static String DATA_BWLX_2 ="2";
+    
+    /**
+     * 默认年份数字
+     */
+    public static int YEAR_NUM = 5;
+    
+    /**
+     * 逗号
+     */
+    public static String STR_COMMA = ",";
+    
+    /**
+     * 引号
+     */
+    public static String STR_QUOTA = "'";
+    
+    /**
+     * EXCEL 动态键标识符号
+     */
+    public static String EXCEL_KEY_SIGN = "$";
+    
+    /**
+     * EXCEL 动态键标识符号
+     */
+    public static String EXCEL_KEY_POUND = "#";
+    
+    /**
+     * EXCEL 动态键标识符号
+     */
+    public static String EXCEL_KEY_ASTERISK = "*";
+    
+    /**
+     * EXCEL 动态键标识符号
+     */
+    public static String FILE_TYPE_GWGS = "gwgsfj";
+
+    /**
+     * 流动起重机械类型
+     */
+    public static String TJ_SL_LDQZJXLX = "TJ_SL_LDQZJXLX";
+
+    /**
+     * 泊位类型
+     */
+    public static String TJ_SL_BWLX = "TJ_SL_BWLX";
+
+    /**
+     * 岸壁机械类型
+     */
+    public static String TJ_XL_ABJXLX = "TJ_XL_ABJXLX";
+
+    /**
+     * 主要用途及货类
+     */
+    public static String TJ_SL_BWYT = "TJ_SL_BWYT";
+
+    /**
+     * 航空-保障队伍-专业类别
+     */
+    public static String TJ_HK_ZYLB = "TJ_HK_ZYLB";
+    
+    /**
+     * 通用-能否
+     */
+    public static String TY_NF = "TY_NF";
+    
+    /**
+     * 泊位用途()
+     */
+    /*      
+                客运  1        
+                件杂货 2
+                通用  3
+                集装箱 4
+                木材  5
+                煤炭  6
+                散粮  7
+                危险品 8
+                修造船 9
+                战备码头 10
+                车客渡 11
+    */
+    public static String BWYT_KY = "1";
+    public static String BWYT_JZH = "2";
+    public static String BWYT_TY = "3";
+    public static String BWYT_JZX = "4";
+    public static String BWYT_MC = "5";
+    public static String BWYT_MT = "6";
+    public static String BWYT_SL = "7";
+    public static String BWYT_WXP = "8";
+    public static String BWYT_XZC = "9";
+    public static String BWYT_ZBMT = "10";
+    public static String BWYT_CKD = "11";
+    public static String BWYT_YL = "12";
+
+    /**
+     * 流动起重机械类型
+     */
+    public static String GZZD_ZDLX = "GZZD_ZDLX";
+    
+    /**
+     * 流动起重机械类型
+     */
+    public static Double DIST_RANGE = 0.005;
+    
+    /**
+     * 消息状态(未发送)
+     */
+    public static String MESSAGE_STATUS_0 ="0";
+    
+    /**
+     * 消息状态(发送中)
+     */
+    public static String MESSAGE_STATUS_1 ="0";
+    
+    /**
+     * 消息状态(已确认接收)
+     */
+    public static String MESSAGE_STATUS_2 ="0";
+    
+    /**
+     * 数据查看状态(未查看)
+     */
+    public static String VIEW_STATUS_0 ="0";
+    
+    /**
+     * 数据查看状态(已查看)
+     */
+    public static String VIEW_STATUS_1 ="1";
+    
+    
+    /**
+     * 航班简称
+     */
+    public static String TY_HBJC = "TY_HBJC";
+    
+    /** 输入提示 */
+	public static String INPUT_ADDRESS = "http://restapi.amap.com/v3/assistant/inputtips?output=json&key=";
+	/** 路径规划 */
+	public static String LJGH_ADDRESS = "http://restapi.amap.com/v3/direction/driving?output=json&key=";
+	/** 坐标转换 */
+	public static String CONVERT_ADDRESS = "http://restapi.amap.com/v3/assistant/coordinate/convert?coordsys=gps&output=json&key=";
+	/** 逆地理编码 */
+	public static String NDLBM_ADDRESS = "http://restapi.amap.com/v3/geocode/regeo?key=";
+	/** GD KEY */
+	public static String USERKEY = "f2126a00995f02761df6c7baf760f1d0";
+}

+ 128 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/ExceptionResolver.java

@@ -0,0 +1,128 @@
+package com.jsjty.jdc.common;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Properties;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.xtframe.core.base.ctl.WebJsonResult;
+import com.xtframe.core.log.BizLogRecorderService;
+import com.xtframe.core.log.BizLogRecorderService.HandlerType;
+import com.xtframe.util.DateTime;
+import com.xtframe.web.support.WebUtils;
+
+/**
+ * 
+ * <p>
+ * {@link org.springframework.web.servlet.handler.SimpleMappingExceptionResolver}
+ * implementation that allows for mapping exception class names to view names,
+ * either for a set of given handlers or for all handlers in the
+ * DispatcherServlet.
+ * </p>
+ * 
+ */
+public class ExceptionResolver extends SimpleMappingExceptionResolver {
+	private BizLogRecorderService bizLogRecorder = new BizLogRecorderService() {
+
+		@Override
+		public void log(Object request, Object response, Object handler,
+				HandlerType type, long cost) {
+
+		}
+	};
+
+	/**
+	 * 日志记录服务
+	 * 
+	 * @return
+	 */
+	public BizLogRecorderService getBizLogRecorder() {
+		return bizLogRecorder;
+	}
+
+	/**
+	 * 日志记录服务
+	 * 
+	 * @param bizLogRecorder
+	 */
+	public void setBizLogRecorder(BizLogRecorderService bizLogRecorder) {
+		this.bizLogRecorder = bizLogRecorder;
+	}
+
+	@Override
+	public ModelAndView resolveException(HttpServletRequest request,
+			HttpServletResponse response, Object handler, Exception ex) {
+		return super.resolveException(request, response, handler, ex);
+	}
+
+	@Override
+	protected ModelAndView doResolveException(HttpServletRequest request,
+			HttpServletResponse response, Object handler, Exception ex) {
+		if (null != ex) {
+			ex.printStackTrace();
+			if(handler instanceof HandlerMethod) {
+			    HandlerMethod hm = (HandlerMethod)handler;
+			    System.err.println("异常方法:"+hm.toString());
+			}
+			bizLogRecorder.log(request, ex, handler, HandlerType.Exception, -1);
+		}
+		if (ex instanceof MaxUploadSizeExceededException) {
+			WebJsonResult res = new WebJsonResult();
+			res.setSuccess(false);
+			res.setMessage("附件大小不能超过" + GlobalData.UPLOAD_FILE_SIZE + "M!");
+			ObjectMapper mapper = new ObjectMapper();
+			mapper.setDateFormat(new SimpleDateFormat(
+					DateTime.DATE_FORMAT_DATETIME));
+			try {
+				response.setCharacterEncoding("utf-8");
+				response.setContentType("text/html;charset=utf-8");
+				response.getWriter().write(mapper.writeValueAsString(res));
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			return new ModelAndView();
+		}
+		// Expose ModelAndView for chosen error view.
+		String viewName = determineViewName(ex, request);
+		if (viewName != null) {// JSP格式返回
+			if (!(WebUtils.isAjaxRequest(request))) {// 如果不是异步请求
+				// Apply HTTP status code for error views, if specified.
+				// Only apply it if we're processing a top-level request.
+				Integer statusCode = determineStatusCode(request, viewName);
+				if (statusCode != null) {
+					applyStatusCodeIfPossible(request, response, statusCode);
+					return getModelAndView(viewName, ex, request);
+				}
+			} else {// JSON格式返回
+				WebJsonResult res = new WebJsonResult();
+				res.setSuccess(false);
+				res.setMessage(ex.getMessage());
+				ObjectMapper mapper = new ObjectMapper();
+				mapper.setDateFormat(new SimpleDateFormat(
+						DateTime.DATE_FORMAT_DATETIME));
+				try {
+					response.getOutputStream().write(mapper.writeValueAsString(res).getBytes());
+				} catch (IOException e) {
+//					e.printStackTrace();
+					logger.debug(e.getMessage());
+				}
+				return new ModelAndView();
+			}
+			return null;
+		} else {
+			return null;
+		}
+	}
+
+	public void setExceptionMappings(Properties mappings) {
+		super.setExceptionMappings(mappings);
+	}
+}

+ 45 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/GlobalData.java

@@ -0,0 +1,45 @@
+package com.jsjty.jdc.common;
+
+import java.util.List;
+
+import com.xtframe.core.code.entity.Code;
+import com.xtframe.core.support.CoreMgr;
+import com.xtframe.util.Reflections;
+
+/**
+ * 全局信息设置
+ */
+public class GlobalData {
+    public static int UPLOAD_FILE_SIZE = 100;
+    public static boolean debug = false;
+
+    /** 交通厅视频接口相关配置===========>>> */
+    // 10.1.30.151:8088/iLive/GetCameraList_xml.c?loginUser=hwjdc&loginPwd=cf1cd49f65938733&lineid=0
+    public static String camera_ip = "10.1.30.151";
+    public static String camera_port = "8088";
+    public static String camera_username = "hwjdc";
+    public static String camera_password = "827ccb0eea8a706c4c34a16891f84e7b";
+    /** 中国天气网APPID */
+    public static String WEATHER_APPID = "960de7d651acaa89";
+    /** 中国天气网APPID密钥 */
+    public static String WEATHER_KEY = "7017be_SmartWeatherAPI_2bdf83c";
+    /** 摄像机字典编码组 */
+    public static String CODE_XXJ = "xxj";
+    /** solr服务地址 */
+    public static String solr_srv_url = "http://localhost:8983/solr";
+    /** solr默认检索核心 */
+    public static String solr_core_default = "core-air";
+
+    /**
+     * 重新加载系统参数
+     */
+    public static void reloadFromCodes() {
+        List<Code> codes = coreMgr.getCodeService().findByPcode("_sys_param");
+        Class<GlobalData> clazz = GlobalData.class;
+        for (Code c : codes) {
+            Reflections.setFieldValueSilence(clazz, c.getText(), c.getCode());
+        }
+    }
+
+    private static CoreMgr coreMgr = null;
+}

+ 66 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/GsonUtil.java

@@ -0,0 +1,66 @@
+package com.jsjty.jdc.common;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
+import com.jsjty.jdc.util.DateUtil;
+
+/**
+ * 
+ */
+public class GsonUtil {
+//    private final static Logger logger = LoggerFactory.getLogger(GsonUtil.class);
+    private final  static Gson bean2Gson = new GsonBuilder().setDateFormat(DateUtil.DATE_SECOND_FMT).create();
+    private final static Gson gson2Bean = new GsonBuilder().setDateFormat(DateUtil.DATE_SECOND_FMT).create();
+
+    /**Object转String
+     *
+     * @param obj 对象
+     * @return java.lang.String
+     */
+    public static String bean2gson(Object obj){
+        if(obj != null){
+        	return bean2Gson.toJson(obj);
+        }
+        return "";
+    }
+
+    /**
+     * String转Object
+     * @param gson
+     * @param clazz
+     * @param <T>
+     * @return
+     */
+    public static <T> T gson2Bean(String gson,Class<T> clazz){
+    	if(gson != null){
+            try{
+                return gson2Bean.fromJson(gson,clazz);
+            }catch (Exception e){
+            	e.printStackTrace();
+                return  null;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * String 转复杂对象
+     * @param gson
+     * @param typeToken
+     * @param <T>
+     * @return
+     */
+    public static  <T> T gson2Bean(String gson,TypeToken<T> typeToken){
+        if(gson != null){
+            try{
+                return gson2Bean.fromJson(gson, typeToken.getType());
+            }catch (Exception e){
+            	e.printStackTrace();
+                return  null;
+            }
+    	}
+        return null;
+    }
+ 
+}

+ 130 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/ImageUtil.java

@@ -0,0 +1,130 @@
+package com.jsjty.jdc.common;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * 图片处理工具
+ *
+ * @author myhnuhai
+ */
+public class ImageUtil {
+
+    /**
+     * 根据网络地址获取图片并转换为byte[]
+     *
+     * @param urlString
+     * @return byte[]
+     */
+    public static byte[] image2ByteArray(String urlString) {
+
+        ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
+        // 构造URL
+        InputStream inStream = null;
+        try {
+            URL url = new URL(urlString);
+            // 打开连接
+            URLConnection con = url.openConnection();
+            // 输入流
+            inStream = con.getInputStream();
+
+            // 1K的数据缓冲
+            byte[] bs = new byte[1024];
+
+            int rc = 0;
+            while ((rc = inStream.read(bs, 0, 1024)) > 0) {
+
+                swapStream.write(bs, 0, rc);
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if(null != inStream) {
+                    inStream.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        byte[] returnByte = swapStream.toByteArray();
+
+        try {
+            swapStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return returnByte;
+    }
+
+    private static int count = 0;
+
+    public static void download(String urlString, String filename, String savePath) throws Exception {
+        // 构造URL
+        URL url = new URL(urlString);
+        // 打开连接
+        URLConnection con = url.openConnection();
+         
+        // 输入流
+        InputStream is = con.getInputStream();
+        // 1K的数据缓冲
+        byte[] bs = new byte[2048];
+        // 读取到的数据长度
+        int len;
+        // 输出的文件流
+        File sf = new File(savePath);
+
+        if (!sf.exists()) {
+            sf.mkdirs();
+        }
+        OutputStream os = new FileOutputStream(sf.getPath() + "\\" + filename);
+        // 开始读取
+        while ((len = is.read(bs)) != -1) {
+            os.write(bs, 0, len);
+        }
+        // 完毕,关闭所有链接
+        os.close();
+        is.close();
+        //}
+        System.out.println("已下载第" + (++count) + "条数据!" + urlString);
+    }
+
+    /**
+     * 读取一张图片的RGB值
+     *
+     * @throws Exception
+     */
+    public static void getImagePixel(String image) throws Exception {
+        int[] rgb = new int[3];
+        File file = new File(image);
+        BufferedImage bi = null;
+        try {
+            bi = ImageIO.read(file);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        int width = bi.getWidth();
+        int height = bi.getHeight();
+        int minx = bi.getMinX();
+        int miny = bi.getMinY();
+        System.out.println("width=" + width + ",height=" + height + ".");
+        System.out.println("minx=" + minx + ",miniy=" + miny + ".");
+        for (int i = minx; i < width; i++) {
+            for (int j = miny; j < height; j++) {
+                int pixel = bi.getRGB(i, j); // 下面三行代码将一个数字转换为RGB数字
+                rgb[0] = (pixel & 0xff0000) >> 16;
+                rgb[1] = (pixel & 0xff00) >> 8;
+                rgb[2] = (pixel & 0xff);
+                System.out.println("i=" + i + ",j=" + j + ":(" + rgb[0] + ","
+                        + rgb[1] + "," + rgb[2] + ")");
+            }
+        }
+    }
+}

+ 45 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/InitServlet.java

@@ -0,0 +1,45 @@
+package com.jsjty.jdc.common;
+
+import java.lang.reflect.Field;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+import org.apache.log4j.Logger;
+import org.springframework.context.ApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import com.xtframe.core.support.CoreMgr;
+
+/**
+ * 系统初始化处理
+ * 
+ * @author 袁晓冬
+ */
+public class InitServlet extends HttpServlet {
+    protected Logger logger = Logger.getLogger(getClass());
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 系统初始化处理
+     */
+    @Override
+    public void init() throws ServletException {
+        super.init();
+        System.err.println("----------System Init------------");
+        ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
+        CoreMgr coreMgr = context.getBean(CoreMgr.class);
+        Field coreMgrField;
+        try {
+            coreMgrField = GlobalData.class.getDeclaredField("coreMgr");
+            coreMgrField.setAccessible(true);
+            coreMgrField.set(GlobalData.class, coreMgr);
+        }
+        catch (Exception e) {
+            System.err.println("系统参数初始化失败:" + e.getMessage());
+        }
+        GlobalData.reloadFromCodes();
+    }
+
+}

+ 447 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/PropertyUtil.java

@@ -0,0 +1,447 @@
+package com.jsjty.jdc.common;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+
+public class PropertyUtil {
+    private static Logger _log = Logger.getLogger(PropertyUtil.class);
+
+    private static Hashtable<String, Properties> propertyHT = new Hashtable<String, Properties>();
+
+    /**
+     * 
+     * 方法用途和描述: 获得属性
+     * 
+     * @param propertyFilePath
+     *            属性文件(包括类路径)
+     * @param key
+     *            属性键
+     * @return 属性值
+     * 
+     */
+    public final static String getValue(String propertyFilePath, String key) {
+        Properties ppts = getProperties(propertyFilePath);
+        return ppts == null ? null : ppts.getProperty(key);
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 获得属性文件中Key所对应的值
+     * 
+     * @param propertyFilePath
+     *            属性文件路径(包括类路径或文件系统中文件路径)
+     * @param key
+     *            属性的键
+     * @param isAbsolutePath
+     * <br>
+     * @return key的属性值
+     * 
+     */
+    public final static String getValue(String propertyFilePath, String key, boolean isAbsolutePath) {
+        if (isAbsolutePath) {
+            Properties ppts = getPropertiesByFs(propertyFilePath);
+            return ppts == null ? null : ppts.getProperty(key);
+        }
+        return getValue(propertyFilePath, key);
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 获得属性文件的属性
+     * 
+     * @param propertyFilePath
+     *            属性文件(包括类路径)
+     * @return 属性
+     * 
+     */
+    public final static Properties getProperties(String propertyFilePath) {
+        if (propertyFilePath == null) {
+            _log.error("propertyFilePath is null!");
+            return null;
+        }
+        Properties ppts = propertyHT.get(propertyFilePath);
+        if (ppts == null) {
+            ppts = loadPropertyFile(propertyFilePath);
+            if (ppts != null) {
+                propertyHT.put(propertyFilePath, ppts);
+            }
+        }
+        return ppts;
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 获得属性文件的属性
+     * 
+     * @param propertyFilePath
+     *            属性文件路径(包括类路径及文件系统路径)
+     * @return 属性文件对象 Properties
+     * 
+     */
+    public final static Properties getPropertiesByFs(String propertyFilePath) {
+        if (propertyFilePath == null) {
+            _log.error("propertyFilePath is null!");
+            return null;
+        }
+        Properties ppts = propertyHT.get(propertyFilePath);
+        if (ppts == null) {
+            ppts = loadPropertyFileByFileSystem(propertyFilePath);
+            if (ppts != null) {
+                propertyHT.put(propertyFilePath, ppts);
+            }
+        }
+        return ppts;
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 加载属性
+     * 
+     * @param propertyFilePath
+     *            属性文件(包括类路径)
+     * @return 属性
+     * 
+     */
+    private static Properties loadPropertyFile(String propertyFilePath) {
+        java.io.InputStream is = PropertyUtil.class.getResourceAsStream(propertyFilePath);
+        if (is == null) { return loadPropertyFileByFileSystem(propertyFilePath); }
+        Properties ppts = new Properties();
+        try {
+            ppts.load(is);
+            return ppts;
+        }
+        catch (Exception e) {
+            _log.debug("加载属性文件出错:" + propertyFilePath, e);
+            return null;
+        }
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 从文件系统加载属性文件
+     * 
+     * @param propertyFilePath
+     *            属性文件(文件系统的文件路径)
+     * @return 属性
+     * 
+     */
+    private static Properties loadPropertyFileByFileSystem(final String propertyFilePath) {
+        try {
+            Properties ppts = new Properties();
+            ppts.load(new java.io.FileInputStream(propertyFilePath));
+            return ppts;
+        }
+        catch (java.io.FileNotFoundException e) {
+            _log.error("FileInputStream(\"" + propertyFilePath + "\")! FileNotFoundException: " + e);
+            return null;
+        }
+        catch (java.io.IOException e) {
+            _log.error("Properties.load(InputStream)! IOException: " + e);
+            return null;
+        }
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 对存在的属性文件中添加键值对并保存
+     * 
+     * @param propertyFilePath
+     *            属性文件的路径(包括类路径及文件系统路径)
+     * @param htKeyValue
+     *            键值对Hashtable
+     * @return
+     * 
+     */
+    public final static boolean setValueAndStore(String propertyFilePath, java.util.Hashtable<String, String> htKeyValue) {
+        return setValueAndStore(propertyFilePath, htKeyValue, null);
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 对存在的属性文件中添加键值对并保存
+     * 
+     * @param propertyFilePath
+     *            属性文件的路径(包括类路径及文件系统路径)
+     * @param htKeyValue
+     *            键值对Hashtable
+     * @param storeMsg
+     *            保存时添加的附加信息(注释)
+     * @return
+     * 
+     */
+    @SuppressWarnings("unused")
+    public final static boolean setValueAndStore(String propertyFilePath,
+            java.util.Hashtable<String, String> htKeyValue, String storeMsg) {
+        Properties ppts = getProperties(propertyFilePath);
+
+        if (ppts == null || htKeyValue == null) { return false; }
+        ppts.putAll(htKeyValue);
+        java.io.OutputStream stream = null;
+        try {
+            stream = new java.io.FileOutputStream(propertyFilePath);
+        }
+        catch (FileNotFoundException e) {
+            _log.debug("propertyFilePath = " + propertyFilePath);
+            String path = PropertyUtil.class.getResource(propertyFilePath).getPath();
+            try {
+                stream = new java.io.FileOutputStream(path);
+            }
+            catch (FileNotFoundException e1) {
+                _log.error("FileNotFoundException! path=" + propertyFilePath);
+                return false;
+            }
+        }
+
+        if (stream == null) { return false; }
+
+        try {
+            ppts.store(stream, storeMsg != null ? storeMsg : "set value and store.");
+            return true;
+        }
+        catch (java.io.IOException e) {
+            e.printStackTrace();
+            return false;
+        }
+        finally {
+            if (stream != null) {
+                try {
+                    stream.close();
+                }
+                catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 创建属性文件
+     * 
+     * @param propertyFilePath
+     *            要存储属性文件的路径
+     * @param htKeyValue
+     *            属性文件中的键值对Hashtable
+     * @return
+     * 
+     */
+    public final static boolean createPropertiesFile(String propertyFilePath,
+            java.util.Hashtable<String, String> htKeyValue) {
+        java.io.File file = new java.io.File(propertyFilePath);
+        if (!file.exists()) {
+            try {
+                file.createNewFile();
+            }
+            catch (java.io.IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return setValueAndStore(propertyFilePath, htKeyValue, "create properties file:" + file.getName());
+    }
+
+    /**
+     * 
+     * 方法用途和描述:设置属性值
+     * 
+     * @param propertyFilePath
+     *            属性文件(包括类路径)
+     * @param key
+     *            属性键
+     * @param value
+     *            属性值
+     * @return
+     * 
+     */
+    public final static boolean setValue(String propertyFilePath, String key, String value) {
+        Properties ppts = getProperties(propertyFilePath);
+        if (ppts == null) { return false; }
+        ppts.put(key, value);
+        return true;
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 保存属性文件对象
+     * 
+     * @param properties
+     *            属性文件对象
+     * @param propertyFilePath
+     *            要保存的路径
+     * @param msg
+     *            保存时添加的附加信息(注释)
+     * 
+     */
+    public final static void store(Properties properties, String propertyFilePath, String msg) {
+        try {
+            java.io.OutputStream stream = new java.io.FileOutputStream(propertyFilePath);
+            properties.store(stream, msg);
+        }
+        catch (java.io.FileNotFoundException e) {
+            _log.error("FileOutputStream(" + propertyFilePath + ")! FileNotFoundException: " + e);
+        }
+        catch (java.io.IOException e) {
+            _log.error("store(stream, msg)! IOException: " + e);
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 删除属性值
+     * 
+     * @param propertyFilePath
+     *            属性文件(包括类路径)
+     * @param key
+     *            属性键
+     * @return
+     * 
+     */
+    public final static String removeValue(String propertyFilePath, String key) {
+
+        Properties ppts = getProperties(propertyFilePath);
+        if (ppts == null) { return null; }
+        return (String) ppts.remove(key);
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 删除属性文件中的Key数组所对应的键值对
+     * 
+     * @param propertyFilePath
+     *            属性文件路径(包括类路径及文件系统路径)
+     * @param key
+     *            key数组
+     * @return 属性文件对象
+     * 
+     */
+    public final static Properties removeValue(String propertyFilePath, String[] key) {
+        if (key == null) {
+            _log.error("key[] is null!");
+            return null;
+        }
+        Properties ppts = getProperties(propertyFilePath);
+        if (ppts == null) { return null; }
+        for (String strKey : key) {
+            ppts.remove(strKey);
+        }
+        return ppts;
+    }
+
+    /**
+     * 
+     * 方法用途和描述:删除属性文件中的Key数组所对应的键值对,并将属性文件对象持久化(即保存)
+     * 
+     * 
+     * @param propertyFilePath
+     *            属性文件路径(包括类路径及文件系统路径)
+     * @param key
+     *            属性文件中的key数组
+     * 
+     */
+    public final static boolean removeValueAndStore(String propertyFilePath, String[] key) {
+        Properties ppts = removeValue(propertyFilePath, key);
+        if (ppts == null) { return false; }
+        store(ppts, propertyFilePath, "batch remove key value!");
+        return true;
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 更新指定路径的属性文件中的键所对应的值
+     * 
+     * @param propertyFilePath
+     *            属性文件路径(包括类路径及文件系统路径)
+     * @param key
+     *            属性文件中的key
+     * @param newValue
+     *            要更新的新值
+     * 
+     */
+    public final static boolean updateValue(String propertyFilePath, String key, String newValue) {
+        if (key == null || newValue == null) {
+            _log.error("key or newValue is null!");
+            return false;
+        }
+        java.util.Hashtable<String, String> ht = new java.util.Hashtable<String, String>();
+        ht.put(key, newValue);
+        return setValueAndStore(propertyFilePath, ht, "update " + key + "'s value!");
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 批量更新指定路径的属性文件中的键所对应的值
+     * 
+     * @param propertyFilePath
+     *            属性文件路径(包括类路径及文件系统路径)
+     * @param htKeyValue
+     *            要更新的键值对Hashtable
+     * @return 成功与否(true|false)
+     * 
+     */
+    public final static boolean batchUpdateValue(String propertyFilePath, java.util.Hashtable<String, String> htKeyValue) {
+        if (propertyFilePath == null || htKeyValue == null) { return false; }
+        return setValueAndStore(propertyFilePath, htKeyValue, "batch update key value!");
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 移除加载的属性文件
+     * 
+     * @param propertyFilePath
+     *            属性文件(包括类路径)
+     * @return
+     * 
+     */
+    public final static Properties removePropertyFile(String propertyFilePath) {
+
+        return propertyHT.remove(propertyFilePath);
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 重新加载某个Property文件
+     * 
+     * @param propertyFilePath
+     *            要重新加载的Property文件,如果当前内存中没有的话则加载,否则替换
+     * 
+     */
+    public final static void reloadPropertyFile(String propertyFilePath) {
+        propertyHT.remove(propertyFilePath);
+        loadPropertyFile(propertyFilePath);
+    }
+
+    /**
+     * 
+     * 方法用途和描述: 获得属性文件的路径
+     * 
+     * @param pkg
+     *            包名
+     * @param propertyFileName
+     *            属性文件名
+     * @return
+     */
+    public final static String getPpropertyFilePath(String pkg, String propertyFileName) {
+
+        pkg = pkg == null ? "" : pkg.replaceAll("\\.", "/");
+        propertyFileName = propertyFileName.endsWith(".properties") ? propertyFileName
+                : (propertyFileName + ".properties");
+        return "/" + pkg + "/" + propertyFileName;
+    }
+
+//    public static void main(String[] args) {
+//        String path = "/config/sysparam.properties";
+//        String v = PropertyUtil.getValue(path, "airimgpath");
+//        System.out.println(v);
+
+//        Hashtable<String, String> ht = new Hashtable<String, String>();
+//        ht.put("name", "dengcd");
+//        PropertyUtil.setValueAndStore(path, ht);
+//        String v_ = PropertyUtil.getValue(path, "name");
+//        PropertyUtil.reloadPropertyFile(path);
+//        String v2_ = PropertyUtil.getValue(path, "name");
+//    }
+}

+ 109 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/SolrClientUtils.java

@@ -0,0 +1,109 @@
+package com.jsjty.jdc.common;
+
+import java.io.IOException;
+
+import org.apache.solr.client.solrj.SolrQuery;
+import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
+import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.common.SolrDocumentList;
+import org.apache.solr.common.params.SolrParams;
+
+import com.xtframe.util.StringUtils;
+
+/**
+ * solr客户端共通
+ * 
+ * @author 袁晓冬
+ *
+ */
+public abstract class SolrClientUtils {
+    /**
+     * 根据参数查询
+     * 
+     * @param param
+     * @return
+     */
+    public static SolrDocumentList query(SolrParams param) {
+        if (null == param) { return null; }
+        HttpSolrClient client = getHttpSolrClient();
+        try {
+            QueryResponse response = client.query(param);
+            SolrDocumentList list = response.getResults();
+            return list;
+        }
+        catch (SolrServerException | IOException e) {
+            e.printStackTrace();
+        }
+        finally {
+            try {
+                client.close();
+            }
+            catch (IOException e) {
+            }
+        }
+        return null;
+
+    }
+
+    /**
+     * 默认查询
+     * 
+     * @param param
+     * @return
+     */
+    public static SolrDocumentList query(String param) {
+        if (StringUtils.isEmpty(param)) { return null; }
+        HttpSolrClient client = getHttpSolrClient();
+        try {
+            SolrQuery query = new SolrQuery();
+            query.set("q", param);
+            QueryResponse response = client.query(GlobalData.solr_core_default, query);
+            SolrDocumentList list = response.getResults();
+            return list;
+        }
+        catch (SolrServerException | IOException e) {
+            e.printStackTrace();
+        }
+        finally {
+            try {
+                client.close();
+            }
+            catch (IOException e) {
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 获取系统默认solr服务器地址
+     * 
+     * @return
+     */
+    public static HttpSolrClient getHttpSolrClient() {
+        HttpSolrClient client = new HttpSolrClient(GlobalData.solr_srv_url);
+        client.setSoTimeout(3000); // socket read timeout  
+        client.setConnectionTimeout(1000);
+        client.setDefaultMaxConnectionsPerHost(1000);
+        client.setMaxTotalConnections(10);
+        client.setFollowRedirects(false); // defaults to false  
+        client.setAllowCompression(true);
+        return client;
+    }
+
+    /**
+     * 根据指定的url获取solr服务
+     * 
+     * @return
+     */
+    public static HttpSolrClient getHttpSolrClient(String url) {
+        HttpSolrClient client = new HttpSolrClient(url);
+        client.setSoTimeout(3000); // socket read timeout  
+        client.setConnectionTimeout(1000);
+        client.setDefaultMaxConnectionsPerHost(1000);
+        client.setMaxTotalConnections(10);
+        client.setFollowRedirects(false); // defaults to false  
+        client.setAllowCompression(true);
+        return client;
+    }
+}

+ 49 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/common/StringEscapeEditor.java

@@ -0,0 +1,49 @@
+package com.jsjty.jdc.common;
+
+import org.springframework.web.util.HtmlUtils;
+import org.springframework.web.util.JavaScriptUtils;
+
+import java.beans.PropertyEditorSupport;
+
+/**
+ * Created by 马英虎 on 14-3-17.
+ * 与spring mvc的@InitBinder结合
+ *
+ * 用于防止XSS攻击
+ */
+public class StringEscapeEditor extends PropertyEditorSupport {
+    private boolean escapeHTML;// 编码HTML
+    private boolean escapeJavaScript;// 编码javascript
+
+    public StringEscapeEditor() {
+        super();
+    }
+
+    public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript) {
+        super();
+        this.escapeHTML = escapeHTML;
+        this.escapeJavaScript = escapeJavaScript;
+    }
+
+    @Override
+    public String getAsText() {
+        Object value = getValue();
+        return value != null ? value.toString() : "";
+    }
+
+    @Override
+    public void setAsText(String text) throws IllegalArgumentException {
+        if (text == null) {
+            setValue(null);
+        } else {
+            String value = text;
+            if (escapeHTML) {
+                value = HtmlUtils.htmlEscape(value);
+            }
+            if (escapeJavaScript) {
+                value = JavaScriptUtils.javaScriptEscape(value);
+            }
+            setValue(value);
+        }
+    }
+}

+ 19 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/html/filter/JdcHtmlFilter.java

@@ -0,0 +1,19 @@
+package com.jsjty.jdc.html.filter;
+
+import org.htmlparser.NodeFilter;
+
+/**
+ * 军代处网页解析
+ * 
+ * @author 袁晓冬
+ *
+ * @param <T>
+ */
+public interface JdcHtmlFilter<T> extends NodeFilter {
+    /**
+     * 获取解析结果
+     * 
+     * @return
+     */
+    T getResultObject();
+}

+ 204 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/html/filter/VeryzhunHbdtSearchFilter.java

@@ -0,0 +1,204 @@
+package com.jsjty.jdc.html.filter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.htmlparser.Attribute;
+import org.htmlparser.Node;
+import org.htmlparser.Tag;
+import org.htmlparser.tags.ImageTag;
+import org.htmlparser.tags.TableRow;
+import org.htmlparser.tags.TableTag;
+import org.htmlparser.util.ParserException;
+import org.htmlparser.visitors.NodeVisitor;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * 非常准网页解析
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class VeryzhunHbdtSearchFilter implements JdcHtmlFilter<JSONObject> {
+    /** serialVersionUID */
+    private static final long serialVersionUID = 5262045136188050696L;
+    // 出发
+    private List<Node> numdap;
+    // 飞机动态信息
+    private List<Node> numinfo;
+    // 飞机目的地信息
+    private List<Node> numarr;
+
+    public VeryzhunHbdtSearchFilter() {
+        numdap = new ArrayList<>();
+        numinfo = new ArrayList<>();
+        numarr = new ArrayList<>();
+    }
+
+    /**
+     * 出发节点解析
+     * 
+     * @param dap
+     * @return
+     */
+    private JSONObject getDapNode(Node dap) {
+        final JSONObject result = new JSONObject();
+        try {
+            dap.getChildren().visitAllNodesWith(new NodeVisitor() {
+                @Override
+                public void visitTag(Tag tag) {
+                    String classAttr = tag.getAttribute("class");
+                    if ("num_here".equals(classAttr)) {
+                        result.put("起飞机场", tag.getFirstChild().getText());
+                    }
+                    else if ("numtime".equals(classAttr)) {
+                        result.put("计划起飞时间", tag.getChildren().elementAt(0).getFirstChild().getText().split(":")[1]);
+                        result.put("预计起飞时间", tag.getChildren().elementAt(1).getFirstChild().getText().split(":")[1]);
+                        result.put("实际起飞时间", tag.getChildren().elementAt(2).getFirstChild().getText().split(":")[1]);
+                    }
+                    else if ("njd".equals(classAttr)) {
+                        result.put("能见度", tag.getFirstChild().getText());
+                    }
+                    else if ("state".equals(classAttr)) {
+                        result.put("流量", tag.getFirstChild().getText());
+                    }
+                    else if ("f30".equals(classAttr)) {
+                        result.put("温度", tag.getFirstChild().getText());
+                    }
+                    if (tag instanceof ImageTag) {
+                        result.put("天气", tag.getAttribute("alt"));
+                    }
+                    super.visitTag(tag);
+                }
+            });
+        }
+        catch (ParserException e) {
+        }
+        return result;
+    }
+
+    /**
+     * 状态节点解析
+     * 
+     * @param dap
+     * @return
+     */
+    private JSONObject getInfoNode(Node dap) {
+        final JSONObject result = new JSONObject();
+        try {
+            dap.getChildren().visitAllNodesWith(new NodeVisitor() {
+                @Override
+                public void visitTag(Tag tag) {
+                    String classAttr = tag.getAttribute("class");
+                    if ("num_here".equals(classAttr)) {
+                        result.put("航班号", tag.getFirstChild().getText());
+                    }
+                    else if ("red".equals(classAttr)) {
+                        result.put("航班状态", tag.getFirstChild().getText());
+                    }
+                    if (tag instanceof TableTag) {
+                        TableTag table = (TableTag) tag;
+                        TableRow row1 = table.getRow(0);
+                        result.put("航空公司", row1.getColumns()[1].getFirstChild().getFirstChild().getText());
+                        TableRow row2 = table.getRow(1);
+                        result.put("机型", row2.getColumns()[1].getChild(1).getFirstChild().getText());
+                        result.put("历史准点率", row2.getColumns()[1].getChild(3).getText());
+                    }
+                    super.visitTag(tag);
+                }
+            });
+        }
+        catch (ParserException e) {
+        }
+        return result;
+    }
+
+    private JSONObject getArrNode(Node dap) {
+        final JSONObject result = new JSONObject();
+        try {
+            dap.getChildren().visitAllNodesWith(new NodeVisitor() {
+                @Override
+                public void visitTag(Tag tag) {
+                    String classAttr = tag.getAttribute("class");
+                    if ("num_here".equals(classAttr)) {
+                        result.put("到达机场", tag.getFirstChild().getText());
+                    }
+                    else if ("numtime".equals(classAttr)) {
+                        result.put("计划到达时间", tag.getChildren().elementAt(0).getFirstChild().getText().split(":")[1]);
+                        result.put("预计到达时间", tag.getChildren().elementAt(1).getFirstChild().getText().split(":")[1]);
+                        result.put("实际到达时间", tag.getChildren().elementAt(2).getFirstChild().getText().split(":")[1]);
+                    }
+                    else if ("njd".equals(classAttr)) {
+                        result.put("能见度", tag.getFirstChild().getText());
+                    }
+                    else if ("state".equals(classAttr)) {
+                        result.put("流量", tag.getFirstChild().getText());
+                    }
+                    else if ("f30".equals(classAttr)) {
+                        result.put("温度", tag.getFirstChild().getText());
+                    }
+                    if (tag instanceof ImageTag) {
+                        result.put("天气", tag.getAttribute("alt"));
+                    }
+                    super.visitTag(tag);
+                }
+            });
+        }
+        catch (ParserException e) {
+        }
+        return result;
+    }
+
+    @Override
+    public JSONObject getResultObject() {
+        JSONObject result = new JSONObject();
+        // 出发节点
+        JSONArray dapArr = new JSONArray();
+        for (Node n : numdap) {
+            dapArr.add(getDapNode(n));
+        }
+        result.put("dap", dapArr);
+        // 途中信息节点
+        JSONArray infoArr = new JSONArray();
+        for (Node n : numinfo) {
+            infoArr.add(getInfoNode(n));
+        }
+        result.put("info", infoArr);
+        // 到达节点
+        JSONArray arrArr = new JSONArray();
+        for (Node n : numarr) {
+            arrArr.add(getArrNode(n));
+        }
+        result.put("arr", arrArr);
+        return result;
+    }
+
+    @Override
+    public boolean accept(Node node) {
+        Tag tag;
+        boolean ret = false;
+        if (node instanceof Tag) {
+            tag = (Tag) node;
+            // 根据名称获取form字段
+            Attribute classAttr = tag.getAttributeEx("class");
+            if (null != classAttr) {
+                if ("numinfo".equals(classAttr.getValue())) {
+                    numinfo.add(tag);
+                    return true;
+                }
+                else if ("numarr".equals(classAttr.getValue())) {
+                    numarr.add(tag);
+                    return true;
+                }
+                else if ("numdap".equals(classAttr.getValue())) {
+                    numdap.add(tag);
+                    return true;
+                }
+            }
+        }
+        return ret;
+    }
+
+}

+ 80 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/CodesMapService.java

@@ -0,0 +1,80 @@
+package com.jsjty.jdc.util;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.Cache;
+import org.springframework.cache.ehcache.EhCacheCacheManager;
+import org.springframework.stereotype.Service;
+
+import com.jsjty.jdc.common.BaseWebCtl;
+import com.xtframe.core.code.entity.Code;
+import com.xtframe.core.support.CoreMgr;
+import com.xtframe.util.ObjectUtils;
+
+/**
+ * 编码共通
+ * TODO 逻辑有问题,需要调整
+ * 
+ * @author 袁晓冬
+ *
+ */
+@Service
+public class CodesMapService {
+    @Autowired
+    protected CoreMgr coreMgr;
+    @Autowired
+    private EhCacheCacheManager cacheManager;
+    /** 上下级code分割符 */
+    public static final String SEP = "$";
+
+    /**
+     * 重新加载缓存
+     */
+    public void reload() {
+        Cache cache = cacheManager.getCache("codeCache");
+        cache.clear();
+        List<Code> rootcodes = coreMgr.getCodeService().findByPid(BaseWebCtl.BLANK_UUID);
+        for (Code c : rootcodes) {
+            Map<String, String> codes = loadSubCodes(c, cache);
+            cache.put(BaseWebCtl.BLANK_UUID + SEP + c.getCode(), codes);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public Map<String, String> getSubCodeMap(String code, String pcode) {
+        Cache cache = cacheManager.getCache("codeCache");
+        Cache.ValueWrapper valueWrapper = cache.get(pcode + SEP + code);
+        if (ObjectUtils.isNotEmpty(valueWrapper) && ObjectUtils.isNotEmpty(valueWrapper.get())) {
+            return (Map<String, String>) valueWrapper.get();
+        }
+        else {
+            Code p = coreMgr.getCodeService().findByCodeAndPcode(code, pcode);
+            if (p != null && p.getValid() && !p.getLeaf()) {
+                Map<String, String> codes = loadSubCodes(p, cache);
+                cache.put(pcode + SEP + code, codes);
+                return codes;
+            }
+        }
+        return null;
+    }
+
+    private Map<String, String> loadSubCodes(Code p, Cache cache) {
+        if (!p.getValid() || p.getLeaf()) { return null; }
+        List<Code> subCodes = coreMgr.getCodeService().findByPid(p.getId());
+        Map<String, String> subMap = new HashMap<String, String>();
+        for (Code sub : subCodes) {
+            if (!sub.getValid()) {
+                continue;
+            }
+            subMap.put(sub.getCode(), sub.getText());
+            if (!sub.getLeaf()) {
+                Map<String, String> subs = loadSubCodes(sub, cache);
+                cache.put(p.getCode() + SEP + sub.getCode(), subs);
+            }
+        }
+        return subMap;
+    }
+}

+ 25 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/CustomDateSerializer.java

@@ -0,0 +1,25 @@
+package com.jsjty.jdc.util;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2015/8/7.
+ */
+public class CustomDateSerializer extends JsonSerializer<Date> {
+
+    @Override
+    public void serialize(Date value,
+                          JsonGenerator jsonGenerator,
+                          SerializerProvider provider)
+            throws IOException, JsonProcessingException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        jsonGenerator.writeString(sdf.format(value));
+    }
+}

+ 57 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/CustomGetMethod.java

@@ -0,0 +1,57 @@
+package com.jsjty.jdc.util;
+
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.util.EntityUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.zip.GZIPInputStream;
+
+public class CustomGetMethod {
+ private final static Logger logger = LoggerFactory.getLogger(CustomGetMethod.class);
+	public static String getGzip(HttpResponse response) {
+		try {
+            HttpEntity httpEntity = response.getEntity();
+            if (isGzip(response)) {
+                // For GZip response
+                InputStream is = httpEntity.getContent();
+                GZIPInputStream gzin = new GZIPInputStream(is);
+
+                InputStreamReader isr = new InputStreamReader(gzin, "utf-8");
+                java.io.BufferedReader br = new java.io.BufferedReader(isr);
+                StringBuffer sb = new StringBuffer();
+                String tempbf;
+                while ((tempbf = br.readLine()) != null) {
+                    sb.append(tempbf);
+                }
+                isr.close();
+                gzin.close();
+                return sb.toString();
+            } else {
+                return EntityUtils.toString(httpEntity, "utf-8");
+            }
+        }catch (IOException io){
+            logger.error(io.getMessage());
+            return "";
+        }
+
+	}
+
+	private static boolean isGzip(HttpResponse response) {
+		if (response.containsHeader("Content-Encoding")) {
+			Header[] hs = response.getHeaders("Content-Encoding");
+			for (Header h : hs) {
+				if (h.getValue().toLowerCase().indexOf("gzip") > -1) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+}

+ 193 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/DateUtil.java

@@ -0,0 +1,193 @@
+package com.jsjty.jdc.util;
+
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+
+/**
+ * project Antelope
+ * package com.jsjty.mayh.entity
+ * author  马英虎
+ * date    2015/3/27.
+ * version 1.0
+ */
+public class DateUtil {
+
+	private final static Locale locale = Locale.CHINA;
+	public final static  int DAY_MILLISECOND = 86400000;
+	private final static SimpleDateFormat sdf = new SimpleDateFormat();// 定义格式,不显示毫秒
+
+	public final static String DATE_DAY_FMT = "yyyy-MM-dd";
+	public final static String DATE_HOUR_FMT = "yyyy-MM-dd HH:00:00";
+	public final static String DATE_MIN_FMT = "yyyy-MM-dd HH:mm:00";
+	public final static String DATE_SECOND_FMT = "yyyy-MM-dd HH:mm:ss";
+    public final static String DATE_TIME = "yyyyMMddHHmmss";
+    public final static String DATE_TIME_m = "yyyyMMddHHmm";
+    public final static String DATE_TIME_h = "yyyyMMddHH";
+	public final static String WEEK = "EEEE";
+
+	/**
+	 * 将Date类型转换为字符串
+	 *
+	 * @param date
+	 *            日期类型
+	 * @return 日期字符串
+	 */
+	public static String format(Date date) {
+		return format(date, "yyyy-MM-dd HH:mm:ss");
+	}
+
+	/**
+	 * 将Date类型转换为字符串
+	 *
+	 * @param date
+	 *            日期类型
+	 * @param pattern
+	 *            字符串格式
+	 * @return 日期字符串
+	 */
+	public static String format(Date date, String pattern) {
+		if (date == null) {
+			return "null";
+		}
+		if (pattern == null || pattern.equals("") || pattern.equals("null")) {
+			pattern = "yyyy-MM-dd HH:mm:ss";
+		}
+		return new SimpleDateFormat(pattern).format(date);
+	}
+
+	/**
+	 * 将字符串转换为Date类型
+	 *
+	 * @param date
+	 *            字符串类型
+	 * @return 日期类型
+	 */
+	public static Date format(String date) {
+		return format(date, null);
+	}
+
+	/**
+	 * 将字符串转换为Date类型
+	 *
+	 * @param date
+	 *            字符串类型
+	 * @param pattern
+	 *            格式
+	 * @return 日期类型
+	 */
+	public static Date format(String date, String pattern) {
+		if (pattern == null || pattern.equals("") || pattern.equals("null")) {
+			pattern = "yyyy-MM-dd HH:mm:ss";
+		}
+		if (date == null || date.equals("") || date.equals("null")) {
+			return new Date();
+		}
+		Date d = null;
+		try {
+			d = new SimpleDateFormat(pattern).parse(date);
+		} catch (ParseException pe) {
+		}
+		return d;
+	}
+
+
+
+	/**
+	 * 传入的参数格式为: yyyy-MM-dd HH:mm:ss
+	 *
+	 * @category 字母 日期或时间元素 表示 示例 <br/>
+	 *           G Era 标志符 Text AD <br/>
+	 *           y 年 Year 1996; 96 <br/>
+	 *           M 年中的月份 Month July; Jul; 07 <br/>
+	 *           w 年中的周数 Number 27 <br/>
+	 *           W 月份中的周数 Number 2 <br/>
+	 *           D 年中的天数 Number 189 <br/>
+	 *           d 月份中的天数 Number 10 <br/>
+	 *           F 月份中的星期 Number 2 <br/>
+	 *           E 星期中的天数 Text Tuesday; Tue <br/>
+	 *           a Am/pm 标记 Text PM <br/>
+	 *           H 一天中的小时数(0-23) Number 0 <br/>
+	 *           k 一天中的小时数(1-24) Number 24 <br/>
+	 *           K am/pm 中的小时数(0-11) Number 0 <br/>
+	 *           h am/pm 中的小时数(1-12) Number 12 <br/>
+	 *           m 小时中的分钟数 Number 30 <br/>
+	 *           s 分钟中的秒数 Number 55 <br/>
+	 *           S 毫秒数 Number 978 <br/>
+	 *           z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 <br/>
+	 *           Z 时区 RFC 822 time zone -0800 <br/>
+	 *
+	 * @param date
+	 * @return Timestamp
+	 */
+	public static Timestamp str2Timestamp(String date) {
+		Timestamp returnt = Timestamp.valueOf(date);
+		return returnt;
+	}
+
+	/**
+	 * Timestamp转换为String形式输出
+	 *
+	 * @param timestamp
+	 * @param dfm
+	 * @return String
+	 * 转字符串的时候如果传入的参数dformat为null,则默认以yyyy-MM-dd
+	 *           HH:mm:ss格式转换。否则按传入格式转。
+	 *
+	 */
+	public static String timestamp2Str(Timestamp timestamp, String dfm) {
+		String returnstr = "";
+		if (dfm == null) {
+			sdf.applyPattern(DATE_SECOND_FMT);
+		} else {
+			sdf.applyPattern(dfm);
+		}
+		returnstr = sdf.format(timestamp);
+		return returnstr;
+	}
+
+	/**
+	 * Date 转为 String形式输出
+	 *
+	 * @param date
+	 * @param dfm
+	 * @return String
+	 *  转字符串的时候如果传入的参数dformat为null,则默认以yyyy-MM-dd
+	 *           HH:mm:ss格式转换。否则按传入格式转。
+	 */
+	public static String date2Str(Date date, String dfm) {
+		if (dfm == null) {
+			sdf.applyPattern(DATE_SECOND_FMT);
+		} else {
+			sdf.applyPattern(dfm);
+		}
+		String returnstr = sdf.format(date);
+		return returnstr;
+	}
+
+	/**
+	 * 字符串转Date
+	 * @param date
+	 * @param fmt
+	 * @return
+	 */
+	public static Date str2Date(String date, String fmt) {
+
+		if (fmt == null) {
+			sdf.applyPattern(DATE_SECOND_FMT);
+		} else {
+			sdf.applyPattern(fmt);
+		}
+		try {
+			return sdf.parse(date);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+}

+ 170 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/Dijkstra.java

@@ -0,0 +1,170 @@
+package com.jsjty.jdc.util;
+
+import org.apache.log4j.Logger;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class Dijkstra {
+    private static Logger loger = Logger.getLogger(Dijkstra.class);
+    private final static int M = 10000;
+
+    public static ShortPath dijsktra(int[][] weight, int start, int to) {
+        // 接受一个有向图的权重矩阵,和一个起点编号start(从0编号,顶点存在数组中)
+        // 返回一个int[] 数组,表示从start到它的最短路径长度
+
+        if (weight.length == 0 || start == 0 || to == 0) {
+            return null;
+        }
+        loger.debug("weight size:" + weight.length);
+        loger.debug("weight size:" + weight.length + ";from:" + start + ";to:" + to);
+
+        int n = weight.length; // 顶点个数
+
+        int[] shortPath = new int[n]; // 存放从start到其他各点的最短路径
+
+        String[] path = new String[n]; // 存放从start到其他各点的最短路径的字符串表示
+
+        for (int i = 0; i < n; i++) {
+            path[i] = new String(start + "," + i);
+        }
+
+        int[] visited = new int[n]; // 标记当前该顶点的最短路径是否已经求出,1表示已求出
+
+        // 初始化,第一个顶点求出
+        shortPath[start] = 0;
+
+        visited[start] = 1;
+
+        for (int count = 1; count <= n - 1; count++) // 要加入n-1个顶点
+        {
+            int k = -1; // 选出一个距离初始顶点start最近的未标记顶点
+            int dmin = Integer.MAX_VALUE;
+            for (int i = 0; i < n; i++) {
+                if (visited[i] == 0 && weight[start][i] < dmin) {
+                    dmin = weight[start][i];
+
+                    k = i;
+                }
+            }
+
+            shortPath[k] = dmin;
+
+            visited[k] = 1;
+
+            // 以k为中间点,修正从start到未访问各点的距离
+            for (int i = 0; i < n; i++) {
+                if (visited[i] == 0
+                        && weight[start][k] + weight[k][i] < weight[start][i]) {
+                    weight[start][i] = weight[start][k] + weight[k][i];
+
+                    path[i] = path[k] + "," + i;
+                }
+            }
+        }
+
+        loger.info("最短路径查询结果为:" + shortPath[to] + "|" + path[to]);
+
+        return new ShortPath(path[to], shortPath[to]);
+    }
+
+
+    public static int[][] initParams(int len, List<Param> params) {
+        int adj[][] = new int[len][len];
+        for (int i = 0; i < len; i++) {
+            for (int j = 0; j < len; j++) {
+                if (i == j) {
+                    adj[i][j] = 0;
+                } else {
+                    adj[i][j] = M;
+                }
+            }
+        }
+        for (Param param : params) {
+            adj[param.getFrom()][param.getTo()] = param.getTo();
+        }
+
+        return adj;
+    }
+
+    public static class Param {
+        private int from;
+        private int to;
+        private int len;
+
+        public int getFrom() {
+            return from;
+        }
+
+        public void setFrom(int from) {
+            this.from = from;
+        }
+
+        public int getTo() {
+            return to;
+        }
+
+        public void setTo(int to) {
+            this.to = to;
+        }
+
+        public int getLen() {
+            return len;
+        }
+
+        public void setLen(int len) {
+            this.len = len;
+        }
+
+        @Override
+        public String toString() {
+            return "Param{" +
+                    "from=" + from +
+                    ", to=" + to +
+                    ", len=" + len +
+                    '}';
+        }
+    }
+
+    /**
+     * 保存数据结果
+     */
+    public static class ShortPath implements Serializable {
+        private static final long serialVersionUID = 1L;
+
+        private String path;
+        private int length;
+
+        public ShortPath() {
+        }
+
+        public ShortPath(String path, int length) {
+            super();
+            this.path = path;
+            this.length = length;
+        }
+
+        public String getPath() {
+            return path;
+        }
+
+        public void setPath(String path) {
+            this.path = path;
+        }
+
+        public int getLength() {
+            return length;
+        }
+
+        public void setLength(int length) {
+            this.length = length;
+        }
+
+        @Override
+        public String toString() {
+            // TODO Auto-generated method stub
+            return "{'ShortPath':{'length':" + length + ";'path':'" + path + "'}}";
+        }
+    }
+}
+

+ 264 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/HttpMain.java

@@ -0,0 +1,264 @@
+package com.jsjty.jdc.util;
+
+import java.io.UnsupportedEncodingException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.http.NameValuePair;
+import org.apache.http.message.BasicNameValuePair;
+import org.htmlparser.Parser;
+import org.htmlparser.util.ParserException;
+
+import com.jsjty.jdc.html.filter.VeryzhunHbdtSearchFilter;
+import com.jsjty.jdc.web.air.entity.AirPosition;
+import com.jsjty.jdc.web.air.entity.FlightDynamic;
+import com.jsjty.jdc.web.air.entity.TairDetail;
+import com.jsjty.jdc.web.air.entity.TairDynamicInfo;
+import com.xtframe.io.http.HttpConsts;
+import com.xtframe.io.http.HttpResultType;
+import com.xtframe.io.http.HttpUtil;
+import com.xtframe.io.http.RequestBean;
+import com.xtframe.io.http.ResponseBean;
+import com.xtframe.util.ObjectUtils;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+public class HttpMain extends HttpProxy {
+    public final static String air_url = "http://bma.data.fr24.com/zones/fcgi/feed.js"; // 请求航班信息数据
+    public final static String event_url = "http://218.2.208.140:8091/JSWeb/servlet/custService";// 事件数据查询
+    public final static String air_detail_url = "http://bma.data.fr24.com/_external/planedata_json.1.4.php"; //请求航班详细信息
+    public final static String airplane_hbdt_in_url = "http://gzcx.jscd.gov.cn/cxdy/gzcx/ajax/show_hkdt_jin.jsp"; //机场航班动态进港数据
+    public final static String airplane_hbdt_out_url = "http://gzcx.jscd.gov.cn/cxdy/gzcx/ajax/show_hkdt.jsp"; //机场航班动态出港数据
+
+    public final static String airport_url = "http://www.flightradar24.com/AirportDataService2.php?version=1442283615187";//获取所有机场
+
+    public final static String hbdt_url = "http://www.veryzhun.com/searchnum.asp"; // 请求航班动态信息
+
+    public String[] title = new String[] { "编号", "纬度", "经度", "方向", "高度", "速度", "应答机编码", "雷达", "飞机型号", "注册号", "时间",
+            "起飞机场", "降落机场", "航班号", "attr1", "垂直速度", "航班号", "attr2" };
+
+    public int pageSize = 50;
+
+
+    /**
+     * 根据航班号查询航班动态
+     * 
+     * @param hbh
+     * @return
+     */
+    public com.alibaba.fastjson.JSONObject searchHbxx(String hbh) {
+        List<NameValuePair> params = new ArrayList<>();
+        params.add(new BasicNameValuePair("flightnum", hbh));
+        RequestBean req = new RequestBean(HttpResultType.STRING);
+        req.setCharset("gb2312");
+        req.setUrl(hbdt_url);
+        req.setParameters(params);
+        req.setMethod(HttpConsts.METHOD_POST);
+        ResponseBean respBean = HttpUtil.getInstance().execute(req);
+        Parser parser = new Parser();
+        try {
+        	int index = respBean.getStringResult().indexOf("<html");
+            parser.setResource(respBean.getStringResult().substring(
+            		index, respBean.getStringResult().length()));
+            VeryzhunHbdtSearchFilter filter = new VeryzhunHbdtSearchFilter();
+            parser.extractAllNodesThatMatch(filter);
+            return filter.getResultObject();
+        }
+        catch (Exception e) {
+        }
+        return null;
+    }
+
+    /**
+     * 查询航班动态信息
+     *
+     * @param cfd
+     *            机场名称
+     * @param mdd
+     *            目的地/始发站
+     * @param hbh
+     *            航班号
+     * @param type
+     *            类型 2:进港 1:出港
+     * @return
+     */
+    public List<FlightDynamic> getHBDT(String cfd, String mdd, String hbh, int type) {
+        Map<String, Object> param = new HashMap<String, Object>();
+        param.put("cfd", cfd);
+        param.put("mdd", mdd);
+        param.put("hbh", hbh);
+        param.put("type", type);
+        param.put("_", new java.util.Date().getTime());
+
+        String url = "";
+        if (type == 1) {
+            url = airplane_hbdt_out_url;
+        }
+        if (type == 2) {
+            url = airplane_hbdt_in_url;
+        }
+
+        String result = http_get_json(url, param);
+        String[] infos = result.trim().split("\\,");
+        List<FlightDynamic> flights = new ArrayList<FlightDynamic>();
+        for (String info : infos) {
+            String[] hbinfos = info.split(" ");
+            if (hbinfos.length == 6) {
+                FlightDynamic flight = new FlightDynamic();
+                flight.setType(type);
+                flight.setHbh(hbinfos[0]);
+                flight.setHkgs(hbinfos[1]);
+                flight.setStation(hbinfos[2]);
+                flight.setPlanDate(hbinfos[3]);
+                flight.setActureDate(hbinfos[4]);
+                flight.setStatus(hbinfos[5]);
+                flights.add(flight);
+            }
+        }
+
+        return flights;
+    }
+
+    /**
+     * 获取江苏省范围内的航班信息
+     */
+    @SuppressWarnings("unchecked")
+    public List<TairDynamicInfo> getAir() {
+        Map<String, Object> airParam = new HashMap<String, Object>();
+        airParam.put("bounds", "35.333333,30.75,116.3,121.95");
+        airParam.put("faa", 1);
+        airParam.put("mlat", 1);
+        airParam.put("flarm", 1);
+        airParam.put("adsb", 1);
+        airParam.put("qnd", 1);
+        airParam.put("air", 1);
+        airParam.put("vehicles", 1);
+        airParam.put("estimated", 1);
+        airParam.put("maxage", 900);
+        airParam.put("qliders", 1);
+        airParam.put("stats", 1);
+
+        String result = http_get_json(air_url, airParam);
+        if (ObjectUtils.isNotEmpty(result)) {
+            JSONObject obj = JSONObject.fromObject(result);
+            Set<String> keys = obj.keySet();
+            Iterator<String> iter = keys.iterator();
+            List<TairDynamicInfo> infos = new ArrayList<>();
+            while (iter.hasNext()) {
+                String key = iter.next().toString();
+                Object o = obj.get(key);
+                if (o instanceof JSONArray) {
+                    JSONArray json = (JSONArray) o;
+                    TairDynamicInfo info = new TairDynamicInfo();
+                    info.setId(key);
+                    info.setDataid(json.getString(0));
+                    info.setLat(json.getDouble(1));
+                    info.setLon(json.getDouble(2));
+                    info.setDirection(json.getInt(3));
+                    info.setHigh(json.getDouble(4));
+                    info.setSpeed(json.getDouble(5));
+                    info.setYdjcode(json.getString(6));
+                    info.setLeida(json.getString(7));
+                    info.setXingh(json.getString(8));
+                    info.setRegCode(json.getString(9));
+                    info.setTime(new Timestamp(json.getLong(10)));
+                    info.setStartAirport(json.getString(11));
+                    info.setDistAirport(json.getString(12));
+                    info.setHangbh1(json.getString(13));
+                    info.setVerticalSpeed(json.getDouble(15));
+                    info.setHangbh2(json.getString(16));
+                    infos.add(info);
+                }
+            }
+            return infos;
+        }
+
+        return Collections.EMPTY_LIST;
+
+    }
+
+    public TairDetail getAirDetailInfo(TairDynamicInfo info) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("f", info.getId());
+        params.put("altitude", info.getHigh());
+        params.put("equip_hint", info.getXingh());
+        //params.put("callback","flight_data_service_cb");
+
+        String result = http_get_json(air_detail_url, params);
+        TairDetail air = new TairDetail();
+        if (ObjectUtils.isNotEmpty(result)) {
+            JSONObject obj = JSONObject.fromObject(result);
+
+            if (obj.containsKey("flight")) {
+                air.setFlight(obj.getString("flight"));
+            }
+            if (obj.containsKey("arrival")) {
+                air.setArrival(obj.getLong("arrival"));
+            }
+            if (obj.containsKey("departure")) {
+                air.setDeparture(obj.getLong("departure"));
+            }
+            if (obj.containsKey("dep_schd")) {
+                air.setDepSchd(obj.getLong("dep_schd"));
+            }
+            if (obj.containsKey("arr_schd")) {
+                air.setArrSchd(obj.getLong("arr_schd"));
+            }
+            if (obj.containsKey("from_city")) {
+                air.setFromCity(obj.getString("from_city"));
+            }
+            if (obj.containsKey("from_iata")) {
+                air.setFromIata(obj.getString("from_iata"));
+            }
+            if (obj.containsKey("from_pos")) {
+
+                JSONArray fromPos = obj.getJSONArray("from_pos");
+                air.setFromLat(fromPos.getDouble(0));
+                air.setFromLon(fromPos.getDouble(1));
+            }
+            if (obj.containsKey("to_city")) {
+                air.setToCity(obj.getString("to_city"));
+            }
+
+            if (obj.containsKey("to_iata")) {
+                air.setToIata(obj.getString("to_iata"));
+            }
+
+            if (obj.containsKey("to_pos")) {
+                JSONArray toPos = obj.getJSONArray("to_pos");
+                air.setToLat(toPos.getDouble(0));
+                air.setToLon(toPos.getDouble(1));
+            }
+
+            if (obj.containsKey("image_large")) {
+                air.setImage(obj.getString("image_large"));
+            }
+
+            if (obj.containsKey("trail")) {
+
+                JSONArray trail = obj.getJSONArray("trail");
+                int trailLen = trail.size();
+                List<AirPosition> airPosList = new ArrayList<AirPosition>();
+                AirPosition airPos = null;
+                for (int i = 0; i < trailLen / 3; i++) {
+                    int index1 = i * 3;
+                    airPos = new AirPosition();
+                    airPos.setSort(i);
+                    airPos.setLat(trail.getDouble(index1));
+                    airPos.setLon(trail.getDouble(index1 + 1));
+                    airPos.setAlltitude(trail.getDouble(index1 + 2));
+                    airPosList.add(airPos);
+                }
+                air.setRoute(airPosList);
+            }
+        }
+        return air;
+    }
+}

+ 223 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/HttpProxy.java

@@ -0,0 +1,223 @@
+package com.jsjty.jdc.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.params.BasicHttpParams;
+import org.apache.http.params.HttpConnectionParams;
+import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HTTP;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class HttpProxy {
+    private final static Logger logger = LoggerFactory
+            .getLogger(HttpProxy.class);
+    private final static int TIMEOUT_CONNECTION = 20000;
+    private final static int TIMEOUT_SOCKET = 50000;
+    private final static int RETRY_TIME = 3;
+
+    private final static String CHARSET_UTF8 = "utf-8";
+
+    protected static String _MakeURL(String p_url, Map<String, Object> params) {
+        StringBuilder url = new StringBuilder(p_url);
+        if (url.indexOf("?") < 0)
+            url.append('?');
+
+        if (params != null) {
+            for (String name : params.keySet()) {
+                url.append('&');
+                url.append(name);
+                url.append('=');
+                url.append(String.valueOf(params.get(name)));
+            }
+        }
+        return url.toString().replace("?&", "?");
+    }
+
+    /**
+     * get请求URL
+     *
+     * @param url
+     */
+    protected static InputStream http_get_inputStream(String url)
+            throws Exception {
+        String responseBody = http_get_json(url);
+        return new ByteArrayInputStream(responseBody.getBytes());
+    }
+
+    /**
+     * get请求URL
+     *
+     * @param url
+     * @throws Exception
+     */
+    protected static InputStream http_get_inputStream(String url,
+                                                      Map<String, Object> params) throws Exception {
+        String responseBody = http_get_json(url, params);
+        return new ByteArrayInputStream(responseBody.getBytes());
+    }
+
+    /**
+     * post请求URL
+     *
+     * @param url
+     * @param params
+     * @return
+     * @throws Exception
+     */
+    protected static InputStream http_post_inputstream(String url,
+                                                       Map<String, Object> params) throws Exception {
+
+        String response = http_post_json(url, params);
+        return new ByteArrayInputStream(response.getBytes());
+    }
+
+    /**
+     * get请求URL 返回Json格式数据
+     *
+     * @param path
+     * @return
+     */
+    public static String http_get_json(String path) {
+        //logger.info(path);
+        // 新建HttpGet对象
+        HttpGet httpGet = new HttpGet(path);
+        return invoke(httpGet);
+    }
+
+    @SuppressWarnings("deprecation")
+    private static DefaultHttpClient getHttpClient() {
+
+        HttpParams params = new BasicHttpParams();
+        HttpConnectionParams.setConnectionTimeout(params, TIMEOUT_CONNECTION); // 设置连接超时
+        HttpConnectionParams.setSoTimeout(params, TIMEOUT_SOCKET); // 设置请求超时
+        DefaultHttpClient defaultHttpClient = new DefaultHttpClient(params);
+
+        return defaultHttpClient;
+    }
+
+    public static String http_get_json(String path,
+                                          Map<String, Object> params) {
+        String urls = _MakeURL(path, params);
+        return http_get_json(urls);
+    }
+
+    /**
+     * 公用post方法
+     *
+     * @param path
+     * @param params
+     * @return
+     */
+    public static String http_post_json(String path,
+                                           List<NameValuePair> params,String charset) {
+        try {
+            //logger.info(path);
+            // 新建HttpPost对象
+            HttpPost httpPost = new HttpPost(path);
+            HttpEntity entity = new UrlEncodedFormEntity(params, charset);
+            // 设置参数实体
+            httpPost.setEntity(entity);
+
+            return invoke(httpPost);
+        } catch (UnsupportedEncodingException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    protected static String http_post_json(String path,
+                                           Map<String, Object> params) {
+        return http_post_json(path, postParams(params),CHARSET_UTF8);
+    }
+
+    private static String invoke(HttpPost httppost) {
+        try {
+            // 获取HttpClient对象
+            DefaultHttpClient httpclient = getHttpClient();
+            HttpResponse response = httpclient.execute(httppost);
+            return responseParams(response);
+        } catch (ClientProtocolException e) {
+            e.printStackTrace();
+            return null;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    private static String invoke(HttpGet httpget) {
+        try {
+            // 获取HttpClient对象
+            DefaultHttpClient httpclient = getHttpClient();
+            HttpResponse response = httpclient.execute(httpget);
+            return responseParams(response);
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            logger.error(e.getMessage());
+            return null;
+        }
+    }
+
+    private static String responseParams(HttpResponse response) {
+        // 判断是够请求成功
+        if (response.getStatusLine().getStatusCode() == 200) {
+            // 获取返回的数据
+
+            logger.debug("Response Status: "
+                    + response.getStatusLine() + "--数据请求成功");
+
+            return CustomGetMethod.getGzip(response);
+        }
+
+        return null;
+
+    }
+
+    private static List<NameValuePair> postParams(Map<String, Object> params) {
+        List<NameValuePair> nvps = new ArrayList<NameValuePair>();
+        Set<String> keySet = params.keySet();
+        for (String key : keySet) {
+            nvps.add(new BasicNameValuePair(key, params.get(key).toString()));
+        }
+
+        return nvps;
+    }
+
+    protected static InputStream getNetFile(String urlStr) {
+        InputStream inStream = null;
+        try {
+            URL url = new URL(urlStr);
+            URLConnection con = url.openConnection();// 打开连接
+            return con.getInputStream();// 输入流
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+            return null;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+}

+ 72 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/RouteUtil.java

@@ -0,0 +1,72 @@
+package com.jsjty.jdc.util;
+
+import com.jsjty.jdc.web.command.dao.IntersectionDao;
+import com.jsjty.jdc.web.command.entity.TCity;
+import com.jsjty.jdc.web.command.entity.TIntersection;
+import com.jsjty.jdc.web.command.entity.TSegment;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Created by Administrator on 2015/8/31.
+ */
+public class RouteUtil {
+
+    /**
+     * 计算路径
+     *
+     * @param segments 路段数据
+     * @param from     起点编号
+     * @param to       终点编号
+     * @return
+     */
+    public static Dijkstra.ShortPath Dijkstra(List<TSegment> segments, int from, int to) {
+        List<Dijkstra.Param> paramList = new ArrayList<Dijkstra.Param>();
+        for (TSegment segment : segments) {
+            Dijkstra.Param param = new Dijkstra.Param();
+            param.setFrom(segment.getIntFrom() - 1000);
+            param.setTo(segment.getIntTo() - 1000);
+            param.setLen(segment.getLen());
+            paramList.add(param);
+        }
+        int adj[][] = Dijkstra.initParams(450, paramList);
+
+        return Dijkstra.dijsktra(adj, from - 1000, to - 1000);
+    }
+
+    /**
+     * 计算最近的交叉口
+     *
+     * @param intersections
+     * @param city
+     * @return
+     */
+    public static int nearIntersection(List<TIntersection> intersections, TCity city) {
+        double minLength = Double.MAX_VALUE;
+        TIntersection target = null;
+        for (TIntersection intersection : intersections) {
+            double len = getDistance(intersection, city);
+            if (len < minLength) {
+                target = intersection;
+                minLength = len;
+            }
+        }
+        return target.getIntId();
+    }
+
+
+    /**
+     * 计算距离
+     *
+     * @param intersection
+     * @param city
+     * @return
+     */
+    public static double getDistance(TIntersection intersection, TCity city) {
+        double y = Math.pow(Math.abs(intersection.getLat() - city.getLat()), 2);
+        double x = Math.pow(Math.abs(intersection.getLon() - city.getLon()), 2);
+        return Math.sqrt(x + y);
+    }
+}

+ 103 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/util/Tree.java

@@ -0,0 +1,103 @@
+package com.jsjty.jdc.util;
+
+import java.io.Serializable;
+
+/**
+ * Created by Administrator on 2015/8/17.
+ */
+public class Tree implements Serializable{
+    private String id;
+    private String text;
+    private String state = "open";// open,closed
+    private boolean checked = false;
+    private String url;
+    private String iconCls;
+    private String pid;
+
+    private Object attributes;
+
+    public Tree() {
+    }
+
+    public Tree(String id, String text) {
+        this.id = id;
+        this.text = text;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public boolean isChecked() {
+        return checked;
+    }
+
+    public void setChecked(boolean checked) {
+        this.checked = checked;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getIconCls() {
+        return iconCls;
+    }
+
+    public void setIconCls(String iconCls) {
+        this.iconCls = iconCls;
+    }
+
+    public String getPid() {
+        return pid;
+    }
+
+    public void setPid(String pid) {
+        this.pid = pid;
+    }
+
+    public Object getAttributes() {
+        return attributes;
+    }
+
+    public void setAttributes(Object attributes) {
+        this.attributes = attributes;
+    }
+
+    @Override
+    public String toString() {
+        return "Tree{" +
+                "id='" + id + '\'' +
+                ", text='" + text + '\'' +
+                ", state='" + state + '\'' +
+                ", checked=" + checked +
+                ", url='" + url + '\'' +
+                ", iconCls='" + iconCls + '\'' +
+                ", pid='" + pid + '\'' +
+                '}';
+    }
+}

+ 334 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/ctl/AccessoryCtl.java

@@ -0,0 +1,334 @@
+package com.jsjty.jdc.web.accessory.ctl;
+
+
+
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.jsjty.jdc.common.BaseWebCtl;
+import com.jsjty.jdc.web.accessory.entity.AccessoryEntity;
+import com.jsjty.jdc.web.accessory.service.AccessoryService;
+import com.xtframe.core.base.ctl.WebJsonResult;
+
+
+/**
+ * 附件管理
+ * 
+ * @author liangzan
+ * 
+ */
+@Controller
+@RequestMapping("/accessory")
+public class AccessoryCtl extends BaseWebCtl {
+    @Autowired
+    private AccessoryService accessoryService;
+//    @Autowired
+//    private FileService fileService;
+//    @Autowired
+//    private FileVerService fileVerService;
+//    @Autowired
+//    private FileOpRemarkService fileOpRemarkService;
+//    @Autowired
+//    private DirService dirService;
+
+    /**
+     * 附件上传
+     * 
+     */
+    @RequestMapping(value = "/upload",method = RequestMethod.POST)
+    @ResponseBody
+    public WebJsonResult handleFormUpload(
+            @RequestParam(value="ssid",required=false) String ssid,
+            @RequestParam("sstype") String sstype,
+            @RequestParam("file") MultipartFile file,Model model) {
+        AccessoryEntity accessoryEntity =accessoryService.saveFile(ssid,file,sstype);
+        WebJsonResult wr = success();
+        if(accessoryEntity==null){
+        	wr.setSuccess(false);
+        }else{
+        	wr.setAttr("eid", ssid);
+            wr.setAttr("acc", accessoryEntity);
+        }
+        return wr;
+    }
+    
+    /**
+     * 附件下载
+     * 
+     */
+    @RequestMapping(value = "/download",method = RequestMethod.GET)
+    public WebJsonResult handleFormDownload(
+            String id,Model model,HttpServletRequest request,HttpServletResponse response) {
+        try {
+            response.setCharacterEncoding("utf-8");
+            response.setContentType("multipart/form-data");
+            AccessoryEntity entity = accessoryService.findOne(id);
+            String fileName = URLEncoder.encode(entity.getName(), "UTF-8");
+            response.setHeader("Content-Disposition", "attachment;fileName="
+                    + fileName);
+            response.getOutputStream().write(entity.getContent().getValue());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+    
+    /**
+     * 附件下载
+     * 
+     */
+    @RequestMapping(value = "/downloadlocal",method = RequestMethod.GET)
+    public WebJsonResult downloadlocal(
+            String id,String mFileName,Model model,HttpServletRequest request,HttpServletResponse response) {
+//        try {
+//            response.setCharacterEncoding("utf-8");
+//            response.setContentType("multipart/form-data");
+//            String fileName="";
+//        	String fileUrl = "";
+//            FileEntity fileEntity = fileService.findOne(id);
+//            FileVerEntity fileVerEntity = fileVerService.findOne(id);
+//            if(fileEntity!=null){
+//            	fileName = URLDecoder.decode(mFileName,"utf-8");
+//            	fileUrl = fileEntity.getFile_route();
+//            	if("".equals(fileEntity.getReserve2())||StringUtils.isEmpty(fileEntity.getReserve2())){
+//            		fileName = Constants.ROOT_DIR+fileUrl+fileName;
+//            	}else{
+//            		fileName = Constants.TMPFILE_DIR+fileUrl+fileName;
+//            	}
+//            	
+//            }else if(fileVerEntity!=null){
+//            	fileName = fileVerEntity.getFilename();
+//            	fileUrl = fileVerEntity.getWjurl();
+//            	fileName = Constants.HIS_DIR+fileUrl+fileName+"."+fileVerEntity.getFiletype();
+//            }else{
+//            	return null;
+//            }
+//            
+//            byte [] data = null;
+//            File file = new File(fileName);//须是绝对路径
+//            if(file.exists()){
+//                FileInputStream stream = new FileInputStream(file);
+//                ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
+//                byte[] b = new byte[1024];
+//                int n;
+//                while ((n = stream.read(b)) != -1){
+//                    out.write(b, 0, n);
+//                }
+//                data=out.toByteArray();
+//                stream.close();
+//                out.close();
+//            }else {
+//				data = "".getBytes();
+//			}
+//            String fileName2 = file.getName();
+//            response.setHeader("Content-Disposition", "attachment;fileName="
+//                    + fileName2);
+//            response.getOutputStream().write(data);
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+        return null;
+    }
+    
+    
+    /**
+     * 删除处理
+     * 
+     * @param ids
+     *            记录主键数组
+     * @return
+     * @throws JsonProcessingException
+     */
+    @RequestMapping("delete")
+    @ResponseBody
+    public WebJsonResult delete(@RequestParam(value = "ids") String[] ids) throws JsonProcessingException {
+        for (String str : ids) {
+            accessoryService.logicDelete(str);
+        }
+        return success();
+    }
+    
+    /**
+     * 根据实体id删除附件
+     */
+    @RequestMapping("deleteBySsidAndSstype")
+    @ResponseBody
+    public WebJsonResult deleteBySsid(@RequestParam(value = "entityId") String ssid,@RequestParam(value = "sstype") String sstype) throws JsonProcessingException {
+        accessoryService.deleteBySsid(ssid,sstype);
+        return success();
+    }
+    
+    /**
+     * 金格编辑后保存
+     * 
+     * @return
+     * @throws FileNotFoundException 
+     * @throws UnsupportedEncodingException 
+     */
+    @RequestMapping(value = "/zwsave")
+    @ResponseBody
+    public WebJsonResult zwsave(
+            @RequestParam(value = "fid", required = false) final String fid,
+            @RequestParam(value = "from", required = false) final String from,
+            @RequestParam(value = "isNew", required = false) final String isNew,
+            @RequestParam(value = "wjjId", required = false) final String wjjId,
+            @RequestParam("file") MultipartFile file,
+            Model model)  {
+//    	if(isNew.equals("yes")){
+//    		DirEntity dirEntity = dirService.findOne(wjjId);
+//    		FileEntity fileEntity = new FileEntity();
+//    		fileEntity.setVerid(Constants.NEW_VERSION+"1");
+//    		fileEntity.setStatus(Constants.FILE_STATE_NORMAL);
+//    		SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
+//    		String name = formatter.format(new Date()).toString();
+//    		fileEntity.setName(name);
+//    		fileEntity.setFileid(name);
+//    		fileEntity.setFiletype("doc");
+//    		fileEntity.setFilesize(file.getSize()+"");
+//    		fileEntity.setWjj_id(dirEntity==null?"":dirEntity.getDirid());
+//    		fileEntity.setFile_route(dirEntity==null?"/":dirEntity.getPriId()+dirEntity.getDirid()+"/");//设置路径
+//    		fileService.save(fileEntity);
+//    		//插入数据完毕
+//    		try {
+//    			String url = Constants.ROOT_DIR+fileEntity.getFile_route()+fileEntity.getFileid()+"."+fileEntity.getFiletype();
+//    			File f2 = new File(url);
+//	  		   f2.createNewFile();
+//	  		   DataOutputStream ds2 = new DataOutputStream(new FileOutputStream(f2));
+//	  		   ds2.write(file.getBytes());
+//	  		   ds2.flush();
+//	  		   ds2.close();
+//			} catch (Exception e) {
+//				e.printStackTrace();
+//			}
+//    		//新建文件完毕
+//    	}
+//    	
+//       if(fid!=null&&!fid.trim().equals("")&&from!=null&&from.equals("local")){
+//    	   try {
+//    		   //先把旧文件复制到版本历史文件夹中,并插入一条子表对象,然后删掉换成新的
+//    		   //????确定路劲后面是否带/
+//    		   FileEntity fileEntity = fileService.findOne(fid);
+//               if(fileEntity==null){
+//               	return success();
+//               }
+//               byte [] olddata = null;
+//               String copyfilename = Constants.TMPFILE_DIR+fileEntity.getFile_route()+fileEntity.getReserve2()+"."+fileEntity.getFiletype();
+//               File old = new File(copyfilename);//须是绝对路径(这里覆盖检出时的备份文件)
+//               if(old.exists()){
+//                   FileInputStream stream = new FileInputStream(old);
+//                   ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
+//                   byte[] b = new byte[1024];
+//                   int n;
+//                   while ((n = stream.read(b)) != -1){
+//                       out.write(b, 0, n);
+//                   }
+//                   olddata=out.toByteArray();
+//                   stream.close();
+//                   out.close();
+//               }
+//               /*String newFileName = System.currentTimeMillis()+fileEntity.getName();
+//               File newFile = new File(Constants.HIS_DIR+"/"+System.currentTimeMillis()+fileEntity.getName());
+//               newFile.createNewFile();
+//               DataOutputStream ds = new DataOutputStream(new FileOutputStream(newFile));
+//    		   ds.write(olddata);
+//    		   ds.flush();
+//    		   ds.close();*/
+//    		   //复制文件结束
+//    		   /*FileVerEntity fileVerEntity = new FileVerEntity();
+//    		   fileVerEntity.setVername(fileEntity.getVerid());
+//    		   fileVerEntity.setWjurl(Constants.HIS_DIR);
+//    		   fileVerEntity.setFileid(fid);
+//    		   fileVerEntity.setFilename(newFileName);
+//    		   fileVerService.save(fileVerEntity);*/
+//    		   //插入子表对象结束
+//	    	   byte [] b = file.getBytes();
+//	    	   if(old.exists()){
+//	    		   old.delete();
+//	    	   }
+//	    	   File f2 = new File(copyfilename);
+//    		   f2.createNewFile();
+//    		   DataOutputStream ds2 = new DataOutputStream(new FileOutputStream(f2));
+//    		   ds2.write(b);
+//    		   ds2.flush();
+//    		   ds2.close();
+//    		   /*fileEntity.setFilesize(file.getSize()+"");
+//    		   fileEntity.setVerid(fileEntity.getVerid().substring(0,2)+(Integer.parseInt(fileEntity.getVerid().substring(2))+1));
+//    		   fileEntity.setStatus(Constants.FILE_STATE_NORMAL);
+//    		   fileService.save(fileEntity);*/
+//    		   //删除旧文件,写入新文件结束并更新主表记录
+//    		   
+//    		   //记录操作记录
+//    		   /*FileOpRemarkEntity fileOpRemarkEntity = new FileOpRemarkEntity();
+//    		   fileOpRemarkEntity.setFileid(fid);
+//    		   fileOpRemarkEntity.setStatus(Constants.FILE_STATE_NORMAL);
+//    		   fileOpRemarkEntity.setOper_type(Constants.FILE_OP_JR);
+//    		   fileOpRemarkService.save(fileOpRemarkEntity);*/
+//    		   
+//    	   } catch (IOException e) {
+//    		   e.printStackTrace();
+//    	   }
+//       }else if(fid!=null&&!fid.trim().equals("")&&(from==null||from.trim().equals(""))){
+//    	   AccessoryEntity entity= accessoryService.findOne(fid);
+//           try {
+//        	   entity.getContent().setValue(file.getBytes());
+//           } catch (IOException e) {
+//        	   e.printStackTrace();
+//           }
+//           accessoryService.save(entity);
+//       }
+       return success();
+    }
+    
+    /**
+     * 下载用户手册 
+     * @throws IOException 
+     */
+    @RequestMapping(value = "/downloadguide")
+    @ResponseBody
+    public WebJsonResult downloadguide(
+    		HttpServletRequest request,HttpServletResponse response,
+            Model model) throws IOException  {
+//    	File f = new File(request.getServletContext().getRealPath("/")+"//static//template//userguide.doc"); 
+//        String filename="用户手册.doc";
+//        byte [] data = null;
+//        if(f.exists()){
+//            FileInputStream stream = new FileInputStream(f);
+//            ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
+//            byte[] b = new byte[1024];
+//            int n;
+//            while ((n = stream.read(b)) != -1){
+//                out.write(b, 0, n);
+//            }
+//            data=out.toByteArray();
+//            stream.close();
+//            out.close();
+//        }
+//        try {
+//            response.setCharacterEncoding("utf-8");
+//            response.setContentType("multipart/form-data");
+//            String fileName = URLEncoder.encode(filename, "UTF-8");
+//            response.setHeader("Content-Disposition", "attachment;fileName="
+//                    + fileName);
+//            response.getOutputStream().write(data);
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+    	return success();
+    }
+}

+ 26 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/dao/AccessoryDao.java

@@ -0,0 +1,26 @@
+package com.jsjty.jdc.web.accessory.dao;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+
+import com.jsjty.jdc.web.accessory.entity.AccessoryEntity;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * 附件处理接口
+ * 
+ * @author liangzan
+ */
+public interface AccessoryDao extends SecRepository<AccessoryEntity, String> {
+
+    @Modifying
+    @Query(value=" update t_xtframe_fjb set record_status=9 where ssid =?1 and sstype=?2",nativeQuery=true)
+    public void deleteBySsid(String ssid, String sstype);
+
+    @Query(" from AccessoryEntity where ssid =?1 and sstype=?2 and recordStatus<>2")
+    public List<AccessoryEntity> queryBySsidAndSstype(String ssid, String sstype);
+	
+
+}

+ 15 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/dao/BlobDao.java

@@ -0,0 +1,15 @@
+package com.jsjty.jdc.web.accessory.dao;
+
+
+import com.jsjty.jdc.web.accessory.entity.BlobEntity;
+import com.xtframe.sec.common.SecRepository;
+
+
+/**
+ * Blob表处理接口
+ * 
+ * @author 
+ */
+public interface BlobDao extends SecRepository<BlobEntity, String> {
+    
+}

+ 164 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/entity/AccessoryEntity.java

@@ -0,0 +1,164 @@
+package com.jsjty.jdc.web.accessory.entity;
+
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.jsjty.jdc.common.CommonEntity;
+
+/**
+ * 附件Entity
+ * 
+ * @author 袁晓冬
+ * 
+ */
+@Entity
+@Table(name = "T_XTFRAME_FJB")
+public class AccessoryEntity extends CommonEntity<String> implements Cloneable {
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = -8380414733651318330L;
+    /** ID主键 */
+    private String id = null;
+    /** 文件名 */
+    private String name = null;
+    /** 文件后缀名 */
+    private String suffix = null;
+    /** 备注 */
+    private String remark = null;
+    /** 文件存放内容 */
+    private BlobEntity content = null;
+    /** 文件长度 */
+    private long length = 0;
+    /**所属id*/
+    private String ssid;
+    /**
+     * 所属类型
+     */
+    private String sstype;
+
+    public String getSstype() {
+        return sstype;
+    }
+
+    public void setSstype(String sstype) {
+        this.sstype = sstype;
+    }
+
+    public String getSsid() {
+        return ssid;
+    }
+
+    public void setSsid(String ssid) {
+        this.ssid = ssid;
+    }
+
+    /**
+     * 附件内容
+     * 
+     * @return
+     */
+    @OneToOne(fetch = FetchType.EAGER, targetEntity = BlobEntity.class, cascade = { CascadeType.ALL })
+    @JoinColumn(name = "WJNR")
+    public BlobEntity getContent() {
+        return content;
+    }
+
+    /**
+     * ID主键
+     * 
+     * @return
+     */
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return this.id;
+    }
+
+    /**
+     * 文件大小
+     * 
+     * @return
+     */
+    @Column(name = "WJDX")
+    public long getLength() {
+        return length;
+    }
+
+    /**
+     * 文件名
+     * 
+     * @return
+     */
+    @Column(name = "WJM")
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 备注
+     * 
+     * @return
+     */
+    @Column(name = "BZ")
+    public String getRemark() {
+        return remark;
+    }
+
+    /**
+     * 文件后缀名
+     * 
+     * @return
+     */
+    @Column(name = "WJHZM")
+    public String getSuffix() {
+        return suffix;
+    }
+
+    public void setContent(BlobEntity content) {
+        this.content = content;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setLength(long length) {
+        this.length = length;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public void setSuffix(String suffix) {
+        this.suffix = suffix;
+    }
+
+    @Override
+    public AccessoryEntity clone() {
+        AccessoryEntity clone = null;
+        try {
+            clone = (AccessoryEntity) super.clone();
+        }
+        catch (CloneNotSupportedException e) {
+            e.printStackTrace();
+        }
+        return clone;
+    }
+}

+ 67 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/entity/BlobEntity.java

@@ -0,0 +1,67 @@
+package com.jsjty.jdc.web.accessory.entity;
+
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.jsjty.jdc.common.CommonEntity;
+
+/**
+ * 附件Entity
+ * 
+ * @author 袁晓冬
+ * 
+ */
+@Entity
+@Table(name = "T_XTFRAME_BLOB")
+public class BlobEntity extends CommonEntity<String>{
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = -1454266205739566942L;
+    /** ID主键 */
+    private String id = null;
+    /** 文件存放内容 */
+    private byte[] value = null;
+
+    /**
+     * ID主键
+     * 
+     * @return
+     */
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return this.id;
+    }
+
+    /**
+     * 文件内容
+     * 
+     * @return
+     */
+    @Lob
+    @Basic(fetch = FetchType.LAZY)
+    @Column(name = "value", columnDefinition = "BLOB", nullable = true)
+    public byte[] getValue() {
+        return value;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setValue(byte[] value) {
+        this.value = value;
+    }
+
+}

+ 59 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/service/AccessoryService.java

@@ -0,0 +1,59 @@
+package com.jsjty.jdc.web.accessory.service;
+
+
+import java.util.List;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import com.jsjty.jdc.web.accessory.entity.AccessoryEntity;
+
+
+/**
+ * 附件管理服务
+ * 
+ * @author liangzan
+ */
+public interface AccessoryService {
+
+
+	/**
+	 * 根据ID获取附件
+	 */
+	public AccessoryEntity findOne(String id);
+
+
+
+	/**
+	 * 保存附件
+	 */
+	public <S extends AccessoryEntity> S save(S entity);
+
+
+	public void logicDelete(String id);
+
+
+    public void deleteBySsid(String ssid, String sstype);
+
+
+
+    /**
+     * 保存附件
+     * @param ssid
+     * @param file
+     * @param sstype 
+     */
+    public AccessoryEntity saveFile(String ssid, MultipartFile file, String sstype);
+
+
+    /**
+     * 根据ssid sstype查询所有附件
+     * */
+    public List<AccessoryEntity> queryBySsidAndSstype(String ssid,String sstype);
+
+
+
+	public void delete(AccessoryEntity accessoryEntity);
+
+	
+
+}

+ 101 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/service/impl/AccessoryServiceImpl.java

@@ -0,0 +1,101 @@
+package com.jsjty.jdc.web.accessory.service.impl;
+
+
+import java.io.IOException;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.jsjty.jdc.common.CommonBaseService;
+import com.jsjty.jdc.common.CommonEntity;
+import com.jsjty.jdc.common.GlobalData;
+import com.jsjty.jdc.web.accessory.dao.AccessoryDao;
+import com.jsjty.jdc.web.accessory.entity.AccessoryEntity;
+import com.jsjty.jdc.web.accessory.entity.BlobEntity;
+import com.jsjty.jdc.web.accessory.service.AccessoryService;
+import com.xtframe.sec.common.SecRepository;
+
+
+/**
+ * 附件管理服务实现
+ * 
+ * @author liangzan
+ * 
+ */
+@Service
+public class AccessoryServiceImpl extends CommonBaseService<AccessoryEntity, String> implements AccessoryService {
+
+	@Autowired
+	private AccessoryDao accessoryDao;
+
+    @Override
+    public AccessoryEntity findOne(String id) {
+        return accessoryDao.findOne(id);
+    }
+
+
+   
+    @Override
+    @Transactional
+    public void deleteBySsid(String ssid,String sstype) {
+        accessoryDao.deleteBySsid(ssid,sstype);
+    }
+
+    @Override
+    @Transactional
+    public AccessoryEntity saveFile(String ssid, MultipartFile file,String sstype) {
+    	if(file.getSize()>GlobalData.UPLOAD_FILE_SIZE*1024*1024){
+    		return null;
+    	}
+        byte[] bytes = null;
+        try {
+            bytes = file.getBytes();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        String fileName = file.getOriginalFilename();
+        String suffix = "";
+        int index = fileName.lastIndexOf('.');
+        if (index > 0) {
+            suffix = fileName.substring(index + 1);
+        }
+        AccessoryEntity accessoryEntity = new AccessoryEntity();
+        // 大字段对象
+        BlobEntity blob = new BlobEntity();
+        blob.setRecordStatus(CommonEntity.RECORD_STATE_VALID);
+        blob.setValue(bytes);
+        accessoryEntity.setContent(blob);
+        accessoryEntity.setRecordStatus(CommonEntity.RECORD_STATE_VALID);
+        accessoryEntity.setSstype(sstype);
+        accessoryEntity.setSsid(ssid);
+        accessoryEntity.setLength(file.getSize());
+        accessoryEntity.setName(fileName);
+        accessoryEntity.setSuffix(suffix);
+        accessoryEntity = this.save(accessoryEntity);
+        return accessoryEntity;
+    }
+
+    @Override
+    protected SecRepository<AccessoryEntity, String> getDao() {
+        return accessoryDao;
+    }
+
+
+
+    @Override
+    public List<AccessoryEntity> queryBySsidAndSstype(String ssid, String sstype) {
+        return accessoryDao.queryBySsidAndSstype(ssid,sstype);
+    }
+
+
+
+    @Override
+    public void delete(AccessoryEntity acc) {
+        accessoryDao.delete(acc);
+    }
+	
+}

+ 153 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/accessory/vo/AccessoryVo.java

@@ -0,0 +1,153 @@
+package com.jsjty.jdc.web.accessory.vo;
+
+import javax.persistence.Column;
+
+import com.jsjty.jdc.common.CommonVo;
+import com.jsjty.jdc.web.accessory.entity.BlobEntity;
+
+/**
+ * 附件Vo
+ * 
+ * @author 袁晓冬
+ * 
+ */
+public class AccessoryVo extends CommonVo {
+    /** ID主键 */
+    private String id = null;
+    /** 文件名 */
+    private String name = null;
+    /** 文件后缀名 */
+    private String suffix = null;
+    /** 备注 */
+    private String remark = null;
+    /** 文件存放内容 */
+    private BlobEntity content = null;
+    /** 文件长度 */
+    private long length = 0;
+    /**所属id*/
+    private String ssid;
+    /**文件大小 KB*/
+    private String wjdxKb;
+    public String getWjdxKb() {
+        return wjdxKb;
+    }
+
+    public void setWjdxKb(String wjdxKb) {
+        this.wjdxKb = wjdxKb;
+    }
+
+    /**
+     * 所属类型
+     */
+    private String sstype;
+
+    public String getSstype() {
+        return sstype;
+    }
+
+    public void setSstype(String sstype) {
+        this.sstype = sstype;
+    }
+
+    public String getSsid() {
+        return ssid;
+    }
+
+    public void setSsid(String ssid) {
+        this.ssid = ssid;
+    }
+
+    /**
+     * 附件内容
+     * 
+     * @return
+     */
+    public BlobEntity getContent() {
+        return content;
+    }
+
+    /**
+     * ID主键
+     * 
+     * @return
+     */
+    public String getId() {
+        return this.id;
+    }
+
+    /**
+     * 文件大小
+     * 
+     * @return
+     */
+    @Column(name = "WJDX")
+    public long getLength() {
+        return length;
+    }
+
+    /**
+     * 文件名
+     * 
+     * @return
+     */
+    @Column(name = "WJM")
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 备注
+     * 
+     * @return
+     */
+    @Column(name = "BZ")
+    public String getRemark() {
+        return remark;
+    }
+
+    /**
+     * 文件后缀名
+     * 
+     * @return
+     */
+    @Column(name = "WJHZM")
+    public String getSuffix() {
+        return suffix;
+    }
+
+    public void setContent(BlobEntity content) {
+        this.content = content;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setLength(long length) {
+        this.length = length;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public void setSuffix(String suffix) {
+        this.suffix = suffix;
+    }
+
+    @Override
+    public AccessoryVo clone() {
+        AccessoryVo clone = null;
+        try {
+            clone = (AccessoryVo) super.clone();
+        }
+        catch (CloneNotSupportedException e) {
+            e.printStackTrace();
+        }
+        return clone;
+    }
+}

+ 651 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/ctl/AirCtl.java

@@ -0,0 +1,651 @@
+package com.jsjty.jdc.web.air.ctl;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.reflect.TypeToken;
+import com.jsjty.jdc.common.GsonUtil;
+import com.jsjty.jdc.common.ImageUtil;
+import com.jsjty.jdc.common.PropertyUtil;
+import com.jsjty.jdc.util.HttpMain;
+import com.jsjty.jdc.web.air.dao.AirRealtimeDao;
+import com.jsjty.jdc.web.air.entity.AirPosition;
+import com.jsjty.jdc.web.air.entity.FlightDynamic;
+import com.jsjty.jdc.web.air.entity.HkgsInfo;
+import com.jsjty.jdc.web.air.entity.HkgsJd;
+import com.jsjty.jdc.web.air.entity.HkgsJx;
+import com.jsjty.jdc.web.air.entity.TairDynamicInfo;
+import com.jsjty.jdc.web.air.service.AirService;
+import com.jsjty.jdc.web.air.vo.TairDynamicVo;
+import com.jsjty.jdc.web.basic.entity.TdetailAir;
+import com.jsjty.jdc.web.basic.service.BasicDetailService;
+import com.xtframe.io.poi.ExcelHelper;
+import com.xtframe.io.poi.ExcelHelper.ExportSetInfo;
+import com.xtframe.util.StringUtils;
+
+@Controller
+public class AirCtl {
+
+    @Autowired
+    private AirService airService;
+
+    @Autowired
+    private BasicDetailService baisicDetailService;
+
+    @Autowired
+    AirRealtimeDao xxx;
+
+    @Autowired
+    private BasicDetailService detailService;
+    @Autowired
+    private HttpMain httpMain;
+
+    @RequestMapping("/airinfos")
+    @ResponseBody
+    public List<TairDynamicInfo> airDynamicInfos(String hbh) {
+        // 查询所有机场信息
+        try {
+            List<TairDynamicInfo> airInfoList = airService.findAirInfos(hbh);
+            return airInfoList;
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+            return new ArrayList<>();
+        }
+    }
+
+    /**
+     * 根据航班号查询航班信息
+     * 
+     * @param hbh
+     * @return
+     */
+    @RequestMapping("/searchHbxx")
+    @ResponseBody
+    public JSONObject searchHbxx(String hbh) {
+        JSONObject jsonObj = httpMain.searchHbxx(hbh);
+        if (null != jsonObj && jsonObj.getJSONArray("info").size() > 0) {
+            String iata3 = jsonObj.getJSONArray("info").getJSONObject(0).getString("机型");
+            // info[0]["机型"]
+            if (StringUtils.isNotEmpty(iata3)) {
+                Map<String, String> mapParam = new HashMap<String, String>();
+                mapParam.put("iata3", iata3);
+                List<HkgsJx> listHkgsJx = airService.findHkgsJxByIta(mapParam);
+                if (null != listHkgsJx && listHkgsJx.size() > 0) {
+                    jsonObj.put("itaFlg", "Y");
+                    jsonObj.put("iata4", listHkgsJx.get(0).getIata4());
+                }
+            }
+        }
+        return jsonObj;
+    }
+
+    @RequestMapping("/airdetail")
+    @ResponseBody
+    public TairDynamicVo airDetail(String hbh) {
+        TairDynamicInfo detail = null;
+        List<TairDynamicInfo> airInfoList = airService.findAirInfos(hbh);
+        TairDynamicVo airvo = null;
+        if (null != airInfoList && airInfoList.size() > 0) {
+            detail = airInfoList.get(0);
+            airvo = new TairDynamicVo();
+            BeanUtils.copyProperties(detail, airvo);
+            if (StringUtils.isNotEmpty(detail.getRoutes())) {
+                List<AirPosition> listPos = GsonUtil.gson2Bean(detail.getRoutes(), new TypeToken<List<AirPosition>>() {
+                });
+                airvo.setRoute(listPos);
+            }
+        }
+        else {
+            airvo = new TairDynamicVo();
+        }
+        return airvo;
+    }
+
+    @RequestMapping("/flightdynamics")
+    public String flightDynamics(String name, Model model) {
+        //        List<FlightDynamic> outFlight = airService.findFlightDynamics(name, "", "", 1);
+        //        List<FlightDynamic> inFlight = airService.findFlightDynamics("", name, "", 2);
+        List<FlightDynamic> outFlight = airService.findFlightDynamics(1, name, "", "");
+        List<FlightDynamic> inFlight = airService.findFlightDynamics(2, name, "", "");
+        model.addAttribute("inFlights", inFlight);
+        model.addAttribute("outFlights", outFlight);
+        model.addAttribute("airPortName", name);
+        return "sys/flightDynamic";
+    }
+
+    /**
+     * 
+     * @param airPortName
+     *            起点
+     * @param hbh
+     *            航班号
+     * @param hkgs
+     *            航空公司
+     * @param type
+     *            进出港类型
+     * @param model
+     *            model
+     * @return
+     */
+    @RequestMapping("/srchFlightDynamics")
+    public String srchFlightDynamics(String airPortName, 
+            @RequestParam(value = "hbh", required = false) String hbh,
+            @RequestParam(value = "hkgs", required = false) String hkgs,
+            @RequestParam(value = "type", required = false) String type, Model model) {
+        String inHbh = "";
+        String outHbh = "";
+        String inHkgs = "";
+        String outHkgs = "";
+        if (StringUtils.isNotEmpty(hbh)) {
+            if ("1".equals(type)) {
+                outHbh = hbh.trim();
+            }
+            else {
+                inHbh = hbh.trim();
+            }
+        }
+        if (StringUtils.isNotEmpty(hkgs)) {
+            if ("1".equals(type)) {
+                outHkgs = hkgs.trim();
+            }
+            else {
+                inHkgs = hkgs.trim();
+            }
+        }
+        List<FlightDynamic> outFlight = airService.findFlightDynamics(1, airPortName, outHbh, outHkgs);
+        List<FlightDynamic> inFlight = airService.findFlightDynamics(2, airPortName, inHbh, inHkgs);
+        model.addAttribute("inFlights", inFlight);
+        model.addAttribute("outFlights", outFlight);
+        model.addAttribute("airPortName", airPortName);
+        model.addAttribute("hbh", hbh);
+        model.addAttribute("hkgs", hkgs);
+        model.addAttribute("type", type);
+        return "sys/flightDynamic";
+    }
+
+    @RequestMapping("/airplanedetail")
+    public String airDetail(String gid, Model model) {
+        model.addAttribute("detail", baisicDetailService.findAirByGid(gid));
+        return "sys/airPlaneDetail";
+    }
+
+    /**
+     * http://localhost:8080/jdcweb/exportAirinfos
+     * 
+     * @param response
+     * @throws IOException
+     * @throws IllegalAccessException
+     * @throws IllegalArgumentException
+     */
+    @SuppressWarnings({ "rawtypes" })
+    @RequestMapping(value = "exportAirinfos")
+    public void exportAirinfos(HttpServletResponse response)
+            throws IOException, IllegalArgumentException, IllegalAccessException {
+        List<TairDynamicInfo> infos = airService.findAirInfos(null);
+        if (infos.size() > 0) {
+            // 查询所有机场信息
+            List<TdetailAir> airportList = airService.findAirPort();
+            Map<String, String> mapAirport = new HashMap<String, String>();
+            if (null != airportList && airportList.size() > 0) {
+                for (int i = 0; i < airportList.size(); i++) {
+                    TdetailAir port = airportList.get(i);
+                    mapAirport.put(port.getCode(), port.getName());
+                }
+            }
+            // 根据机场code获取机场名称
+            for (int i = 0; i < infos.size(); i++) {
+                TairDynamicInfo info = infos.get(i);
+                if (mapAirport.containsKey(info.getStartAirport())) {
+                    info.setStartAirport(mapAirport.get(info.getStartAirport()));
+                }
+                if (mapAirport.containsKey(info.getDistAirport())) {
+                    info.setDistAirport(mapAirport.get(info.getDistAirport()));
+                }
+            }
+        }
+
+        LinkedHashMap<String, List> map = new LinkedHashMap<String, List>();
+        List<TdetailAir> basicInfoList = detailService.findAirList();
+        map.put("机场信息", basicInfoList);
+        map.put("飞机动态", infos);
+        // 状态:起飞 计划 延误 到达
+        List<String[]> headNames = new ArrayList<String[]>();
+        List<String[]> fieldNames = new ArrayList<String[]>();
+        String[] hnJcArr = new String[] { "机场名称", "联系电话", "机场地址", "启用时间", "机场等级", "跑道长度", "跑道宽度", "机场面积", "跑道条数",
+                "网站地址" };
+        String[] fnJcArr = new String[] { "name", "tel", "address", "enableTime", "level", "length", "width", "area",
+                "pdNum", "siteUrl" };
+        String[] hnHbArr = new String[] { "航班号码", "飞行方向(度)", "飞行速度(公里/小时)", "飞行高度(英尺)", "起飞机场", "目的机场", "经度", "纬度" };
+        String[] fnHbArr = new String[] { "hangbh1", "direction", "speed", "high", "startAirport", "distAirport", "lon",
+                "lat" };
+        headNames.add(hnJcArr);
+        fieldNames.add(fnJcArr);
+        headNames.add(hnHbArr);
+        fieldNames.add(fnHbArr);
+        // Excel导出的设置信息
+        ExportSetInfo setInfo = new ExportSetInfo();
+        setInfo.setObjsMap(map);
+        setInfo.setFieldNames(fieldNames);
+        setInfo.setTitles(new String[] { "机场信息", "飞机动态" });
+        setInfo.setHeadNames(headNames);
+        response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode("航空信息", "UTF-8") + ".xls");
+        // 创建输出流
+        OutputStream out = response.getOutputStream();
+        setInfo.setOut(out);
+        // 将需要导出的数据输出到baos
+        ExcelHelper.export2Excel(setInfo);
+        // 关闭输出流
+        out.close();
+    }
+
+    /**
+     * 查询所有机场信息
+     * 
+     * @param hint
+     * @return
+     */
+    @RequestMapping("/findAirPort")
+    @ResponseBody
+    public List<TdetailAir> findAirPort() {
+        // 查询所有机场信息
+        List<TdetailAir> airportList = airService.findAirPort();
+        return airportList;
+    }
+
+    /**
+     * 导出航班动态
+     * 
+     * @param response
+     * @throws IOException
+     * @throws IllegalAccessException
+     * @throws IllegalArgumentException
+     */
+    @SuppressWarnings("rawtypes")
+    @RequestMapping(value = "exportFlightDynamics")
+    public void exportFlightDynamics(HttpServletResponse response, String airPortName,
+            @RequestParam(value = "hbh", required = false) String hbh,
+            @RequestParam(value = "hkgs", required = false) String hkgs,
+            @RequestParam(value = "type", required = false) String type, Model model)
+                    throws IOException, IllegalArgumentException, IllegalAccessException {
+
+        String inHbh = "";
+        String outHbh = "";
+        String inHkgs = "";
+        String outHkgs = "";
+        if (StringUtils.isNotEmpty(hbh)) {
+            if ("1".equals(type)) {
+                outHbh = hbh.trim();
+            }
+            else {
+                inHbh = hbh.trim();
+            }
+        }
+        if (StringUtils.isNotEmpty(hkgs)) {
+//            if ("1".equals(type)) {
+//                outHkgs = hkgs.trim();
+//            }
+//            else {
+//                inHkgs = hkgs.trim();
+//            }
+            outHkgs = hkgs.trim();
+            inHkgs = hkgs.trim();
+        }
+        List<FlightDynamic> outFlight = airService.findFlightDynamics(1, airPortName, outHbh, outHkgs);
+        List<FlightDynamic> inFlight = airService.findFlightDynamics(2, airPortName, inHbh, inHkgs);
+        LinkedHashMap<String, List> map = new LinkedHashMap<String, List>();
+        map.put("进港航班", inFlight);
+        map.put("出港航班", outFlight);
+        // 状态:起飞 计划 延误 到达
+        List<String[]> headNames = new ArrayList<String[]>();
+        List<String[]> fieldNames = new ArrayList<String[]>();
+        String[] headNames1Arr = new String[] { "航班号", "航公公司", "始发站", "计划起飞/到达", "实际起飞/到达", "状态" };
+        String[] headNames2Arr = new String[] { "航班号", "航公公司", "目的站", "计划起飞/到达", "实际起飞/到达", "状态" };
+        String[] fieldNamesArr = new String[] { "hbh", "hkgs", "station", "planDate", "actureDate", "status" };
+        headNames.add(headNames1Arr);
+        headNames.add(headNames2Arr);
+        fieldNames.add(fieldNamesArr);
+        fieldNames.add(fieldNamesArr);
+        // Excel导出的设置信息
+        ExportSetInfo setInfo = new ExportSetInfo();
+        setInfo.setObjsMap(map);
+        setInfo.setFieldNames(fieldNames);
+        setInfo.setTitles(new String[] { "进港航班", "出港航班" });
+        setInfo.setHeadNames(headNames);
+        response.setHeader("content-disposition",
+                "attachment;filename=" + URLEncoder.encode("进出港航班", "UTF-8") + ".xls");
+        // 创建输出流
+        OutputStream out = response.getOutputStream();
+        setInfo.setOut(out);
+        // 将需要导出的数据输出到baos
+        ExcelHelper.export2Excel(setInfo);
+        // 关闭输出流
+        out.close();
+    }
+
+    @RequestMapping("cwt/{xh}")
+    public void getCwt(@PathVariable("xh") String xh, HttpServletRequest request, HttpServletResponse response) {
+        String path = request.getSession().getServletContext().getRealPath("/") + "/static/plane/" + xh + ".jpg";
+        File file = new File(path);
+        if (file == null || !file.exists() || !file.canRead()) {
+            file = new File(request.getSession().getServletContext().getRealPath("/") + "/static/plane/default.jpg");
+        }
+        FileInputStream inputStream;
+        byte[] data = null;
+        try {
+            inputStream = new FileInputStream(file);
+            data = new byte[(int) file.length()];
+            inputStream.read(data);
+            inputStream.close();
+        }
+        catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        response.setContentType("image/png");
+        OutputStream stream;
+        try {
+            stream = response.getOutputStream();
+            stream.write(data);
+            stream.flush();
+            stream.close();
+        }
+        catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 查询所有航空公司
+     * 
+     * @param hint
+     * @return
+     */
+    @RequestMapping("/findHkgsInfo")
+    @ResponseBody
+    public List<HkgsInfo> findHkgsInfo(String name) {
+        // 查询航空公司信息
+        List<HkgsInfo> hkgsList = airService.findHkgsInfo(null, name);
+        return hkgsList;
+    }
+
+    /**
+     * 查询所有航空公司
+     * 
+     * @param hint
+     * @return
+     */
+    @RequestMapping("/findHkgsJd")
+    public String findHkgsJd(String hkgsId, Model model) {
+        // 查询航空公司信息
+        List<HkgsInfo> hkgsList = airService.findHkgsInfo(hkgsId, null);
+        HkgsInfo hkgsInfo = null;
+        if (null != hkgsList && hkgsList.size() > 0) {
+            hkgsInfo = hkgsList.get(0);
+        }
+        else {
+            hkgsInfo = new HkgsInfo();
+        }
+        model.addAttribute("hkgsInfo", hkgsInfo);
+        // 查询所有机队信息
+        List<HkgsJd> hkgsJdList = airService.findHkgsJd(null, hkgsId);
+        model.addAttribute("hkgsJdList", hkgsJdList);
+        return "air/hkgsJd";
+    }
+
+    /**
+     * 查询机型
+     * 
+     * @param hint
+     * @return
+     */
+    @RequestMapping("/findHkgsJx")
+    public String findHkgsJx(String xh, String iata, Model model) {
+        // 查询航空公司信息
+        List<HkgsJx> hkgsJxList = airService.findHkgsJx(xh, iata);
+        HkgsJx hkgsJx = null;
+        if (null != hkgsJxList && hkgsJxList.size() > 0) {
+            hkgsJx = hkgsJxList.get(0);
+        }
+        else {
+            hkgsJx = new HkgsJx();
+        }
+        model.addAttribute("hkgsJx", hkgsJx);
+        return "air/hkgsJx";
+    }
+
+    /**
+     * 国内占比查询接口
+     * 
+     * @param xh
+     *            机型
+     * @param iata
+     *            iata4
+     * @param request
+     * @param response
+     */
+    @RequestMapping("findHkgsJxPic")
+    public void getJxPic(String xh, String iata, HttpServletResponse response) {
+        byte[] data = null;
+        // 查询航空公司信息
+        List<HkgsJx> hkgsJxList = airService.findHkgsJx(xh, null);
+        HkgsJx hkgsJx = null;
+        if (null != hkgsJxList && hkgsJxList.size() > 0) {
+            hkgsJx = hkgsJxList.get(0);
+            data = hkgsJx.getGnzb();
+            if (null != data && data.length > 0) {
+                response.setContentType("image/jpg");
+                OutputStream stream;
+                try {
+                    stream = response.getOutputStream();
+                    stream.write(data);
+                    stream.flush();
+                    stream.close();
+                }
+                catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    /**
+     * 根据航班号获取图片
+     */
+    @RequestMapping("/airimgOld")
+    public void getAirImgOld(String hbh, String webPath, HttpServletRequest request, HttpServletResponse response) {
+        String pptpath = "/config/sysparam.properties";
+        String path = PropertyUtil.getValue(pptpath, "airimgpath");
+        String jpgPath = path + hbh + ".jpg";
+        File file = null;
+        file = new File(jpgPath);
+        byte[] data = null;
+        // 判断文件是否存在如果不存在就返回默认图标
+        if (!(file.exists() && file.canRead())) {
+            if (StringUtils.isNotEmpty(webPath) && !"null".equals(webPath)) {
+                data = ImageUtil.image2ByteArray(webPath);
+            }
+            else {
+                data = new byte[0];
+            }
+            OutputStream os = null;
+            try {
+                if (data.length > 0) {
+                    os = new FileOutputStream(jpgPath);
+                    // 开始读取
+                    os.write(data);
+                }
+            }
+            catch (Exception e) {
+                e.printStackTrace();
+            }
+            finally {
+                if (null != os) {
+                    // 完毕,关闭所有链接
+                    try {
+                        os.close();
+                    }
+                    catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+        else {
+            FileInputStream inputStream;
+            try {
+                inputStream = new FileInputStream(file);
+                data = new byte[(int) file.length()];
+                inputStream.read(data);
+                inputStream.close();
+            }
+            catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        response.setContentType("image/png");
+        OutputStream stream;
+        try {
+            stream = response.getOutputStream();
+            stream.write(data);
+            stream.flush();
+            stream.close();
+        }
+        catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 根据航班号获取图片
+     */
+    @RequestMapping("/airimg")
+    public void getAirImg(String hbh, String webPath, String xingh,
+            HttpServletRequest request, HttpServletResponse response) {
+        String pptpath = "/config/sysparam.properties";
+        String path = PropertyUtil.getValue(pptpath, "airimgpath");
+        byte[] data = null;
+        File file = null;
+        // 判断飞机航班号和型号不能为空
+        if(StringUtils.isNotEmpty(hbh) && StringUtils.isNotEmpty(xingh)) {
+            String hkgsJc = hbh.substring(0, 2);
+            File hkgsFolder = new File(path, hkgsJc);
+            // 创建航空公司目录
+            if (!hkgsFolder.exists()) {
+                hkgsFolder.mkdirs();
+            }
+            // 创建型号目录
+            File xinghFolder = new File(hkgsFolder, xingh);
+            if (!xinghFolder.exists()) {
+                xinghFolder.mkdirs();
+            }
+            String jpg = xingh + ".jpg";
+            file = new File(xinghFolder, jpg);
+            // 如果型号文件存在
+            if(file.exists()) {
+                FileInputStream inputStream;
+                try {
+                    inputStream = new FileInputStream(file);
+                    data = new byte[(int) file.length()];
+                    inputStream.read(data);
+                    inputStream.close();
+                }
+                catch (IOException e) {
+                    e.printStackTrace();
+                }
+            } else {
+                data = writePic(file.getPath(), webPath);
+            }
+            File hbfile = new File(xinghFolder, xingh + "_" + hbh + ".jpg");
+            // 如果型号文件不存在,则写入
+            if(!hbfile.exists()) {
+                // 是否存在.lock文件
+                File lock = new File(xinghFolder, ".lock");
+                if (!lock.exists()) {
+                    writePic(hbfile.getPath(), webPath);
+                }
+            }
+        } else {
+            data = new byte[0];
+        }
+        // 输出图片
+        response.setContentType("image/png");
+        OutputStream stream;
+        try {
+            stream = response.getOutputStream();
+            stream.write(data);
+            stream.flush();
+            stream.close();
+        }
+        catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+    
+    /**
+     * 写入文件
+     * @param data
+     * @param filename
+     * @param webPath
+     * @return
+     */
+    private byte[] writePic(String filename, String webPath) {
+        byte[] data = null;
+        if (StringUtils.isNotEmpty(webPath) && !"null".equals(webPath)) {
+            data = ImageUtil.image2ByteArray(webPath);
+        }
+        OutputStream os = null;
+        try {
+            if (null != data && data.length > 0) {
+                os = new FileOutputStream(filename);
+                // 开始读取
+                os.write(data);
+            }
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        finally {
+            if (null != os) {
+                // 完毕,关闭所有链接
+                try {
+                    os.close();
+                }
+                catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return data;
+    }
+
+    @RequestMapping("/flightInfo")
+    public String flightInfo(String hbh, Model model) {
+        model.addAttribute("hbh", hbh.toUpperCase());
+        return "air/flightInfo";
+    }
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/AirDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.air.dao;
+
+import com.jsjty.jdc.web.air.entity.AirBasic;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface AirDao  extends SecRepository<AirBasic,String>{
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/AirRealtimeDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.air.dao;
+
+import com.jsjty.jdc.web.air.entity.TairDynamicInfo;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface AirRealtimeDao  extends SecRepository<TairDynamicInfo,String>{
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/FlightDynamicDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.air.dao;
+
+import com.jsjty.jdc.web.air.entity.FlightDynamic;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface FlightDynamicDao  extends SecRepository<FlightDynamic,String>{
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/HkgsDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.air.dao;
+
+import com.jsjty.jdc.web.air.entity.HkgsInfo;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface HkgsDao  extends SecRepository<HkgsInfo,String>{
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/HkgsJdDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.air.dao;
+
+import com.jsjty.jdc.web.air.entity.HkgsJd;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface HkgsJdDao  extends SecRepository<HkgsJd,String>{
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/dao/HkgsJxDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.air.dao;
+
+import com.jsjty.jdc.web.air.entity.HkgsJx;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface HkgsJxDao  extends SecRepository<HkgsJx,String>{
+}

+ 231 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/AirBasic.java

@@ -0,0 +1,231 @@
+package com.jsjty.jdc.web.air.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * package com.jsjty.jdc.web.air.entity
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+@Entity
+@Table(name = "T_BASIC_INFO")
+public class AirBasic extends BaseEntity<String> {
+
+    private String id;
+    private String tablename;
+    private String gid;
+    private String name;
+    private String address;
+    private String tel;
+    private String pinpaici;
+    private String geocode;
+    private String imgurl;
+    private double lat;
+    private double lon;
+    private String province;
+    private String city;
+    private String country;
+    private String town;
+    private double shuiwei;
+    private String chuangjsj;
+    private String guanlidanwei;
+    private String remark;
+    private String xiangqing;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTablename() {
+        return tablename;
+    }
+
+    public void setTablename(String tablename) {
+        this.tablename = tablename;
+    }
+
+    public String getGid() {
+        return gid;
+    }
+
+    public void setGid(String gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getPinpaici() {
+        return pinpaici;
+    }
+
+    public void setPinpaici(String pinpaici) {
+        this.pinpaici = pinpaici;
+    }
+
+    public String getGeocode() {
+        return geocode;
+    }
+
+    public void setGeocode(String geocode) {
+        this.geocode = geocode;
+    }
+
+    public String getImgurl() {
+        return imgurl;
+    }
+
+    public void setImgurl(String imgurl) {
+        this.imgurl = imgurl;
+    }
+
+    public double getShuiwei() {
+        return shuiwei;
+    }
+
+    public void setShuiwei(double shuiwei) {
+        this.shuiwei = shuiwei;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public double getLat() {
+        return lat;
+    }
+
+    public void setLat(double lat) {
+        this.lat = lat;
+    }
+
+    public double getLon() {
+        return lon;
+    }
+
+    public void setLon(double lon) {
+        this.lon = lon;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCountry() {
+        return country;
+    }
+
+    public void setCountry(String country) {
+        this.country = country;
+    }
+
+    public String getTown() {
+        return town;
+    }
+
+    public void setTown(String town) {
+        this.town = town;
+    }
+
+    public String getChuangjsj() {
+        return chuangjsj;
+    }
+
+    public void setChuangjsj(String chuangjsj) {
+        this.chuangjsj = chuangjsj;
+    }
+
+    public String getGuanlidanwei() {
+        return guanlidanwei;
+    }
+
+    public void setGuanlidanwei(String guanlidanwei) {
+        this.guanlidanwei = guanlidanwei;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getXiangqing() {
+        return xiangqing;
+    }
+
+    public void setXiangqing(String xiangqing) {
+        this.xiangqing = xiangqing;
+    }
+
+    @Override
+    public String toString() {
+        return "AirBasic{" +
+                "id='" + id + '\'' +
+                ", tablename='" + tablename + '\'' +
+                ", gid='" + gid + '\'' +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", pinpaici='" + pinpaici + '\'' +
+                ", geocode='" + geocode + '\'' +
+                ", imgurl='" + imgurl + '\'' +
+                ", lat=" + lat +
+                ", lon=" + lon +
+                ", province='" + province + '\'' +
+                ", city='" + city + '\'' +
+                ", country='" + country + '\'' +
+                ", town='" + town + '\'' +
+                ", shuiwei=" + shuiwei +
+                ", chuangjsj='" + chuangjsj + '\'' +
+                ", guanlidanwei='" + guanlidanwei + '\'' +
+                ", remark='" + remark + '\'' +
+                ", xiangqing='" + xiangqing + '\'' +
+                '}';
+    }
+}

+ 58 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/AirPosition.java

@@ -0,0 +1,58 @@
+package com.jsjty.jdc.web.air.entity;
+
+import java.io.Serializable;
+import java.lang.reflect.Type;
+
+/**
+ * package org.mayh.http.model
+ * Author  Administrator
+ * Created by 2015/7/23.
+ */
+public class AirPosition implements Serializable, Type{
+    private Integer sort;
+    private double lat;
+    private double lon;
+    private double alltitude;
+
+    public double getLat() {
+        return lat;
+    }
+
+    public void setLat(double lat) {
+        this.lat = lat;
+    }
+
+    public double getLon() {
+        return lon;
+    }
+
+    public void setLon(double lon) {
+        this.lon = lon;
+    }
+
+    public double getAlltitude() {
+        return alltitude;
+    }
+
+    public void setAlltitude(double alltitude) {
+        this.alltitude = alltitude;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    @Override
+    public String toString() {
+        return "AirPosition{" +
+                "sort=" + sort +
+                ", lat=" + lat +
+                ", lon=" + lon +
+                ", alltitude=" + alltitude +
+                '}';
+    }
+}

+ 115 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/FlightDynamic.java

@@ -0,0 +1,115 @@
+package com.jsjty.jdc.web.air.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * Created by Administrator on 2015/8/7.
+ */
+@Entity
+@Table(name = "T_AIR_HBDT")
+public class FlightDynamic extends BaseEntity<String> {
+    private String id;
+    private String targetPort; //目标机场
+    private int type;  //1:表示出港;station字段表示目的地;2:表示进港;station表示始发站
+    private String hbh; //航班号
+    private String hkgs; //航公公司
+    private String station; //始发站
+    private String planDate; //计划起飞/到达时间
+    private String actureDate; //实际起飞/到达时间
+    private String status;  //状态:起飞 计划 延误 到达
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+    
+    public String getTargetPort() {
+        return targetPort;
+    }
+
+    public void setTargetPort(String targetPort) {
+        this.targetPort = targetPort;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public String getHbh() {
+        return hbh;
+    }
+
+    public void setHbh(String hbh) {
+        this.hbh = hbh;
+    }
+
+    public String getHkgs() {
+        return hkgs;
+    }
+
+    public void setHkgs(String hkgs) {
+        this.hkgs = hkgs;
+    }
+
+    public String getStation() {
+        return station;
+    }
+
+    public void setStation(String station) {
+        this.station = station;
+    }
+
+    public String getPlanDate() {
+        return planDate;
+    }
+
+    public void setPlanDate(String planDate) {
+        this.planDate = planDate;
+    }
+
+    public String getActureDate() {
+        return actureDate;
+    }
+
+    public void setActureDate(String actureDate) {
+        this.actureDate = actureDate;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "FlightDynamic{" +
+                "type=" + type +
+                ", hbh='" + hbh + '\'' +
+                ", hkgs='" + hkgs + '\'' +
+                ", station='" + station + '\'' +
+                ", planDate='" + planDate + '\'' +
+                ", actureDate='" + actureDate + '\'' +
+                ", status='" + status + '\'' +
+                '}';
+    }
+}

+ 72 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/HkgsInfo.java

@@ -0,0 +1,72 @@
+package com.jsjty.jdc.web.air.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * package com.jsjty.jdc.web.air.entity
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+@Entity
+@Table(name = "T_AIR_HKGS")
+public class HkgsInfo extends BaseEntity<String> {
+
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+    
+    private String id;
+    private String name;
+    private String shortname;
+    private String link;
+    private String summary;
+    private Integer sortno;
+    
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+    public void setId(String id) {
+        this.id = id;
+    }
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getShortname() {
+        return shortname;
+    }
+    public void setShortname(String shortname) {
+        this.shortname = shortname;
+    }
+    public String getLink() {
+        return link;
+    }
+    public void setLink(String link) {
+        this.link = link;
+    }
+    public String getSummary() {
+        return summary;
+    }
+    public void setSummary(String summary) {
+        this.summary = summary;
+    }
+    public Integer getSortno() {
+        return sortno;
+    }
+    public void setSortno(Integer sortno) {
+        this.sortno = sortno;
+    }
+}

+ 65 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/HkgsJd.java

@@ -0,0 +1,65 @@
+package com.jsjty.jdc.web.air.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * package com.jsjty.jdc.web.air.entity
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+@Entity
+@Table(name = "T_AIR_JD")
+public class HkgsJd extends BaseEntity<String> {
+
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+    
+    private String id;
+    private String xh;
+    private Integer sl;
+    private String pjjl;
+    private String hkgs;
+    
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+    public void setId(String id) {
+        this.id = id;
+    }
+    public String getXh() {
+        return xh;
+    }
+    public void setXh(String xh) {
+        this.xh = xh;
+    }
+    public Integer getSl() {
+        return sl;
+    }
+    public void setSl(Integer sl) {
+        this.sl = sl;
+    }
+    public String getPjjl() {
+        return pjjl;
+    }
+    public void setPjjl(String pjjl) {
+        this.pjjl = pjjl;
+    }
+    public String getHkgs() {
+        return hkgs;
+    }
+    public void setHkgs(String hkgs) {
+        this.hkgs = hkgs;
+    }
+}

+ 384 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/HkgsJx.java

@@ -0,0 +1,384 @@
+package com.jsjty.jdc.web.air.entity;
+
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * package com.jsjty.jdc.web.air.entity
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+@Entity
+@Table(name = "T_AIR_JX")
+public class HkgsJx extends BaseEntity<String> {
+
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+    //唯一标识
+    private String id;
+    //中文名称
+    private String zwmc;
+    //英文名称
+    private String ywmc;
+    //iata三字码
+    private String iata3;
+    //四字码
+    private String iata4;
+    //简介
+    private String summery;
+    //生产公司
+    private String scgs;
+    //飞行员数量
+    private String fxysl;
+    //首飞日期
+    private Date sfrq;
+    //机身长度
+    private String jscd;
+    //全长
+    private String qc;
+    //翼展
+    private String yz;
+    //翼展(加装小翼)
+    private String yzxy;
+    //机翼面积
+    private String jymj;
+    //飞机高度(垂直尾翼顶端)
+    private String fjgd;
+    //后掠翼
+    private String hly;
+    //展弦比
+    private String zxb;
+    //机身高度
+    private String jsgd;
+    //机身宽度
+    private String jskd;
+    //机舱长度
+    private String jccd;
+    //客舱长度
+    private String kccd;
+    //客舱宽度
+    private String kckd;
+    //客舱高度
+    private String kcgd;
+    //起飞所需跑道长度(于最大起飞重量时)
+    private String qfpd;
+    //着陆所需跑道长度(于最大起飞重量时)
+    private String zlpd;
+    //实用升限
+    private String sysx;
+    //最大巡航速率
+    private String zdxhsl;
+    //正常巡航速率
+    private String zcxhsl;
+    //最大速率
+    private String zdsl;
+    //最大航程
+    private String zdhc;
+    //最大燃油航程
+    private String zdryhc;
+    //最大燃料容量
+    private String zdrlrl;
+    //标准最大燃料容量
+    private String bzzdrlrl;
+    //发动机型号
+    private String fdjxh;
+    //发动机个数
+    private String fdjgs;
+    public byte[] getGnzb() {
+        return gnzb;
+    }
+    public void setGnzb(byte[] gnzb) {
+        this.gnzb = gnzb;
+    }
+    //发动机离地高度
+    private String fdjligd;
+    //最大结构重量
+    private String zdjgzl;
+    //最大起飞重量
+    private String zdqfzl;
+    //最大落地重量
+    private String zdldzl;
+    //最大滑行重量
+    private String zdhxzl;
+    //标准营运空重
+    private String bzyykz;
+    //标准货运载重
+    private String bzhyzz;
+    //载货量
+    private String zhl;
+    //国内占比
+    private byte[] gnzb;
+
+    
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+    public void setId(String id) {
+        this.id = id;
+    }
+    public String getZwmc() {
+        return zwmc;
+    }
+    public void setZwmc(String zwmc) {
+        this.zwmc = zwmc;
+    }
+    public String getYwmc() {
+        return ywmc;
+    }
+    public void setYwmc(String ywmc) {
+        this.ywmc = ywmc;
+    }
+    public String getIata3() {
+        return iata3;
+    }
+    public void setIata3(String iata3) {
+        this.iata3 = iata3;
+    }
+    public String getIata4() {
+        return iata4;
+    }
+    public void setIata4(String iata4) {
+        this.iata4 = iata4;
+    }
+    public String getSummery() {
+        return summery;
+    }
+    public void setSummery(String summery) {
+        this.summery = summery;
+    }
+    public String getScgs() {
+        return scgs;
+    }
+    public void setScgs(String scgs) {
+        this.scgs = scgs;
+    }
+    public String getFxysl() {
+        return fxysl;
+    }
+    public void setFxysl(String fxysl) {
+        this.fxysl = fxysl;
+    }
+    public Date getSfrq() {
+        return sfrq;
+    }
+    public void setSfrq(Date sfrq) {
+        this.sfrq = sfrq;
+    }
+    public String getJscd() {
+        return jscd;
+    }
+    public void setJscd(String jscd) {
+        this.jscd = jscd;
+    }
+    public String getQc() {
+        return qc;
+    }
+    public void setQc(String qc) {
+        this.qc = qc;
+    }
+    public String getYz() {
+        return yz;
+    }
+    public void setYz(String yz) {
+        this.yz = yz;
+    }
+    public String getYzxy() {
+        return yzxy;
+    }
+    public void setYzxy(String yzxy) {
+        this.yzxy = yzxy;
+    }
+    public String getJymj() {
+        return jymj;
+    }
+    public void setJymj(String jymj) {
+        this.jymj = jymj;
+    }
+    public String getFjgd() {
+        return fjgd;
+    }
+    public void setFjgd(String fjgd) {
+        this.fjgd = fjgd;
+    }
+    public String getHly() {
+        return hly;
+    }
+    public void setHly(String hly) {
+        this.hly = hly;
+    }
+    public String getZxb() {
+        return zxb;
+    }
+    public void setZxb(String zxb) {
+        this.zxb = zxb;
+    }
+    public String getJsgd() {
+        return jsgd;
+    }
+    public void setJsgd(String jsgd) {
+        this.jsgd = jsgd;
+    }
+    public String getJskd() {
+        return jskd;
+    }
+    public void setJskd(String jskd) {
+        this.jskd = jskd;
+    }
+    public String getJccd() {
+        return jccd;
+    }
+    public void setJccd(String jccd) {
+        this.jccd = jccd;
+    }
+    public String getKccd() {
+        return kccd;
+    }
+    public void setKccd(String kccd) {
+        this.kccd = kccd;
+    }
+    public String getKckd() {
+        return kckd;
+    }
+    public void setKckd(String kckd) {
+        this.kckd = kckd;
+    }
+    public String getKcgd() {
+        return kcgd;
+    }
+    public void setKcgd(String kcgd) {
+        this.kcgd = kcgd;
+    }
+    public String getQfpd() {
+        return qfpd;
+    }
+    public void setQfpd(String qfpd) {
+        this.qfpd = qfpd;
+    }
+    public String getZlpd() {
+        return zlpd;
+    }
+    public void setZlpd(String zlpd) {
+        this.zlpd = zlpd;
+    }
+    public String getSysx() {
+        return sysx;
+    }
+    public void setSysx(String sysx) {
+        this.sysx = sysx;
+    }
+    public String getZdxhsl() {
+        return zdxhsl;
+    }
+    public void setZdxhsl(String zdxhsl) {
+        this.zdxhsl = zdxhsl;
+    }
+    public String getZcxhsl() {
+        return zcxhsl;
+    }
+    public void setZcxhsl(String zcxhsl) {
+        this.zcxhsl = zcxhsl;
+    }
+    public String getZdsl() {
+        return zdsl;
+    }
+    public void setZdsl(String zdsl) {
+        this.zdsl = zdsl;
+    }
+    public String getZdhc() {
+        return zdhc;
+    }
+    public void setZdhc(String zdhc) {
+        this.zdhc = zdhc;
+    }
+    public String getZdryhc() {
+        return zdryhc;
+    }
+    public void setZdryhc(String zdryhc) {
+        this.zdryhc = zdryhc;
+    }
+    public String getZdrlrl() {
+        return zdrlrl;
+    }
+    public void setZdrlrl(String zdrlrl) {
+        this.zdrlrl = zdrlrl;
+    }
+    public String getBzzdrlrl() {
+        return bzzdrlrl;
+    }
+    public void setBzzdrlrl(String bzzdrlrl) {
+        this.bzzdrlrl = bzzdrlrl;
+    }
+    public String getFdjxh() {
+        return fdjxh;
+    }
+    public void setFdjxh(String fdjxh) {
+        this.fdjxh = fdjxh;
+    }
+    public String getFdjgs() {
+        return fdjgs;
+    }
+    public void setFdjgs(String fdjgs) {
+        this.fdjgs = fdjgs;
+    }
+    public String getFdjligd() {
+        return fdjligd;
+    }
+    public void setFdjligd(String fdjligd) {
+        this.fdjligd = fdjligd;
+    }
+    public String getZdjgzl() {
+        return zdjgzl;
+    }
+    public void setZdjgzl(String zdjgzl) {
+        this.zdjgzl = zdjgzl;
+    }
+    public String getZdqfzl() {
+        return zdqfzl;
+    }
+    public void setZdqfzl(String zdqfzl) {
+        this.zdqfzl = zdqfzl;
+    }
+    public String getZdldzl() {
+        return zdldzl;
+    }
+    public void setZdldzl(String zdldzl) {
+        this.zdldzl = zdldzl;
+    }
+    public String getZdhxzl() {
+        return zdhxzl;
+    }
+    public void setZdhxzl(String zdhxzl) {
+        this.zdhxzl = zdhxzl;
+    }
+    public String getBzyykz() {
+        return bzyykz;
+    }
+    public void setBzyykz(String bzyykz) {
+        this.bzyykz = bzyykz;
+    }
+    public String getBzhyzz() {
+        return bzhyzz;
+    }
+    public void setBzhyzz(String bzhyzz) {
+        this.bzhyzz = bzhyzz;
+    }
+    public String getZhl() {
+        return zhl;
+    }
+    public void setZhl(String zhl) {
+        this.zhl = zhl;
+    }
+}

+ 171 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/TairDetail.java

@@ -0,0 +1,171 @@
+package com.jsjty.jdc.web.air.entity;
+
+import com.jsjty.jdc.util.DateUtil;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * package com.jsjty.jdc.web.air.entity
+ * Author  Administrator
+ * Created by 2015/7/27.
+ */
+public class TairDetail implements Serializable {
+    private String flight;  //航班号
+    private Long departure; //计划起飞时间
+    private Long arrival;  //计划到达时间
+    private Long depSchd;  //本次实际起飞时间
+    private Long arrSchd;  //本次预计到达时间
+    private String fromIata; //起飞机场简称
+    private String fromCity; //起飞城市
+    private double fromLat;  //起飞地点纬度
+    private double fromLon;  //起飞地点经度
+    private String toIata;   //目的地机场简称
+    private String toCity;   //目的地机场所在城市
+    private double toLat;    //目的地机场坐标纬度
+    private double toLon;    //目的地机场坐标经度
+    private String image;    //飞机图片
+    private List<AirPosition> route; //飞行路径
+
+    public String getFlight() {
+        return flight;
+    }
+
+    public void setFlight(String flight) {
+        this.flight = flight;
+    }
+
+    public String getDeparture() {
+        return DateUtil.date2Str(new Date(departure * 1000),DateUtil.DATE_SECOND_FMT);
+    }
+
+    public void setDeparture(Long departure) {
+        this.departure = departure;
+    }
+
+    public String getArrival() {
+        return DateUtil.date2Str(new Date(arrival * 1000),DateUtil.DATE_SECOND_FMT);
+    }
+
+    public void setArrival(Long arrival) {
+        this.arrival = arrival;
+    }
+
+    public String getDepSchd() {
+        return DateUtil.date2Str(new Date(depSchd * 1000),DateUtil.DATE_SECOND_FMT);
+    }
+
+    public void setDepSchd(Long depSchd) {
+        this.depSchd = depSchd;
+    }
+
+    public String getArrSchd() {
+        return DateUtil.date2Str(new Date(arrSchd * 1000),DateUtil.DATE_SECOND_FMT);
+    }
+
+    public void setArrSchd(Long arrSchd) {
+        this.arrSchd = arrSchd;
+    }
+
+    public String getFromIata() {
+        return fromIata.replaceAll(" ","");
+    }
+
+    public void setFromIata(String fromIata) {
+        this.fromIata = fromIata;
+    }
+
+    public String getFromCity() {
+        return fromCity;
+    }
+
+    public void setFromCity(String fromCity) {
+        this.fromCity = fromCity;
+    }
+
+    public double getFromLat() {
+        return fromLat;
+    }
+
+    public void setFromLat(double fromLat) {
+        this.fromLat = fromLat;
+    }
+
+    public double getFromLon() {
+        return fromLon;
+    }
+
+    public void setFromLon(double fromLon) {
+        this.fromLon = fromLon;
+    }
+
+    public String getToIata() {
+        return toIata.replaceAll(" ","");
+    }
+
+    public void setToIata(String toIata) {
+        this.toIata = toIata;
+    }
+
+    public String getToCity() {
+        return toCity;
+    }
+
+    public void setToCity(String toCity) {
+        this.toCity = toCity;
+    }
+
+    public double getToLat() {
+        return toLat;
+    }
+
+    public void setToLat(double toLat) {
+        this.toLat = toLat;
+    }
+
+    public double getToLon() {
+        return toLon;
+    }
+
+    public void setToLon(double toLon) {
+        this.toLon = toLon;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public List<AirPosition> getRoute() {
+        return route;
+    }
+
+    public void setRoute(List<AirPosition> route) {
+        this.route = route;
+    }
+
+    @Override
+    public String toString() {
+        return "TairDetail{" +
+                "flight='" + flight + '\'' +
+                ", departure=" + departure +
+                ", arrival=" + arrival +
+                ", depSchd=" + depSchd +
+                ", arrSchd=" + arrSchd +
+                ", fromIata='" + fromIata + '\'' +
+                ", fromCity='" + fromCity + '\'' +
+                ", fromLat=" + fromLat +
+                ", fromLon=" + fromLon +
+                ", toIata='" + toIata + '\'' +
+                ", toCity='" + toCity + '\'' +
+                ", toLat=" + toLat +
+                ", toLon=" + toLon +
+                ", image='" + image + '\'' +
+                ", route=" + route.size() +
+                '}';
+    }
+}

+ 384 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/entity/TairDynamicInfo.java

@@ -0,0 +1,384 @@
+package com.jsjty.jdc.web.air.entity;
+
+import java.sql.Timestamp;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import com.xtframe.io.poi.annotation.XlsConfig;
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * package com.jsjty.model
+ * Author Administrator
+ * Created by 2015/7/6.
+ */
+@XlsConfig(name = "飞机动态.xls", sheetName = "飞机动态")
+@Entity
+@Table(name = "T_AIR_REALTIME")
+public class TairDynamicInfo extends BaseEntity<String> {
+    /** serialVersionUID */
+    private static final long serialVersionUID = 8329053208446434233L;
+    private String id;
+    private String dataid;
+    private Double lat;
+    private Double lon;
+    private Integer direction;
+    private Double high;
+    private Double speed;
+    private String ydjcode;
+    private String leida;
+    private String xingh;
+    private String regCode;
+    private Timestamp time;
+    private String startAirport;
+    private String distAirport;
+    private String hangbh1;
+    private String hangbh2;
+    private Double verticalSpeed;
+    private Timestamp updateTime;
+    private String flight;  //航班号
+    private Long departure; //计划起飞时间
+    private Long arrival;  //计划到达时间
+    private Long depSchd;  //本次实际起飞时间
+    private Long arrSchd;  //本次预计到达时间
+    private String fromIata; //起飞机场简称
+    private String fromCity; //起飞城市
+    private String fromLat;  //起飞地点纬度
+    private String fromLon;  //起飞地点经度
+    private String toIata;   //目的地机场简称
+    private String toCity;   //目的地机场所在城市
+    private String toLat;    //目的地机场坐标纬度
+    private String toLon;    //目的地机场坐标经度
+    private String image;    //飞机图片
+    private String routes;   //飞机轨迹路线
+    
+    @Id
+//    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+//    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDataid() {
+        return dataid;
+    }
+
+    public void setDataid(String dataid) {
+        this.dataid = dataid;
+    }
+
+    @XlsConfig(name = "纬度", number = 6)
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    @XlsConfig(name = "经度", number = 7)
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    @XlsConfig(name = "飞行方向", number = 1)
+    public Integer getDirection() {
+        return direction;
+    }
+
+    public void setDirection(Integer direction) {
+        this.direction = direction;
+    }
+
+    @XlsConfig(name = "飞行高度", number = 3)
+    public Double getHigh() {
+        return high;
+    }
+
+    public void setHigh(Double high) {
+        this.high = high;
+    }
+
+    @XlsConfig(name = "飞行速度", number = 2)
+    public Double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+
+    public String getYdjcode() {
+        return ydjcode;
+    }
+
+    public void setYdjcode(String ydjcode) {
+        this.ydjcode = ydjcode;
+    }
+
+    public String getLeida() {
+        return leida;
+    }
+
+    public void setLeida(String leida) {
+        this.leida = leida;
+    }
+
+    public String getXingh() {
+        return xingh;
+    }
+
+    public void setXingh(String xingh) {
+        this.xingh = xingh;
+    }
+
+    public String getRegCode() {
+        return regCode;
+    }
+
+    public void setRegCode(String regCode) {
+        this.regCode = regCode;
+    }
+
+    public Timestamp getTime() {
+        return time;
+    }
+
+    public void setTime(Timestamp time) {
+        this.time = time;
+    }
+
+    @XlsConfig(name = "起飞机场", number = 4)
+    public String getStartAirport() {
+        return startAirport;
+    }
+
+    public void setStartAirport(String startAirport) {
+        this.startAirport = startAirport;
+    }
+
+    @XlsConfig(name = "目的机场", number = 5)
+    public String getDistAirport() {
+        return distAirport;
+    }
+
+    public void setDistAirport(String distAirport) {
+        this.distAirport = distAirport;
+    }
+
+    @XlsConfig(name = "航班号码", number = 0)
+    public String getHangbh1() {
+        return hangbh1;
+    }
+
+    public void setHangbh1(String hangbh1) {
+        this.hangbh1 = hangbh1;
+    }
+
+    public String getHangbh2() {
+        return hangbh2;
+    }
+
+    public void setHangbh2(String hangbh2) {
+        this.hangbh2 = hangbh2;
+    }
+
+    public Double getVerticalSpeed() {
+        return verticalSpeed;
+    }
+
+    public void setVerticalSpeed(Double verticalSpeed) {
+        this.verticalSpeed = verticalSpeed;
+    }
+
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TairDynamicInfo that = (TairDynamicInfo) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (dataid != null ? !dataid.equals(that.dataid) : that.dataid != null) return false;
+        if (lat != null ? !lat.equals(that.lat) : that.lat != null) return false;
+        if (lon != null ? !lon.equals(that.lon) : that.lon != null) return false;
+        if (direction != null ? !direction.equals(that.direction) : that.direction != null) return false;
+        if (high != null ? !high.equals(that.high) : that.high != null) return false;
+        if (speed != null ? !speed.equals(that.speed) : that.speed != null) return false;
+        if (ydjcode != null ? !ydjcode.equals(that.ydjcode) : that.ydjcode != null) return false;
+        if (leida != null ? !leida.equals(that.leida) : that.leida != null) return false;
+        if (xingh != null ? !xingh.equals(that.xingh) : that.xingh != null) return false;
+        if (regCode != null ? !regCode.equals(that.regCode) : that.regCode != null) return false;
+        if (time != null ? !time.equals(that.time) : that.time != null) return false;
+        if (startAirport != null ? !startAirport.equals(that.startAirport) : that.startAirport != null) return false;
+        if (distAirport != null ? !distAirport.equals(that.distAirport) : that.distAirport != null) return false;
+        if (hangbh1 != null ? !hangbh1.equals(that.hangbh1) : that.hangbh1 != null) return false;
+        if (hangbh2 != null ? !hangbh2.equals(that.hangbh2) : that.hangbh2 != null) return false;
+        if (verticalSpeed != null ? !verticalSpeed.equals(that.verticalSpeed) : that.verticalSpeed != null)
+            return false;
+        if (updateTime != null ? !updateTime.equals(that.updateTime) : that.updateTime != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (dataid != null ? dataid.hashCode() : 0);
+        result = 31 * result + (lat != null ? lat.hashCode() : 0);
+        result = 31 * result + (lon != null ? lon.hashCode() : 0);
+        result = 31 * result + (direction != null ? direction.hashCode() : 0);
+        result = 31 * result + (high != null ? high.hashCode() : 0);
+        result = 31 * result + (speed != null ? speed.hashCode() : 0);
+        result = 31 * result + (ydjcode != null ? ydjcode.hashCode() : 0);
+        result = 31 * result + (leida != null ? leida.hashCode() : 0);
+        result = 31 * result + (xingh != null ? xingh.hashCode() : 0);
+        result = 31 * result + (regCode != null ? regCode.hashCode() : 0);
+        result = 31 * result + (time != null ? time.hashCode() : 0);
+        result = 31 * result + (startAirport != null ? startAirport.hashCode() : 0);
+        result = 31 * result + (distAirport != null ? distAirport.hashCode() : 0);
+        result = 31 * result + (hangbh1 != null ? hangbh1.hashCode() : 0);
+        result = 31 * result + (hangbh2 != null ? hangbh2.hashCode() : 0);
+        result = 31 * result + (verticalSpeed != null ? verticalSpeed.hashCode() : 0);
+        result = 31 * result + (updateTime != null ? updateTime.hashCode() : 0);
+        return result;
+    }
+
+    public String getFlight() {
+        return flight;
+    }
+
+    public void setFlight(String flight) {
+        this.flight = flight;
+    }
+
+    public Long getDeparture() {
+        return departure;
+    }
+
+    public void setDeparture(Long departure) {
+        this.departure = departure;
+    }
+
+    public Long getArrival() {
+        return arrival;
+    }
+
+    public void setArrival(Long arrival) {
+        this.arrival = arrival;
+    }
+
+    public Long getDepSchd() {
+        return depSchd;
+    }
+
+    public void setDepSchd(Long depSchd) {
+        this.depSchd = depSchd;
+    }
+
+    public Long getArrSchd() {
+        return arrSchd;
+    }
+
+    public void setArrSchd(Long arrSchd) {
+        this.arrSchd = arrSchd;
+    }
+
+    public String getFromIata() {
+        return fromIata;
+    }
+
+    public void setFromIata(String fromIata) {
+        this.fromIata = fromIata;
+    }
+
+    public String getFromCity() {
+        return fromCity;
+    }
+
+    public void setFromCity(String fromCity) {
+        this.fromCity = fromCity;
+    }
+
+    public String getFromLat() {
+        return fromLat;
+    }
+
+    public void setFromLat(String fromLat) {
+        this.fromLat = fromLat;
+    }
+
+    public String getFromLon() {
+        return fromLon;
+    }
+
+    public void setFromLon(String fromLon) {
+        this.fromLon = fromLon;
+    }
+
+    public String getToIata() {
+        return toIata;
+    }
+
+    public void setToIata(String toIata) {
+        this.toIata = toIata;
+    }
+
+    public String getToCity() {
+        return toCity;
+    }
+
+    public void setToCity(String toCity) {
+        this.toCity = toCity;
+    }
+
+    public String getToLat() {
+        return toLat;
+    }
+
+    public void setToLat(String toLat) {
+        this.toLat = toLat;
+    }
+
+    public String getToLon() {
+        return toLon;
+    }
+
+    public void setToLon(String toLon) {
+        this.toLon = toLon;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getRoutes() {
+        return routes;
+    }
+
+    public void setRoutes(String routes) {
+        this.routes = routes;
+    }
+}

+ 88 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/service/AirService.java

@@ -0,0 +1,88 @@
+package com.jsjty.jdc.web.air.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.jsjty.jdc.web.air.entity.AirBasic;
+import com.jsjty.jdc.web.air.entity.FlightDynamic;
+import com.jsjty.jdc.web.air.entity.HkgsInfo;
+import com.jsjty.jdc.web.air.entity.HkgsJd;
+import com.jsjty.jdc.web.air.entity.HkgsJx;
+import com.jsjty.jdc.web.air.entity.TairDetail;
+import com.jsjty.jdc.web.air.entity.TairDynamicInfo;
+import com.jsjty.jdc.web.basic.entity.TdetailAir;
+
+/**
+ * package com.jsjty.service.impl
+ * Author Administrator
+ * Created by 2015/7/6.
+ */
+public interface AirService {
+    void initAir();
+    
+    TairDetail findDetail(String f,double altitude,String equip_hint);
+
+    /**
+     * 根据类型查询基础信息  包括 收费站 加油站等等
+     * @param type
+     * @return
+     */
+    List<AirBasic> findBasicInfo(String type);
+    
+    /**
+     * 查询飞机动态
+     * @param type
+     * @return
+     */
+    List<TairDynamicInfo> findAirInfos(String flight);
+
+    /**
+     * 根据参数查询某个机场的航班动态信息
+     * @param cfd
+     * @param mdd
+     * @param hbh
+     * @param type
+     * @return
+     */
+    List<FlightDynamic> findFlightDynamics(String cfd,String mdd,String hbh,int type);
+    
+    /**
+     * 根据参数查询某个机场的航班动态信息
+     * @param mdd
+     * @param type
+     * @return
+     */
+    public List<FlightDynamic> findFlightDynamics(int type, 
+            String airPortName, String hbh, String hkgs);
+    
+    /**
+     * 根据参数查询机场信息
+     * @return
+     */
+    List<TdetailAir> findAirPort();
+    
+    /**
+     * 航空公司信息
+     * @return
+     */
+    List<HkgsInfo> findHkgsInfo(String id, String name);
+    
+    /**
+     * 航空公司机队信息
+     * @return
+     */
+    List<HkgsJd> findHkgsJd(String id, String hkgsId);
+    
+    /**
+     * 航空公司机型信息
+     * @return
+     */
+    List<HkgsJx> findHkgsJx(String xh, String iata4);
+    
+    /**
+     * 航空公司机型信息
+     * Map<String, String> mapParam
+     * @return
+     */
+    List<HkgsJx> findHkgsJxByIta(Map<String, String> mapParam);
+}

+ 44 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/service/impl/AirJob.java

@@ -0,0 +1,44 @@
+package com.jsjty.jdc.web.air.service.impl;
+
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.SchedulerContext;
+import org.quartz.SchedulerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+
+import com.jsjty.jdc.web.air.service.AirService;
+import com.xtframe.core.job.service.JobInfoService;
+import com.xtframe.core.utils.Assert;
+
+public class AirJob implements Job {
+    Logger logger = LoggerFactory.getLogger(AirJob.class);
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        //        Scheduler scheduler = (Scheduler) context.getScheduler();
+        //        String jobName = context.getJobDetail().getKey().getName();
+        //        String jobGroup = context.getJobDetail().getKey().getGroup();
+        String jobId = (String) context.getJobDetail().getJobDataMap().get(JobInfoService.PARAM_JOB);
+        // 获取JobExecutionContext中的service对象
+        try {
+            // 获取JobExecutionContext中的service对象
+            SchedulerContext schCtx = context.getScheduler().getContext();
+            // 获取Spring中的上下文
+            ApplicationContext appCtx = (ApplicationContext) schCtx.get("applicationContext");
+            Assert.notNull(jobId, "jobId is null!");
+            //            SecurityMgr securityMgr = (SecurityMgr) appCtx.getBean("securityMgr");
+            AirService airService = appCtx.getBean(AirService.class);
+            airService.initAir();
+            //			User u = securityMgr.userService().findByUname("admin");
+            //			System.err.println(u.getId());
+        }
+        catch (SchedulerException e1) {
+            // TODO 尚未处理异常
+            e1.printStackTrace();
+            logger.error(e1.getMessage());
+        }
+    }
+}

+ 229 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/service/impl/AirServiceImpl.java

@@ -0,0 +1,229 @@
+package com.jsjty.jdc.web.air.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.Cache;
+import org.springframework.cache.ehcache.EhCacheCacheManager;
+import org.springframework.stereotype.Service;
+
+import com.jsjty.jdc.util.HttpMain;
+import com.jsjty.jdc.web.air.dao.AirDao;
+import com.jsjty.jdc.web.air.dao.AirRealtimeDao;
+import com.jsjty.jdc.web.air.dao.FlightDynamicDao;
+import com.jsjty.jdc.web.air.dao.HkgsDao;
+import com.jsjty.jdc.web.air.dao.HkgsJdDao;
+import com.jsjty.jdc.web.air.dao.HkgsJxDao;
+import com.jsjty.jdc.web.air.entity.AirBasic;
+import com.jsjty.jdc.web.air.entity.FlightDynamic;
+import com.jsjty.jdc.web.air.entity.HkgsInfo;
+import com.jsjty.jdc.web.air.entity.HkgsJd;
+import com.jsjty.jdc.web.air.entity.HkgsJx;
+import com.jsjty.jdc.web.air.entity.TairDetail;
+import com.jsjty.jdc.web.air.entity.TairDynamicInfo;
+import com.jsjty.jdc.web.air.service.AirService;
+import com.jsjty.jdc.web.basic.dao.BasicAirDao;
+import com.jsjty.jdc.web.basic.entity.TdetailAir;
+import com.xtframe.util.ObjectUtils;
+import com.xtframe.util.StringUtils;
+
+/**
+ * package com.jsjty.service.impl
+ * Author Administrator
+ * Created by 2015/7/6.
+ */
+@Service
+public class AirServiceImpl implements AirService {
+    private final static Logger logger = LoggerFactory.getLogger(AirServiceImpl.class);
+    @Autowired
+    private EhCacheCacheManager cacheManager;
+
+    @Autowired
+    private AirDao airDao;
+    @Autowired
+    BasicAirDao basicAirDao;
+    @Autowired
+    FlightDynamicDao flightDynamicDao;
+    @Autowired
+    AirRealtimeDao airRealtimeDao;
+    @Autowired
+    private HkgsDao hkgsDao;
+    @Autowired
+    private HkgsJdDao hkgsJdDao;
+    @Autowired
+    private HkgsJxDao hkgsJxDao;
+
+    @Autowired
+    private HttpMain httpMain;
+
+    public void initAir() {
+        Cache cache = cacheManager.getCache("airplaneCache");
+        List<TairDynamicInfo> infos = httpMain.getAir();
+        if (ObjectUtils.isNotEmpty(infos)) {
+            cache.clear();
+            cache.put("airInfos", infos);
+            logger.info("航空数据更新完毕,共更新" + infos.size() + "条");
+        }
+
+        initDetailAir(infos);
+    }
+
+    public void initDetailAir(List<TairDynamicInfo> infos) {
+        Cache cache = cacheManager.getCache("airdetailCache");
+        for (TairDynamicInfo info : infos) {
+            TairDetail detail = httpMain.getAirDetailInfo(info);
+            if (ObjectUtils.isNotEmpty(infos)) {
+                String key = info.getId() + "_" + info.getXingh();
+                cache.evict(key);
+                cache.put(key, detail);
+            }
+        }
+    }
+
+    /**
+     * 查询飞机动态
+     * 
+     * @param type
+     * @return
+     */
+    @Override
+    public List<TairDynamicInfo> findAirInfos(String flight) {
+        Map<String, Object> params = new HashMap<>();
+        String sql = "select * from t_air_realtime where 1=1 and hangbh1 is not null";
+        if (StringUtils.isNotEmpty(flight)) {
+            sql += " and hangbh1=:hangbh1";
+            params.put("hangbh1", flight);
+        }
+        return airRealtimeDao.nativeQuery(sql, TairDynamicInfo.class, params);
+    }
+
+    @Override
+    public List<AirBasic> findBasicInfo(String type) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("tableName", type);
+        return airDao.nativeQuery("select * from T_BASIC_INFO t where t.tablename = :tableName", AirBasic.class,
+                params);
+    }
+
+    @Override
+    public List<FlightDynamic> findFlightDynamics(String cfd, String mdd, String hbh, int type) {
+        return httpMain.getHBDT(cfd, mdd, hbh, type);
+    }
+
+    @Override
+    public List<FlightDynamic> findFlightDynamics(int type, 
+            String airPortName, String hbh, String hkgs) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("type", type);
+        String strSql = "select * from t_air_hbdt t where t.type = :type";
+        if (StringUtils.isNotEmpty(airPortName)) {
+            params.put("airPortName", airPortName);
+            strSql += " and t.target_port = :airPortName";
+        }
+        if (StringUtils.isNotEmpty(hbh)) {
+            params.put("hbh", "%" + hbh.trim() + "%");
+            strSql += " and t.hbh like :hbh";
+        }
+        if (StringUtils.isNotEmpty(hkgs)) {
+            params.put("hkgs", "%" + hkgs.trim() + "%");
+            strSql += " and t.hkgs like :hkgs";
+        }
+        strSql += " order by sortno asc";
+        return flightDynamicDao.nativeQuery(strSql, FlightDynamic.class, params);
+    }
+
+    @Override
+    public List<TdetailAir> findAirPort() {
+        Map<String, Object> params = new HashMap<>();
+        return basicAirDao.nativeQuery("select * from tdetail_airport order by code asc", TdetailAir.class, params);
+    }
+
+    @Override
+    public List<HkgsInfo> findHkgsInfo(String id, String name) {
+        Map<String, Object> params = new HashMap<>();
+        String sql = "select * from t_air_hkgs t ";
+        if (StringUtils.isNotEmpty(id)) {
+            sql += " where t.id=:id";
+            params.put("id", id);
+        }
+        if (StringUtils.isNotEmpty(name)) {
+            sql += " where t.shortname like :name";
+            params.put("name", "%"+name+"%");
+        }
+        sql += " order by t.sortno asc";
+        return hkgsDao.nativeQuery(sql, HkgsInfo.class, params);
+    }
+
+    @Override
+    public List<HkgsJd> findHkgsJd(String id, String hkgsId) {
+        Map<String, Object> params = new HashMap<>();
+        String sql = "select * from t_air_jd t where 1=1";
+        if (StringUtils.isNotEmpty(id)) {
+            sql += " and t.id=:id";
+            params.put("id", id);
+        }
+        if (StringUtils.isNotEmpty(hkgsId)) {
+            sql += " and t.hkgs=:hkgs";
+            params.put("hkgs", hkgsId);
+        }
+        return hkgsJdDao.nativeQuery(sql, HkgsJd.class, params);
+    }
+
+    /**
+     * 航空公司机型信息
+     * 
+     * @return
+     */
+    @Override
+    public List<HkgsJx> findHkgsJx(String xh, String iata4) {
+        Map<String, Object> params = new HashMap<>();
+        String sql = "select id, zwmc, ywmc, iata3, iata4, summery, scgs, fxysl,"
+                + " sfrq, jscd, qc, yz, yzxy, jymj, fjgd, hly, zxb, jsgd, jskd, "
+                + "jccd, kccd, kckd, kcgd, qfpd, zlpd, sysx, zdxhsl, zcxhsl, zdsl,"
+                + " zdhc, zdryhc, zdrlrl, bzzdrlrl, fdjxh, fdjgs, fdjligd, zdjgzl,"
+                + " zdqfzl, zdldzl, zdhxzl, bzyykz, bzhyzz, zhl, gnzb from t_air_jx t where 1=1";
+        if (StringUtils.isNotEmpty(xh)) {
+            sql += " and t.zwmc=:xh";
+            params.put("xh", xh);
+        }
+        if (StringUtils.isNotEmpty(iata4)) {
+            sql += " and t.iata4=:iata4";
+            params.put("iata4", iata4);
+        }
+        return hkgsJxDao.nativeQuery(sql, HkgsJx.class, params);
+    }
+
+    /**
+     * 航空公司机型信息
+     * 
+     * @return
+     */
+    @Override
+    public List<HkgsJx> findHkgsJxByIta(Map<String, String> mapParam) {
+        Map<String, Object> params = new HashMap<>();
+        String sql = "select id, zwmc, ywmc, iata3, iata4, summery, scgs, fxysl,"
+                + " sfrq, jscd, qc, yz, yzxy, jymj, fjgd, hly, zxb, jsgd, jskd, "
+                + "jccd, kccd, kckd, kcgd, qfpd, zlpd, sysx, zdxhsl, zcxhsl, zdsl,"
+                + " zdhc, zdryhc, zdrlrl, bzzdrlrl, fdjxh, fdjgs, fdjligd, zdjgzl,"
+                + " zdqfzl, zdldzl, zdhxzl, bzyykz, bzhyzz, zhl, gnzb from t_air_jx t where 1=1";
+        if (mapParam.containsKey("iata3")) {
+            sql += " and t.iata3=:iata3";
+            params.put("iata3", mapParam.get("iata3"));
+        }
+        return hkgsJxDao.nativeQuery(sql, HkgsJx.class, params);
+    }
+
+    @Override
+    public TairDetail findDetail(String f, double altitude, String equip_hint) {
+        // TODO Auto-generated method stub
+        TairDynamicInfo inf = new TairDynamicInfo();
+        inf.setId(f);
+        inf.setHigh(altitude);
+        inf.setXingh(equip_hint);
+        return this.httpMain.getAirDetailInfo(inf);
+    }
+}

+ 256 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/air/vo/TairDynamicVo.java

@@ -0,0 +1,256 @@
+package com.jsjty.jdc.web.air.vo;
+
+import java.sql.Timestamp;
+import java.util.List;
+
+import com.jsjty.jdc.web.air.entity.AirPosition;
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * package com.jsjty.model
+ * Author Administrator
+ * Created by 2015/7/6.
+ */
+public class TairDynamicVo extends BaseEntity<String> {
+    /** serialVersionUID */
+    private static final long serialVersionUID = 1L;
+    private String id;
+    private String dataid;
+    private Double lat;
+    private Double lon;
+    private Integer direction;
+    private Double high;
+    private Double speed;
+    private String ydjcode;
+    private String leida;
+    private String xingh;
+    private String regCode;
+    private Timestamp time;
+    private String startAirport;
+    private String distAirport;
+    private String hangbh1;
+    private String hangbh2;
+    private Double verticalSpeed;
+    private Timestamp updateTime;
+    private String flight;  //航班号
+    private Long departure; //计划起飞时间
+    private Long arrival;  //计划到达时间
+    private Long depSchd;  //本次实际起飞时间
+    private Long arrSchd;  //本次预计到达时间
+    private String fromIata; //起飞机场简称
+    private String fromCity; //起飞城市
+    private double fromLat;  //起飞地点纬度
+    private double fromLon;  //起飞地点经度
+    private String toIata;   //目的地机场简称
+    private String toCity;   //目的地机场所在城市
+    private double toLat;    //目的地机场坐标纬度
+    private double toLon;    //目的地机场坐标经度
+    private String image;    //飞机图片
+    private String routes;   //飞机轨迹路线
+    private List<AirPosition> route; //飞行路径
+    public String getId() {
+        return id;
+    }
+    public void setId(String id) {
+        this.id = id;
+    }
+    public String getDataid() {
+        return dataid;
+    }
+    public void setDataid(String dataid) {
+        this.dataid = dataid;
+    }
+    public Double getLat() {
+        return lat;
+    }
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+    public Double getLon() {
+        return lon;
+    }
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+    public Integer getDirection() {
+        return direction;
+    }
+    public void setDirection(Integer direction) {
+        this.direction = direction;
+    }
+    public Double getHigh() {
+        return high;
+    }
+    public void setHigh(Double high) {
+        this.high = high;
+    }
+    public Double getSpeed() {
+        return speed;
+    }
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+    public String getYdjcode() {
+        return ydjcode;
+    }
+    public void setYdjcode(String ydjcode) {
+        this.ydjcode = ydjcode;
+    }
+    public String getLeida() {
+        return leida;
+    }
+    public void setLeida(String leida) {
+        this.leida = leida;
+    }
+    public String getXingh() {
+        return xingh;
+    }
+    public void setXingh(String xingh) {
+        this.xingh = xingh;
+    }
+    public String getRegCode() {
+        return regCode;
+    }
+    public void setRegCode(String regCode) {
+        this.regCode = regCode;
+    }
+    public Timestamp getTime() {
+        return time;
+    }
+    public void setTime(Timestamp time) {
+        this.time = time;
+    }
+    public String getStartAirport() {
+        return startAirport;
+    }
+    public void setStartAirport(String startAirport) {
+        this.startAirport = startAirport;
+    }
+    public String getDistAirport() {
+        return distAirport;
+    }
+    public void setDistAirport(String distAirport) {
+        this.distAirport = distAirport;
+    }
+    public String getHangbh1() {
+        return hangbh1;
+    }
+    public void setHangbh1(String hangbh1) {
+        this.hangbh1 = hangbh1;
+    }
+    public String getHangbh2() {
+        return hangbh2;
+    }
+    public void setHangbh2(String hangbh2) {
+        this.hangbh2 = hangbh2;
+    }
+    public Double getVerticalSpeed() {
+        return verticalSpeed;
+    }
+    public void setVerticalSpeed(Double verticalSpeed) {
+        this.verticalSpeed = verticalSpeed;
+    }
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+    public String getFlight() {
+        return flight;
+    }
+    public void setFlight(String flight) {
+        this.flight = flight;
+    }
+    public Long getDeparture() {
+        return departure;
+    }
+    public void setDeparture(Long departure) {
+        this.departure = departure;
+    }
+    public Long getArrival() {
+        return arrival;
+    }
+    public void setArrival(Long arrival) {
+        this.arrival = arrival;
+    }
+    public Long getDepSchd() {
+        return depSchd;
+    }
+    public void setDepSchd(Long depSchd) {
+        this.depSchd = depSchd;
+    }
+    public Long getArrSchd() {
+        return arrSchd;
+    }
+    public void setArrSchd(Long arrSchd) {
+        this.arrSchd = arrSchd;
+    }
+    public String getFromIata() {
+        return fromIata;
+    }
+    public void setFromIata(String fromIata) {
+        this.fromIata = fromIata;
+    }
+    public String getFromCity() {
+        return fromCity;
+    }
+    public void setFromCity(String fromCity) {
+        this.fromCity = fromCity;
+    }
+    public double getFromLat() {
+        return fromLat;
+    }
+    public void setFromLat(double fromLat) {
+        this.fromLat = fromLat;
+    }
+    public double getFromLon() {
+        return fromLon;
+    }
+    public void setFromLon(double fromLon) {
+        this.fromLon = fromLon;
+    }
+    public String getToIata() {
+        return toIata;
+    }
+    public void setToIata(String toIata) {
+        this.toIata = toIata;
+    }
+    public String getToCity() {
+        return toCity;
+    }
+    public void setToCity(String toCity) {
+        this.toCity = toCity;
+    }
+    public double getToLat() {
+        return toLat;
+    }
+    public void setToLat(double toLat) {
+        this.toLat = toLat;
+    }
+    public double getToLon() {
+        return toLon;
+    }
+    public void setToLon(double toLon) {
+        this.toLon = toLon;
+    }
+    public String getImage() {
+        return image;
+    }
+    public void setImage(String image) {
+        this.image = image;
+    }
+    public String getRoutes() {
+        return routes;
+    }
+    public void setRoutes(String routes) {
+        this.routes = routes;
+    }
+    public List<AirPosition> getRoute() {
+        return route;
+    }
+    public void setRoute(List<AirPosition> route) {
+        this.route = route;
+    }
+    
+}

+ 256 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/ctl/AisCtl.java

@@ -0,0 +1,256 @@
+package com.jsjty.jdc.web.ais.ctl;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jsjty.jdc.common.BaseWebCtl;
+import com.jsjty.jdc.common.Constants;
+import com.jsjty.jdc.web.ais.entity.AisDynamic;
+import com.jsjty.jdc.web.ais.entity.TAisSj;
+import com.jsjty.jdc.web.ais.service.AisService;
+import com.jsjty.jdc.web.ais.vo.ShipPosition;
+import com.jsjty.jdc.web.ais.vo.ShipVo;
+import com.xtframe.core.base.ctl.WebJsonResult;
+import com.xtframe.sec.common.SimplePageRequest;
+import com.xtframe.util.ObjectUtils;
+import com.xtframe.util.StringUtils;
+import com.yuanxd.tools.hscbdt.HscbdtService;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+@Controller
+@RequestMapping("/ais")
+public class AisCtl extends BaseWebCtl {
+
+    @Autowired
+    private AisService aisService;
+    /** 海事AIS接口服务 */
+    @Autowired
+    private HscbdtService hscbdtService;
+
+    @RequestMapping("/ship")
+    @ResponseBody
+    public List<AisDynamic> findAis(String extend) {
+        if (ObjectUtils.isNotEmpty(extend)) {
+            String[] latlon = extend.split("\\,");
+            String result = hscbdtService.searchStringResultByArea(1, latlon[0] + "," + latlon[1],
+                    latlon[2] + "," + latlon[3]);
+            com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(result);
+            if (null == jsonObject) { return new ArrayList<>(); }
+            String ships = jsonObject.getString("ships");
+            List<AisDynamic> dynamics = com.alibaba.fastjson.JSON.parseArray(ships, AisDynamic.class);
+            return dynamics;
+        }
+        return Collections.emptyList();
+    }
+
+    /**
+     * 根据船舶mmsi定位
+     * 
+     * @param mmsi
+     */
+    @RequestMapping("/detail")
+    @ResponseBody
+    public JSONObject findCbByMMSI(String mmsi) {
+        JSONObject jsonObj = JSONObject.parseObject(hscbdtService.searchDynamicByMMSI(mmsi));
+        if (null != jsonObj) {
+            jsonObj.put("name", jsonObj.get("shipname"));
+            jsonObj.put("lon", jsonObj.get("x"));
+            jsonObj.put("lat", jsonObj.get("y"));
+            if (null != jsonObj.get("sog") && StringUtils.isNotEmpty(jsonObj.get("sog").toString())) {
+                String sog = jsonObj.get("sog").toString();
+                // 1节=1海里/小时=1.852公里/小时
+                jsonObj.put("speed", Float.parseFloat(sog) * 1.852);
+            }
+        }
+        return jsonObj;
+    }
+
+    /**
+     * 查询船舶明细
+     * 
+     * @param name
+     *            船舶名称
+     * @return
+     */
+    @RequestMapping("/shipDetail")
+    @ResponseBody
+    public List<Map<String, Object>> findShipDetail(String name) {
+        return aisService.findShipDetail(name);
+    }
+
+    /**
+     * 查询船舶信息
+     * 
+     * @param model
+     * @param page
+     * @param keyword
+     *            eg 中华
+     * @return eg:{pagecur:1,pagesize:2,amount:28,totals:28,tk:0,details:[{imo:"0",id:"924781563",callsign:"",country:""
+     *         ,type:"9",name:"ZHONG HUA"
+     *         ,mmsi:"924781563",new_type:9,state:2,lasttm:1383519189,dwt:0,built:0,spd:0.0},{imo:"0",id:
+     *         "S9920121206309727",callsign:"0",country:"",type:"7",name:"ZHONG HUA"
+     *         ,mmsi:"418901234",new_type:7,state:2,lasttm:1359432309,dwt:0,built:0,spd:0.0}]}
+     */
+    @RequestMapping("/searchShip")
+    public String searchCbxx(Model model, SimplePageRequest page, String keyword, String index) {
+        // 查询船舶信息
+        searchShip(model, page, keyword);
+        model.addAttribute("index", index);
+        model.addAttribute("keyword", keyword);
+        return "ais/ship";
+    }
+
+    /**
+     * 查询船舶信息
+     * 
+     * @param model
+     * @param page
+     * @param keyword
+     *            eg 中华
+     * @return eg:{pagecur:1,pagesize:2,amount:28,totals:28,tk:0,details:[{imo:"0",id:"924781563",callsign:"",country:""
+     *         ,type:"9",name:"ZHONG HUA"
+     *         ,mmsi:"924781563",new_type:9,state:2,lasttm:1383519189,dwt:0,built:0,spd:0.0},{imo:"0",id:
+     *         "S9920121206309727",callsign:"0",country:"",type:"7",name:"ZHONG HUA"
+     *         ,mmsi:"418901234",new_type:7,state:2,lasttm:1359432309,dwt:0,built:0,spd:0.0}]}
+     */
+    @RequestMapping("/searchShip2")
+    public String searchCbxx2(Model model, SimplePageRequest page, String keyword) {
+        // 查询船舶信息
+        searchShip(model, page, keyword);
+        model.addAttribute("keyword", keyword);
+        return "ais/ship2";
+    }
+
+    /**
+     * 查询船舶信息
+     * 
+     * @param model
+     * @param page
+     * @param keyword
+     */
+    private void searchShip(Model model, SimplePageRequest page, String keyword) {
+        if (page.getRows() == 0) {
+            page.setRows(10);
+        }
+        if (StringUtils.isEmpty(keyword)) {
+            model.addAttribute("page", page);
+            return;
+        }
+        String res = hscbdtService.searchStringResultByKeyword(keyword, page.getPage(), page.getRows());
+        if (res == null) {
+            model.addAttribute("page", page);
+            return;
+        }
+        JSONObject jo = JSONObject.parseObject(res);
+        int pagecur = jo.getIntValue("pagecur");
+        if (null != jo) {
+            int pagesize = jo.getIntValue("pagesize");
+            if (pagesize == 1) {
+                pagesize = 10;
+            }
+            int amount = jo.getIntValue("amount");
+            model.addAttribute("pagesize", pagesize);
+            double totalpage = 0;
+            if (0 != pagesize) {
+                totalpage = Math.ceil(amount * 1.0 / pagesize);
+            }
+            model.addAttribute("totalpage", (int) totalpage);
+            model.addAttribute("totalsize", amount);
+            page.setPage(pagecur);
+            if (0 == page.getPage()) {
+                page.setPage(1);
+            }
+            model.addAttribute("page", page);
+            model.addAttribute("list", jo.getJSONArray("details"));
+        }
+    }
+
+    /**
+     * 根据船舶mmsi获取船舶轨迹
+     * 
+     * @param mmsi
+     */
+    @RequestMapping("/shipTrack")
+    @ResponseBody
+    public ShipVo findShipTrack(String mmsi, String dayNum) {
+        Calendar c = Calendar.getInstance();
+        c.add(Calendar.DAY_OF_YEAR, -Integer.parseInt(dayNum));
+        // 查询7天轨迹记录
+        String track = hscbdtService.findTrack(mmsi, c.getTime(), new Date());
+        // 返回船舶vo
+        ShipVo shipVo = new ShipVo();
+        shipVo.setMmsi(mmsi);
+        List<ShipPosition> routeList = new ArrayList<ShipPosition>();
+        ShipPosition routeVo = null;
+        // 解析逗号分隔字符串
+        String[] routeArr = track.split(Constants.STR_COMMA);
+        for (int i = 0; i < routeArr.length; i++) {
+            // 解析 “|” 号分隔字符串
+            String str = routeArr[i];
+            String[] strArr = str.split("\\|");
+            if (strArr.length > 0) {
+                routeVo = new ShipPosition();
+                routeVo.setSort(i + 1);
+                routeVo.setLon(strArr[1]);
+                routeVo.setLat(strArr[2]);
+                routeVo.setTime(strArr[3]);
+                routeVo.setAngle(strArr[4]);
+                routeList.add(routeVo);
+            }
+        }
+        shipVo.setRoute(routeList);
+        return shipVo;
+    }
+
+    /**
+     * 保存<br>
+     * 
+     * @param entity
+     * @return
+     */
+    @RequestMapping("saveSj")
+    @ResponseBody
+    public WebJsonResult saveSj(TAisSj entity) {
+        Map<String, String> mapParam = new HashMap<String, String>();
+        aisService.saveSj(entity, mapParam);
+        return success();
+    }
+
+    /**
+     * 根据经纬度判断是否在江苏市界范围内
+     * 
+     * @param lon
+     * @param lat
+     * @return
+     */
+    @RequestMapping("isJssjRange")
+    @ResponseBody
+    public Map<String, Object> isJssjRange(String mmsi) {
+        // http://localhost:8080/jdcweb/ais/isJssjRange?lon=119.719807&lat=32.708474
+        JSONObject jsonObj = JSONObject.parseObject(hscbdtService.searchDynamicByMMSI(mmsi));
+        Map<String, Object> retParam = new HashMap<String, Object>();
+        boolean isRange = aisService.isJssjRange(jsonObj.getString("x"), jsonObj.getString("y"));
+        if (isRange) {
+            retParam.put("isRange", "Y");
+        }
+        else {
+            retParam.put("isRange", "N");
+        }
+        return retParam;
+    }
+
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/dao/CbjbxxDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.ais.dao;
+
+import com.jsjty.jdc.web.ais.entity.CbjbxxEntity;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface CbjbxxDao  extends SecRepository<CbjbxxEntity,String>{
+}

+ 12 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/dao/TAisSjDao.java

@@ -0,0 +1,12 @@
+package com.jsjty.jdc.web.ais.dao;
+
+import com.jsjty.jdc.web.ais.entity.TAisSj;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * package com.jsjty.jdc.web.air.dao
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+public interface TAisSjDao  extends SecRepository<TAisSj,String>{
+}

+ 233 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/AisDynamic.java

@@ -0,0 +1,233 @@
+package com.jsjty.jdc.web.ais.entity;
+
+import java.io.Serializable;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public class AisDynamic implements Serializable {
+    /** serialVersionUID  */
+    private static final long serialVersionUID = 1L;
+    private String mmsi;  //船舶MMSI
+    private long time;  //实时信号时间
+    private double lon;   //经度
+    private double lat;   //纬度
+    private String course;//航迹向
+    private String truehead;//船首向
+    private String name;   //船名
+    private String ship_type;//船舶以及货物类型
+    private String imo;   //船舶imo
+    private String status;//航行状态
+    private String speed; //航行速度
+    private String eta;   //预计到港时间
+    private String dest;  //目的港
+    private double length;//船长
+    private double width;  //船宽
+    private String callsign;//呼号
+    private String flag;   //船旗
+    private String build;   //建造时间
+    private String port;    //船籍港
+    private String danger;// 是否危险品
+    private String match;
+    private String sbdlb;
+    public String getSbdlb() {
+        return sbdlb;
+    }
+
+    public void setSbdlb(String sbdlb) {
+        this.sbdlb = sbdlb;
+    }
+
+    public String getMatch() {
+        return match;
+    }
+
+    public void setMatch(String match) {
+        this.match = match;
+    }
+
+    public String getDanger() {
+        return danger;
+    }
+
+    public void setDanger(String danger) {
+        this.danger = danger;
+    }
+
+    public String getMmsi() {
+        return mmsi;
+    }
+
+    public void setMmsi(String mmsi) {
+        this.mmsi = mmsi;
+    }
+
+    public long getTime() {
+        return time;
+    }
+
+    public void setTime(long time) {
+        this.time = time;
+    }
+
+    public double getLon() {
+        return lon;
+    }
+
+    public void setLon(double lon) {
+        this.lon = lon;
+    }
+
+    public double getLat() {
+        return lat;
+    }
+
+    public void setLat(double lat) {
+        this.lat = lat;
+    }
+
+    public String getCourse() {
+        return course;
+    }
+
+    public void setCourse(String course) {
+        this.course = course;
+    }
+
+    public String getTruehead() {
+        return truehead;
+    }
+
+    public void setTruehead(String truehead) {
+        this.truehead = truehead;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getShip_type() {
+        return ship_type;
+    }
+
+    public void setShip_type(String ship_type) {
+        this.ship_type = ship_type;
+    }
+
+    public String getImo() {
+        return imo;
+    }
+
+    public void setImo(String imo) {
+        this.imo = imo;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(String speed) {
+        this.speed = speed;
+    }
+
+    public String getEta() {
+        return eta;
+    }
+
+    public void setEta(String eta) {
+        this.eta = eta;
+    }
+
+    public String getDest() {
+        return dest;
+    }
+
+    public void setDest(String dest) {
+        this.dest = dest;
+    }
+
+    public double getLength() {
+        return length;
+    }
+
+    public void setLength(double length) {
+        this.length = length;
+    }
+
+    public double getWidth() {
+        return width;
+    }
+
+    public void setWidth(double width) {
+        this.width = width;
+    }
+
+    public String getCallsign() {
+        return callsign;
+    }
+
+    public void setCallsign(String callsign) {
+        this.callsign = callsign;
+    }
+
+    public String getFlag() {
+        return flag;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public String getBuild() {
+        return build;
+    }
+
+    public void setBuild(String build) {
+        this.build = build;
+    }
+
+    public String getPort() {
+        return port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    @Override
+    public String toString() {
+        return "AisDynamic{" +
+                "mmsi='" + mmsi + '\'' +
+                ", time='" + time + '\'' +
+                ", lon='" + lon + '\'' +
+                ", lat='" + lat + '\'' +
+                ", course='" + course + '\'' +
+                ", truehead='" + truehead + '\'' +
+                ", name='" + name + '\'' +
+                ", ship_type='" + ship_type + '\'' +
+                ", imo='" + imo + '\'' +
+                ", status='" + status + '\'' +
+                ", speed='" + speed + '\'' +
+                ", eta='" + eta + '\'' +
+                ", dest='" + dest + '\'' +
+                ", length='" + length + '\'' +
+                ", width='" + width + '\'' +
+                ", callsign='" + callsign + '\'' +
+                ", flag='" + flag + '\'' +
+                ", build='" + build + '\'' +
+                ", port='" + port + '\'' +
+                '}';
+    }
+}

+ 457 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/CbjbxxEntity.java

@@ -0,0 +1,457 @@
+package com.jsjty.jdc.web.ais.entity;
+
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * package com.jsjty.jdc.web.air.entity
+ * Author  Administrator
+ * Created by 2015/7/31.
+ */
+@Entity
+@Table(name = "T_HS_CBJBXX")
+public class CbjbxxEntity extends BaseEntity<String> {
+
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+    
+    private String cbbh;
+    private String cbfl;
+    private String cbdjh;
+    private String zwcm;
+    private String ywcm;
+    private String ccdjh;
+    private String cjdjh;
+    private String cbhh;
+    private String imobh;
+    private String pbh;
+    private String gjdm;
+    private String hcnhcbz;
+    private String hx;
+    private String hqdm;
+    private String cjgdm;
+    private String cjg;
+    private String cbzldm;
+    private String ctcldm;
+    private Date jcrq;
+    private String zcc;
+    private Double cbcd;
+    private Double cbxk;
+    private Double cbxs;
+    private Double zd;
+    private Double jd;
+    private Double zzzd;
+    private String zjzldm;
+    private Double zjsl;
+    private Double zjgl;
+    private String tjqzldm;
+    private Double tjqsl;
+    private Double xjmzcs;
+    private String hdkfdj;
+    private Double zxgx;
+    private Double xw;
+    private Double cw;
+    private Double kw;
+    private Double hs;
+    private String cbsyr;
+    private String cbjyr;
+    private String sssjhsjg;
+    private String cjsdm;
+    private Double zdaqpyrs;
+    private Double jssbzdrs;
+    private String ickh;
+    private String txm;
+    private String cbbsh;
+    private String bz;
+    private String fkbz;
+    private String djbz;
+    private String lzbz;
+    private String jgdm;
+    private Date czsj;
+    private String czydm;
+    private String gxbz;
+    private Date mrut;
+    private String xxly;
+    private Date mtime;
+    private String ywcm2;
+    /** 建成日期格式化 */
+    private String jcrqstr;
+    
+    @Id
+    public String getCbbh() {
+        return cbbh;
+    }
+    public void setCbbh(String cbbh) {
+        this.cbbh = cbbh;
+    }
+    
+    public String getCbfl() {
+        return cbfl;
+    }
+    public void setCbfl(String cbfl) {
+        this.cbfl = cbfl;
+    }
+    public String getCbdjh() {
+        return cbdjh;
+    }
+    public void setCbdjh(String cbdjh) {
+        this.cbdjh = cbdjh;
+    }
+    public String getZwcm() {
+        return zwcm;
+    }
+    public void setZwcm(String zwcm) {
+        this.zwcm = zwcm;
+    }
+    public String getYwcm() {
+        return ywcm;
+    }
+    public void setYwcm(String ywcm) {
+        this.ywcm = ywcm;
+    }
+    public String getCcdjh() {
+        return ccdjh;
+    }
+    public void setCcdjh(String ccdjh) {
+        this.ccdjh = ccdjh;
+    }
+    public String getCjdjh() {
+        return cjdjh;
+    }
+    public void setCjdjh(String cjdjh) {
+        this.cjdjh = cjdjh;
+    }
+    public String getCbhh() {
+        return cbhh;
+    }
+    public void setCbhh(String cbhh) {
+        this.cbhh = cbhh;
+    }
+    public String getImobh() {
+        return imobh;
+    }
+    public void setImobh(String imobh) {
+        this.imobh = imobh;
+    }
+    public String getPbh() {
+        return pbh;
+    }
+    public void setPbh(String pbh) {
+        this.pbh = pbh;
+    }
+    public String getGjdm() {
+        return gjdm;
+    }
+    public void setGjdm(String gjdm) {
+        this.gjdm = gjdm;
+    }
+    public String getHcnhcbz() {
+        return hcnhcbz;
+    }
+    public void setHcnhcbz(String hcnhcbz) {
+        this.hcnhcbz = hcnhcbz;
+    }
+    public String getHx() {
+        return hx;
+    }
+    public void setHx(String hx) {
+        this.hx = hx;
+    }
+    public String getHqdm() {
+        return hqdm;
+    }
+    public void setHqdm(String hqdm) {
+        this.hqdm = hqdm;
+    }
+    public String getCjgdm() {
+        return cjgdm;
+    }
+    public void setCjgdm(String cjgdm) {
+        this.cjgdm = cjgdm;
+    }
+    public String getCjg() {
+        return cjg;
+    }
+    public void setCjg(String cjg) {
+        this.cjg = cjg;
+    }
+    public String getCbzldm() {
+        return cbzldm;
+    }
+    public void setCbzldm(String cbzldm) {
+        this.cbzldm = cbzldm;
+    }
+    public String getCtcldm() {
+        return ctcldm;
+    }
+    public void setCtcldm(String ctcldm) {
+        this.ctcldm = ctcldm;
+    }
+    public Date getJcrq() {
+        return jcrq;
+    }
+    public void setJcrq(Date jcrq) {
+        this.jcrq = jcrq;
+    }
+    public String getZcc() {
+        return zcc;
+    }
+    public void setZcc(String zcc) {
+        this.zcc = zcc;
+    }
+    public Double getCbcd() {
+        return cbcd;
+    }
+    public void setCbcd(Double cbcd) {
+        this.cbcd = cbcd;
+    }
+    public Double getCbxk() {
+        return cbxk;
+    }
+    public void setCbxk(Double cbxk) {
+        this.cbxk = cbxk;
+    }
+    public Double getCbxs() {
+        return cbxs;
+    }
+    public void setCbxs(Double cbxs) {
+        this.cbxs = cbxs;
+    }
+    public Double getZd() {
+        return zd;
+    }
+    public void setZd(Double zd) {
+        this.zd = zd;
+    }
+    public Double getJd() {
+        return jd;
+    }
+    public void setJd(Double jd) {
+        this.jd = jd;
+    }
+    public Double getZzzd() {
+        return zzzd;
+    }
+    public void setZzzd(Double zzzd) {
+        this.zzzd = zzzd;
+    }
+    public String getZjzldm() {
+        return zjzldm;
+    }
+    public void setZjzldm(String zjzldm) {
+        this.zjzldm = zjzldm;
+    }
+    public Double getZjsl() {
+        return zjsl;
+    }
+    public void setZjsl(Double zjsl) {
+        this.zjsl = zjsl;
+    }
+    public Double getZjgl() {
+        return zjgl;
+    }
+    public void setZjgl(Double zjgl) {
+        this.zjgl = zjgl;
+    }
+    public String getTjqzldm() {
+        return tjqzldm;
+    }
+    public void setTjqzldm(String tjqzldm) {
+        this.tjqzldm = tjqzldm;
+    }
+    public Double getTjqsl() {
+        return tjqsl;
+    }
+    public void setTjqsl(Double tjqsl) {
+        this.tjqsl = tjqsl;
+    }
+    public Double getXjmzcs() {
+        return xjmzcs;
+    }
+    public void setXjmzcs(Double xjmzcs) {
+        this.xjmzcs = xjmzcs;
+    }
+    public String getHdkfdj() {
+        return hdkfdj;
+    }
+    public void setHdkfdj(String hdkfdj) {
+        this.hdkfdj = hdkfdj;
+    }
+    public Double getZxgx() {
+        return zxgx;
+    }
+    public void setZxgx(Double zxgx) {
+        this.zxgx = zxgx;
+    }
+    public Double getXw() {
+        return xw;
+    }
+    public void setXw(Double xw) {
+        this.xw = xw;
+    }
+    public Double getCw() {
+        return cw;
+    }
+    public void setCw(Double cw) {
+        this.cw = cw;
+    }
+    public Double getKw() {
+        return kw;
+    }
+    public void setKw(Double kw) {
+        this.kw = kw;
+    }
+    public Double getHs() {
+        return hs;
+    }
+    public void setHs(Double hs) {
+        this.hs = hs;
+    }
+    public String getCbsyr() {
+        return cbsyr;
+    }
+    public void setCbsyr(String cbsyr) {
+        this.cbsyr = cbsyr;
+    }
+    public String getCbjyr() {
+        return cbjyr;
+    }
+    public void setCbjyr(String cbjyr) {
+        this.cbjyr = cbjyr;
+    }
+    public String getSssjhsjg() {
+        return sssjhsjg;
+    }
+    public void setSssjhsjg(String sssjhsjg) {
+        this.sssjhsjg = sssjhsjg;
+    }
+    public String getCjsdm() {
+        return cjsdm;
+    }
+    public void setCjsdm(String cjsdm) {
+        this.cjsdm = cjsdm;
+    }
+    public Double getZdaqpyrs() {
+        return zdaqpyrs;
+    }
+    public void setZdaqpyrs(Double zdaqpyrs) {
+        this.zdaqpyrs = zdaqpyrs;
+    }
+    public Double getJssbzdrs() {
+        return jssbzdrs;
+    }
+    public void setJssbzdrs(Double jssbzdrs) {
+        this.jssbzdrs = jssbzdrs;
+    }
+    public String getIckh() {
+        return ickh;
+    }
+    public void setIckh(String ickh) {
+        this.ickh = ickh;
+    }
+    public String getTxm() {
+        return txm;
+    }
+    public void setTxm(String txm) {
+        this.txm = txm;
+    }
+    public String getCbbsh() {
+        return cbbsh;
+    }
+    public void setCbbsh(String cbbsh) {
+        this.cbbsh = cbbsh;
+    }
+    public String getBz() {
+        return bz;
+    }
+    public void setBz(String bz) {
+        this.bz = bz;
+    }
+    public String getFkbz() {
+        return fkbz;
+    }
+    public void setFkbz(String fkbz) {
+        this.fkbz = fkbz;
+    }
+    public String getDjbz() {
+        return djbz;
+    }
+    public void setDjbz(String djbz) {
+        this.djbz = djbz;
+    }
+    public String getLzbz() {
+        return lzbz;
+    }
+    public void setLzbz(String lzbz) {
+        this.lzbz = lzbz;
+    }
+    public String getJgdm() {
+        return jgdm;
+    }
+    public void setJgdm(String jgdm) {
+        this.jgdm = jgdm;
+    }
+    public Date getCzsj() {
+        return czsj;
+    }
+    public void setCzsj(Date czsj) {
+        this.czsj = czsj;
+    }
+    public String getCzydm() {
+        return czydm;
+    }
+    public void setCzydm(String czydm) {
+        this.czydm = czydm;
+    }
+    public String getGxbz() {
+        return gxbz;
+    }
+    public void setGxbz(String gxbz) {
+        this.gxbz = gxbz;
+    }
+    public Date getMrut() {
+        return mrut;
+    }
+    public void setMrut(Date mrut) {
+        this.mrut = mrut;
+    }
+    public String getXxly() {
+        return xxly;
+    }
+    public void setXxly(String xxly) {
+        this.xxly = xxly;
+    }
+    public Date getMtime() {
+        return mtime;
+    }
+    public void setMtime(Date mtime) {
+        this.mtime = mtime;
+    }
+    public String getYwcm2() {
+        return ywcm2;
+    }
+    public void setYwcm2(String ywcm2) {
+        this.ywcm2 = ywcm2;
+    }
+    @Transient
+    public String getJcrqstr() {
+        return jcrqstr;
+    }
+    public void setJcrqstr(String jcrqstr) {
+        this.jcrqstr = jcrqstr;
+    }
+
+    
+    
+    
+
+
+}

+ 55 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/RegionAis.java

@@ -0,0 +1,55 @@
+package com.jsjty.jdc.web.ais.entity;
+
+import java.io.Serializable;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public class RegionAis implements Serializable{
+    private String seq;  //序号
+    private String lb; //经度
+    private String rt; //纬度
+    private String circle; //查询半径
+
+    public String getSeq() {
+        return seq;
+    }
+
+    public void setSeq(String seq) {
+        this.seq = seq;
+    }
+
+    public String getLb() {
+        return lb;
+    }
+
+    public void setLb(String lb) {
+        this.lb = lb;
+    }
+
+    public String getRt() {
+        return rt;
+    }
+
+    public void setRt(String rt) {
+        this.rt = rt;
+    }
+
+    public String getCircle() {
+        return circle;
+    }
+
+    public void setCircle(String circle) {
+        this.circle = circle;
+    }
+
+    @Override
+    public String toString() {
+        return "RegionAis{" +
+                "seq=" + seq +
+                ", lb='" + lb + '\'' +
+                ", rt='" + rt + '\'' +
+                ", circle='" + circle + '\'' +
+                '}';
+    }
+}

+ 276 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/TAisHistory.java

@@ -0,0 +1,276 @@
+package com.jsjty.jdc.web.ais.entity;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2015/8/10.
+ */
+@Entity
+@javax.persistence.Table(name = "t_ais_history")
+public class TAisHistory {
+
+
+    private String id;
+
+    private String mmsi;
+
+    private Date time;
+
+    private Double lon;
+
+    private Double lat;
+
+    private Double course;
+
+    private Double truehead;
+
+    private String name;
+
+    private Integer shipType;
+
+    private String imo;
+
+    private Integer status;
+
+    private Double speed;
+
+    private Date eta;
+
+    private String dest;
+
+    private Double length;
+
+    private Double width;
+
+    private String callsign;
+
+    private String flag;
+
+    private String build;
+
+    private String port;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getMmsi() {
+        return mmsi;
+    }
+
+    public void setMmsi(String mmsi) {
+        this.mmsi = mmsi;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    public Double getCourse() {
+        return course;
+    }
+
+    public void setCourse(Double course) {
+        this.course = course;
+    }
+
+    public Double getTruehead() {
+        return truehead;
+    }
+
+    public void setTruehead(Double truehead) {
+        this.truehead = truehead;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getShipType() {
+        return shipType;
+    }
+
+    public void setShipType(Integer shipType) {
+        this.shipType = shipType;
+    }
+
+    public String getImo() {
+        return imo;
+    }
+
+    public void setImo(String imo) {
+        this.imo = imo;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+
+    public Date getEta() {
+        return eta;
+    }
+
+    public void setEta(Date eta) {
+        this.eta = eta;
+    }
+
+    public String getDest() {
+        return dest;
+    }
+
+    public void setDest(String dest) {
+        this.dest = dest;
+    }
+
+    public Double getLength() {
+        return length;
+    }
+
+    public void setLength(Double length) {
+        this.length = length;
+    }
+
+    public Double getWidth() {
+        return width;
+    }
+
+    public void setWidth(Double width) {
+        this.width = width;
+    }
+
+    public String getCallsign() {
+        return callsign;
+    }
+
+    public void setCallsign(String callsign) {
+        this.callsign = callsign;
+    }
+
+    public String getFlag() {
+        return flag;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public String getBuild() {
+        return build;
+    }
+
+    public void setBuild(String build) {
+        this.build = build;
+    }
+
+    public String getPort() {
+        return port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TAisHistory that = (TAisHistory) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (mmsi != null ? !mmsi.equals(that.mmsi) : that.mmsi != null) return false;
+        if (time != null ? !time.equals(that.time) : that.time != null) return false;
+        if (lon != null ? !lon.equals(that.lon) : that.lon != null) return false;
+        if (lat != null ? !lat.equals(that.lat) : that.lat != null) return false;
+        if (course != null ? !course.equals(that.course) : that.course != null) return false;
+        if (truehead != null ? !truehead.equals(that.truehead) : that.truehead != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (shipType != null ? !shipType.equals(that.shipType) : that.shipType != null) return false;
+        if (imo != null ? !imo.equals(that.imo) : that.imo != null) return false;
+        if (status != null ? !status.equals(that.status) : that.status != null) return false;
+        if (speed != null ? !speed.equals(that.speed) : that.speed != null) return false;
+        if (eta != null ? !eta.equals(that.eta) : that.eta != null) return false;
+        if (dest != null ? !dest.equals(that.dest) : that.dest != null) return false;
+        if (length != null ? !length.equals(that.length) : that.length != null) return false;
+        if (width != null ? !width.equals(that.width) : that.width != null) return false;
+        if (callsign != null ? !callsign.equals(that.callsign) : that.callsign != null) return false;
+        if (flag != null ? !flag.equals(that.flag) : that.flag != null) return false;
+        if (build != null ? !build.equals(that.build) : that.build != null) return false;
+        if (port != null ? !port.equals(that.port) : that.port != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (mmsi != null ? mmsi.hashCode() : 0);
+        result = 31 * result + (time != null ? time.hashCode() : 0);
+        result = 31 * result + (lon != null ? lon.hashCode() : 0);
+        result = 31 * result + (lat != null ? lat.hashCode() : 0);
+        result = 31 * result + (course != null ? course.hashCode() : 0);
+        result = 31 * result + (truehead != null ? truehead.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (shipType != null ? shipType.hashCode() : 0);
+        result = 31 * result + (imo != null ? imo.hashCode() : 0);
+        result = 31 * result + (status != null ? status.hashCode() : 0);
+        result = 31 * result + (speed != null ? speed.hashCode() : 0);
+        result = 31 * result + (eta != null ? eta.hashCode() : 0);
+        result = 31 * result + (dest != null ? dest.hashCode() : 0);
+        result = 31 * result + (length != null ? length.hashCode() : 0);
+        result = 31 * result + (width != null ? width.hashCode() : 0);
+        result = 31 * result + (callsign != null ? callsign.hashCode() : 0);
+        result = 31 * result + (flag != null ? flag.hashCode() : 0);
+        result = 31 * result + (build != null ? build.hashCode() : 0);
+        result = 31 * result + (port != null ? port.hashCode() : 0);
+        return result;
+    }
+}

+ 276 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/TAisRealtime.java

@@ -0,0 +1,276 @@
+package com.jsjty.jdc.web.ais.entity;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Basic;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.sql.Timestamp;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2015/8/10.
+ */
+@Entity
+@javax.persistence.Table(name = "t_ais_realtime" )
+public class TAisRealtime {
+    private String id;
+
+    private String mmsi;
+
+    private Date time;
+
+    private Double lon;
+
+    private Double lat;
+
+    private Double course;
+
+    private Double truehead;
+
+    private String name;
+
+    private Integer shipType;
+
+    private String imo;
+
+    private Integer status;
+
+    private Double speed;
+
+    private Date eta;
+
+    private String dest;
+
+    private Double length;
+
+    private Double width;
+
+    private String callsign;
+
+    private String flag;
+
+    private String build;
+
+    private String port;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getMmsi() {
+        return mmsi;
+    }
+
+    public void setMmsi(String mmsi) {
+        this.mmsi = mmsi;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    public Double getCourse() {
+        return course;
+    }
+
+    public void setCourse(Double course) {
+        this.course = course;
+    }
+
+    public Double getTruehead() {
+        return truehead;
+    }
+
+    public void setTruehead(Double truehead) {
+        this.truehead = truehead;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getShipType() {
+        return shipType;
+    }
+
+    public void setShipType(Integer shipType) {
+        this.shipType = shipType;
+    }
+
+    public String getImo() {
+        return imo;
+    }
+
+    public void setImo(String imo) {
+        this.imo = imo;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+
+    public Date getEta() {
+        return eta;
+    }
+
+    public void setEta(Date eta) {
+        this.eta = eta;
+    }
+
+    public String getDest() {
+        return dest;
+    }
+
+    public void setDest(String dest) {
+        this.dest = dest;
+    }
+
+    public Double getLength() {
+        return length;
+    }
+
+    public void setLength(Double length) {
+        this.length = length;
+    }
+
+    public Double getWidth() {
+        return width;
+    }
+
+    public void setWidth(Double width) {
+        this.width = width;
+    }
+
+    public String getCallsign() {
+        return callsign;
+    }
+
+    public void setCallsign(String callsign) {
+        this.callsign = callsign;
+    }
+
+    public String getFlag() {
+        return flag;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public String getBuild() {
+        return build;
+    }
+
+    public void setBuild(String build) {
+        this.build = build;
+    }
+
+    public String getPort() {
+        return port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TAisRealtime that = (TAisRealtime) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (mmsi != null ? !mmsi.equals(that.mmsi) : that.mmsi != null) return false;
+        if (time != null ? !time.equals(that.time) : that.time != null) return false;
+        if (lon != null ? !lon.equals(that.lon) : that.lon != null) return false;
+        if (lat != null ? !lat.equals(that.lat) : that.lat != null) return false;
+        if (course != null ? !course.equals(that.course) : that.course != null) return false;
+        if (truehead != null ? !truehead.equals(that.truehead) : that.truehead != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (shipType != null ? !shipType.equals(that.shipType) : that.shipType != null) return false;
+        if (imo != null ? !imo.equals(that.imo) : that.imo != null) return false;
+        if (status != null ? !status.equals(that.status) : that.status != null) return false;
+        if (speed != null ? !speed.equals(that.speed) : that.speed != null) return false;
+        if (eta != null ? !eta.equals(that.eta) : that.eta != null) return false;
+        if (dest != null ? !dest.equals(that.dest) : that.dest != null) return false;
+        if (length != null ? !length.equals(that.length) : that.length != null) return false;
+        if (width != null ? !width.equals(that.width) : that.width != null) return false;
+        if (callsign != null ? !callsign.equals(that.callsign) : that.callsign != null) return false;
+        if (flag != null ? !flag.equals(that.flag) : that.flag != null) return false;
+        if (build != null ? !build.equals(that.build) : that.build != null) return false;
+        if (port != null ? !port.equals(that.port) : that.port != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (mmsi != null ? mmsi.hashCode() : 0);
+        result = 31 * result + (time != null ? time.hashCode() : 0);
+        result = 31 * result + (lon != null ? lon.hashCode() : 0);
+        result = 31 * result + (lat != null ? lat.hashCode() : 0);
+        result = 31 * result + (course != null ? course.hashCode() : 0);
+        result = 31 * result + (truehead != null ? truehead.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (shipType != null ? shipType.hashCode() : 0);
+        result = 31 * result + (imo != null ? imo.hashCode() : 0);
+        result = 31 * result + (status != null ? status.hashCode() : 0);
+        result = 31 * result + (speed != null ? speed.hashCode() : 0);
+        result = 31 * result + (eta != null ? eta.hashCode() : 0);
+        result = 31 * result + (dest != null ? dest.hashCode() : 0);
+        result = 31 * result + (length != null ? length.hashCode() : 0);
+        result = 31 * result + (width != null ? width.hashCode() : 0);
+        result = 31 * result + (callsign != null ? callsign.hashCode() : 0);
+        result = 31 * result + (flag != null ? flag.hashCode() : 0);
+        result = 31 * result + (build != null ? build.hashCode() : 0);
+        result = 31 * result + (port != null ? port.hashCode() : 0);
+        return result;
+    }
+}

+ 84 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/entity/TAisSj.java

@@ -0,0 +1,84 @@
+package com.jsjty.jdc.web.ais.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import com.xtframe.sec.common.BaseEntity;
+
+/**
+ * Created by Administrator on 2015/8/10.
+ */
+@Entity
+@javax.persistence.Table(name = "t_jdc_sj" )
+public class TAisSj extends BaseEntity<String> {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    
+    private String province;
+    
+    private String city;
+    
+    private Double lon;
+
+    private Double lat;
+
+    private Integer sortno;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    public Integer getSortno() {
+        return sortno;
+    }
+
+    public void setSortno(Integer sortno) {
+        this.sortno = sortno;
+    }
+}

+ 37 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/service/AisService.java

@@ -0,0 +1,37 @@
+package com.jsjty.jdc.web.ais.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.jsjty.jdc.web.ais.entity.TAisSj;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface AisService {
+
+    /**
+     * 查询船舶明细
+     * 
+     * @param name
+     *            船舶名称
+     * @return
+     */
+    List<Map<String, Object>> findShipDetail(String name);
+    
+    /**
+     * 保存江苏市界数据
+     * @param entity
+     * @param mapParam
+     * @return
+     */
+    TAisSj saveSj(TAisSj entity, Map<String, String> mapParam);
+    
+    /**
+     * 根据经纬度判断是否在江苏市界范围内
+     * @param lon
+     * @param lat
+     */
+    boolean isJssjRange(String lon, String lat);
+
+}

+ 112 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/service/impl/AisServiceImpl.java

@@ -0,0 +1,112 @@
+package com.jsjty.jdc.web.ais.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.transaction.Transactional;
+
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.Cache;
+import org.springframework.cache.ehcache.EhCacheCacheManager;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
+import org.springframework.stereotype.Service;
+
+import com.jsjty.jdc.web.ais.dao.TAisSjDao;
+import com.jsjty.jdc.web.ais.entity.TAisSj;
+import com.jsjty.jdc.web.ais.service.AisService;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.xtframe.util.ObjectUtils;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+@Service
+public class AisServiceImpl implements AisService {
+    @Autowired
+    NamedParameterJdbcTemplate template;
+    
+    @Autowired
+    private TAisSjDao tAisSjDao;
+    
+    @Autowired
+    private EhCacheCacheManager cacheManager;
+
+    /**
+     * 查询船舶明细
+     * 
+     * @param name
+     *            船舶名称
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> findShipDetail(String name) {
+        Map<String, Object> params = new HashMap<>();
+        String strSql = "select a.*,date_format(a.JCRQ,'%Y-%m-%d') JCRQSTR" + " from t_hs_cbjbxx a where a.YWCM2 = '"
+                + name.replace(" ", "") + "' or a.cbbh='" + name + "'";
+        List<Map<String, Object>> mapList = template.queryForList(strSql, params);
+        return mapList;
+    }
+
+    @Override
+    @Transactional
+    public TAisSj saveSj(TAisSj entity, Map<String, String> mapParam) {
+        TAisSj retEntity;
+        // 保存实体数据
+        if(StringUtils.isEmpty(entity.getId())) {
+            retEntity = tAisSjDao.save(entity);
+        } else {
+            TAisSj saveEntity = tAisSjDao.findOne(entity.getId());
+            BeanUtils.copyProperties(entity, saveEntity);
+            retEntity = tAisSjDao.save(saveEntity);
+        }
+        return retEntity;
+    }
+
+    /**
+     * 根据经纬度判断是否在江苏市界范围内
+     * @param lon
+     * @param lat
+     */
+    @Override
+    public boolean isJssjRange(String lon, String lat) {
+        boolean flag = false;
+        Cache cache = cacheManager.getCache("jssjdataCache");
+        Cache.ValueWrapper valueWrapper = cache.get("coordinates");
+        Coordinate[] coordinates = null;
+        // 判断坐标点缓存是否存在
+        if (ObjectUtils.isNotEmpty(valueWrapper) && ObjectUtils.isNotEmpty(valueWrapper.get())) {
+            coordinates = (Coordinate[]) valueWrapper.get();
+        } else {
+            // 获取市界数据
+            Map<String, Object> params = new HashMap<>();
+            String sql = "select * from t_jdc_sj t where province='江苏省' order by sortno asc";
+            List<TAisSj> listAisSj = tAisSjDao.nativeQuery(sql, TAisSj.class, params);
+            // 将市界数据存放到缓存中
+            if(null != listAisSj && listAisSj.size() > 0) {
+                Coordinate coordinate = null;
+                coordinates = new Coordinate[listAisSj.size()];
+                for(int i = 0; i < listAisSj.size(); i++) {
+                    TAisSj bean = listAisSj.get(i);
+                    coordinate = new Coordinate(bean.getLon(), bean.getLat());
+                    coordinates[i] = coordinate;
+                }
+                cache.put("coordinates", coordinates);
+            }
+        }
+        // 设置坐标点
+        GeometryFactory geometryFactory = new GeometryFactory();
+        Geometry point = geometryFactory.createPoint(
+                new Coordinate(Double.parseDouble(lon), Double.parseDouble(lat)));
+        // 设置坐标几何形状
+        Geometry polygon = geometryFactory.createPolygon(coordinates);
+        // 判断范围
+        flag = polygon.contains(point);
+        // 返回
+        return flag;
+    }
+}

+ 68 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/vo/ShipPosition.java

@@ -0,0 +1,68 @@
+package com.jsjty.jdc.web.ais.vo;
+
+import java.io.Serializable;
+import java.lang.reflect.Type;
+
+/**
+ * package org.mayh.http.model
+ * Author Administrator
+ * Created by 2015/7/23.
+ */
+public class ShipPosition implements Serializable, Type {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    private Integer sort; // 顺序
+    private String lat; // 纬度
+    private String lon; // 经度
+    private String time; // 时间
+    private String angle; // 度数
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public String getLat() {
+        return lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+    }
+
+    public String getLon() {
+        return lon;
+    }
+
+    public void setLon(String lon) {
+        this.lon = lon;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getAngle() {
+        return angle;
+    }
+
+    public void setAngle(String angle) {
+        this.angle = angle;
+    }
+
+    @Override
+    public String toString() {
+        return "ShipPosition [sort=" + sort + ", lat=" + lat + ", lon=" + lon + ", time=" + time + ", angle=" + angle
+                + "]";
+    }
+
+}

+ 33 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/ais/vo/ShipVo.java

@@ -0,0 +1,33 @@
+package com.jsjty.jdc.web.ais.vo;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public class ShipVo implements Serializable {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    
+    private String mmsi;  //船舶MMSI
+    private List<ShipPosition> route; //船舶路径
+
+    public String getMmsi() {
+        return mmsi;
+    }
+
+    public void setMmsi(String mmsi) {
+        this.mmsi = mmsi;
+    }
+
+    public List<ShipPosition> getRoute() {
+        return route;
+    }
+
+    public void setRoute(List<ShipPosition> route) {
+        this.route = route;
+    }
+}

+ 126 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/ctl/BasicDataCtl.java

@@ -0,0 +1,126 @@
+package com.jsjty.jdc.web.basic.ctl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.jsjty.jdc.util.Tree;
+import com.jsjty.jdc.web.basic.entity.TJdcBw;
+import com.jsjty.jdc.web.basic.entity.TJdcGk;
+import com.jsjty.jdc.web.basic.entity.TJdcGq;
+import com.jsjty.jdc.web.basic.entity.TbasicInfo;
+import com.jsjty.jdc.web.basic.entity.TdetailRailstation;
+import com.jsjty.jdc.web.basic.entity.TeventInfo;
+import com.jsjty.jdc.web.basic.service.BasicDataService;
+import com.xtframe.util.StringUtils;
+
+/**
+ * Created by Administrator on 2015/8/4.
+ */
+@Controller
+public class BasicDataCtl {
+
+    @Autowired
+    private BasicDataService basicDataService;
+
+    @RequestMapping("/basicInfo")
+    @ResponseBody
+    public List<TbasicInfo> basicInfo(String type, String name){
+        return basicDataService.findBasicInfo(type, name);
+    }
+
+    @RequestMapping("/eventInfo")
+    @ResponseBody
+    public List<TeventInfo> eventInfo(String type){
+        return basicDataService.findEventByType(type);
+    }
+
+    @RequestMapping("/gangqubygk")
+    @ResponseBody
+    public List<Tree> findGangquByGK(String id) {
+        List<Tree> trees = new ArrayList<>();
+        if(StringUtils.isEmpty(id)){
+            List<TJdcGk> gkInfos =  basicDataService.findGKList();
+            for (TJdcGk gkInfo : gkInfos) {
+                Tree tree = new Tree();
+                tree.setState("closed");
+                tree.setId(gkInfo.getGkdm());
+                tree.setText(gkInfo.getGkmc());
+                tree.setIconCls("tree-gk");
+                trees.add(tree);
+            }
+        }else{
+            List<TJdcGq> gqList = basicDataService.findGQByGKId(id);
+            if(gqList != null && gqList.size() > 0){
+                for (TJdcGq tJdcGq : gqList) {
+                    Tree tree = new Tree();
+                    tree.setState("closed");
+                    tree.setId(tJdcGq.getGqdm());
+                    tree.setText(tJdcGq.getGqmc());
+                    tree.setIconCls("tree-gq");
+                    trees.add(tree);
+                }
+            }else{
+                List<TJdcBw> bwList = basicDataService.findBWByGQId(id);
+                for (TJdcBw tJdcBw : bwList) {
+                    Tree tree = new Tree();
+                    tree.setState("open");
+                    tree.setId(tJdcBw.getId());
+                    tree.setText(tJdcBw.getBwmc());
+                    tree.setIconCls("tree-qy");
+                    trees.add(tree);
+                }
+            }
+        }
+        return trees;
+    }
+
+    @RequestMapping("/findCbData")
+    @ResponseBody
+    public List<Tree> findCbData(String id) {
+        List<Tree> trees = new ArrayList<>();
+        if(StringUtils.isEmpty(id)){
+            List<Map<String, Object>> mapArea =  basicDataService.findShipAreaList();
+            if(null != mapArea  && mapArea.size() > 0){
+                for (Map<String, Object> map : mapArea) {
+                    Tree tree = new Tree();
+                    tree.setState("closed");
+                    if(null != map.get("cjgdm") && null != map.get("cjg")) {
+                        tree.setId(map.get("cjgdm").toString());
+                        tree.setText(map.get("cjg").toString());
+                        tree.setIconCls("");
+                        trees.add(tree);
+                    }
+                }
+            }
+        }else{
+            List<Map<String, Object>> mapShip =  basicDataService.findShipByAreaId(id);
+            if(null != mapShip  && mapShip.size() > 0){
+                for (Map<String, Object> map : mapShip) {
+                    Tree tree = new Tree();
+                    tree.setState("open");
+                    if(null != map.get("ywcm2") && null != map.get("zwcm")) {
+                        tree.setId(map.get("cbbh").toString());
+                        tree.setText(map.get("zwcm").toString());
+                        tree.setPid(id);
+                        tree.setIconCls("");
+                        tree.setAttributes(map);
+                        trees.add(tree);
+                    }
+                }
+            }
+        }
+        return trees;
+    }
+    
+    @RequestMapping("/findRailwayStat")
+    @ResponseBody
+    public List<TbasicInfo> findRailwayStat(String type){
+        return basicDataService.findRailwayStat(type);
+    }
+}

+ 65 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/ctl/BasicDetailCtl.java

@@ -0,0 +1,65 @@
+package com.jsjty.jdc.web.basic.ctl;
+
+import com.jsjty.jdc.web.basic.entity.TJdcBw;
+import com.jsjty.jdc.web.basic.entity.TdetailGangqu;
+import com.jsjty.jdc.web.basic.service.BasicDetailService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * Created by Administrator on 2015/8/11.
+ */
+@RequestMapping("/detail")
+@Controller
+public class BasicDetailCtl {
+
+    @Autowired
+    private BasicDetailService detailService;
+
+    @RequestMapping("/{gid}/{tabelname}")
+    @ResponseBody
+    public Object findByGid(@PathVariable("gid") String gid, @PathVariable("tabelname") String tablename) {
+        if (tablename.equals("navi_jichang")) return detailService.findAirByGid(gid);
+        if (tablename.equals("navi_chuanzha")) return detailService.findChuanZhaByGid(gid);
+        if (tablename.equals("navi_cjqd")) return detailService.findCjqdByGid(gid);
+        if (tablename.equals("navi_rail_js")) return detailService.findRailstationByGid(gid);
+        if (tablename.equals("navi_shoufeizhan")) return detailService.findShoufeizhanByGid(gid);
+        if (tablename.equals("navi_gangqu")) return detailService.findGangquByGid(gid);
+        if (tablename.equals("navi_fwq")) return detailService.findFwqByGid(gid);
+        if (tablename.equals("navi_jiancezhan")) return detailService.findJiancezhanByGid(gid);
+        if (tablename.equals("navi_kjdq")) return detailService.findKjbridgeByGid(gid);
+        if (tablename.equals("navi_ssfwq")) return detailService.findSsfwq(gid);
+        if (tablename.equals("navi_suidao")) return detailService.findSuidao(gid);
+        if (tablename.equals("navi_keyunzhan")) return detailService.findKeyunzhanByGid(gid);
+        return null;
+    }
+
+    @RequestMapping("/gqdetail/{gqdm}")
+    @ResponseBody
+    public TdetailGangqu findGQDetailByGQDM(@PathVariable("gqdm") String gqdm){
+       return detailService.findGangquByGQDM(gqdm);
+    }
+
+    @RequestMapping("/gqdetailInfo")
+    public String findGQDetailInfo(String gqid, String bwmc, Model model){
+        List<TJdcBw> bwList = detailService.findBWByCondition(gqid, bwmc);
+        model.addAttribute("bwList",bwList);
+        model.addAttribute("gqid",gqid);
+        model.addAttribute("bwmc",bwmc);
+        return "ais/gangquDetail";
+    }
+
+    @RequestMapping("/bwdetail/{bwid}")
+    @ResponseBody
+    public TJdcBw findBWDetail(@PathVariable("bwid")String bwid,Model model){
+        return detailService.findBWByBWId(bwid);
+
+    }
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BWDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TJdcBw;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/20.
+ */
+public interface BWDao extends SecRepository<TJdcBw,String > {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicAirDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailAir;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/4.
+ */
+public interface BasicAirDao extends SecRepository<TdetailAir, String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicChuanZhaDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailChuanzha;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicChuanZhaDao extends SecRepository<TdetailChuanzha,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicCjqdDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailCjqd;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicCjqdDao extends SecRepository<TdetailCjqd,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicDataDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TbasicInfo;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/4.
+ */
+public interface BasicDataDao  extends SecRepository<TbasicInfo, String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicFwqDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailFwq;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicFwqDao extends SecRepository<TdetailFwq,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicGangquDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailGangqu;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicGangquDao extends SecRepository<TdetailGangqu,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicJiancezhanDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailJiancezhan;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicJiancezhanDao extends SecRepository<TdetailJiancezhan,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicKJBridgeDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailKjbridge;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicKJBridgeDao extends SecRepository<TdetailKjbridge,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicKeyunzhanDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailKeyunzhan;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicKeyunzhanDao extends SecRepository<TdetailKeyunzhan,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicRailstationDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailRailstation;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicRailstationDao extends SecRepository<TdetailRailstation, String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicSSfwqDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailSsfwq;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicSSfwqDao extends SecRepository<TdetailSsfwq,String > {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicShoufeizhanDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailShoufeizhan;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicShoufeizhanDao extends SecRepository<TdetailShoufeizhan,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/BasicSuidaoDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TdetailSuidao;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface BasicSuidaoDao extends SecRepository<TdetailSuidao,String> {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/GKDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TJdcGk;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/20.
+ */
+public interface GKDao extends SecRepository<TJdcGk,String > {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/GQDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TJdcGq;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/20.
+ */
+public interface GQDao  extends SecRepository<TJdcGq,String > {
+}

+ 10 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/dao/TrafficEventDao.java

@@ -0,0 +1,10 @@
+package com.jsjty.jdc.web.basic.dao;
+
+import com.jsjty.jdc.web.basic.entity.TeventInfo;
+import com.xtframe.sec.common.SecRepository;
+
+/**
+ * Created by Administrator on 2015/8/6.
+ */
+public interface TrafficEventDao  extends SecRepository<TeventInfo, String> {
+}

+ 515 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TJdcBw.java

@@ -0,0 +1,515 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Basic;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.sql.Timestamp;
+
+/**
+ * Created by Administrator on 2015/8/20.
+ */
+@Entity
+@javax.persistence.Table(name = "T_JDC_BW" )
+public class TJdcBw  extends BaseEntity<String> {
+    private String id;
+    private String xzq;
+
+    private String gkglbm;
+
+    private String szgk;
+
+    private String szgq;
+
+    private String gkjyr;
+
+    private String szmt;
+
+    private String bwmc;
+
+    private String bwdm;
+
+    private String bwfwlx;
+
+    private String bwsx;
+
+    private String bwyt;
+
+    private String zybwfl;
+
+    private String mtqysjss;
+
+    private String mtqywhss;
+
+    private String sjkbnl;
+
+    private String jgkbnl;
+
+    private String hckbnl;
+
+    private String bwcd;
+
+    private String kbnlxztj;
+
+    private String bwlyl;
+
+    private String zb;
+
+    private String bz;
+
+    private Timestamp rksj;
+
+    private String shzt;
+
+    private String shyj;
+
+    private Timestamp shsj;
+
+    private String bwnhwtgnl;
+
+    private String bwnjzxtgnl;
+
+    private String shr;
+
+    private Timestamp jzrq;
+
+    private String sfdwkf;
+
+    private String sfwhp;
+
+    private String szsx;
+
+    private String sclx;
+
+    private String tcnf;
+
+    private String jgysnf;
+
+    private String szzyq;
+
+    private String szgqmc;
+
+    private String szgkmc;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getXzq() {
+        return xzq;
+    }
+
+    public void setXzq(String xzq) {
+        this.xzq = xzq;
+    }
+
+    public String getGkglbm() {
+        return gkglbm;
+    }
+
+    public void setGkglbm(String gkglbm) {
+        this.gkglbm = gkglbm;
+    }
+
+    public String getSzgk() {
+        return szgk;
+    }
+
+    public void setSzgk(String szgk) {
+        this.szgk = szgk;
+    }
+
+    public String getSzgq() {
+        return szgq;
+    }
+
+    public void setSzgq(String szgq) {
+        this.szgq = szgq;
+    }
+
+    public String getGkjyr() {
+        return gkjyr;
+    }
+
+    public void setGkjyr(String gkjyr) {
+        this.gkjyr = gkjyr;
+    }
+
+    public String getSzmt() {
+        return szmt;
+    }
+
+    public void setSzmt(String szmt) {
+        this.szmt = szmt;
+    }
+
+    public String getBwmc() {
+        return bwmc;
+    }
+
+    public void setBwmc(String bwmc) {
+        this.bwmc = bwmc;
+    }
+
+    public String getBwdm() {
+        return bwdm;
+    }
+
+    public void setBwdm(String bwdm) {
+        this.bwdm = bwdm;
+    }
+
+    public String getBwfwlx() {
+        return bwfwlx;
+    }
+
+    public void setBwfwlx(String bwfwlx) {
+        this.bwfwlx = bwfwlx;
+    }
+
+    public String getBwsx() {
+        return bwsx;
+    }
+
+    public void setBwsx(String bwsx) {
+        this.bwsx = bwsx;
+    }
+
+    public String getBwyt() {
+        return bwyt;
+    }
+
+    public void setBwyt(String bwyt) {
+        this.bwyt = bwyt;
+    }
+
+    public String getZybwfl() {
+        return zybwfl;
+    }
+
+    public void setZybwfl(String zybwfl) {
+        this.zybwfl = zybwfl;
+    }
+
+    public String getMtqysjss() {
+        return mtqysjss;
+    }
+
+    public void setMtqysjss(String mtqysjss) {
+        this.mtqysjss = mtqysjss;
+    }
+
+    public String getMtqywhss() {
+        return mtqywhss;
+    }
+
+    public void setMtqywhss(String mtqywhss) {
+        this.mtqywhss = mtqywhss;
+    }
+
+    public String getSjkbnl() {
+        return sjkbnl;
+    }
+
+    public void setSjkbnl(String sjkbnl) {
+        this.sjkbnl = sjkbnl;
+    }
+
+    public String getJgkbnl() {
+        return jgkbnl;
+    }
+
+    public void setJgkbnl(String jgkbnl) {
+        this.jgkbnl = jgkbnl;
+    }
+
+    public String getHckbnl() {
+        return hckbnl;
+    }
+
+    public void setHckbnl(String hckbnl) {
+        this.hckbnl = hckbnl;
+    }
+
+    public String getBwcd() {
+        return bwcd;
+    }
+
+    public void setBwcd(String bwcd) {
+        this.bwcd = bwcd;
+    }
+
+    public String getKbnlxztj() {
+        return kbnlxztj;
+    }
+
+    public void setKbnlxztj(String kbnlxztj) {
+        this.kbnlxztj = kbnlxztj;
+    }
+
+    public String getBwlyl() {
+        return bwlyl;
+    }
+
+    public void setBwlyl(String bwlyl) {
+        this.bwlyl = bwlyl;
+    }
+
+    public String getZb() {
+        return zb;
+    }
+
+    public void setZb(String zb) {
+        this.zb = zb;
+    }
+
+    public String getBz() {
+        return bz;
+    }
+
+    public void setBz(String bz) {
+        this.bz = bz;
+    }
+
+    public Timestamp getRksj() {
+        return rksj;
+    }
+
+    public void setRksj(Timestamp rksj) {
+        this.rksj = rksj;
+    }
+
+    public String getShzt() {
+        return shzt;
+    }
+
+    public void setShzt(String shzt) {
+        this.shzt = shzt;
+    }
+
+    public String getShyj() {
+        return shyj;
+    }
+
+    public void setShyj(String shyj) {
+        this.shyj = shyj;
+    }
+
+    public Timestamp getShsj() {
+        return shsj;
+    }
+
+    public void setShsj(Timestamp shsj) {
+        this.shsj = shsj;
+    }
+
+    public String getBwnhwtgnl() {
+        return bwnhwtgnl;
+    }
+
+    public void setBwnhwtgnl(String bwnhwtgnl) {
+        this.bwnhwtgnl = bwnhwtgnl;
+    }
+
+    public String getBwnjzxtgnl() {
+        return bwnjzxtgnl;
+    }
+
+    public void setBwnjzxtgnl(String bwnjzxtgnl) {
+        this.bwnjzxtgnl = bwnjzxtgnl;
+    }
+
+    public String getShr() {
+        return shr;
+    }
+
+    public void setShr(String shr) {
+        this.shr = shr;
+    }
+
+    public Timestamp getJzrq() {
+        return jzrq;
+    }
+
+    public void setJzrq(Timestamp jzrq) {
+        this.jzrq = jzrq;
+    }
+
+    public String getSfdwkf() {
+        return sfdwkf;
+    }
+
+    public void setSfdwkf(String sfdwkf) {
+        this.sfdwkf = sfdwkf;
+    }
+
+    public String getSfwhp() {
+        return sfwhp;
+    }
+
+    public void setSfwhp(String sfwhp) {
+        this.sfwhp = sfwhp;
+    }
+
+    public String getSzsx() {
+        return szsx;
+    }
+
+    public void setSzsx(String szsx) {
+        this.szsx = szsx;
+    }
+
+    public String getSclx() {
+        return sclx;
+    }
+
+    public void setSclx(String sclx) {
+        this.sclx = sclx;
+    }
+
+    public String getTcnf() {
+        return tcnf;
+    }
+
+    public void setTcnf(String tcnf) {
+        this.tcnf = tcnf;
+    }
+
+    public String getJgysnf() {
+        return jgysnf;
+    }
+
+    public void setJgysnf(String jgysnf) {
+        this.jgysnf = jgysnf;
+    }
+
+    public String getSzzyq() {
+        return szzyq;
+    }
+
+    public void setSzzyq(String szzyq) {
+        this.szzyq = szzyq;
+    }
+
+    public String getSzgqmc() {
+        return szgqmc;
+    }
+
+    public void setSzgqmc(String szgqmc) {
+        this.szgqmc = szgqmc;
+    }
+
+    public String getSzgkmc() {
+        return szgkmc;
+    }
+
+    public void setSzgkmc(String szgkmc) {
+        this.szgkmc = szgkmc;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TJdcBw tJdcBw = (TJdcBw) o;
+
+        if (xzq != null ? !xzq.equals(tJdcBw.xzq) : tJdcBw.xzq != null) return false;
+        if (gkglbm != null ? !gkglbm.equals(tJdcBw.gkglbm) : tJdcBw.gkglbm != null) return false;
+        if (szgk != null ? !szgk.equals(tJdcBw.szgk) : tJdcBw.szgk != null) return false;
+        if (szgq != null ? !szgq.equals(tJdcBw.szgq) : tJdcBw.szgq != null) return false;
+        if (gkjyr != null ? !gkjyr.equals(tJdcBw.gkjyr) : tJdcBw.gkjyr != null) return false;
+        if (szmt != null ? !szmt.equals(tJdcBw.szmt) : tJdcBw.szmt != null) return false;
+        if (bwmc != null ? !bwmc.equals(tJdcBw.bwmc) : tJdcBw.bwmc != null) return false;
+        if (bwdm != null ? !bwdm.equals(tJdcBw.bwdm) : tJdcBw.bwdm != null) return false;
+        if (bwfwlx != null ? !bwfwlx.equals(tJdcBw.bwfwlx) : tJdcBw.bwfwlx != null) return false;
+        if (bwsx != null ? !bwsx.equals(tJdcBw.bwsx) : tJdcBw.bwsx != null) return false;
+        if (bwyt != null ? !bwyt.equals(tJdcBw.bwyt) : tJdcBw.bwyt != null) return false;
+        if (zybwfl != null ? !zybwfl.equals(tJdcBw.zybwfl) : tJdcBw.zybwfl != null) return false;
+        if (mtqysjss != null ? !mtqysjss.equals(tJdcBw.mtqysjss) : tJdcBw.mtqysjss != null) return false;
+        if (mtqywhss != null ? !mtqywhss.equals(tJdcBw.mtqywhss) : tJdcBw.mtqywhss != null) return false;
+        if (sjkbnl != null ? !sjkbnl.equals(tJdcBw.sjkbnl) : tJdcBw.sjkbnl != null) return false;
+        if (jgkbnl != null ? !jgkbnl.equals(tJdcBw.jgkbnl) : tJdcBw.jgkbnl != null) return false;
+        if (hckbnl != null ? !hckbnl.equals(tJdcBw.hckbnl) : tJdcBw.hckbnl != null) return false;
+        if (bwcd != null ? !bwcd.equals(tJdcBw.bwcd) : tJdcBw.bwcd != null) return false;
+        if (kbnlxztj != null ? !kbnlxztj.equals(tJdcBw.kbnlxztj) : tJdcBw.kbnlxztj != null) return false;
+        if (bwlyl != null ? !bwlyl.equals(tJdcBw.bwlyl) : tJdcBw.bwlyl != null) return false;
+        if (zb != null ? !zb.equals(tJdcBw.zb) : tJdcBw.zb != null) return false;
+        if (bz != null ? !bz.equals(tJdcBw.bz) : tJdcBw.bz != null) return false;
+        if (id != null ? !id.equals(tJdcBw.id) : tJdcBw.id != null) return false;
+        if (rksj != null ? !rksj.equals(tJdcBw.rksj) : tJdcBw.rksj != null) return false;
+        if (shzt != null ? !shzt.equals(tJdcBw.shzt) : tJdcBw.shzt != null) return false;
+        if (shyj != null ? !shyj.equals(tJdcBw.shyj) : tJdcBw.shyj != null) return false;
+        if (shsj != null ? !shsj.equals(tJdcBw.shsj) : tJdcBw.shsj != null) return false;
+        if (bwnhwtgnl != null ? !bwnhwtgnl.equals(tJdcBw.bwnhwtgnl) : tJdcBw.bwnhwtgnl != null) return false;
+        if (bwnjzxtgnl != null ? !bwnjzxtgnl.equals(tJdcBw.bwnjzxtgnl) : tJdcBw.bwnjzxtgnl != null) return false;
+        if (shr != null ? !shr.equals(tJdcBw.shr) : tJdcBw.shr != null) return false;
+        if (jzrq != null ? !jzrq.equals(tJdcBw.jzrq) : tJdcBw.jzrq != null) return false;
+        if (sfdwkf != null ? !sfdwkf.equals(tJdcBw.sfdwkf) : tJdcBw.sfdwkf != null) return false;
+        if (sfwhp != null ? !sfwhp.equals(tJdcBw.sfwhp) : tJdcBw.sfwhp != null) return false;
+        if (szsx != null ? !szsx.equals(tJdcBw.szsx) : tJdcBw.szsx != null) return false;
+        if (sclx != null ? !sclx.equals(tJdcBw.sclx) : tJdcBw.sclx != null) return false;
+        if (tcnf != null ? !tcnf.equals(tJdcBw.tcnf) : tJdcBw.tcnf != null) return false;
+        if (jgysnf != null ? !jgysnf.equals(tJdcBw.jgysnf) : tJdcBw.jgysnf != null) return false;
+        if (szzyq != null ? !szzyq.equals(tJdcBw.szzyq) : tJdcBw.szzyq != null) return false;
+        if (szgqmc != null ? !szgqmc.equals(tJdcBw.szgqmc) : tJdcBw.szgqmc != null) return false;
+        if (szgkmc != null ? !szgkmc.equals(tJdcBw.szgkmc) : tJdcBw.szgkmc != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = xzq != null ? xzq.hashCode() : 0;
+        result = 31 * result + (gkglbm != null ? gkglbm.hashCode() : 0);
+        result = 31 * result + (szgk != null ? szgk.hashCode() : 0);
+        result = 31 * result + (szgq != null ? szgq.hashCode() : 0);
+        result = 31 * result + (gkjyr != null ? gkjyr.hashCode() : 0);
+        result = 31 * result + (szmt != null ? szmt.hashCode() : 0);
+        result = 31 * result + (bwmc != null ? bwmc.hashCode() : 0);
+        result = 31 * result + (bwdm != null ? bwdm.hashCode() : 0);
+        result = 31 * result + (bwfwlx != null ? bwfwlx.hashCode() : 0);
+        result = 31 * result + (bwsx != null ? bwsx.hashCode() : 0);
+        result = 31 * result + (bwyt != null ? bwyt.hashCode() : 0);
+        result = 31 * result + (zybwfl != null ? zybwfl.hashCode() : 0);
+        result = 31 * result + (mtqysjss != null ? mtqysjss.hashCode() : 0);
+        result = 31 * result + (mtqywhss != null ? mtqywhss.hashCode() : 0);
+        result = 31 * result + (sjkbnl != null ? sjkbnl.hashCode() : 0);
+        result = 31 * result + (jgkbnl != null ? jgkbnl.hashCode() : 0);
+        result = 31 * result + (hckbnl != null ? hckbnl.hashCode() : 0);
+        result = 31 * result + (bwcd != null ? bwcd.hashCode() : 0);
+        result = 31 * result + (kbnlxztj != null ? kbnlxztj.hashCode() : 0);
+        result = 31 * result + (bwlyl != null ? bwlyl.hashCode() : 0);
+        result = 31 * result + (zb != null ? zb.hashCode() : 0);
+        result = 31 * result + (bz != null ? bz.hashCode() : 0);
+        result = 31 * result + (id != null ? id.hashCode() : 0);
+        result = 31 * result + (rksj != null ? rksj.hashCode() : 0);
+        result = 31 * result + (shzt != null ? shzt.hashCode() : 0);
+        result = 31 * result + (shyj != null ? shyj.hashCode() : 0);
+        result = 31 * result + (shsj != null ? shsj.hashCode() : 0);
+        result = 31 * result + (bwnhwtgnl != null ? bwnhwtgnl.hashCode() : 0);
+        result = 31 * result + (bwnjzxtgnl != null ? bwnjzxtgnl.hashCode() : 0);
+        result = 31 * result + (shr != null ? shr.hashCode() : 0);
+        result = 31 * result + (jzrq != null ? jzrq.hashCode() : 0);
+        result = 31 * result + (sfdwkf != null ? sfdwkf.hashCode() : 0);
+        result = 31 * result + (sfwhp != null ? sfwhp.hashCode() : 0);
+        result = 31 * result + (szsx != null ? szsx.hashCode() : 0);
+        result = 31 * result + (sclx != null ? sclx.hashCode() : 0);
+        result = 31 * result + (tcnf != null ? tcnf.hashCode() : 0);
+        result = 31 * result + (jgysnf != null ? jgysnf.hashCode() : 0);
+        result = 31 * result + (szzyq != null ? szzyq.hashCode() : 0);
+        result = 31 * result + (szgqmc != null ? szgqmc.hashCode() : 0);
+        result = 31 * result + (szgkmc != null ? szgkmc.hashCode() : 0);
+        return result;
+    }
+}

+ 192 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TJdcGk.java

@@ -0,0 +1,192 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+import java.math.BigDecimal;
+
+/**
+ * Created by Administrator on 2015/8/20.
+ */
+@Entity
+@Table(name = "T_JDC_GK" )
+public class TJdcGk  extends BaseEntity<String> {
+    private String id;
+    private String xzq;
+    private String gkglbm;
+    private String gkmc;
+    private String gkdm;
+    private String gkgk;
+    private String szsxdm;
+    private String gkmhwz;
+    private String bz;
+    private String source;
+    private Double zraxcd;
+    private Double lat;
+    private Double lon;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getXzq() {
+        return xzq;
+    }
+
+    public void setXzq(String xzq) {
+        this.xzq = xzq;
+    }
+
+    public String getGkglbm() {
+        return gkglbm;
+    }
+
+    public void setGkglbm(String gkglbm) {
+        this.gkglbm = gkglbm;
+    }
+
+    public String getGkmc() {
+        return gkmc;
+    }
+
+    public void setGkmc(String gkmc) {
+        this.gkmc = gkmc;
+    }
+
+    public String getGkdm() {
+        return gkdm;
+    }
+
+    public void setGkdm(String gkdm) {
+        this.gkdm = gkdm;
+    }
+
+    public String getGkgk() {
+        return gkgk;
+    }
+
+    public void setGkgk(String gkgk) {
+        this.gkgk = gkgk;
+    }
+
+    public String getSzsxdm() {
+        return szsxdm;
+    }
+
+    public void setSzsxdm(String szsxdm) {
+        this.szsxdm = szsxdm;
+    }
+
+    public String getGkmhwz() {
+        return gkmhwz;
+    }
+
+    public void setGkmhwz(String gkmhwz) {
+        this.gkmhwz = gkmhwz;
+    }
+
+    public String getBz() {
+        return bz;
+    }
+
+    public void setBz(String bz) {
+        this.bz = bz;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public Double getZraxcd() {
+        return zraxcd;
+    }
+
+    public void setZraxcd(Double zraxcd) {
+        this.zraxcd = zraxcd;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TJdcGk tJdcGk = (TJdcGk) o;
+
+        if (id != null ? !id.equals(tJdcGk.id) : tJdcGk.id != null) return false;
+        if (xzq != null ? !xzq.equals(tJdcGk.xzq) : tJdcGk.xzq != null) return false;
+        if (gkglbm != null ? !gkglbm.equals(tJdcGk.gkglbm) : tJdcGk.gkglbm != null) return false;
+        if (gkmc != null ? !gkmc.equals(tJdcGk.gkmc) : tJdcGk.gkmc != null) return false;
+        if (gkdm != null ? !gkdm.equals(tJdcGk.gkdm) : tJdcGk.gkdm != null) return false;
+        if (gkgk != null ? !gkgk.equals(tJdcGk.gkgk) : tJdcGk.gkgk != null) return false;
+        if (szsxdm != null ? !szsxdm.equals(tJdcGk.szsxdm) : tJdcGk.szsxdm != null) return false;
+        if (gkmhwz != null ? !gkmhwz.equals(tJdcGk.gkmhwz) : tJdcGk.gkmhwz != null) return false;
+        if (bz != null ? !bz.equals(tJdcGk.bz) : tJdcGk.bz != null) return false;
+        if (source != null ? !source.equals(tJdcGk.source) : tJdcGk.source != null) return false;
+        if (zraxcd != null ? !zraxcd.equals(tJdcGk.zraxcd) : tJdcGk.zraxcd != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (xzq != null ? xzq.hashCode() : 0);
+        result = 31 * result + (gkglbm != null ? gkglbm.hashCode() : 0);
+        result = 31 * result + (gkmc != null ? gkmc.hashCode() : 0);
+        result = 31 * result + (gkdm != null ? gkdm.hashCode() : 0);
+        result = 31 * result + (gkgk != null ? gkgk.hashCode() : 0);
+        result = 31 * result + (szsxdm != null ? szsxdm.hashCode() : 0);
+        result = 31 * result + (gkmhwz != null ? gkmhwz.hashCode() : 0);
+        result = 31 * result + (bz != null ? bz.hashCode() : 0);
+        result = 31 * result + (source != null ? source.hashCode() : 0);
+        result = 31 * result + (zraxcd != null ? zraxcd.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TJdcGk{" +
+                "id='" + id + '\'' +
+                ", xzq='" + xzq + '\'' +
+                ", gkglbm='" + gkglbm + '\'' +
+                ", gkmc='" + gkmc + '\'' +
+                ", gkdm='" + gkdm + '\'' +
+                ", gkgk='" + gkgk + '\'' +
+                ", szsxdm='" + szsxdm + '\'' +
+                ", gkmhwz='" + gkmhwz + '\'' +
+                ", bz='" + bz + '\'' +
+                ", source='" + source + '\'' +
+                ", zraxcd=" + zraxcd +
+                ", lat=" + lat +
+                ", lon=" + lon +
+                '}';
+    }
+}

+ 326 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TJdcGq.java

@@ -0,0 +1,326 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Basic;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.sql.Timestamp;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2015/8/20.
+ */
+@Entity
+@javax.persistence.Table(name = "T_JDC_GQ" )
+public class TJdcGq  extends BaseEntity<String> {
+    private String id;
+
+    private String xzq;
+
+    private String gkglbm;
+
+    private String szgk;
+
+    private String gqdm;
+
+    private String gqmc;
+
+    private String gqms;
+
+    private Double gqmj;
+
+    private Double lymj;
+
+    private String syfw;
+
+    private Double symj;
+
+    private Double gqghmj;
+
+    private Double lyghmj;
+
+    private Double syghmj;
+
+    private Double gqzraxcd;
+
+    private Double gymtaxcd;
+
+    private Double gqgkaxcd;
+
+    private Double gksssyaxcd;
+
+    private String bz;
+
+    private String gqjd;
+
+    private String shzt;
+ 
+    private String shr;
+
+    private String shyj;
+
+    private Date shsj;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getXzq() {
+        return xzq;
+    }
+
+    public void setXzq(String xzq) {
+        this.xzq = xzq;
+    }
+
+    public String getGkglbm() {
+        return gkglbm;
+    }
+
+    public void setGkglbm(String gkglbm) {
+        this.gkglbm = gkglbm;
+    }
+
+    public String getSzgk() {
+        return szgk;
+    }
+
+    public void setSzgk(String szgk) {
+        this.szgk = szgk;
+    }
+
+    public String getGqdm() {
+        return gqdm;
+    }
+
+    public void setGqdm(String gqdm) {
+        this.gqdm = gqdm;
+    }
+
+    public String getGqmc() {
+        return gqmc;
+    }
+
+    public void setGqmc(String gqmc) {
+        this.gqmc = gqmc;
+    }
+
+    public String getGqms() {
+        return gqms;
+    }
+
+    public void setGqms(String gqms) {
+        this.gqms = gqms;
+    }
+
+    public Double getGqmj() {
+        return gqmj;
+    }
+
+    public void setGqmj(Double gqmj) {
+        this.gqmj = gqmj;
+    }
+
+    public Double getLymj() {
+        return lymj;
+    }
+
+    public void setLymj(Double lymj) {
+        this.lymj = lymj;
+    }
+
+    public String getSyfw() {
+        return syfw;
+    }
+
+    public void setSyfw(String syfw) {
+        this.syfw = syfw;
+    }
+
+    public Double getSymj() {
+        return symj;
+    }
+
+    public void setSymj(Double symj) {
+        this.symj = symj;
+    }
+
+    public Double getGqghmj() {
+        return gqghmj;
+    }
+
+    public void setGqghmj(Double gqghmj) {
+        this.gqghmj = gqghmj;
+    }
+
+    public Double getLyghmj() {
+        return lyghmj;
+    }
+
+    public void setLyghmj(Double lyghmj) {
+        this.lyghmj = lyghmj;
+    }
+
+    public Double getSyghmj() {
+        return syghmj;
+    }
+
+    public void setSyghmj(Double syghmj) {
+        this.syghmj = syghmj;
+    }
+
+    public Double getGqzraxcd() {
+        return gqzraxcd;
+    }
+
+    public void setGqzraxcd(Double gqzraxcd) {
+        this.gqzraxcd = gqzraxcd;
+    }
+
+    public Double getGymtaxcd() {
+        return gymtaxcd;
+    }
+
+    public void setGymtaxcd(Double gymtaxcd) {
+        this.gymtaxcd = gymtaxcd;
+    }
+
+    public Double getGqgkaxcd() {
+        return gqgkaxcd;
+    }
+
+    public void setGqgkaxcd(Double gqgkaxcd) {
+        this.gqgkaxcd = gqgkaxcd;
+    }
+
+    public Double getGksssyaxcd() {
+        return gksssyaxcd;
+    }
+
+    public void setGksssyaxcd(Double gksssyaxcd) {
+        this.gksssyaxcd = gksssyaxcd;
+    }
+
+    public String getBz() {
+        return bz;
+    }
+
+    public void setBz(String bz) {
+        this.bz = bz;
+    }
+
+    public String getGqjd() {
+        return gqjd;
+    }
+
+    public void setGqjd(String gqjd) {
+        this.gqjd = gqjd;
+    }
+
+    public String getShzt() {
+        return shzt;
+    }
+
+    public void setShzt(String shzt) {
+        this.shzt = shzt;
+    }
+
+    public String getShr() {
+        return shr;
+    }
+
+    public void setShr(String shr) {
+        this.shr = shr;
+    }
+
+    public String getShyj() {
+        return shyj;
+    }
+
+    public void setShyj(String shyj) {
+        this.shyj = shyj;
+    }
+
+    public Date getShsj() {
+        return shsj;
+    }
+
+    public void setShsj(Date shsj) {
+        this.shsj = shsj;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TJdcGq tJdcGq = (TJdcGq) o;
+
+        if (id != null ? !id.equals(tJdcGq.id) : tJdcGq.id != null) return false;
+        if (xzq != null ? !xzq.equals(tJdcGq.xzq) : tJdcGq.xzq != null) return false;
+        if (gkglbm != null ? !gkglbm.equals(tJdcGq.gkglbm) : tJdcGq.gkglbm != null) return false;
+        if (szgk != null ? !szgk.equals(tJdcGq.szgk) : tJdcGq.szgk != null) return false;
+        if (gqdm != null ? !gqdm.equals(tJdcGq.gqdm) : tJdcGq.gqdm != null) return false;
+        if (gqmc != null ? !gqmc.equals(tJdcGq.gqmc) : tJdcGq.gqmc != null) return false;
+        if (gqms != null ? !gqms.equals(tJdcGq.gqms) : tJdcGq.gqms != null) return false;
+        if (gqmj != null ? !gqmj.equals(tJdcGq.gqmj) : tJdcGq.gqmj != null) return false;
+        if (lymj != null ? !lymj.equals(tJdcGq.lymj) : tJdcGq.lymj != null) return false;
+        if (syfw != null ? !syfw.equals(tJdcGq.syfw) : tJdcGq.syfw != null) return false;
+        if (symj != null ? !symj.equals(tJdcGq.symj) : tJdcGq.symj != null) return false;
+        if (gqghmj != null ? !gqghmj.equals(tJdcGq.gqghmj) : tJdcGq.gqghmj != null) return false;
+        if (lyghmj != null ? !lyghmj.equals(tJdcGq.lyghmj) : tJdcGq.lyghmj != null) return false;
+        if (syghmj != null ? !syghmj.equals(tJdcGq.syghmj) : tJdcGq.syghmj != null) return false;
+        if (gqzraxcd != null ? !gqzraxcd.equals(tJdcGq.gqzraxcd) : tJdcGq.gqzraxcd != null) return false;
+        if (gymtaxcd != null ? !gymtaxcd.equals(tJdcGq.gymtaxcd) : tJdcGq.gymtaxcd != null) return false;
+        if (gqgkaxcd != null ? !gqgkaxcd.equals(tJdcGq.gqgkaxcd) : tJdcGq.gqgkaxcd != null) return false;
+        if (gksssyaxcd != null ? !gksssyaxcd.equals(tJdcGq.gksssyaxcd) : tJdcGq.gksssyaxcd != null) return false;
+        if (bz != null ? !bz.equals(tJdcGq.bz) : tJdcGq.bz != null) return false;
+        if (gqjd != null ? !gqjd.equals(tJdcGq.gqjd) : tJdcGq.gqjd != null) return false;
+        if (shzt != null ? !shzt.equals(tJdcGq.shzt) : tJdcGq.shzt != null) return false;
+        if (shr != null ? !shr.equals(tJdcGq.shr) : tJdcGq.shr != null) return false;
+        if (shyj != null ? !shyj.equals(tJdcGq.shyj) : tJdcGq.shyj != null) return false;
+        if (shsj != null ? !shsj.equals(tJdcGq.shsj) : tJdcGq.shsj != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (xzq != null ? xzq.hashCode() : 0);
+        result = 31 * result + (gkglbm != null ? gkglbm.hashCode() : 0);
+        result = 31 * result + (szgk != null ? szgk.hashCode() : 0);
+        result = 31 * result + (gqdm != null ? gqdm.hashCode() : 0);
+        result = 31 * result + (gqmc != null ? gqmc.hashCode() : 0);
+        result = 31 * result + (gqms != null ? gqms.hashCode() : 0);
+        result = 31 * result + (gqmj != null ? gqmj.hashCode() : 0);
+        result = 31 * result + (lymj != null ? lymj.hashCode() : 0);
+        result = 31 * result + (syfw != null ? syfw.hashCode() : 0);
+        result = 31 * result + (symj != null ? symj.hashCode() : 0);
+        result = 31 * result + (gqghmj != null ? gqghmj.hashCode() : 0);
+        result = 31 * result + (lyghmj != null ? lyghmj.hashCode() : 0);
+        result = 31 * result + (syghmj != null ? syghmj.hashCode() : 0);
+        result = 31 * result + (gqzraxcd != null ? gqzraxcd.hashCode() : 0);
+        result = 31 * result + (gymtaxcd != null ? gymtaxcd.hashCode() : 0);
+        result = 31 * result + (gqgkaxcd != null ? gqgkaxcd.hashCode() : 0);
+        result = 31 * result + (gksssyaxcd != null ? gksssyaxcd.hashCode() : 0);
+        result = 31 * result + (bz != null ? bz.hashCode() : 0);
+        result = 31 * result + (gqjd != null ? gqjd.hashCode() : 0);
+        result = 31 * result + (shzt != null ? shzt.hashCode() : 0);
+        result = 31 * result + (shr != null ? shr.hashCode() : 0);
+        result = 31 * result + (shyj != null ? shyj.hashCode() : 0);
+        result = 31 * result + (shsj != null ? shsj.hashCode() : 0);
+        return result;
+    }
+}

+ 309 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TbasicInfo.java

@@ -0,0 +1,309 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "T_BASIC_INFO" )
+public class TbasicInfo  extends BaseEntity<String> {
+    private String id;
+    private String tablename;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+    private String pinpaici;
+    private Integer geocode;
+    private String imgurl;
+    private Double lat;
+    private Double lon;
+    private String province;
+    private String city;
+    private String country;
+    private String town;
+    private Double shuiwei;
+    private String chuangjsj;
+    private String guanlidanwei;
+    private String remark;
+    private String xiangqing;
+    private String areaid;
+    private Integer sortno;
+    private String ext1;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTablename() {
+        return tablename;
+    }
+
+    public void setTablename(String tablename) {
+        this.tablename = tablename;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getPinpaici() {
+        return pinpaici;
+    }
+
+    public void setPinpaici(String pinpaici) {
+        this.pinpaici = pinpaici;
+    }
+
+    public Integer getGeocode() {
+        return geocode;
+    }
+
+    public void setGeocode(Integer geocode) {
+        this.geocode = geocode;
+    }
+
+    public String getImgurl() {
+        return imgurl;
+    }
+
+    public void setImgurl(String imgurl) {
+        this.imgurl = imgurl;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCountry() {
+        return country;
+    }
+
+    public void setCountry(String country) {
+        this.country = country;
+    }
+
+    public String getTown() {
+        return town;
+    }
+
+    public void setTown(String town) {
+        this.town = town;
+    }
+
+    public Double getShuiwei() {
+        return shuiwei;
+    }
+
+    public void setShuiwei(Double shuiwei) {
+        this.shuiwei = shuiwei;
+    }
+
+    public String getChuangjsj() {
+        return chuangjsj;
+    }
+
+    public void setChuangjsj(String chuangjsj) {
+        this.chuangjsj = chuangjsj;
+    }
+
+    public String getGuanlidanwei() {
+        return guanlidanwei;
+    }
+
+    public void setGuanlidanwei(String guanlidanwei) {
+        this.guanlidanwei = guanlidanwei;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getXiangqing() {
+        return xiangqing;
+    }
+
+    public void setXiangqing(String xiangqing) {
+        this.xiangqing = xiangqing;
+    }
+
+    public String getAreaid() {
+        return areaid;
+    }
+
+    public void setAreaid(String areaid) {
+        this.areaid = areaid;
+    }
+
+    public Integer getSortno() {
+		return sortno;
+	}
+
+	public void setSortno(Integer sortno) {
+		this.sortno = sortno;
+	}
+
+	public String getExt1() {
+		return ext1;
+	}
+
+	public void setExt1(String ext1) {
+		this.ext1 = ext1;
+	}
+
+	@Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TbasicInfo that = (TbasicInfo) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (tablename != null ? !tablename.equals(that.tablename) : that.tablename != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (pinpaici != null ? !pinpaici.equals(that.pinpaici) : that.pinpaici != null) return false;
+        if (geocode != null ? !geocode.equals(that.geocode) : that.geocode != null) return false;
+        if (imgurl != null ? !imgurl.equals(that.imgurl) : that.imgurl != null) return false;
+        if (lat != null ? !lat.equals(that.lat) : that.lat != null) return false;
+        if (lon != null ? !lon.equals(that.lon) : that.lon != null) return false;
+        if (province != null ? !province.equals(that.province) : that.province != null) return false;
+        if (city != null ? !city.equals(that.city) : that.city != null) return false;
+        if (country != null ? !country.equals(that.country) : that.country != null) return false;
+        if (town != null ? !town.equals(that.town) : that.town != null) return false;
+        if (shuiwei != null ? !shuiwei.equals(that.shuiwei) : that.shuiwei != null) return false;
+        if (chuangjsj != null ? !chuangjsj.equals(that.chuangjsj) : that.chuangjsj != null) return false;
+        if (guanlidanwei != null ? !guanlidanwei.equals(that.guanlidanwei) : that.guanlidanwei != null) return false;
+        if (remark != null ? !remark.equals(that.remark) : that.remark != null) return false;
+        if (xiangqing != null ? !xiangqing.equals(that.xiangqing) : that.xiangqing != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (tablename != null ? tablename.hashCode() : 0);
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (pinpaici != null ? pinpaici.hashCode() : 0);
+        result = 31 * result + (geocode != null ? geocode.hashCode() : 0);
+        result = 31 * result + (imgurl != null ? imgurl.hashCode() : 0);
+        result = 31 * result + (lat != null ? lat.hashCode() : 0);
+        result = 31 * result + (lon != null ? lon.hashCode() : 0);
+        result = 31 * result + (province != null ? province.hashCode() : 0);
+        result = 31 * result + (city != null ? city.hashCode() : 0);
+        result = 31 * result + (country != null ? country.hashCode() : 0);
+        result = 31 * result + (town != null ? town.hashCode() : 0);
+        result = 31 * result + (shuiwei != null ? shuiwei.hashCode() : 0);
+        result = 31 * result + (chuangjsj != null ? chuangjsj.hashCode() : 0);
+        result = 31 * result + (guanlidanwei != null ? guanlidanwei.hashCode() : 0);
+        result = 31 * result + (remark != null ? remark.hashCode() : 0);
+        result = 31 * result + (xiangqing != null ? xiangqing.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TbasicInfo{" +
+                "id='" + id + '\'' +
+                ", tablename='" + tablename + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", pinpaici='" + pinpaici + '\'' +
+                ", geocode=" + geocode +
+                ", imgurl='" + imgurl + '\'' +
+                ", lat=" + lat +
+                ", lon=" + lon +
+                ", province='" + province + '\'' +
+                ", city='" + city + '\'' +
+                ", country='" + country + '\'' +
+                ", town='" + town + '\'' +
+                ", shuiwei=" + shuiwei +
+                ", chuangjsj='" + chuangjsj + '\'' +
+                ", guanlidanwei='" + guanlidanwei + '\'' +
+                ", remark='" + remark + '\'' +
+                ", xiangqing='" + xiangqing + '\'' +
+                ", areaid='" + areaid + '\'' +
+                '}';
+    }
+}

+ 252 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailAir.java

@@ -0,0 +1,252 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_AIRPORT" )
+public class TdetailAir   extends BaseEntity<String> {
+    /**
+     * serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+    private String id;
+    private Integer gid;
+    private String code;
+    private String name;
+    private String enableTime;
+    private String level;
+    private String length;
+    private String width;
+    private String area;
+    private String address;
+    private String tel;
+    private String siteUrl;
+    private String airBus;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+    private String areaid;
+    private Integer pdNum;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+    
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getEnableTime() {
+        return enableTime;
+    }
+
+    public void setEnableTime(String enableTime) {
+        this.enableTime = enableTime;
+    }
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public String getLength() {
+        return length;
+    }
+
+    public void setLength(String length) {
+        this.length = length;
+    }
+
+    public String getWidth() {
+        return width;
+    }
+
+    public void setWidth(String width) {
+        this.width = width;
+    }
+
+    public String getArea() {
+        return area;
+    }
+
+    public void setArea(String area) {
+        this.area = area;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getSiteUrl() {
+        return siteUrl;
+    }
+
+    public void setSiteUrl(String siteUrl) {
+        this.siteUrl = siteUrl;
+    }
+
+    public String getAirBus() {
+        return airBus;
+    }
+
+    public void setAirBus(String airBus) {
+        this.airBus = airBus;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+
+    public String getAreaid() {
+        return areaid;
+    }
+
+    public void setAreaid(String areaid) {
+        this.areaid = areaid;
+    }
+
+    public Integer getPdNum() {
+        return pdNum;
+    }
+
+    public void setPdNum(Integer pdNum) {
+        this.pdNum = pdNum;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailAir that = (TdetailAir) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (enableTime != null ? !enableTime.equals(that.enableTime) : that.enableTime != null) return false;
+        if (level != null ? !level.equals(that.level) : that.level != null) return false;
+        if (length != null ? !length.equals(that.length) : that.length != null) return false;
+        if (width != null ? !width.equals(that.width) : that.width != null) return false;
+        if (area != null ? !area.equals(that.area) : that.area != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (siteUrl != null ? !siteUrl.equals(that.siteUrl) : that.siteUrl != null) return false;
+        if (airBus != null ? !airBus.equals(that.airBus) : that.airBus != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (enableTime != null ? enableTime.hashCode() : 0);
+        result = 31 * result + (level != null ? level.hashCode() : 0);
+        result = 31 * result + (length != null ? length.hashCode() : 0);
+        result = 31 * result + (width != null ? width.hashCode() : 0);
+        result = 31 * result + (area != null ? area.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (siteUrl != null ? siteUrl.hashCode() : 0);
+        result = 31 * result + (airBus != null ? airBus.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailAir{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", enableTime='" + enableTime + '\'' +
+                ", level='" + level + '\'' +
+                ", length='" + length + '\'' +
+                ", width='" + width + '\'' +
+                ", area='" + area + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", siteUrl='" + siteUrl + '\'' +
+                ", airBus='" + airBus + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                ", areaid='" + areaid + '\'' +
+                ", pdNum=" + pdNum +
+                '}';
+    }
+}

+ 199 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailChuanzha.java

@@ -0,0 +1,199 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_CHUANZHA" )
+public class TdetailChuanzha extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String lishuhd;
+    private String chuanzhaLength;
+    private String chuanzhaWidth;
+    private String shoukmWidth;
+    private String minDepth;
+    private String guanlidanwei;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getLishuhd() {
+        return lishuhd;
+    }
+
+    public void setLishuhd(String lishuhd) {
+        this.lishuhd = lishuhd;
+    }
+
+    public String getChuanzhaLength() {
+        return chuanzhaLength;
+    }
+
+    public void setChuanzhaLength(String chuanzhaLength) {
+        this.chuanzhaLength = chuanzhaLength;
+    }
+
+    public String getChuanzhaWidth() {
+        return chuanzhaWidth;
+    }
+
+    public void setChuanzhaWidth(String chuanzhaWidth) {
+        this.chuanzhaWidth = chuanzhaWidth;
+    }
+
+    public String getShoukmWidth() {
+        return shoukmWidth;
+    }
+
+    public void setShoukmWidth(String shoukmWidth) {
+        this.shoukmWidth = shoukmWidth;
+    }
+
+    public String getMinDepth() {
+        return minDepth;
+    }
+
+    public void setMinDepth(String minDepth) {
+        this.minDepth = minDepth;
+    }
+
+    public String getGuanlidanwei() {
+        return guanlidanwei;
+    }
+
+    public void setGuanlidanwei(String guanlidanwei) {
+        this.guanlidanwei = guanlidanwei;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailChuanzha that = (TdetailChuanzha) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (lishuhd != null ? !lishuhd.equals(that.lishuhd) : that.lishuhd != null) return false;
+        if (chuanzhaLength != null ? !chuanzhaLength.equals(that.chuanzhaLength) : that.chuanzhaLength != null)
+            return false;
+        if (chuanzhaWidth != null ? !chuanzhaWidth.equals(that.chuanzhaWidth) : that.chuanzhaWidth != null)
+            return false;
+        if (shoukmWidth != null ? !shoukmWidth.equals(that.shoukmWidth) : that.shoukmWidth != null) return false;
+        if (minDepth != null ? !minDepth.equals(that.minDepth) : that.minDepth != null) return false;
+        if (guanlidanwei != null ? !guanlidanwei.equals(that.guanlidanwei) : that.guanlidanwei != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (lishuhd != null ? lishuhd.hashCode() : 0);
+        result = 31 * result + (chuanzhaLength != null ? chuanzhaLength.hashCode() : 0);
+        result = 31 * result + (chuanzhaWidth != null ? chuanzhaWidth.hashCode() : 0);
+        result = 31 * result + (shoukmWidth != null ? shoukmWidth.hashCode() : 0);
+        result = 31 * result + (minDepth != null ? minDepth.hashCode() : 0);
+        result = 31 * result + (guanlidanwei != null ? guanlidanwei.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailChuanzha{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", lishuhd='" + lishuhd + '\'' +
+                ", chuanzhaLength='" + chuanzhaLength + '\'' +
+                ", chuanzhaWidth='" + chuanzhaWidth + '\'' +
+                ", shoukmWidth='" + shoukmWidth + '\'' +
+                ", minDepth='" + minDepth + '\'' +
+                ", guanlidanwei='" + guanlidanwei + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                '}';
+    }
+}

+ 137 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailCjqd.java

@@ -0,0 +1,137 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_CJQD")
+public class TdetailCjqd   extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailCjqd that = (TdetailCjqd) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailCjqd{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                '}';
+    }
+}

+ 161 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailFwq.java

@@ -0,0 +1,161 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_FWQ")
+public class TdetailFwq   extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+    private String lishuRoad;
+    private String guanlidanwei;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getLishuRoad() {
+        return lishuRoad;
+    }
+
+    public void setLishuRoad(String lishuRoad) {
+        this.lishuRoad = lishuRoad;
+    }
+
+    public String getGuanlidanwei() {
+        return guanlidanwei;
+    }
+
+    public void setGuanlidanwei(String guanlidanwei) {
+        this.guanlidanwei = guanlidanwei;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailFwq that = (TdetailFwq) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (lishuRoad != null ? !lishuRoad.equals(that.lishuRoad) : that.lishuRoad != null) return false;
+        if (guanlidanwei != null ? !guanlidanwei.equals(that.guanlidanwei) : that.guanlidanwei != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (lishuRoad != null ? lishuRoad.hashCode() : 0);
+        result = 31 * result + (guanlidanwei != null ? guanlidanwei.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailFwq{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", lishuRoad='" + lishuRoad + '\'' +
+                ", guanlidanwei='" + guanlidanwei + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                '}';
+    }
+}

+ 216 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailGangqu.java

@@ -0,0 +1,216 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_GANGQU")
+public class TdetailGangqu   extends BaseEntity<String> {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String lishugk;
+    private String gangquArea;
+    private String luyuArea;
+    private String shuiyuArea;
+    private String lineLength;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+    private double lat;
+    private double lon;
+    private String gqdm;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getLishugk() {
+        return lishugk;
+    }
+
+    public void setLishugk(String lishugk) {
+        this.lishugk = lishugk;
+    }
+
+    public String getGangquArea() {
+        return gangquArea;
+    }
+
+    public void setGangquArea(String gangquArea) {
+        this.gangquArea = gangquArea;
+    }
+
+    public String getLuyuArea() {
+        return luyuArea;
+    }
+
+    public void setLuyuArea(String luyuArea) {
+        this.luyuArea = luyuArea;
+    }
+
+    public String getShuiyuArea() {
+        return shuiyuArea;
+    }
+
+    public void setShuiyuArea(String shuiyuArea) {
+        this.shuiyuArea = shuiyuArea;
+    }
+
+    public String getLineLength() {
+        return lineLength;
+    }
+
+    public void setLineLength(String lineLength) {
+        this.lineLength = lineLength;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    public double getLat() {
+        return lat;
+    }
+
+    public void setLat(double lat) {
+        this.lat = lat;
+    }
+
+    public double getLon() {
+        return lon;
+    }
+
+    public void setLon(double lon) {
+        this.lon = lon;
+    }
+
+    public String getGqdm() {
+        return gqdm;
+    }
+
+    public void setGqdm(String gqdm) {
+        this.gqdm = gqdm;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailGangqu that = (TdetailGangqu) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (lishugk != null ? !lishugk.equals(that.lishugk) : that.lishugk != null) return false;
+        if (gangquArea != null ? !gangquArea.equals(that.gangquArea) : that.gangquArea != null) return false;
+        if (luyuArea != null ? !luyuArea.equals(that.luyuArea) : that.luyuArea != null) return false;
+        if (shuiyuArea != null ? !shuiyuArea.equals(that.shuiyuArea) : that.shuiyuArea != null) return false;
+        if (lineLength != null ? !lineLength.equals(that.lineLength) : that.lineLength != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (lishugk != null ? lishugk.hashCode() : 0);
+        result = 31 * result + (gangquArea != null ? gangquArea.hashCode() : 0);
+        result = 31 * result + (luyuArea != null ? luyuArea.hashCode() : 0);
+        result = 31 * result + (shuiyuArea != null ? shuiyuArea.hashCode() : 0);
+        result = 31 * result + (lineLength != null ? lineLength.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailGangqu{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", lishugk='" + lishugk + '\'' +
+                ", gangquArea='" + gangquArea + '\'' +
+                ", luyuArea='" + luyuArea + '\'' +
+                ", shuiyuArea='" + shuiyuArea + '\'' +
+                ", lineLength='" + lineLength + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                ", lat=" + lat +
+                ", lon=" + lon +
+                ", gqdm='" + gqdm + '\'' +
+                '}';
+    }
+}

+ 101 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailJiancezhan.java

@@ -0,0 +1,101 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_JIANCEZHAN")
+public class TdetailJiancezhan   extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailJiancezhan that = (TdetailJiancezhan) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailJiancezhan{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                '}';
+    }
+}

+ 209 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailKeyunzhan.java

@@ -0,0 +1,209 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_KEYUNZHAN" )
+public class TdetailKeyunzhan   extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+    private Integer geocode;
+    private String level;
+    private String lishuqiye;
+    private Integer kuashengbxsl;
+    private Integer kuashibxsl;
+    private String busRoad;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public Integer getGeocode() {
+        return geocode;
+    }
+
+    public void setGeocode(Integer geocode) {
+        this.geocode = geocode;
+    }
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public String getLishuqiye() {
+        return lishuqiye;
+    }
+
+    public void setLishuqiye(String lishuqiye) {
+        this.lishuqiye = lishuqiye;
+    }
+
+    public Integer getKuashengbxsl() {
+        return kuashengbxsl;
+    }
+
+    public void setKuashengbxsl(Integer kuashengbxsl) {
+        this.kuashengbxsl = kuashengbxsl;
+    }
+
+    public Integer getKuashibxsl() {
+        return kuashibxsl;
+    }
+
+    public void setKuashibxsl(Integer kuashibxsl) {
+        this.kuashibxsl = kuashibxsl;
+    }
+
+    public String getBusRoad() {
+        return busRoad;
+    }
+
+    public void setBusRoad(String busRoad) {
+        this.busRoad = busRoad;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailKeyunzhan that = (TdetailKeyunzhan) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (geocode != null ? !geocode.equals(that.geocode) : that.geocode != null) return false;
+        if (level != null ? !level.equals(that.level) : that.level != null) return false;
+        if (lishuqiye != null ? !lishuqiye.equals(that.lishuqiye) : that.lishuqiye != null) return false;
+        if (kuashengbxsl != null ? !kuashengbxsl.equals(that.kuashengbxsl) : that.kuashengbxsl != null) return false;
+        if (kuashibxsl != null ? !kuashibxsl.equals(that.kuashibxsl) : that.kuashibxsl != null) return false;
+        if (busRoad != null ? !busRoad.equals(that.busRoad) : that.busRoad != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (geocode != null ? geocode.hashCode() : 0);
+        result = 31 * result + (level != null ? level.hashCode() : 0);
+        result = 31 * result + (lishuqiye != null ? lishuqiye.hashCode() : 0);
+        result = 31 * result + (kuashengbxsl != null ? kuashengbxsl.hashCode() : 0);
+        result = 31 * result + (kuashibxsl != null ? kuashibxsl.hashCode() : 0);
+        result = 31 * result + (busRoad != null ? busRoad.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailKeyunzhan{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", geocode=" + geocode +
+                ", level='" + level + '\'' +
+                ", lishuqiye='" + lishuqiye + '\'' +
+                ", kuashengbxsl=" + kuashengbxsl +
+                ", kuashibxsl=" + kuashibxsl +
+                ", busRoad='" + busRoad + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                '}';
+    }
+}

+ 236 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailKjbridge.java

@@ -0,0 +1,236 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_KJBRIDGE")
+public class TdetailKjbridge   extends BaseEntity<String> {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String linkRoad;
+    private String bridgeType;
+    private String bridgeLength;
+    private String bridgeWidth;
+    private String bridgeHeight;
+    private String zhuqiaozhukua;
+    private String roadCount;
+    private String speed;
+    private String threed;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getLinkRoad() {
+        return linkRoad;
+    }
+
+    public void setLinkRoad(String linkRoad) {
+        this.linkRoad = linkRoad;
+    }
+
+    public String getBridgeType() {
+        return bridgeType;
+    }
+
+    public void setBridgeType(String bridgeType) {
+        this.bridgeType = bridgeType;
+    }
+
+    public String getBridgeLength() {
+        return bridgeLength;
+    }
+
+    public void setBridgeLength(String bridgeLength) {
+        this.bridgeLength = bridgeLength;
+    }
+
+    public String getBridgeWidth() {
+        return bridgeWidth;
+    }
+
+    public void setBridgeWidth(String bridgeWidth) {
+        this.bridgeWidth = bridgeWidth;
+    }
+
+    public String getBridgeHeight() {
+        return bridgeHeight;
+    }
+
+    public void setBridgeHeight(String bridgeHeight) {
+        this.bridgeHeight = bridgeHeight;
+    }
+
+    public String getZhuqiaozhukua() {
+        return zhuqiaozhukua;
+    }
+
+    public void setZhuqiaozhukua(String zhuqiaozhukua) {
+        this.zhuqiaozhukua = zhuqiaozhukua;
+    }
+
+    public String getRoadCount() {
+        return roadCount;
+    }
+
+    public void setRoadCount(String roadCount) {
+        this.roadCount = roadCount;
+    }
+
+    public String getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(String speed) {
+        this.speed = speed;
+    }
+
+    public String getThreed() {
+        return threed;
+    }
+
+    public void setThreed(String threed) {
+        this.threed = threed;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailKjbridge that = (TdetailKjbridge) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (linkRoad != null ? !linkRoad.equals(that.linkRoad) : that.linkRoad != null) return false;
+        if (bridgeType != null ? !bridgeType.equals(that.bridgeType) : that.bridgeType != null) return false;
+        if (bridgeLength != null ? !bridgeLength.equals(that.bridgeLength) : that.bridgeLength != null) return false;
+        if (bridgeWidth != null ? !bridgeWidth.equals(that.bridgeWidth) : that.bridgeWidth != null) return false;
+        if (bridgeHeight != null ? !bridgeHeight.equals(that.bridgeHeight) : that.bridgeHeight != null) return false;
+        if (zhuqiaozhukua != null ? !zhuqiaozhukua.equals(that.zhuqiaozhukua) : that.zhuqiaozhukua != null)
+            return false;
+        if (roadCount != null ? !roadCount.equals(that.roadCount) : that.roadCount != null) return false;
+        if (speed != null ? !speed.equals(that.speed) : that.speed != null) return false;
+        if (threed != null ? !threed.equals(that.threed) : that.threed != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (linkRoad != null ? linkRoad.hashCode() : 0);
+        result = 31 * result + (bridgeType != null ? bridgeType.hashCode() : 0);
+        result = 31 * result + (bridgeLength != null ? bridgeLength.hashCode() : 0);
+        result = 31 * result + (bridgeWidth != null ? bridgeWidth.hashCode() : 0);
+        result = 31 * result + (bridgeHeight != null ? bridgeHeight.hashCode() : 0);
+        result = 31 * result + (zhuqiaozhukua != null ? zhuqiaozhukua.hashCode() : 0);
+        result = 31 * result + (roadCount != null ? roadCount.hashCode() : 0);
+        result = 31 * result + (speed != null ? speed.hashCode() : 0);
+        result = 31 * result + (threed != null ? threed.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailKjbridge{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", linkRoad='" + linkRoad + '\'' +
+                ", bridgeType='" + bridgeType + '\'' +
+                ", bridgeLength='" + bridgeLength + '\'' +
+                ", bridgeWidth='" + bridgeWidth + '\'' +
+                ", bridgeHeight='" + bridgeHeight + '\'' +
+                ", zhuqiaozhukua='" + zhuqiaozhukua + '\'' +
+                ", roadCount='" + roadCount + '\'' +
+                ", speed='" + speed + '\'' +
+                ", threed='" + threed + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                '}';
+    }
+}

+ 219 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailRailstation.java

@@ -0,0 +1,219 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_RAILSTATION" )
+public class TdetailRailstation   extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+    private String stationLevel;
+    private String stationScope;
+    private String lishuluju;
+    private String linkRoad;
+    private String busStation;
+    private String operationTime;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+    private String type;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getStationLevel() {
+        return stationLevel;
+    }
+
+    public void setStationLevel(String stationLevel) {
+        this.stationLevel = stationLevel;
+    }
+ 
+    public String getStationScope() {
+        return stationScope;
+    }
+
+    public void setStationScope(String stationScope) {
+        this.stationScope = stationScope;
+    }
+
+    public String getLishuluju() {
+        return lishuluju;
+    }
+
+    public void setLishuluju(String lishuluju) {
+        this.lishuluju = lishuluju;
+    }
+
+    public String getLinkRoad() {
+        return linkRoad;
+    }
+
+    public void setLinkRoad(String linkRoad) {
+        this.linkRoad = linkRoad;
+    }
+
+    public String getBusStation() {
+        return busStation;
+    }
+
+    public void setBusStation(String busStation) {
+        this.busStation = busStation;
+    }
+
+    public String getOperationTime() {
+        return operationTime;
+    }
+
+    public void setOperationTime(String operationTime) {
+        this.operationTime = operationTime;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailRailstation that = (TdetailRailstation) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (stationLevel != null ? !stationLevel.equals(that.stationLevel) : that.stationLevel != null) return false;
+        if (stationScope != null ? !stationScope.equals(that.stationScope) : that.stationScope != null) return false;
+        if (lishuluju != null ? !lishuluju.equals(that.lishuluju) : that.lishuluju != null) return false;
+        if (linkRoad != null ? !linkRoad.equals(that.linkRoad) : that.linkRoad != null) return false;
+        if (busStation != null ? !busStation.equals(that.busStation) : that.busStation != null) return false;
+        if (operationTime != null ? !operationTime.equals(that.operationTime) : that.operationTime != null)
+            return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (stationLevel != null ? stationLevel.hashCode() : 0);
+        result = 31 * result + (stationScope != null ? stationScope.hashCode() : 0);
+        result = 31 * result + (lishuluju != null ? lishuluju.hashCode() : 0);
+        result = 31 * result + (linkRoad != null ? linkRoad.hashCode() : 0);
+        result = 31 * result + (busStation != null ? busStation.hashCode() : 0);
+        result = 31 * result + (operationTime != null ? operationTime.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailRailstation{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", address='" + address + '\'' +
+                ", tel='" + tel + '\'' +
+                ", stationLevel='" + stationLevel + '\'' +
+                ", stationScope='" + stationScope + '\'' +
+                ", lishuluju='" + lishuluju + '\'' +
+                ", linkRoad='" + linkRoad + '\'' +
+                ", busStation='" + busStation + '\'' +
+                ", operationTime='" + operationTime + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                '}';
+    }
+}

+ 161 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailShoufeizhan.java

@@ -0,0 +1,161 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_SHOUFEIZHAN" )
+public class TdetailShoufeizhan   extends BaseEntity<String> {
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String tel;
+    private String lishuRoad;
+    private String guanlidanwei;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getLishuRoad() {
+        return lishuRoad;
+    }
+
+    public void setLishuRoad(String lishuRoad) {
+        this.lishuRoad = lishuRoad;
+    }
+
+    public String getGuanlidanwei() {
+        return guanlidanwei;
+    }
+
+    public void setGuanlidanwei(String guanlidanwei) {
+        this.guanlidanwei = guanlidanwei;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailShoufeizhan that = (TdetailShoufeizhan) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (address != null ? !address.equals(that.address) : that.address != null) return false;
+        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
+        if (lishuRoad != null ? !lishuRoad.equals(that.lishuRoad) : that.lishuRoad != null) return false;
+        if (guanlidanwei != null ? !guanlidanwei.equals(that.guanlidanwei) : that.guanlidanwei != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (address != null ? address.hashCode() : 0);
+        result = 31 * result + (tel != null ? tel.hashCode() : 0);
+        result = 31 * result + (lishuRoad != null ? lishuRoad.hashCode() : 0);
+        result = 31 * result + (guanlidanwei != null ? guanlidanwei.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailShoufeizhan{" +
+                "photosName='" + photosName + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", guanlidanwei='" + guanlidanwei + '\'' +
+                ", lishuRoad='" + lishuRoad + '\'' +
+                ", tel='" + tel + '\'' +
+                ", address='" + address + '\'' +
+                ", name='" + name + '\'' +
+                ", gid=" + gid +
+                ", id='" + id + '\'' +
+                '}';
+    }
+}

+ 149 - 0
jdc/jdcweb/trunk/src/main/java/com/jsjty/jdc/web/basic/entity/TdetailSsfwq.java

@@ -0,0 +1,149 @@
+package com.jsjty.jdc.web.basic.entity;
+
+import com.xtframe.sec.common.BaseEntity;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+
+/**
+ * package com.jsjty.model
+ * Author  Administrator
+ * Created by 2015/7/6.
+ */
+@Entity
+@Table(name = "TDETAIL_SSFWQ")
+public class TdetailSsfwq   extends BaseEntity<String> {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    private String id;
+    private Integer gid;
+    private String name;
+    private String address;
+    private String guanlidanwei;
+    private String imgUrl;
+    private String photosUrl;
+    private String photosName;
+    private String lishuhd;
+
+    @Id
+    @GenericGenerator(name = "systemUUID", strategy = "uuid")
+    @GeneratedValue(generator = "systemUUID")
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getGid() {
+        return gid;
+    }
+
+    public void setGid(Integer gid) {
+        this.gid = gid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getGuanlidanwei() {
+        return guanlidanwei;
+    }
+
+    public void setGuanlidanwei(String guanlidanwei) {
+        this.guanlidanwei = guanlidanwei;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getPhotosUrl() {
+        return photosUrl;
+    }
+
+    public void setPhotosUrl(String photosUrl) {
+        this.photosUrl = photosUrl;
+    }
+
+    public String getPhotosName() {
+        return photosName;
+    }
+
+    public void setPhotosName(String photosName) {
+        this.photosName = photosName;
+    }
+
+    public String getLishuhd() {
+        return lishuhd;
+    }
+
+    public void setLishuhd(String lishuhd) {
+        this.lishuhd = lishuhd;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TdetailSsfwq that = (TdetailSsfwq) o;
+
+        if (id != null ? !id.equals(that.id) : that.id != null) return false;
+        if (gid != null ? !gid.equals(that.gid) : that.gid != null) return false;
+        if (name != null ? !name.equals(that.name) : that.name != null) return false;
+        if (guanlidanwei != null ? !guanlidanwei.equals(that.guanlidanwei) : that.guanlidanwei != null) return false;
+        if (imgUrl != null ? !imgUrl.equals(that.imgUrl) : that.imgUrl != null) return false;
+        if (photosUrl != null ? !photosUrl.equals(that.photosUrl) : that.photosUrl != null) return false;
+        if (photosName != null ? !photosName.equals(that.photosName) : that.photosName != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = id != null ? id.hashCode() : 0;
+        result = 31 * result + (gid != null ? gid.hashCode() : 0);
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (guanlidanwei != null ? guanlidanwei.hashCode() : 0);
+        result = 31 * result + (imgUrl != null ? imgUrl.hashCode() : 0);
+        result = 31 * result + (photosUrl != null ? photosUrl.hashCode() : 0);
+        result = 31 * result + (photosName != null ? photosName.hashCode() : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "TdetailSsfwq{" +
+                "id='" + id + '\'' +
+                ", gid=" + gid +
+                ", name='" + name + '\'' +
+                ", guanlidanwei='" + guanlidanwei + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", photosUrl='" + photosUrl + '\'' +
+                ", photosName='" + photosName + '\'' +
+                ", lishuhd='" + lishuhd + '\'' +
+                '}';
+    }
+}

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